我已经编写了一个脚本来设置 iptables 防火墙,但它导致本地网络应用程序不稳定。当客户端和服务器连接时,防火墙会暂时断开客户端和服务器之间的连接。
我的网络 (192.168.xy) :
|Modem-1|----|Modem-2|
---------||------------||
|LoadBalance 路由器|
----------||-----------------
|防火墙和 DHCP 服务器|
调制解调器 1 和 2 是一体式的(WiFi 路由器也是如此)
调制解调器 1 本地:192.168.1.0
调制解调器 2 本地:192.168.2.0
负载平衡:192.168.3.0
防火墙网络 192.168.0.0
我的防火墙服务器不是 DNS 服务器,在网络中我们将 Windows AD 作为 DNS 服务器。
#! /bin/bash
iniciar() {
# Limpando politicas e regras
iptables -X
iptables -F
iptables -Z
# Bloqueando tudo
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
# Forward - WAN to LAN
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# Forward - LAN to WAN
iptables -A FORWARD -i eno2 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -i eno2 -p tcp --dport 443 -j ACCEPT
iptables -A FORWARD -i eno2 -p tcp --dport 587 -j ACCEPT
iptables -A FORWARD -i eno2 -p tcp --dport 25 -j ACCEPT
iptables -A FORWARD -i eno2 -p tcp --dport 110 -j ACCEPT
iptables -A FORWARD -i eno2 -p tcp --dport 53 -j ACCEPT
iptables -A FORWARD -i eno2 -p udp --dport 53 -j ACCEPT
iptables -A FORWARD -i eno2 -p icmp -j ACCEPT
iptables -A FORWARD -p udp -s 192.168.0.0/24 --dport 53 -j ACCEPT
iptables -A FORWARD -i eno1 -p udp --dport 53 -j ACCEPT
iptables -A FORWARD -p udp -s 192.168.3.0/24 --dport 53 -j ACCEPT
# Input
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
# Output
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -A OUTPUT -p udp --dport 22 -j ACCEPT
iptables -A OUTPUT -p icmp -j ACCEPT
iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 4000 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 81 -j ACCEPT
# DVR 1 Portas 80, 8000 e 554
iptables -t nat -A PREROUTING -p TCP -d 192.168.3.0/24 --dport 80 -i eno1 -j DNAT --to 192.168.0.251:80
iptables -A FORWARD -p TCP -d 192.168.0.251 --dport 80 -j ACCEPT
iptables -t nat -A PREROUTING -p TCP -d 192.168.3.0/24 --dport 8000 -i eno1 -j DNAT --to 192.168.0.251:8000
iptables -A FORWARD -p TCP -d 192.168.0.251 --dport 8000 -j ACCEPT
iptables -t nat -A PREROUTING -p TCP -d 192.168.3.0/24 --dport 554 -i eno1 -j DNAT --to 192.168.0.251:554
iptables -A FORWARD -p TCP -d 192.168.0.251 --dport 554 -j ACCEPT
# DVR 2 8080,8001 e 1024
iptables -t nat -A PREROUTING -p TCP -d 192.168.3.0/24 --dport 8080 -i eno1 -j DNAT --to 192.168.0.254:8080
iptables -A FORWARD -p TCP -d 192.168.0.254 --dport 8080 -j ACCEPT
iptables -t nat -A PREROUTING -p TCP -d 192.168.3.0/24 --dport 8001 -i eno1 -j DNAT --to 192.168.0.254:8001
iptables -A FORWARD -p TCP -d 192.168.0.254 --dport 8001 -j ACCEPT
iptables -t nat -A PREROUTING -p TCP -d 192.168.3.0/24 --dport 1024 -i eno1 -j DNAT --to 192.168.0.254:1024
iptables -A FORWARD -p TCP -d 192.168.0.254 --dport 1024 -j ACCEPT
#iptables -t nat -A PREROUTING -p TCP -d 0/0 --dport 53 -i eno1 -j DNAT --to 0/0
#iptables -A FORWARD -p TCP -d 0/0 --dport 53 -j ACCEPT
#iptables -t nat -A PREROUTING -p UDP -d 0/0 --dport -i eno1 -j DNAT --to 0/0
#iptables -A FORWARD -p -d 0/0 --dport 53 -j ACCPET
# Acesso Remoto
iptables -t nat -A PREROUTING -p TCP -d 192.168.3.0/24 --dport 3389 -i eno1 -j DNAT --to 192.168.0.13:3389
iptables -A FORWARD -p TCP -d 192.168.0.13 --dport 3389 -j ACCEPT
}
parar(){
iptables -X
iptables -F
iptables -Z
}
case "$1" in
"start") iniciar;;
"restart") parar; iniciar;;
*) echo "Use start ou restart"
esac
编辑:我和我的老师讨论了这个问题,他说不稳定可能是由硬件不兼容引起的,我需要换一个操作系统(不是 Linux 发行版,而是另一个操作系统)来解决这个问题
编辑2:导致错误的另一件事,可能是我修复IP的时间太长了,我等了30分钟,之后服务器检查IP是否被使用,我解决了基于FreeBSD操作系统的问题