
服务器加固是通过各种方法增强服务器安全性的过程。保护操作系统免受黑客、破解者和攻击者的侵害。网络安全防护的目标是保密性、完整性、可用性、可控制性、不可否认性。
1、操作系统安装
(1)最小化安装、配置网络。
(2)开启SSH服务,并把SSH默认端口22修改成其他端口:
[root@localhost ~]# service sshd start
修改/etc/ssh/sshd_config文件,在下面加上一行保存:
“ port 端口号”
(3)安装补丁升级至最新:
[root@localhost ~]# yum install update
[root@localhost ~]# cat etc/*release 最后版本
(4)openssh 版本升级(此过程升级错误可能导致无法远程管理,虚拟机升级前建议做快照):
[root@localhost ~]# yum install -y gcc openssl-devel pam-devel rpm-build
[root@localhost ~]# wget http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-XXXX.tar.gz
[root@localhost ~]# tar -zxvf openssh-XXXX.tar.gz
[root@localhost ~]# cd openssh-XXXX
[root@localhost ~]# ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-zlib --with-md5-passwords--with-tcp-wrappers
[root@localhost ~]# make && make install
修改配置文件/etc/ssh/sshd_config,允许root登录:
“PermitRootLogin yes ”前的#号去掉
说明:XXXX表示版本。
(5)修改hostname:
[root@localhost ~]# hostname=your_hostname
(6)系统Banner:
[root@localhost ~]# echo “Authorized users only!” >/etc/redhat-release
[root@localhost ~]# echo “Authorized users only!”>/etc/issue
2. 身份鉴别
(1)身份标识唯一性,进行/etc/passwd和/etc/shadow文件的完整性相同检查,不存在相同uid 的用户,不使用过期的账号和无用的账号,限制daemon、shutdown、games、ftp、nobody等默认用户。
(2)身份标识和鉴别:创建“newuser”普通用户,仅允许“newuser”用户su为root用户:
[root@localhost ~]# passwd -l alice
[root@localhost ~]# passwd -S alice
[root@localhost ~]# passwd -u alice
[root@localhost ~]# usermod -L alice
[root@localhost ~]# usermod -U alice
[root@localhost ~]# useradd newuser
[root@localhost ~]# usermod -G wheel newuser
修改配置文件cat etc/pam.d/su 文件:
“auth required pam_wheel.so use_uid”前的“#”号去掉
说明: -l:锁定、-u解锁、-S查看状态、
-L:usermod下的锁定;
U:usermod的解锁。
(3)远程管理加密:使用ssh协议登录,禁止使用 telnet、ftp等明文网络协议。
(4) 限制用户su:
限制能su到root的用户。
使用命令 vi etc/pam.d/su修改配置文件,在配置文件中添加行。例如,只允许test组用户su到root,则添加 auth required pam_wheel.so group=test。
3. 口令设置及登录失败处理
(1)口令长度:至少10位,且口令需包括数字、小写字母、大写字母和特殊符号4类元素中的至少3类:
修改配置文件 cat etc/pam.d/system-auth,在下面加上一行保存:
“password requisite pam_cracklib.so retry=3 minlen=10 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1 difok=3”
(2)口令锁定策略:需设置连续认证失败次数超过5次,锁定该账号5分钟:
修改配置文件cat etc/pam.d/system-auth ,在下面加上一行保存:
“auth required pam_tally.so onerr=fail deny=5 unlock_time=300”
(3)口令生存期:账户口令的生存期不得长于180天,两次修改密码的最小间隔时间 7天、密码最小长度 10位、密码过期前7天开始提示修改;
修改配置文件cat etc/login.defs, 在下面加上几行保存:
“PASS_MAX_DAYS 180”
“PASS_MIN_DAYS 7”
“PASS_MIN_LEN 10”
“PASS_WARN_AGE 7”
(4)口令历史有效次数:不重复使用最近3次已使用过的口令。
修改配置文件 cat etc/pam.d/system-auth,在下面加上一行保存:
“password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok remember=3 ”
说明:“口令”字段存放的是加密后的用户口令字,如果为空,则对应用户没有口令,登录时不需要口令;星号代表账号被锁定,有些系统为NP;双叹号表示这个密码已经过期了。$6$开头表明是用SHA-512加密的,$1$ 开头表明是用MD5加密的,$2$ 开头表明是用Blowfish加密的,$5$ 开头表明是用SHA-256加密的。
4. 安全审计
(1)启用auditd服务,启用日志服务
# service auditd start
# service rsyslog start
根据具体的业务需要,在/etc/audit/auditd.conf、/etc/audit/ audit.rules文件里配置审计内容:重要用户行为、系统资源的异常使用和重要系统命令的使用;审计记录:日期和时间、类型、主体;标识、客体标识、事件的结果等;最后根据需要对审计记录保护,配置查看日志访问权限。
5. 其他必要加固
(1)禁止root用户远程登录
修改配置文件 /etc/ssh/sshd_config
把“PermitRootLogin yes” 改为“PermitRootLogin no”
(2)设置命令行界面系统输入空闲超时10分钟,自动退出:
修改配置文件cat /etc/profile,在下面加上一行保存:
“export TMOUT=600”
(3)禁ping:
修改配置文件cat /etc/sysctl.conf 在下面加上一行保存:
“ net.ipv4.icmp_echo_ignore_all=1”
(4)禁止Traceroute探测:
[root@localhost ~]# iptables -A FORWARD -p icmp -j DROP
(5)精简开机自启动服务,开启审计、系统日志、防火墙等服务:
[root@localhost ~]# for sun in `chkconfig --list|grep 3:on|awk '{print $1}'`;do chkconfig --level 3 $sun off;done
[root@localhost ~]#f or sun in auditd rsyslog sshd network iptables ip6tables;do chkconfig --level 3 $sun on;done
(6)安装如zabbix主机监控的系统对主机运行状态等进行监控。
(7)安装杀毒软件。
6. 系统应用部署完成后需要配置
(1)设置文件访问权限:
修改配置文件 /etc/profile, 在下面加上一行保存:
“umask=027”
(2)建议修改以下重要文件和目录权限(根据需要自行配置):
文件 权限值
/etc/group文件 644
/etc/passwd文件 644
/etc/xinetd.conf文件 600
/etc/shadow文件 400
/etc/services文件 644
/etc/security目录 600
/etc/rc6.d文件 750
/tmp文件 750
/etc/ 750
(3)根据服务器日志情况进行日志策略调整(等保要求日志保存不少于180天)。
(4)单个用户多重并发会话、最大并发会话连接数等限制策略配置。
(5)制定备份策略保证数据安全,定期进行数据异地备份(例如每天/周/月季度对数据库和重要代码进行增量备份/全量备份等)。
(6)根据系统重要性对相关系统做应用级/数据级的异地备份。
7. 清除系统安装时的配置信息
[root@localhost ~]# yum clean all
[root@localhost ~]# echo > /var/log/wtmp
[root@localhost ~]# echo > /var/log/secure
[root@localhost ~]# echo > /var/log/messages
[root@localhost ~]# echo > /var/log/cron
[root@localhost ~]# echo > /var/log/dmesg
[root@localhost ~]# echo > /var/log/lastlog
[root@localhost ~]# echo > /var/log/rpmpkgs
[root@localhost ~]# echo > /var/log/utmp
[root@localhost ~]# echo > /var/log/yum
[root@localhost ~]# echo > /var/log/btmp
[root@localhost ~]# echo > ./.bash_history
[root@localhost ~]# history –c
8. 总结
通过以上方案加固后,服务器能够具备基本的安全防范,网络攻击者不宜获取相关信息,同时也不宜拿到高权限的管理账号,再配合其他安全防范手段,操作系统能够基本符合等保要求。





