接上一篇出站配置,这一篇是入站配置,因为出站配置的时候没有涉及入站配置,所以没什么问题(因为入站默认都是允许),如果要进行入站设置得话,有些点需要注意的:
当你已经设置出站策略DROP,此时入站策略还是ACCEPT,如果你想把ACCRPT改为DROP的话 ,就要注意一点,那就是必须把出站策略中所设置的IP也要加入进来,因为TCP是双向的如果你只给它发,不接收它的,那么也是连接不通的.所以一定要注意,其余配置和出站保持一致即可
出站配置请点击此处,必须看完这一篇,才知道入站该怎么设置,觉得有用请三连!!!
1. 停止并禁用Firewalld服务
如果当前使用的是Firewalld,可以先停止并禁用它,以便使用iptables进行配置:
sudo systemctl stop firewalld
sudo systemctl disable firewalld
2. 设置默认入站策略为DROP(我认为这个可以留到后面在配置)
将默认入站策略设置为DROP,拒绝所有未经允许的入站流量:
sudo iptables -P INPUT DROP
3. 允许本地回环接口流量
确保本地回环接口的流量不被阻止,因为许多应用程序依赖于此接口进行通信:
sudo iptables -A INPUT -i lo -j ACCEPT
4. 允许已建立的连接
允许已建立和相关的连接通过,以确保现有连接(例如SSH会话)不被中断:
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
5. 允许特定端口的入站流量
根据需要开放特定端口以允许入站流量。例如,开放SSH(端口22)、HTTP(端口80)和HTTPS(端口443):
# 允许SSH
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# 允许HTTP
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# 允许HTTPS
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
6. 允许特定IP地址的入站流量
如果需要允许特定IP地址的入站流量,可以添加如下规则:
# 允许来自192.168.1.100的所有入站流量
sudo iptables -A INPUT -s 192.168.1.100 -j ACCEPT
7. 保存iptables规则
保存配置以确保在系统重启后规则仍然有效。对于Debian/Ubuntu系统,可以使用iptables-persistent
包:
sudo apt-get install iptables-persistent
# 安装过程中,它会提示保存规则
8. 查看已设置的规则
可以使用以下命令查看当前的iptables规则:
sudo iptables -L -v
9. 示例规则配置
假设我们想允许HTTP、HTTPS、SSH流量,并允许来自特定IP地址的所有流量,同时拒绝其他所有流量。具体配置如下:
# 设置默认策略为DROP
sudo iptables -P INPUT DROP
# 允许本地回环接口流量
sudo iptables -A INPUT -i lo -j ACCEPT
# 允许已建立和相关的连接
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# 允许SSH
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# 允许HTTP
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# 允许HTTPS
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# 允许特定IP地址的所有入站流量
sudo iptables -A INPUT -s 192.168.1.100 -j ACCEPT
# 允许特定IP地址192.168.1.100通过端口22(SSH)
sudo iptables -A INPUT -p tcp -s 192.168.3.52 --dport 22 -j ACCEPT
# 允许特定IP地址192.168.1.100通过端口80(HTTP)
sudo iptables -A INPUT -p tcp -s 192.168.3.52 --dport 80 -j ACCEPT
10. 保存iptables规则
对于Debian/Ubuntu系统,可以使用 iptables-persistent
包来保存规则:
sudo apt-get install iptables-persistent
# 安装过程中,它会提示保存规则
注意:对于CentOS/Fedora系统,iptables-services
不再是官方的包,但可以将规则保存到文件中,并在启动时通过脚本或 systemd
服务重新加载它们。一种常见的做法是将规则保存到 /etc/sysconfig/iptables
(对于某些旧版本的CentOS)或 /etc/iptables/rules.v4
(对于较新的版本),并使用 iptables-restore
命令来加载它们。
然后,可以编写一个 systemd
服务来在启动时加载这些规则,或者将 iptables-restore
命令添加到某个现有的启动脚本中。
例如,将规则保存到 /etc/iptables/rules.v4
文件中:
sudo bash -c 'iptables-save > /etc/iptables/rules.v4'
注意事项
- 谨慎操作:在更改防火墙设置之前,请确保完全理解这些更改的影响,并在非生产环境中进行测试。
- 备份规则:在更改规则之前,最好先备份当前的iptables规则,以便在需要时可以恢复。
- 确保有替代访问方法:始终确保你有访问服务器的替代方法(如物理控制台、VNC、SSH密钥等),以防不小心锁定了自己。
通过以上步骤,你可以有效地管理服务器的入站流量,提升安全性。
如有错误请在评论区指出,觉得有用请关注点赞加收藏,谢谢!!!