lejoso
(usa Debian)
Enviado em 09/01/2015 - 18:47h
Boa Tarde, seguem respostas:
1° Dúvida que preciso tirar:
- Para utilizar o connmark em meu script de firewall, preciso ter a ferramenta conntrack-tools? É interessante ter? Necessário? Pelo que pesquisei parece ter uma sintaxe conntrack -L onde visualizo as marcações da conexão, as coisas que são feitas pelo connmark, etc...
R: Para utilizar o connmark não é necessário a ferramenta conntrack-tools. Porém é interessante essa ferramenta, principamente listagem das conexões e limpeza da tabela do conntrack.
O conntrack é uma tabela alocada em memória que "guarda" todas as informações das conexões existentes. O connmark ou mark é uma marcação que é realizada através do iptables. A diferença é que o mark marca cada pacote individualmente, enquando o connmark marca uma conexão como um todo.
############################################################################################################
2° Necessidade da aplicação:
- Utilizei o mark para marcar os pacotes que vem de um IPFORNECEDOR nas portas 1,2,3,4 para nosso LINK1 na TABELA1 (caso funcionasse, aplicaria a mesma regra com negação das portas 1,2,3,4 para aplicar todas as outras portas para navegar pelo LINK2 na TABELA2)
Resultado: No comando "ip rule show" mostra o fwmark e a prio adicionada e cada vez que executo meu firewall, adiciona ali novamente... Isso também é preocupante pois caso o link caia, eu preciso direcionar para o outro link e então desmarcar aqueles pacotes... Para cada vez que executo o fw, precisei desmarcar x vezes.
R: No seu script de firewall primeiro tem que limpar as tabelas tanto do iptables como no ip rule para que não haja as duplicações das regras.
Sempre comece o script limpando as tabelas:
iptables -F
iptables -t nat -F
iptables -t raw -F
iptables -t mangle -F
Também limpe as regras que você coloca no ip rule. Toda regra que cadatsrar, você deve fazer a mesma regra acima para remover antes.
exemplo:
ip rule del fwmark 'marcação' lookup 'table_x'
ip rule add fwmark 'marcação' lookup 'table_x'
Porém quando o link que está marcado para tal conexão sair por ele, caso o mesmo esteja fora, a conexão não funcionará e ficará morta, já que o iptables e a tabela de roteamento não checam se os link de saída está no ar.
Trazendo pro mundo real, seria como você dizer que pra chegar a tal lugar, a pessoa deve ir pela estrada X. Porém caso essa estrada X esteja bloqueada, você não terá como seguir. A pessoa que te passou a informação apenas sabe o caminho pra onde você deve ir, mas ele não sabe que a estrada está bloqueada.
Nesse caso você deve usar um script para fazer estes testes de link, e os mesmos devem remover ou adicionar as regras de acordo com a funcionalidae do link.
###############################################################################################################
E... Pelo que andei lendo, o mark também não irá servir pois ele não marca a saída do pacote.
E a implantação do mark seria para que eu pudesse remover a rota estática e trafegar os pacotes sem ela. Não consegui tráfego dos pacotes e não tive nenhum erro de sintaxe, aparentemente. Foi onde comecei a pesquisar e segundo nosso amigo lejoso, o mark deixaria de desejar na hora do retorno, podendo ser necessário utilizar o CONNMARK.
Resumidamente... A dúvida n° 2...
Com o connmark eu consigo trafegar os pacotes que vem do meu IPFORNECEDOR nas portas 1,2,3,4 para o meu LINK1 sem utilizar uma rota estática? Pois preciso ter este controle sem a rota... É possível? Caso não seja possível, alguma idéia de como realizar este esquema?
R: Tanto o mark como connmark não trabalham com rota. Eles apenas fazem marcações que em conjunto com o ip route podem dar alternativas de rotas. Mas na essencia, quem determina por onde o pacote sai não é o iptables, e sim a tabela de roteamento.
Pra fazer do jeito dinâmico, pode usar um script que checa e adiciona/remove marcações quando um link está fora ou volta pro ar, ou você pode dar uma pesquisada sobre routing daemons, que são serviços que trabalham com protocolos de roteamento dinâmicos, e que trabalahm com checagens, custo de links, etc.
Att,
Lejoso