加固要求:
用户远程登陆验证连续超过5次失败的,锁定帐号30分钟
加固方式:
//更改配置文件,在#%PAM-1.0的下边,即第二行添加内容
vim/etc/pam.d/sshd
authrequiredpam_tally2.sodeny=5unlock_time=1800even_deny_rootroot_unlock_time=1800
保存退出
验证疗效:
sshuser1@192.168.242.132
故意连续6次输入错误口令,最后输入正确口令,发觉早已未能登入。
在服务器上查看锁定情况:
说明登陆失败锁定机制早已生效。
(二)防服务漏洞
1.修改ssh服务端口
加固要求:
修改ssh服务的窃听端口为2222
加固方式:
//编辑配置文件
vi/etc/ssh/sshd_config
取消Port行的注释,将Port的值从22更改为2222
保存退出
//重启ssh服务
systemctlrestartsshd
验证疗效:
//访问远程主机ssh服务默认的22端口
sshuser1@192.168.242.132
联接被拒绝
//指定访问远程主机的ssh服务的2222端口
ssh-p2222user1@192.168.242.132
容许登入。说明ssh服务端口更改成功。
2.限制ssh联接的源地址范围
加固要求:
只容许192.168.242.0/24网关访问ssh服务。
加固方式:
//更改配置文件,在末尾加入一行
vi/etc/hosts.deny
sshd:ALL
保存退出
//更改配置文件,在末尾加入一行
vi/etc/hosts.allow
sshd:192.168.242.0/255.255.255.0:allow
保存退出
验证疗效:
从其它虚拟机访问CentOS7
顾客端地址为192.168.242.134,联接被重置,说明ssh顾客端地址限制生效了,加固成功。
3.禁用毋须要的服务
加固要求:
停止并禁用不须要的服务,如cups,降低系统的受功击面。
加固方式:
//停止服务
systemctlstopcups
//禁用服务
systemctldisablecups
验证疗效:
//查看服务是否被禁用
systemctlis-enabledcups
//查看服务当前是否正在运行
systemctlstatuscups

若服务的自启动配置为disabled或masked,服务的运行状态为inactive,则加固成功。
4.启用selinux
加固要求:
SELinux使用强制访问控制机制,可最大限度地减少系统中服务进程可访问的资源。要求开启selinux,设置工作模式为enforcing,策略为target。
加固方式:
vi/etc/selinux/config//编辑配置文件
设置
SELINUX=enforcing
SELINUXTYPE=targeted
保存退出,重启后生效。
验证疗效:
sestatus//查看selinux的工作状态

SELinuxstatus:enabled
LoadedPolicyname:Target
说明加固成功。
5.启用审计服务
加固要求:
启动auditd服务,并设置为开机手动运行。
加固方式:
//自动启动服务
systemctlstartauditd
//设置开机手动运行
systemctlenableauditd
验证疗效:
//查看auditd服务状态
systemctlstatusauditd
//查看是否自启动
systemctlis-enabledauditd
若auditd服务被设置为手动启动且早已运行,则加固成功。
(三)防权限提高
1.管理sudo权限
加固要求:
当前user1用户被加入到了wheel用户组,而系统容许wheel组通过sudo执行任何命令。现要求取消user1用户通过sudo执行任何命令的权限,只容许sudo执行特定的命令。
加固方式:
gpasswd-duser1wheel//将user1从wheel组中删掉
visudo//编辑配置文件,给与user1通过sudo执行特定命令的权限
推荐阅读:《CentOS7系统配置sudo策略(附sudo加壳演示)》
验证疗效:
sudols//user1用户通过sudo执行未授权的命令
若出现提示,称用户不在sudoers文件中,说明sudo权限配置加固成功。
2.启用sudo日志
加固要求:
启用sudo日志。
加固方式:
第一步,创建sudo.log文件
//创建日志文件
touch/var/log/sudo.log
第二步,更改rsyslog配置文件

//在配置文件最后添加一行
vi/etc/rsyslog.conf
local2.debug/var/log/sudo.log//空白处不能用空格键,必需用tab键
保存退出
//重启rsyslog服务
systemctlrestartrsyslog
第三步,更改sudo配置文件
visudo//编辑sudo配置
Defaultslogfile=/var/log/sudo.log
Defaultsloglinelen=0
Defaults!syslog
保存退出
验证疗效:
cat/var/log/sudo.log//执行sudo命令后查看sudo日志文件

