SSH的相关安全措施

一、只允许指定网段连接ssh端口

这里提供3种方法:

1. 使用sshd配置,/etc/ssh/sshd_config文件中添加AllowUsers字段;

2. 使用linux系统默认启用的TCP Wrappers(libwrap)服务,通过编辑系统文件/etc/hosts.allow和/etc/hosts.deny;

3. 使用iptables规则。对于云环境来说,一台主机上会有很多iptables规则,不方便常看,并且也不方便维护。

第一种方法: 编辑 /etc/ssh/sshd_config 文件,添加如下一行
AllowUsers user1@192.168.1.100 user2@192.168.1.101

这意味着只允许来自 192.168.1.100192.168.1.101 的用户分别以 user1user2 登录。

或者,使用 IP 限制不区分用户:

AllowUsers *@192.168.1.100 *@192.168.1.101
第二种方法,利用多数linux系统默认启用的TCP Wrappers(libwrap)服务,通过编辑系统文件/etc/hosts.allow和/etc/hosts.deny。

1. 打开 /etc/hosts.allow 文件进行编辑

sshd: 192.168.1.0/24 192.168.2.0/24

这行的意思是,允许 192.168.1.0/24192.168.2.0/24 网络段的所有主机通过 SSH 服务连接到本机。保存并退出编辑器。

2. 打开 /etc/hosts.deny 文件进行编辑

sshd: ALL

这行的意思是,默认拒绝所有主机通过 SSH 服务连接到本机。保存并退出编辑器。

配置顺序/etc/hosts.allow 的规则会覆盖 /etc/hosts.deny 中的规则。所以如果 /etc/hosts.allow 中允许了某些主机连接,即使 /etc/hosts.deny 中拒绝了 ALL,这些主机也能连接。

你可以为其他服务(如 sshd)使用类似的方法进行访问控制。如果要控制其他服务的访问,确保服务名称正确。例如,对于 ssh,你使用的是 sshd 服务名称。

配置完成后不需要重启任何程序,自动生效。

OpenEuler等操作系统没有默认启用 TCP Wrappers(libwrap)服务。TCP Wrappers 依赖于这两个文件来控制服务的访问,因此如果这些文件不存在,系统就不会使用它们来进行访问控制。需要手动启用 TCP Wrappers。

第三种方法:使用iptables规则来控制 SSH 等服务的访问:
# 允许 192.168.1.0/24 和 192.168.2.0/24 访问 SSH(端口 22)
sudo iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp -s 192.168.2.0/24 --dport 22 -j ACCEPT

# 默认拒绝所有其他 IP 地址访问 SSH
sudo iptables -A INPUT -p tcp --dport 22 -j REJECT

# 保存配置(确保重启后生效)
sudo service iptables save

二、延迟登录

通过 PAM(Pluggable Authentication Modules),可以增加登录延迟,防范暴力破解。编辑 /etc/pam.d/sshd 文件,添加如下内容:

# PAM configuration for the Secure Shell service

# 在认证失败时增加延迟5s
auth required pam_faildelay.so delay=5000000 
# 在认证成功后执行 sleep 10,即延迟 10 秒 
account required pam_exec.so /bin/sleep 10

三、多次失败尝试后暂时封禁 IP

使用 fail2ban 提高登录安全,配置 fail2ban,在多次失败尝试后暂时封禁 IP。首先需要安装 fail2ban服务:

sudo apt install fail2ban

然后创建自定义配置文件:

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

编辑 jail.local,启用 sshd 规则:

[sshd]
enabled = true
maxretry = 3
bantime = 10m
findtime = 10m

最后启动该服务:

sudo systemctl start fail2ban
sudo systemctl enable fail2ban

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值