1.生产环境Linux服务器系统版本的选择
选择CentOS6.5版本64位的Linux操作系统
CentOS (Community Enterprise Operating System,中文意思是:社区企业操作系统)是Linux发行版之一,它是来自于红帽的Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此和红帽商业版的RHEL系统用着同样的高度稳定性。两者的不同,在于CentOS并不包含红帽的商业支持和一些RHEL商业版隐藏的功能。CentOS是完全开源和免费的,企业可以在生产环境上自由部署
2.一般服务器的初始磁盘分区
1)/boot引导分区,存放引导文件和内核等。分区大小设定200M。
一般正式环境下,Linux引导文件及内核全部大小在100M以内。
2)swap交换分区,作为虚拟内存使用,用于当物理内存不足时,调用硬盘的一部分当内存使用。使用虚拟内存,会保障服务器在内存不足的时候不会宕机。
一般生产环境服务器内存较大,交换分区大小与内存相同即可
3)/分区根分区,将分完/boot和swap分区剩下的空间都分给/分区
3.数据库服务器的初始磁盘分区
1)/boot引导分区,分区大小设定200M
2)swap交换分区,交换分区大小与内存相同
3)逻辑卷建立LVM逻辑卷,将逻辑卷挂载到相应的文件路径,后期可以轻松扩充或减小文件系统的大小
4)/分区根分区使用逻辑卷, 数据库服务器的根分区主要存放系统相关文件、日志、用户信息等,由于不用存放数据文件,并且可以通过逻辑卷随意扩充,大小满足系统运行需要即可。lv大小设定200G
5)数据分区为数据库软件和数据库文件单独划分一个逻辑卷分区,以保证数据的独立性和安全性,如果Linux操作系统崩溃,可以格式化/boot分区和根分区重新安装系统,而保留数据分区下的数据库软件和数据文件。将所有剩余的卷组空间都分配给数据分区的逻辑卷,Mysql数据库一般将数据分区挂载在/usr/local,Oracle数据库一般将数据分区挂载在/u02上
4.多网卡绑定bond配置
生产环境多块物理网卡,需要用bond绑定为一块虚拟网卡对外提供服务,配置一个ip,可以实现网卡的负载均衡和高可用性,规划生产环境用两块网卡eth0、eth1绑定为bond0
1)虚拟网卡bond0配置文件
vim /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.10.93
NETMASK=255.255.255.0
GATEWAY=192.168.10.1
2)物理网卡eth0配置文件
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
3)物理网卡eth1配置文件
vim /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
4)修改modprobe相关设定文件,并加载bonding模块
vim /etc/modprobe.d/bonding.conf
alias bond0 bonding
options bond mode=0 miimon=100
mode模式:0提供负载均衡和高可用,按顺序轮流把包发给绑定在在bond口内的网卡
1主备策略,提供高可用性,逻辑简单,同时只有一个网卡处于激活状态,一个失败,另外一个自动激活
miimon:监视网络链接的频度,单位是毫秒
5)加载模块(或重启)
modprobe bonding
6)查看模块加载情况
lsmod | grep bonding
7)重启网络
service network restart
8)确认绑定情况
cat /proc/net/bonding/bond0
ifconfig
5.关闭本地防火墙
iptables -F
iptables –L
service iptables save
6.关闭NetworkManager服务
service NetworkManager stop
chkconfig NetworkManager off
7.账户安全权限配置
1)禁用root以外的超级用户
cat /etc/passwd | awk -F ':' '{print $1,$3}' | grep ' 0$' 检测其他超级用户
passwd -l username锁定用户
2)删除不必要的账号
awk -F : '{print $1}' /etc/passwd | grep -E 'adm|lp|sync|shutdown|halt|news|uucp|operator|games|gopher'
userdel username
3)删除不必要的组
awk -F : '{ print $1 }' /etc/group | grep -E 'adm|lp|news|uucp|games|dip|pppusers|popusers|slipusers'
groupdel groupname
4)设置root用户口令
passwd
5)检查空口令账号,如发现则设置口令
awk -F: '($2 == "") { print $1 }' /etc/shadow
passwd username
6)口令文件加锁
chattr +i /etc/passwd
chattr +i /etc/shadow
chattr +i /etc/group
chattr +i /etc/gshadow
当需要改密码的时候,要先解锁shadow文件:
chattr –i /etc/shadow
7)设置root账户自动注销时限
vim /etc/profile
在"HISTFILESIZE="后面加入下面
TMOUT=300
8)限制普通用户通过su切换为root用户
vim /etc/pam.d/su
auth required pam_wheel.so use_uid
如果需要用户可以su成为root,要将其加入wheel组
usermod -G 10 username
9)限制普通用户无法执行关机、重启、配置网络等敏感操作
rm -rf /etc/security/console.apps/*
10)禁用Ctrl+Alt+Delete组合键重新启动机器命令
vim /etc/inittab
#ca::ctrlaltdel:/sbin/shutdown-t3-rnow
11)设置开机启动项权限
chmod –R 700 /etc/rc.d/init.d/
12)避免login时显示系统和版本信息
rm -rf /etc/issue
rm -rf /etc/issue.net
13)删除多余登录终端
vim /etc/securetty