在一台Vpnserver上配置iptables,要求192.168.0.0内网不限制,外网只允许访问80,8080,3306,1194等端口,大家给出招!!
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
为了在您的VPN服务器上配置iptables以满足要求,即允许192.168.0.0/24内网间通信不受限制,并且外网仅能访问80、8080、3306和1194端口,请按照以下步骤操作:
首先,清空现有的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
确保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
允许外部访问指定端口(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
拒绝未明确允许的其他外部访问。
iptables -A INPUT -p tcp ! --dport 80,8080,3306 -j DROP
iptables -A INPUT -p udp ! --dport 1194 -j DROP
确保系统允许IP转发,这是实现内外网通信的基础。
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p
如果您需要从内网到外网的流量进行SNAT转换,可以添加如下规则:
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
这里eth0
应替换为连接公网的网络接口名称。
为了使这些规则在系统重启后仍然生效,您需要安装iptables-persistent(Debian/Ubuntu)或使用其他方法根据您的操作系统来保存规则。
apt-get install iptables-persistent
iptables-save > /etc/iptables/rules.v4
完成上述步骤后,您的iptables规则将按照需求配置完毕,实现了内网间的自由通信以及对外部仅开放特定端口的访问控制。请根据实际情况调整网络接口名称及具体命令参数。