linux 第37章 安全小技巧 linux 第37章 安全小技巧

2023-04-01

1、修改ssh默认端口

默认是20 ,22一般,我们修改成4位数的 比如7873

vim /etc/ssh/sshd_config

修改

Port 787

2、SSHD 强制使用V2安全协议

温馨提示:此方案可以增强对SSH通信的保护,避免敏感数据泄露。

风险描述:未使用安全套接字加密远程管理ssh

解决方案:

  • 1、在【/etc/ssh/sshd_config】文件中添加或修改Protocol 2

  • 2、随后执行命令systemctl restart sshd重启进程

3、禁止SSH空密码用户登录

vim /etc/ssh/sshd_config

修改

PermitEmptyPasswords no

4、确保SSH MaxAuthTries 设置为3-6之间

由于我们这里攻击量较大,所以我设置为3,大家看情况而而定,顾名思义,超过3次错误不可链接

vim /etc/ssh/sshd_config

修改

MaxAuthTries 3

5、设置SSH空闲超时退出时间以及最大连接数

温馨提示:此方案可以增强 SSH 服务的安全性,修复后连接 SSH 长时间无操作会自动退出,防止被他人利用。

将ClientAliveInterval设置为300到900,即5-15分钟,将ClientAliveCountMax设置为0-3

vim /etc/ssh/sshd_config

修改

ClientAliveInterval 600
ClientAliveCountMax 2

这里我设置的时间为600ms,最大超时连接数为2次

6、确保 SSH LogLevel 设置为 INFO

vim /etc/ssh/sshd_config

修改

LogLevel INFO

此项也是开启,把前面#去掉即可

7、限制密码重复使用次数

此方案通过限制登录密码重复使用次数,加强服务器访问控制保护。

  • 配置文件备份 cp -p /etc/pam.d/system-auth /etc/pam.d/system-auth.bak

  • 在【/etc/pam.d/system-auth】文件【password sufficient】后面添加或修改 remember=3

8、SSH 密码修改最小间隔

此方案是设置 SSH 登录密码修改后,多少天之内无法再次修改。

  • 【/etc/login.defs】 PASS_MIN_DAYS 应设置为大于等于 7

  • PASS_MIN_DAYS 7 需同时执行命令设置 root 密码失效时间 命令如下: chage --mindays 7 root

9、启用 SSH 登录超时配置

将 LoginGraceTime 参数设置为一个较小的数字将最大限度地降低对 SSH 服务器成功进行暴力破解的风险。它还将限制并发的未经身份验证的连接数量。

  • 在【/etc/ssh/sshd_config】文件中设置【LoginGraceTime】为 60

10、检查重要文件是否存在suid和sgid权限

温馨提示:此方案去除了重要文件的特殊权限,可以防止入侵者利用这些文件进行权限提升。

风险描述

存在suid特权的文件:/usr/bin/chage、/usr/bin/gpasswd、/usr/bin/chfn、/usr/bin/chsh、/usr/bin/newgrp、/usr/sbin/usernetctl、/bin/mount、/bin/umount
存在sgid特权的文件:/usr/bin/wall、/usr/bin/write、/sbin/netreport

解决方案

  • 使用 chmod u-s 【文件名】命令去除 suid 权限

  • 使用 chmod g-s 【文件名】去除 sgid 权限

11、bootloader 配置权限检查

温馨提示:此方案可以加强服务器 grub 界面的防护,进一步阻止外部入侵服务器。

风险描述:

以下关键文件或目录权限错误:/boot/grub2/grub.cfg
当前权限: 644 : root
安全权限: 600 : root

解决方案:

  • 根据风险描述提示的文件,对 grub 配置安全的权限

  • 若是 grub2,则:chmod 600 /boot/grub2/grub.cfg、chown root /boot/grub2/grub.cfg

  • 若是 grub,则:chmod 600 /boot/grub/grub.cfg、chown root /boot/grub/grub.cfg

11、检查是否设置无操作超时退出

温馨提示:此方案会使服务器命令行超过一定时间未操作自动关闭,可以加强服务器安全性。

风险描述:未配置命令行超时退出

解决方案:

  • 在文件【/etc/profile】中添加 tmout=300,等保要求不大于 600 秒

  • 执行命令 source /etc/profile 使配置生效

12、检查是否使用 PAM 认证模块禁止wheel组之外的用户 su 为 root

温馨提示:此方案通过禁止低权限用户切换到 root 用户,增强对服务器权限的保护。修复前需要确保业务没有切换 root 的需求,否则忽略此风险项。

风险描述:

  • 在文件【/etc/pam.d/su】中添加 auth required pam_wheel.so

  • 如需配置用户可以切换为 root,则将用户加入 wheel 组,使用命令添加wheel组【addgroup wheel】,再执行命令【gpasswd -a [用户] wheel】

13、用户 FTP 访问安全配置检查

温馨提示:此方案可以增强对FTP服务器的防护,降低服务器被入侵的风险

风险描述:当前pure-ftpd未配置安全访问,在【pure-ftpd.conf】文件中修改/添加Umask的值为177:077

解决方案:在【/www/server/pure-ftpd/etc/pure-ftpd.conf】在配置文件中修改Umask的值为177:077

14、SSH 密码复杂度检查

温馨提示:此方案加强服务器登录密码的复杂度,降低被爆破成功的风险。

风险描述:【/etc/security/pwquality.conf】文件中把minclass设置置为3或者4

解决方案:

  • 1、【/etc/security/pwquality.conf】 把minclass(至少包含小写字母、大写字母、数字、特殊字符等4类字符中等3类或4类)设置为3或4。如:

  • 2、minclass=3

阅读 621