温馨提示×

CentOS SSH如何限制用户访问

小樊
37
2025-02-20 15:57:17
栏目: 智能运维
Centos服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在CentOS系统中,可以通过配置SSH服务来限制用户访问。以下是一些常见的方法:

1. 使用sshd_config文件

编辑/etc/ssh/sshd_config文件,添加或修改以下配置项:

限制特定用户登录

AllowUsers user1 user2 user3

这会限制只有user1, user2, 和 user3可以登录。

限制特定IP地址访问

AllowUsers user1@192.168.1.100 user2@192.168.1.101

这会限制user1只能从192.168.1.100登录,user2只能从192.168.1.101登录。

禁止root用户登录

PermitRootLogin no

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

限制SSH连接速率

MaxAuthTries 3

这会限制每个用户在一定时间内尝试登录的次数。

2. 使用PAM(Pluggable Authentication Modules)

PAM可以提供更细粒度的访问控制。编辑/etc/pam.d/sshd文件,添加以下行:

auth required pam_tally2.so onerr=fail deny=3 unlock_time=600

这会限制用户在一定时间内尝试登录的次数,并在达到限制后锁定账户一段时间。

3. 使用防火墙

使用firewalldiptables来限制SSH访问。

使用firewalld

firewall-cmd --permanent --add-service=ssh
firewall-cmd --permanent --zone=trusted --add-source=192.168.1.100
firewall-cmd --reload

这会允许来自192.168.1.100的SSH连接。

使用iptables

iptables -A INPUT -p tcp --dport 22 -s 192.168.1.100 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP

这会允许来自192.168.1.100的SSH连接,并拒绝其他所有IP地址的SSH连接。

4. 使用SELinux

如果启用了SELinux,可以通过配置SELinux策略来进一步限制SSH访问。

setsebool -P ssh_sysadm_login on
setsebool -P ssh_keysign on

这会允许系统管理员通过SSH登录,并允许密钥认证。

5. 使用Fail2Ban

Fail2Ban可以监控SSH登录日志,并在检测到多次失败尝试后封禁IP地址。

安装Fail2Ban:

yum install fail2ban

配置Fail2Ban:

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

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

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

启动Fail2Ban服务:

systemctl start fail2ban
systemctl enable fail2ban

通过以上方法,你可以有效地限制CentOS系统中的SSH用户访问。根据你的具体需求选择合适的方法进行配置。

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读:如何限制CentOS SSH访问IP

0