共计 2812 个字符,预计需要花费 8 分钟才能阅读完成。
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