SSH 安全加固

SSH(Secure Shell)是一种能够让用户安全访问远程系统的网络协议,它为不安全网络中的两台主机提供了一个强加密数据通信通道。SSH是Linux、UNIX系统管理员操作和管理主机的首选方式。虽然SSH比其他通信方式更加安全,但是错误的配置也可能导致其出现安全问题

1、创建普通用户

useradd test
echo "test@123456" | passwd --stdin test

配置用户最小权限
chmod 644 /etc/passwd 
chmod 400 /etc/shadow 
chmod 644 /etc/group

2、禁止root用户直接登陆SSH

阻止用户使用root账户登录,请修改配置如下:
PermitRootLogin no
指定白名单用户:
AllowUsers admin
禁止某些用户
DenyUsers root

3、修改 SSH 的默认端口

4、禁用空密码

5、结束空闲的SSH会话

6、限制身份验证最大尝试次数

7、设置最后登录的日期和时间

8、检查用户特定的配置文件

用户可能会在无意间将自己的home目录或者其他某些文件设置成全局可写(比如777权限),在这种情况下,其他用户将有权修改用户特定的配置,并以其他用户的身份登录到服务器。可以通过使用StrictModes选项来检查home目录的配置。

StrictModes设置ssh在接收登录之前是否检查用户home目录和rhosts文件的权限和所有权,StrictModes为yes必需保证存放公钥的文件夹的拥有者与登陆用户名是相同的。

9、防止特权升级

SSH通过创建一个无特权的子进程来接收传入的连接,实现权限分离。用户身份验证后,SSH将使用该用户的权限创建另一个进程。

10、使用密钥进行身份验证

该功能并不一定在所有系统上都可用,但是使用SSH密钥身份验证有很多优点。密钥验证比人类可以轻松记住的任何密码都要强大的多,同时还提供了无需密码的身份验证,使用更加便利。

11、配置主机防火墙过滤传入的SSH连接

1、使用iptables过滤SSH连接

2、通过Firewalld过滤SSH连接

3、使用UFW过滤SSH连接

最后更新于

这有帮助吗?