在Linux系统中,限制IP地址远程登录是一种常见的安全措施,这可以通过配置防火墙规则、修改SSH服务设置或使用其他安全工具来实现,以下是一些方法来限制哪些IP地址可以远程登录到你的Linux服务器。
配置防火墙规则
大多数Linux发行版都带有预安装的防火墙软件,如iptables或者firewalld(较新的系统),通过设置防火墙规则,你可以允许或拒绝来自特定IP地址的SSH连接尝试。
使用iptables
1、打开终端。
2、输入 sudo iptables -L
查看当前规则。
3、添加一条新规则以允许特定的IP地址访问SSH端口(默认是22):
sudo iptables -A INPUT -p tcp --dport 22 -s [IP_ADDRESS] -j ACCEPT
[IP_ADDRESS]
替换为你想要允许的IP地址。
4、保存iptables规则:
sudo service iptables save
5、重启iptables服务使规则生效:
sudo service iptables restart
使用firewalld
1、打开终端。
2、启动firewalld服务(如果尚未运行):
sudo systemctl start firewalld
3、添加一条规则允许特定的IP地址访问SSH:
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="[IP_ADDRESS]" port protocol="tcp" port="22" accept'
[IP_ADDRESS]
替换为你想要允许的IP地址。
4、重新加载firewalld配置:
sudo firewall-cmd --reload
修改SSH服务设置
SSH守护进程(sshd)允许通过配置文件 /etc/ssh/sshd_config
来限制远程登录的IP地址。
1、使用文本编辑器打开SSH配置文件:
sudo nano /etc/ssh/sshd_config
2、找到 AllowUsers
或 AllowGroups
指令并添加你想要允许的用户或组。
AllowUsers user1@[IP_ADDRESS] user2@localhost
这里 user1
只能从指定的 [IP_ADDRESS]
登录,而 user2
只能从本地登录。
3、保存文件并退出编辑器。
4、重启SSH服务使更改生效:
sudo systemctl restart sshd
使用fail2ban保护SSH
fail2ban是一个自动交互式防御工具,可以防止暴力破解SSH登录尝试,它通过分析日志文件并设置防火墙规则来阻止非法登录尝试的IP地址。
1、安装fail2ban(如果尚未安装):
sudo apt-get install fail2ban
(Debian/Ubuntu) 或 sudo yum install fail2ban
(RHEL/CentOS)
2、配置fail2ban来监控SSH登录尝试并设置相应的动作,通常在 /etc/fail2ban/jail.local
文件中。
3、重启fail2ban服务:
sudo systemctl restart fail2ban
4、fail2ban将自动开始保护你的SSH服务,并将可疑的IP地址添加到防火墙规则中。
相关问题与解答
Q1: 我设置了防火墙规则,但是它们似乎没有生效,这是怎么回事?
A1: 请确保您已正确保存了防火墙规则,并且已重新启动防火墙服务,另外检查是否有其他规则覆盖了您的设置,或者是否有其他网络配置问题。
Q2: fail2ban是否会影响合法的用户尝试登录我的服务器?
A2: fail2ban主要针对的是连续的登录失败尝试,通常是由自动化脚本或攻击者进行的,对于合法用户,只要他们输入正确的密码,就不会受到fail2ban的影响,不过,建议适当调整fail2ban的默认设置,以避免误封合法用户。
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/292227.html