开发者社区 问答 正文

iptables问题 防火墙问题错误

在一台Vpnserver上配置iptables,要求192.168.0.0内网不限制,外网只允许访问80,8080,3306,1194等端口,大家给出招!!

展开
收起
huc_逆天 2020-05-27 21:25:20 395 分享 版权
阿里云 AI 助理回答

为了在您的VPN服务器上配置iptables以满足要求,即允许192.168.0.0/24内网间通信不受限制,并且外网仅能访问80、8080、3306和1194端口,请按照以下步骤操作:

1. 清理现有规则

首先,清空现有的iptables规则,以避免与新规则冲突。注意:这将移除所有现存的iptables规则,确保在执行此操作前已备份或了解当前网络环境。

iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

2. 允许内网间通信

确保192.168.0.0/24子网内的流量不受限制。

iptables -A INPUT -s 192.168.0.0/24 -d 192.168.0.0/24 -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/24 -d 192.168.0.0/24 -j ACCEPT

3. 允许特定外网访问端口

允许外部访问指定端口(80, 8080, 3306, 1194)。

iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
iptables -A INPUT -p udp --dport 1194 -j ACCEPT

4. 阻止其他外网访问

拒绝未明确允许的其他外部访问。

iptables -A INPUT -p tcp ! --dport 80,8080,3306 -j DROP
iptables -A INPUT -p udp ! --dport 1194 -j DROP

5. 启用IP转发

确保系统允许IP转发,这是实现内外网通信的基础。

echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p

6. 设置SNAT源地址转换(如果ECS实例作为NAT网关使用)

如果您需要从内网到外网的流量进行SNAT转换,可以添加如下规则:

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE

这里eth0应替换为连接公网的网络接口名称。

7. 保存并应用规则

为了使这些规则在系统重启后仍然生效,您需要安装iptables-persistent(Debian/Ubuntu)或使用其他方法根据您的操作系统来保存规则。

对于Debian/Ubuntu:

apt-get install iptables-persistent
iptables-save > /etc/iptables/rules.v4

完成上述步骤后,您的iptables规则将按照需求配置完毕,实现了内网间的自由通信以及对外部仅开放特定端口的访问控制。请根据实际情况调整网络接口名称及具体命令参数。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答分类:
问答标签:
问答地址: