温馨提示×

怎样在CentOS上限制SSH登录

小樊
54
2025-06-26 08:42:18
栏目: 智能运维

在CentOS上限制SSH登录可以通过多种方法实现,以下是一些常见的方法:

1. 使用 sshd_config 文件

编辑 /etc/ssh/sshd_config 文件来配置SSH服务器的行为。

1.1 限制特定IP地址访问

sshd_config 文件中添加或修改以下行:

AllowUsers user1@192.168.1.1 user2@192.168.1.2

这会限制 user1 只能从 192.168.1.1 访问,user2 只能从 192.168.1.2 访问。

1.2 限制特定用户访问

sshd_config 文件中添加或修改以下行:

AllowUsers user1 user2

这会限制只有 user1user2 可以登录。

1.3 禁止root用户远程登录

sshd_config 文件中添加或修改以下行:

PermitRootLogin no

这会禁止root用户通过SSH远程登录。

2. 使用防火墙限制IP地址

你可以使用 firewalldiptables 来限制特定IP地址的访问。

2.1 使用 firewalld

安装并启用 firewalld

sudo yum install firewalld
sudo systemctl start firewalld
sudo systemctl enable firewalld

然后添加规则来允许特定IP地址访问SSH端口(默认是22):

sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.1" port protocol="tcp" port="22" accept'
sudo firewall-cmd --reload

2.2 使用 iptables

安装 iptables

sudo yum install iptables-services
sudo systemctl start iptables
sudo systemctl enable iptables

然后添加规则来允许特定IP地址访问SSH端口:

sudo iptables -A INPUT -p tcp --dport 22 -s 192.168.1.1 -j ACCEPT
sudo service iptables save

3. 使用PAM模块

你可以使用PAM(Pluggable Authentication Modules)来进一步限制SSH登录。

3.1 安装 pam_access

安装 pam_access

sudo yum install pam_access

3.2 配置 pam_access

编辑 /etc/security/access.conf 文件,添加以下行来限制特定IP地址或用户:

- : ALL EXCEPT 192.168.1.1 : ALL

这会拒绝所有IP地址,除了 192.168.1.1

编辑 /etc/pam.d/sshd 文件,添加以下行来启用 pam_access

account required pam_access.so

4. 使用Fail2Ban

Fail2Ban可以监控日志文件并根据规则禁止恶意IP地址。

4.1 安装Fail2Ban

安装Fail2Ban:

sudo yum install fail2ban

4.2 配置Fail2Ban

编辑 /etc/fail2ban/jail.local 文件,添加以下内容来配置Fail2Ban:

[sshd]
enabled = true
port = sshd
filter = sshd
logpath = /var/log/secure
maxretry = 3
bantime = 600

然后启动Fail2Ban服务:

sudo systemctl start fail2ban
sudo systemctl enable fail2ban

通过以上方法,你可以有效地限制SSH登录,提高系统的安全性。

0