serverti
(usa CentOS)
Enviado em 09/01/2014 - 10:38h
lejoso escreveu:
A segunda regra faz a marcação do pacote para ser lido pelas regras do ip rule list (fwmark)
CONNMARK -> Marca a Conexão (o valor é adicionado no conntrack -> conntrack -L)
MARK -> Marca os pacotes individualmente. Quando os pacotes saem do firewall, essa marca é "perdida".
Aquelas marcações das regras do FWMARK são as que são efetuadas pelo alvo MARK no iptables.
Resumindo
Primeira regra: Marca a conexão (todos pacotes relacionados a conexão) assim que entrar no firewall através da interface especificada.
Segunda regra: Marca os pacotes individualmente com o alvo MARK para serem validados nas regras do fwmark do ip rule list. Perceba que a condição para essa regra ser verdadeira é que a conexão deverá estar com determinada marca (-m connmark --mark 0x1)
Amigo a função funcionou corretamente... eu tive que adicionar mais algumas regras
192.168.5.1 -> ip do meu servidor
iptables -t mangle -A PREROUTING -s 192.168.5.1 -j ACCEPT
iptables -t mangle -A PREROUTING -d 192.168.5.1 -j ACCEPT
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 8080 -j LOG --log-prefix "PACOTES ETH1"
iptables -t nat -A PREROUTING -s 192.168.5.32 -p tcp --sport 8080 -j LOG --log-prefix "RETORNO"
iptables -t mangle -I PREROUTING -p tcp --dport 8080 -i eth1 -j CONNMARK --set-mark 0x3
iptables -t mangle -I PREROUTING -m connmark --mark 0x3 ! -i eth1 -j MARK --set-mark 0x3
iptables -t mangle -I PREROUTING -p tcp --dport 8080 -i eth0 -j CONNMARK --set-mark 0x1
iptables -t mangle -I PREROUTING -m connmark --mark 0x1 ! -i eth0 -j MARK --set-mark 0x1
iptables -t mangle -A PREROUTING -i eth3 -s 192.168.5.0/24 -j MARK --set-mark 4
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8080 -j DNAT --to-destination 192.168.5.32:8080
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 8080 -j DNAT --to-destination 192.168.5.32:8080
eth3 interface da minha rede
iptables -t nat -A POSTROUTING -o eth3 -j MASQUERADE
obrigado valeu