bloquear tudo quanto é portas UDP, salvo alguma delas
intao fiz o seguinte
criei um arquivo chamado porta.lista com as portas que queria liberar
- Código: Selecionar todos
53
67
68
5060
7001
criei um script que le este arquivo e cria as regras
- Código: Selecionar todos
FILE_host="/etc/porta.lista"
for host in $(cat "$FILE_host");do
iptables -t mangle -D PREROUTING -p udp --dport $host -j MARK --set-mark 47
iptables -t mangle -D PREROUTING -p udp --sport $host -j MARK --set-mark 47
iptables -t mangle -A PREROUTING -p udp --dport $host -j MARK --set-mark 47
iptables -t mangle -A PREROUTING -p udp --sport $host -j MARK --set-mark 47
echo "Liberando Porta " $host " UDP"
done
iptables -t mangle -D PREROUTING -p UDP -m mark ! --mark 47 -j DROP
iptables -t mangle -D PREROUTING -p UDP -m mark ! --mark 47 -j LOG --log-level INFO --log-prefix "UDP BLOQUEADO: "
iptables -t mangle -D PREROUTING -p UDP -m mark --mark 47 -j LOG --log-level INFO --log-prefix "UDP LIBERADO: "
iptables -t mangle -A PREROUTING -p UDP -m mark ! --mark 47 -j DROP
iptables -t mangle -A PREROUTING -p UDP -m mark ! --mark 47 -j LOG --log-level INFO --log-prefix "UDP BLOQUEADO: "
iptables -t mangle -A PREROUTING -p UDP -m mark --mark 47 -j LOG --log-level INFO --log-prefix "UDP LIBERADO: "
resumindo
ele pega as portas do arquivo e marca como "47"
- Código: Selecionar todos
iptables -t mangle -A PREROUTING -p udp --dport $host -j MARK --set-mark 47
iptables -t mangle -A PREROUTING -p udp --sport $host -j MARK --set-mark 47
depois ele dropa tudo que nao for marcado como "47"
- Código: Selecionar todos
iptables -t mangle -A PREROUTING -p UDP -m mark ! --mark 47 -j DROP
depois disso os emules da vida ainda conectam, sem problemas, so que sem a UDP, so com TCP que ai tem o CONNLIMIT que da conta do recado sem problemas
e nao é que funcionou??
- Código: Selecionar todos
784 53097 MARK udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:53 MARK set 0x2f
676 86184 MARK udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spt:53 MARK set 0x2f
6 1980 MARK udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:67 MARK set 0x2f
4 1312 MARK udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spt:67 MARK set 0x2f
2 656 MARK udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:68 MARK set 0x2f
4 1324 MARK udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spt:68 MARK set 0x2f
0 0 MARK udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:161 MARK set 0x2f
0 0 MARK udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spt:161 MARK set 0x2f
128 25101 MARK udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:5060 MARK set 0x2f
50 26246 MARK udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spt:5060 MARK set 0x2f
0 0 MARK udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:7001 MARK set 0x2f
0 0 MARK udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spt:7001 MARK set 0x2f
3062 208K DROP udp -- * * 0.0.0.0/0 0.0.0.0/0 MARK match !0x2f
0 0 LOG udp -- * * 0.0.0.0/0 0.0.0.0/0 MARK match !0x2f LOG flags 0 level 6 prefix `UDP BLOQUEADO: '
1646 193K LOG udp -- * * 0.0.0.0/0 0.0.0.0/0 MARK match 0x2f LOG flags 0 level 6 prefix `UDP LIBERADO: '
PS:
Coloquei isso depois do DROP so pra ver se nao tava passando nada mesmo por ali, rs
iptables -t mangle -A PREROUTING -p UDP -m mark ! --mark 47 -j LOG --log-level INFO --log-prefix "UDP BLOQUEADO: "
Espero que isso ajude alguem por ai
abracos