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

tty1

#tty2

#tty3

#tty4