方法一:只允许或限制指定用户登录(黑白名单)
1. 只允许指定用户进行登录(白名单)
如果希望仅允许特定用户或IP地址登录系统,可以通过设置白名单来实现。例如,我们可以允许IP地址为 192.168.1.1
的用户通过SSH登录 root
帐户。
步骤:
- 打开
/etc/ssh/sshd_config
配置文件:vi /etc/ssh/sshd_config
- 在配置文件中添加
AllowUsers
选项,指定允许登录的用户和IP地址:AllowUsers root@192.168.1.1
- 保存文件并退出编辑器后,重启SSH服务以应用配置:
systemctl restart sshd
这样,只有 IP 地址为 192.168.1.1
的用户能够登录系统的 root
账户,其他 IP 将无法登录。
2. 只拒绝指定用户进行登录(黑名单)
通过设置黑名单,可以拒绝某些用户或IP地址登录系统。例如,假设要禁止 IP 地址为 192.168.1.10
的用户登录 root
帐户。
步骤:
- 打开
/etc/ssh/sshd_config
配置文件:vi /etc/ssh/sshd_config
- 在配置文件中添加
DenyUsers
选项,指定需要拒绝登录的用户和IP地址:DenyUsers root@192.168.1.10
- 保存文件并退出编辑器后,重启SSH服务:
systemctl restart sshd
此设置会拒绝来自 IP 地址 192.168.1.10
的用户登录 root
账户,但其他用户依然可以正常登录。
方法二:允许指定IP段登录或禁止指定IP段登录
1. 允许特定IP段登录(白名单)
如果需要允许某一特定IP段(如 192.168.200.0/24
)的所有IP进行SSH登录,可以通过修改 hosts.allow
文件实现。
步骤:
- 将允许的IP段写入
/etc/hosts.allow
文件:echo "sshd:192.168.200.0/24:allow" >> /etc/hosts.allow
- 此操作将允许
192.168.200.0/24
网络段的所有IP地址通过SSH连接到系统。
2. 禁止所有其他IP段登录(黑名单)
为了增强安全性,可以设置拒绝所有其他IP段登录SSH。
步骤:
- 将所有IP段的拒绝规则写入
/etc/hosts.deny
文件:echo "sshd:all:deny" >> /etc/hosts.deny
- 这样设置后,只有在
hosts.allow
中明确允许的IP段才能登录,其他所有IP地址将被拒绝。
3. 只允许特定IP段登录,禁止所有其他IP段登录
通过 hosts.allow
和 hosts.deny
两个文件的组合,可以实现更精确的控制。例如,我们只允许 192.168.200.0/24
网络段的IP登录,其他所有IP都会被拒绝。
步骤:
- 在
/etc/hosts.allow
文件中允许指定IP段登录:echo "sshd:192.168.200.0/24:allow" >> /etc/hosts.allow
- 在
/etc/hosts.deny
文件中拒绝所有其他IP段登录:echo "sshd:all:deny" >> /etc/hosts.deny
- 保存并退出文件后,服务器将仅允许
192.168.200.0/24
网络段的IP通过SSH登录,其他IP将被拒绝。
方法三:通过防火墙限制或允许某个IP或IP段登录
使用防火墙(如 firewalld
)来限制或允许特定IP或IP段进行SSH登录,是另一种有效的方式。可以通过设置防火墙规则,控制哪些IP可以访问服务器。
1. 限制或允许单个IP登录
步骤:
- 允许
192.168.100.10
这个IP通过SSH登录:firewall-cmd --permanent --add-rich-rule 'rule family=ipv4 source address=192.168.100.10 service name=ssh accept'
- 拒绝
192.168.100.10
这个IP通过SSH登录:firewall-cmd --permanent --add-rich-rule 'rule family=ipv4 source address=192.168.100.10 service name=ssh reject'
- 重载防火墙以应用规则:
firewall-cmd --reload
2. 限制或允许IP段登录
步骤:
- 允许
192.168.200.0/24
这个IP段通过SSH登录:firewall-cmd --permanent --add-rich-rule 'rule family=ipv4 source address=192.168.200.0/24 service name=ssh accept'
- 拒绝
192.168.200.0/24
这个IP段通过SSH登录:firewall-cmd --permanent --add-rich-rule 'rule family=ipv4 source address=192.168.200.0/24 service name=ssh reject'
- 重载防火墙配置:
firewall-cmd --reload
通过上述步骤,您可以灵活地使用防火墙来限制或允许特定IP地址或IP段进行SSH连接。
总结
通过上述三种方法,您可以有效地控制哪些用户或IP地址可以访问您的系统。这些方法包括通过SSH配置文件设置白名单或黑名单、通过 hosts.allow
和 hosts.deny
文件管理IP段、以及通过防火墙规则进一步限制访问。根据您的需求,选择适合的方案以提高服务器的安全性。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...