在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. 使用防火墙
使用firewalld
或iptables
来限制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用户访问。根据你的具体需求选择合适的方法进行配置。