vlambda博客
学习文章列表

备忘:Linux服务器安全加固手册




有人说Linux的安全性本来就很高

不用加固都可以

事实真的是这样吗?

我就说近些年Linux爆出的漏洞

19年有sudo提权漏洞

18年有kernel内核提权漏洞

17年有kernel本地内存破坏漏洞

16年有影响极其广泛的脏牛漏洞

当然,相比Windows系统之下

Linux系统安全性确实要高很多

为什么大家都这么说呢?





Linux系统的安全性之所以优于Windows系统,很大原因是它的开源性所致。一旦发现重大漏洞,全国各地的工程师立马就赶来迅速解决,而不是像Winddows或Mac这样需要等待内部工程师的修复,再厉害的工程师也敌不过全国各地的程序猿。


接下来进入正文,本文是当初学习时的一个备忘笔记分享,有不足之处望师傅们在下方留言。



———— / BEGIN / ————



下面是Linux服务器安全加固的9个方法




0x01 禁止Root用户直接登陆


编辑配置文件

vim /etc/ssh/sshd_config

修改 PermitRootLogin 后面的 yes 为 no , 并且去掉前面的注释符。


编辑账户登录文件

vim /etc/pam.d/login

配置auth required pam_securetty.so


编辑账户信息文件

vim /etc/passwd

使账户信息的shell为/sbin/nologin的为禁止远程登陆,如要允许,则改成可以登陆的shell即可,如/sbin/bash。

然后重启sshd服务  service sshd restart



0x02 设置用户密码复杂度和过期时间


修改/etc/login.defs文

PASS_MAX_DAYS 90 #密码最长过期天数PASS_MIN_DAYS 80 #密码最小过期天数PASS_MIN_LEN 10 #密码最小长度PASS_WARN_AGE 7 #密码过期警告天数



0x03 登陆超时设置


vim /etc/profile// 在最后一行加入 TMOUT=300



0x04 系统关键文件权限设置


通过chmod命令对目录的权限进行实际设置

/etc/passwd -- 必须所有用户都可读,Root用户可写 –rw-r--r--

/etc/shadow -- 只有Root可读 –r--------

/etc/group -- 须所有用户都可读,Root用户可写 –rw-r--r--

使用如下命令设置:

chmod 644 /etc/passwdchmod 600 /etc/shadowchmod 644 /etc/group



0x05 设置文件与目录缺省权限


在文件 /etc/profile 中设置 umask 027 或 UMASK 027

设置默认权限:

vim /etc/login.defs

在末尾增加 umask 027 或 UMASK 027,将缺省访问权限设置为750。



0x06 设置ssh登录前警告Banner


1) 执行如下命令创建ssh banner信息文件:(使用Root权限执行)

touch /etc/ssh_banner #chown bin:bin /etc/ssh_banner #chmod 644 /etc/ssh_banner echo " Authorized only. All activity will be monitored and reported "> /etc/ssh_banner

可根据实际需要修改该文件的内容。

2) 修改 /etc/ssh/sshd_config 文件,添加如下行:

Banner /etc/ssh_banner

3) 重启sshd服务:

/etc/init.d/sshd restartservice sshd restart



0x07 修改ssh默认端口


vi /etc/ssh/sshd_config// 修改Port 17382// 重启sshd服务service sshd restart



0x08 限制用户su到Root


编辑su文件

vim /etc/pam.d/su// 在开头添加下面两行:auth sufficient pam_rootok.soauth required pam_wheel.so group=wheel// 这表明只有wheel组的成员可以使用su命令成为Root用户。

你可以把用户添加到wheel组,以使它可以使用su命令成为Root用户。

添加方法为:usermod –G wheel username

备注:双方共同运维服务器,且Root密码为我方知晓时设置。



0x09 检查拥有suid和sgid权限的文件


执行命令:

find /usr/bin/chage /usr/bin/gpasswd /usr/bin/wall /usr/bin/chfn /usr/bin/chsh /usr/bin/newgrp /usr/bin/write /usr/sbin/usernetctl /usr/sbin/traceroute /bin/mount /bin/umount /bin/ping /sbin/netreport -type f -perm -04000 -o -perm -02000 -type f -xdev 2 > /dev/null

如果存在输出结果,则使用 chmod 755 文件名 命令修改文件的权限。

例如:chmod a-s /usr/bin/chage


注1:所有软件最好用最新版本。

注2:本文是在当初学习过程中,浏览了各文章总结而出,肯定有摘录的问题,如有冒犯/侵权请联系作者,我们立即删除。





■ Over ■