加固要求:

用户远程登陆验证连续超过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

更改ssh服务端口防漏洞_linux passwd_加固远程登录验证失败锁定账号

若服务的自启动配置为disabled或masked,服务的运行状态为inactive,则加固成功。

4.启用selinux

加固要求:

SELinux使用强制访问控制机制,可最大限度地减少系统中服务进程可访问的资源。要求开启selinux,设置工作模式为enforcing,策略为target。

加固方式:

vi/etc/selinux/config//编辑配置文件

设置

SELINUX=enforcing

SELINUXTYPE=targeted

保存退出,重启后生效。

验证疗效:

sestatus//查看selinux的工作状态

加固远程登录验证失败锁定账号_更改ssh服务端口防漏洞_linux passwd

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配置文件

加固远程登录验证失败锁定账号_更改ssh服务端口防漏洞_linux passwd

//在配置文件最后添加一行

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 passwd_加固远程登录验证失败锁定账号_更改ssh服务端口防漏洞

倘若形成了日志条目红联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

保存退出

验证疗效:

更改ssh服务端口防漏洞_linux passwd_加固远程登录验证失败锁定账号

以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{};

第二步,对查找到的文件进行处理,不再使用的文件可删掉,有用的文件可将其属主或属组更改为现有的某个用户。

验证疗效:

更改ssh服务端口防漏洞_加固远程登录验证失败锁定账号_linux passwd

系统中找不到无属主或无属组的目录/文件,则加固成功。

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

加固要求:

加固远程登录验证失败锁定账号_更改ssh服务端口防漏洞_linux passwd

开启网路防火墙,只容许远程主机访问本地的特定端口,如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,保存退出

验证疗效:

加固远程登录验证失败锁定账号_更改ssh服务端口防漏洞_linux passwd

普通用户尝试创建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.”

更改ssh服务端口防漏洞_加固远程登录验证失败锁定账号_linux passwd

更改ssh服务端口防漏洞_linux passwd_加固远程登录验证失败锁定账号

目标主机的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,若出现输入用户名和密码的提示,则说明加固成功。

linux passwd_更改ssh服务端口防漏洞_加固远程登录验证失败锁定账号

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,降低系统被入侵的风险。在下一篇文章中,将介绍针对功击者的各种功击方法所采取的入侵排查技巧。

Tagged:
Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复