Created
October 6, 2014 21:30
-
-
Save marcosptf/e579596f36e7917ec638 to your computer and use it in GitHub Desktop.
comandos IPTABLES
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| sudo iptables -t nat -L -n -v | |
| sudo iptables -t filter -F | |
| sudo iptables -t nat -F | |
| sudo iptables -t mangle -F | |
| sudo iptables -t nat -L -n -v | |
| sudo iptables -t nat -A PREROUTING -i eth1 --src 10.3.14.118 --dst 127.0.0.1 -p tcp --dport 1198 -j REDIRECT --to-ports 5000 | |
| sudo iptables-save | |
| sudo iptables -t nat -L -n -v | |
| /*descobrir portas abertas */ | |
| nmap -v <ip> | |
| /* comandos IPTables */ | |
| sudo iptables -t nat -I PREROUTING -i eth1 --src 10.3.14.118 --dst 127.0.0.1 -p tcp --dport 1198 -j REDIRECT --to-ports 5000 | |
| sudo iptables -t nat -I PREROUTING --src 0/0 --dst 10.3.14.118 -p tcp --dport 1198 -j REDIRECT --to-ports 5000 | |
| sudo iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 1198 -j REDIRECT --to-port 5000 | |
| sudo iptables -t nat -A PREROUTING -i eth1 --src 10.3.14.118 --dst 127.0.0.1 -p tcp --dport 5000 -j REDIRECT --to-ports 5000 | |
| sudo iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 5000 -j REDIRECT --to-port 5000 | |
| iptables -t nat -A PREROUTING -i eth0.1 -p tcp --dport 80 -j REDIRECT --to-port 3128 | |
| /* opções dos comandos */ | |
| -A | |
| Adiciona uma regra no fim da lista. | |
| -D | |
| Apaga uma regra da lista. | |
| -L | |
| Lista as regras da lista. | |
| -P | |
| Altera a política padrão das Chains. | |
| -F | |
| Remove todas as regras da lista. | |
| -I | |
| Insere uma regra no início da lista. | |
| -R | |
| Substitui uma regra da lista por outra. | |
| -N | |
| Cria uma nova chain na tabela especificada. | |
| -E | |
| Renomeia uma chain que foi criada com o comando -N. | |
| -X | |
| Apaga uma chain criada com o comando -N. | |
| Ações | |
| -p | |
| Especifica o protocolo ao qual a regra se aplicará. Também podemos utilizar o valor numérico que referencia o protocolo em /etc/protocol. Ex: -p gre ; -p 47 | |
| -i | |
| Especifica a interface de entrada utilizada pela regra. Pode ser utilizada apenas com as chains INPUT e FORWARD. EX: -i eth0 ou -i eth+ para especificar todas as entradas. | |
| -o | |
| Especifica a interface de saída utilizada pela regra. Pode ser utilizada apenas com as chains FORWARD e OUTPUT. EX: -o eth0 | |
| -s | |
| Especifica o endereço ou a rede de origem utilizada pela regra. Se não especificarmos a máscara de rede, o iptables utiliza a máscara padrão da classe C 255.255.255.0. Também podemos utilizar nomes DNS. Ex: -s 192.168.0.1; -s 192.168.0.0/255.255.255.0 -s vivaolinux.com.br | |
| -d | |
| Especifica o endereço ou a rede de destino utilizado pela regra. Se utiliza da mesma maneira que a ação -s. | |
| ! | |
| Utilizado para especificar exceções. Ex: -s ! 192.168.0.5 # A regra se aplicaria a todos os ips que tivessem origem diferente de 192.168.0.5. | |
| -j | |
| Utilizado para aplicar um alvo a regra, os mesmos podem ser ACCEPT, DROP, REJECT e LOG. Ex: -j ACCEPT | |
| --sport | |
| Especifica a porta de origem utilizada. Só podemos aplicar a ação quando estivermos tratando dos protocolos tcp e udp. Ex: -p tcp --sport 25 | |
| --dport | |
| Especifica a porta de destino utilizada. Funciona da mesma forma que a ação --sport. Ex: -p tcp --dport 25. | |
| /* Tabela FILTER */ | |
| É a tabela responsável pelos filtros dos pacotes. Ela se divide em 3 chains padrão. | |
| INPUT | |
| A chain INPUT é responsável por filtrar todo o tráfego que entra no firewall. | |
| FORWARD | |
| A chain FORWARD é responsável por filtrar todo o tráfego que passará pelo firewall, ou seja, todos os pacotes onde o NAT será aplicado. | |
| OUTPUT | |
| A chain OUTPUT é responsável por filtrar todo o tráfego que sairá pelo firewall. | |
| Tabela NAT | |
| É a tabela responsável pelo redirecionamento de pacotes. Ela também se divide em 3 chains. | |
| PREROUTING | |
| A chain PREROUTING é utilizada para alterar pacotes antes que os mesmos sejam roteados. | |
| OUTPUT | |
| A chain OUTPUT é utilizada para alterar os pacotes que se originam no firewall. | |
| POSTROUTING | |
| A chain POSTROUTING é utilizada pala alterar pacotes que já sofreram roteamento. | |
| Tabela MANGLE | |
| É a tabela responsável pela alteração de prioridade na entrada e saída de pacotes, baseando-se no tipo de serviço (TOS). É dividida em 2 chains. | |
| PREROUTING | |
| A chain PREROUTING trata a prioridade de pacotes antes de passarem por roteamento. | |
| OUTPUT | |
| A chain OUTPUT trata pacotes originados localmente no firewall antes que sejam roteados. | |
| ACCEPT | |
| Aceita a entrada ou passagem do pacote. | |
| DROP | |
| Descarta o pacote. | |
| REJECT | |
| Descarta o pacote, porém diferente de DROP, ele retorna uma mensagem ao emissor informando o que houve com o pacote. | |
| LOG | |
| Gera um log no sistema. | |
| RETURN | |
| Retorna o processamento da chain anterior. | |
| QUEUE | |
| Encarrega um programa de administrar o fluxo atribuído ao mesmo. | |
| SNAT | |
| Altera o endereço de origem do pacote. | |
| DNAT | |
| Altera o endereço de destino do pacote. | |
| REDIRECT | |
| Redireciona a porta do pacote juntamente com a opção --to-port. | |
| TOS | |
| Prioriza a entrada e saída de pacotes baseado em seu tipo de serviço. | |
| Podemos especificar em TOS os seguintes valores: | |
| 16 ou 0x10 Espera mínima | |
| 8 ou 0x08 Máximo processamento | |
| 4 ou 0x04 Máxima confiança | |
| 2 ou 0x02 Custo mínimo | |
| 0 ou 0x00 Prioridade normal | |
| Módulos | |
| A utilização de módulos junto com o iptables é definida através da opção -m. | |
| Podemos utilizar os seguintes módulos: | |
| limit Impõe um limite de vezes que a regra poderá ser executada. state Utiliza o estado da conexão, que pode ser NEW, ESTABLISHED, RELATED, INVALID. mac Permite a utilização do endereço mac nas regras. multiport Permite a utilização de até 15 portas em uma única regra em conjunto com o --dport. string Verifica o conteúdo do pacote para aplicar a regra. owner Verifica o usuário que criou o pacote. | |
| /* exemplos de codigos IPTABLES */ | |
| #limpa todas as regras | |
| sudo iptables -t filter -F | |
| sudo iptables -t nat -F | |
| sudo iptables -t mangle -F | |
| #exclui chains criadas | |
| iptables -t filter -X | |
| iptables -t nat -X | |
| iptables -t mangle -X | |
| #zera contador | |
| iptables -t filter -Z | |
| iptables -t nat -Z | |
| iptables -t mangle -Z | |
| #define política padrão para DROP | |
| #se não especificar a tabela com -t, o iptables utilizará a tabela filter | |
| iptables -P INPUT DROP | |
| iptables -P FORWARD DROP | |
| iptables -P OUTPUT DROP | |
| #INPUT | |
| #libera entrada para serviços locais do firewall | |
| iptables -A INPUT -i lo -j ACCEPT #libera tráfego local | |
| iptables -A INPUT -p tcp --dport 3128 -j ACCEPT #libera Squid | |
| iptables -A INPUT -p tcp --dport 3128 -j ACCEPT #libera DNS | |
| iptables -A INPUT -m state ESTABLISHED, RELATED -j ACCEPT #libera pacotes sincronizados | |
| iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT #libera ping. | |
| #OUTPUT | |
| iptables -A OUTPUT -j ACCEPT #libera toda a saída | |
| #FORWARD | |
| iptables -N INT2EXT #Cria chain INT2EXT para tratar a saída do tráfego | |
| iptables -N EXT2INT #Cria chain EXT2INT para tratar a entrada do tráfego. | |
| iptables -A FORWARD -i eth0 -o eth1 -j EXT2INT #aceita tráfego de entrada especificado em EXT2INT | |
| iptables -A FORWARD -i eth1 -o eth0 -j INT2EXT #aceita tráfego de saída especificado em INT2EXT | |
| iptables -A INT2EXT -p tcp -s 192.168.0.10 -j ACCEPT #libera o host 192.168.0.10 a sair por qualquer porta tcp | |
| iptables -A INT2EXT -p tcp -m multiport --dport 25,110 -j ACCEPT #libera envio e recebimento de email para a rede | |
| iptables -A EXT2INT -p tcp --dport 80 -j ACCEPT #libera entrada para serviço web. | |
| iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to 192.168.0.10:80 #direciona tráfego http para para o host 192.168.0.10 | |
| iptables -t mangle -A INPUT -p tcp --dport 80 -j TOS --set-tos 16 #prioriza tráfego na porta 80 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment