请用Iptables写出只允许10.1.8.179 访问本服务器的22端口 ?
参考答案:
要使用iptables
来允许特定IP地址(例如10.1.8.179)访问服务器的22端口(通常用于SSH),你可以使用以下命令:
sudo iptables -A INPUT -p tcp -s 10.1.8.179 --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j DROP
解释:
- 第一条命令添加了一个规则到
INPUT
链,该规则允许来自IP地址10.1.8.179的TCP流量通过22端口。-p tcp
指定了协议类型,-s 10.1.8.179
指定了源IP地址,--dport 22
指定了目标端口,-j ACCEPT
表示接受该流量。 - 第二条命令添加了一个规则,用于拒绝所有其他尝试访问22端口的TCP流量。这确保了只有10.1.8.179能够访问该端口。
请注意,这些规则是临时的,并且会在系统重启后丢失。如果你希望规则在重启后仍然有效,你需要将它们保存到防火墙的配置文件中,这通常涉及到使用iptables-save
和iptables-restore
命令,或者根据你的Linux发行版使用相应的服务(如netfilter-persistent
或firewalld
)。
此外,你还应该确保iptables
服务正在运行,并且已经设置为在系统启动时自动启动。你可以使用systemctl
命令来管理该服务(例如sudo systemctl start iptables
启动服务,sudo systemctl enable iptables
设置为开机启动)。
最后,请注意,在配置防火墙规则时要小心,因为错误的规则可能会导致你无法远程访问服务器。在添加新规则之前,最好先备份当前的防火墙配置。