在Ubuntu系统中,可以通过配置SSH来限制用户的访问。以下是一些常见的方法:
1. 使用sshd_config
文件
编辑/etc/ssh/sshd_config
文件,可以设置一些全局或特定用户的访问规则。
全局设置
-
限制登录时间:
Match Time * AllowUsers user1 user2
这会限制只有
user1
和user2
可以在任何时间登录。 -
限制IP地址:
Match Address 192.168.1.100 AllowUsers user1 user2
这会限制只有来自
192.168.1.100
的IP地址的用户可以登录。 -
限制用户登录:
DenyUsers user3 user4
这会拒绝
user3
和user4
的登录请求。
特定用户设置
- 特定用户的IP地址限制:
Match User user1 AllowUsers user1@192.168.1.100
这会限制只有来自192.168.1.100
的IP地址的用户user1
可以登录。
2. 使用PAM(Pluggable Authentication Modules)
PAM可以提供更细粒度的访问控制。
安装PAM模块
sudo apt-get install libpam-pwquality
配置PAM
编辑/etc/pam.d/sshd
文件,添加以下行:
password requisite pam_pwquality.so retry=3 minlen=8 difok=4
这会要求密码至少8个字符,至少有4个不同的字符,并且最多允许3次重试。
3. 使用防火墙
可以使用ufw
或iptables
来限制SSH访问。
使用ufw
sudo ufw allow from 192.168.1.100 to any port 22 sudo ufw enable
这会允许来自192.168.1.100
的IP地址访问SSH端口22。
使用iptables
sudo iptables -A INPUT -p tcp --dport 22 -s 192.168.1.100 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 22 -j DROP
这会允许来自192.168.1.100
的IP地址访问SSH端口22,并拒绝其他所有IP地址的访问。
4. 使用Fail2Ban
Fail2Ban可以监控日志文件并自动封禁恶意IP地址。
安装Fail2Ban
sudo apt-get install fail2ban
配置Fail2Ban
编辑/etc/fail2ban/jail.local
文件,添加以下内容:
[sshd] enabled = true port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 3 bantime = 600
这会监控/var/log/auth.log
文件,如果某个IP地址在3次尝试后仍然失败,将会被封禁600秒。
通过以上方法,你可以有效地限制Ubuntu系统中的SSH访问,提高系统的安全性。