Bom, a estrutura dos comandos do iptables é mais ou menos assim:
iptables [-t tabela] [comando] [chain] [opções] [alvo]
Exemplo de regra:
# iptables -t filter -A FORWARD -d 127.0.0.1 -j DROP
Explicando:
* "-t filter" - Aqui vão as tabelas... filter, nat e mangle.
* "-A" - Aqui vão os comandos, vou listá-los abaixo. É de fácil entendimento:
-L - Lista as regras de uma chain;
-D - Deleta uma regra de uma chain;
-A - Adiciona uma regra no fim da chain;
-I - Adiciona uma regra em lugar específico da chain;
-R - Troca uma regra por outra;
-P - Define a regra padrão para se o pacote não bater com todas as outras regras;
-F - É o apocalipse das regras. Limpa TUDO da chain;
-N - Cria uma chain;
-E - Muda o nome de uma chain;
-X - Deleta uma chain;
* "FORWARD" - Aqui vão as chains... as chains são case-sensitive, ou seja, se o nome for MAIÚSCULO, tem de ser MAIÚSCULO. Ou seja, tem diferença entre input e INPUT.
* "-d 127.0.0.1" - Bom, aqui podem vir uma série de opções. Essa é a parte responsável pelo filtro do iptables efetivamente, é aqui onde se afunila a boca no túnel. Lista de opções abaixo, vou listar as mais conhecidinhas, senão é muita informação:
-p - Especifica o protocolo, que nem tcp ou udp. Pode-se usar um número para uma referência ao arquivo /etc/protocol;
-i - Especifica a interface de entrada. Pode ser, por exemplo, a(s) placa(s) de rede do computador;
-o - A mesma coisa que a de cima, mas é a saída;
-s - Endereço, em forma de ip ou nome de rede, de origem (source) do pacote, tal como 192.168.1.1 ou google.com.br;
-d - A mesma coisa que a de cima, mas é o destino;
-j - Especifica o alvo do pacote;
--dport - Especifica uma porta de destino;
--sport - Especifica uma porta de origem;
! - Usado na sintaxe do comando para dizer diferente. Ou seja, -d ! 192.168.1.1, quer dizer, tudo que for diferente de 192.168.1.1;
--to - Usado pelo comando DNAT e SNAT para especificar endereços de alvos dos pacotes. Não esquentem a cabeça, veremos mais a frente;
* "DROP" - Aqui é o alvo, ou a ação que sera tomada em relação ao pacote identificado pela regra. Ou seja, o pacote bateu com a descrição da regra? É aqui que se define o que fazer com ele. Mais ou menos que nem a polícia, que se pega um cara com cara de suspeito na rua, decide se leva em cana ou libera ele.
Os alvos podem ser:
* ACCEPT - Aceita o pacote e passa para próxima etapa;
* DROP - Derruba o pacote, sem dar resposta ao servidor que o originou;
* LOG - Loga o pacote que bater com a regra. MUITO útil para administração de servidores;
* REJECT - A mesma coisa que o drop, mas ele retorna uma mensagem avisando que o pacote foi derrubado;
* SNAT - Altera o endereço de origem do pacote;
* MASQUERADE - Tipo especial de SNAT, feito para ser utilizado para redirecionar tráfego interno para a internet, quando se tem, por exemplo, um ip dinâmico. É uma facilitação para roteamento de internet em relação ao SNAT;
* DNAT - Altera o endereço de destino do pacote;
* RETURN - Retorna ao processamento da chain anterior;
* REDIRECT - Redireciona algo para outra porta. Extremamente útil;
* QUEUE - Faz um programa ser responsável por tratar o fluxo que chegar nele;
* TOS - Prioriza a entrada ou saída de pacotes. As opções do TOS são:
a) 16 ou 0x10 - MAIOR PRIORIDADE
b) 8 ou 0x08 - MAIOR PROCESSAMENTO
c) 4 ou 0x04 - MAIOR CONFIANÇA
d) 2 ou 0x02 - MENOR CUSTO
e) 0 ou 0x00 - NORMAL
Além disso, ainda existem certos módulos que são utilizados, também, para filtrar ou identificar certos pacotes:
* state - Estado da conexão NEW, ESTABLISHED, RELATED etc;
* limit - Especifica um certo limit para certa ação;
* mac - Identificar o mac da conexão;
* multiport - Até 15 portas no comando --dport e --sport. Útil, mas nem tanto;
* string - Olha DENTRO do pacote afim de identificar o seu conteúdo;
* owner - Verifica quem criou o pacote.
Exemplos de comando:
# iptables -A INPUT -s 200.200.200.1 -i eth0 -j REJECT
Rejeita pacotes que entram no computador local e que não são roteados, vindos do endereço 200.200.200.1, vindo da interface eth0, devolvendo uma mensagem a origem.
# iptables -t nat -A PREROUTING -s 200.200.217.40 -i eth0 -j DNAT --to 192.168.1.2
Modifica o endereço de destino para o que vier de 200.200.217.40, vindo da interface eth0, mudando para o endereço 192.168.1.2.
# iptables -t mangle -A OUTPUT -o eth0 -p tcp --dport 80 -j TOS --set-tos 16
Prioriza o tráfego que sai do computador local pela porta 80.
Espero que possa ter ajudado...
Abraço a Todos!!
# Quem sou eu
- CSSA | LPIC-1 | ACE | Security+
- Fortaleza, CE, Brazil
- Sou uma pessoa tranquila, gosto de fazer amizades e ser amigo das pessoas, não gosto de mentiras e de pessoas falsas, gosto de ir a praia e sair com os amigos, gosto muito de tecnologia e amo o que faço. Trabalho com TI desde 2004, estou me especializando na área de segurança da informação e trabalho no moemnto como analista de segurança.
# Contato
MSN: bruno.itprofessional@hotmail.com
Skype: bruno.itpro
E-Mail: bruno.itpro@gmail.com
Cel: +55 85 8746.0702
Skype: bruno.itpro
E-Mail: bruno.itpro@gmail.com
Cel: +55 85 8746.0702
# Ultimos Posts
-
►
2010
(1)
- ► 02/07 - 02/14 (1)
-
▼
2009
(20)
- ► 12/13 - 12/20 (1)
- ► 11/08 - 11/15 (1)
- ► 10/18 - 10/25 (2)
- ► 09/27 - 10/04 (10)
- ► 09/20 - 09/27 (5)
# Aprendendo
Seguidores
# Acessos:

Postado por
CSSA | LPIC-1 | ACE | Security+
sábado, 12 de dezembro de 2009
Assinar:
Postar comentários (Atom)