倘若形成了日志条目红联linux论坛,说明配置成功。
3.管理suid/sgid文件
加固要求:
系统中存在设置了suid的vim程序(/usr/bin/vim),存在加壳风险,要求取消该程序文件的suid权限。
加固方式:
chmodu-s/usr/bin/vim
验证疗效:
ls-l/usr/bin/vim
若文件权限中没有suid标示位,说明加固成功。
4.限制su的使用
加固要求:
不仅user1用户之外,其它用户严禁使用su命令。
加固方式:
vi/etc/pam.d/su//编辑配置文件,加入下边的行
authrequiredpam_wheel.souse_uid
保存退出
vi/etc/group//编辑配置文件linux服务器维护,将user1加入wheel组
wheel:x:10:root,user1
保存退出
验证疗效:

以user1用户之外的普通用户身分登陆,然后执行su命令,若返回“su:拒绝权限”,则说明加固成功。
5.设置严格的umask
加固要求:
将用户默认的umask值设置为027
加固方式:
编辑/etc/bashrc、/etc/profile、/etc/profile.d/*.sh等文件,将umask参数的值改为027:
umask=027
验证疗效:
创建文件,若文件的权限为640,则说明加固成功。
6.消除没有属主的目录和文件
加固要求:
查找并处理系统中无属主或无属组的目录和文件
加固方式:
第一步,查找无属主或无属组的目录/文件
find/(-nouser-o-nogroup)-execls-al{};
第二步,对查找到的文件进行处理,不再使用的文件可删掉,有用的文件可将其属主或属组更改为现有的某个用户。
验证疗效:

系统中找不到无属主或无属组的目录/文件,则加固成功。
7.注销时去除命令历史
加固要求:
用户注销时去除该用户的历史命令
加固方式:
//注销时去除root用户的历史命令
vi/root/.bash_logout//编辑配置文件,加入下边的命令
echo>/root/.bash_history
保存退出
//注销时去除user1用户的历史命令
vi/home/user1/.bash_logout//编辑配置文件,加入下边的命令
echo>/home/user1/.bash_history
保存退出
//编辑用户配置模板,这样之后创建的用户在注销时也会删掉历史命令
vi/etc/skel/.bash_logout//编辑配置文件,加入下边的命令
echo>$HOME/.bash_history
保存退出
验证疗效:
注销用户,重新登陆,执行history命令查看历史命令,若看不到注销前的历史命令,则说明加固成功。
8.禁用coredump
加固要求:
禁用系统的coredump功能
加固方式:
vi/etc/security/limits.conf//编辑配置文件,在文件末尾加入:
*hardcore0
保存退出
vi/etc/sysctl.conf//编辑配置文件,加入下边的内容
fs.suid_dumpable=0
保存退出。重启后参数生效
sysctl-wfs.suid_dumpable=0//参数立刻生效
验证疗效:
查看配置文件,确认配置。9.执行安全更新
加固要求:
安装可用的安全更新。
加固方式:
yumupdate--security//安装安全更新包
验证疗效:
yumcheck-update--security//检测安全更新
若返回“Nopackagesneededforsecurity;”,说明安全更新已完成。
(四)防木马侧门
1.布署主机入侵检查软件
加固要求:
安装布署AIDE入侵检查软件,并定期检测文件完整性。
加固方式:
yuminstallaide//在线安装AIDE
aide--init//生成包含文件系统中所有文件的数据库
cp/var/lib/aide/aide.db.new.gz/var/lib/aide/aide.db.gz//安装数据库
aide-c/etc/aide.conf--check//进行完整性检测
aide-c/etc/aide.conf--limit/bin--check//对指定目录进行完整性检测
推荐阅读:《CentOS8系统安装配置AIDE入侵检查软件检测文件完整性》
验证疗效:
生成散列数据库后对文件进行更改,运行aide,确认其可以测量到文件的变化。
2.开启网路防火墙firewalld
加固要求:

开启网路防火墙,只容许远程主机访问本地的特定端口,如22和80端口。
加固方式:
systemctlstartfirewalld//启动firewalld服务
systemctlenablefirewalld//设置服务开机自启
firewall-cmd--add-service=http//准许访问http服务
firewall-cmd--add-service=http--permanent//持久化(写入配置文件)
firewall-cmd--add-service=ssh
firewall-cmd--add-service=ssh--permanent
firewall-cmd--remove-service=dhcpv6-client//删掉不须要的服务
firewall-cmd--remove-service=dhcpv6-client--permanent
firewall-cmd--list-service//查看firewalld容许的服务
firewall-cmd--list-service--permanent//查看配置文件准许的服务
推荐阅读:《CentOS7系统使用firewalld防火墙创建包过滤规则》
验证疗效:
//查看服务器本地的firewalld服务是否设置为手动启动
systemctlis-enabledfirewalld
//远程扫描服务器端口
nmap192.168.242.132
若只开放了22和80端口,说明firewalld加固成功。
3.限制crontab使用者
加固要求:
严禁root之外的用户以crontab形式运行计划任务。
加固方式:
touch/etc/cron.allow&&vi/etc/cron.allow//创建并编辑文件
在文件的第一行写入root,保存退出
验证疗效:

普通用户尝试创建crontab任务,若未能创建,则加固成功
(五)防痕迹清理
1.启用rsyslog服务
加固要求:
启动rsyslog服务并设置为开机手动运行
加固方式:
systemctlenablersyslog//设置手动启动
systemctlstartrsyslog//自动启动服务
验证疗效:
logger-plocal1.notice”Thisisatestforrsyslog.”//执行命令
在/var/log/messages文件中若能可以见到相应的日志,说明rsyslog服务工作正常,加固成功。
2.配置远程日志服务器
加固要求:
配置远程rsyslog日志服务器
加固方式:
vi/etc/rsyslog.conf//编辑配置文件,在末尾加入一行
*.*@192.168.242.1
作用是将全部日志转发到192.168.242.1的UDP514端口。
保存退出。
推荐阅读:《CentOS7系统配置rsyslog服务发送和接收日志》
验证疗效:
在日志服务器192.168.242.1上窃听TCP514端口
tcpdump-ivmnet8udpport514
当被加固主机执行下边的命令时,192.168.242.1主机的UDP514端口将收到一个包
logger-plocal1.notice”Thisisatestforrsyslog.”


目标主机的UDP514端口收到数据,说明日志服务器配置成功。
3.配置NTP时间同步
加固要求:
定期(每小时一次)与远程NTP服务器()同步时间,以保证日志时间的确切性。
加固方式:
crontab-uroot-e//编辑root帐户的计划任务
01***/usr/sbin/ntpdate
保存退出
验证疗效:
crontab-uroot-l//查看root的crontab,确保存在ntp更新的指令
/usr/sbin/ntpdate//手工执行时间同步
以上命令若返回成功的结果,则说明加固成功。
4.强化审计日志文件权限
加固要求:
为audit日志文件设置严格的权限,防止日志信息被恶意操作
加固方式:
chmod700/var/log/audit
chmod600/var/log/audit/audit.log
chmod400/var/log/audit/audit.log.*
验证疗效:
ls-ld/var/log/audit//查看日志目录权限
ls-l/var/log/audit//查看日志文件权限
(六)防化学功击
1.bootloader安全配置
加固要求:
要求用户在系统引导程序执行之前输入boot口令,防止非授权用户改变启动参数或则改变引导分区,进而增加系统安全性被消弱的风险(如在启动时关掉selinux、进入单用户模式等)
加固方式:
grub2-setpassword
验证疗效:
重启服务器,在出现开机选择菜单时按e,若出现输入用户名和密码的提示,则说明加固成功。

2.禁用usb设备
加固要求:
严禁在服务器上使用usb储存设备linux passwd,如U盘或联通硬碟
加固方式:
第一步,伪安装
cd/etc/modprobe.d/
touchblock_usb.conf&&viblock_usb.conf//创建并编辑配置文件,加入一行
installusb-storage/bin/true
保存退出
第二步,转移usb-storage驱动文件
uname-r//查看当前使用的内核版本
cd/lib/modules/3.10.0-1062.18.1.el7.x86_64/kernel/drivers/usb/storage/
mvusb-storage.ko.xz/root
第三步,对驱动文件进行加密
cd/root
zip-q-r-Pbiomindusb-storage-driver.zipusb-storage.ko.xz
rm-rfusb-storage.ko.xz
这样,usb储存设备的驱动就没法使用了。当须要使用的时侯,将驱动文件解压下来,放回到原来的目录即可。
验证疗效:
将USB储存设备插入系统后难以辨识,说明加固成功,
三、总结
针对上一篇文章介绍的针对Linux系统的功击方式,本文相对应地介绍了在Linux系统进行安全加固的技巧。应定期对系统进行安全加固操作,以最大程度地减少Linux系统自身的脆弱性linux passwd,降低系统被入侵的风险。在下一篇文章中,将介绍针对功击者的各种功击方法所采取的入侵排查技巧。
