Fiz uma pesquisa sobre itables eh mais pros iniciantes ok
O que precisamos saber?
Na configuração do firewall com o iptables, é preciso saber quais são as regras a serem utilizadas para rodar o Firewall.
Regras do Firewall:
INPUT: é utilizada quando o destino final é a própria máquina firewall.
OUTPUT: qualquer pacote gerado pela máquina firewall e que deva sair para a rede será tratado pela regra OUTPUT.
FORWARD: qualquer pacote que atravessa o firewall, de uma máquina e direcionado à outra, será tratado pela chain FORWARD.
Basicamente o IPTABLES possui as seguintes políticas:
DROP - Nega pacote e não manda um pacote de volta para o remetente.
ACCEPT - Aceita o pacote
REJECT - Nega pacote e manda um pacote de volta do tipo host-unreachable (Host Inalcançável)
Principais Comandos do IPtables
-A - Este comando acrescenta uma regra às existentes no sistema, ou seja, permite atualizar regras já existentes na estrutura do firewall.
-I - Este comando insere uma nova regra dentro das existentes no firewall.
-D - Este comando exclui uma regra específica no firewall.
-P - Este comando define a regra padrão do firewall.
-L - Este comando lista as regras existentes no firewall.
-F - Este comando ZERA todas as regras criadas no Firewall (o chamado flush).
-h - Este comando mostrará o help, ajuda de comando.
-R - Este comando substitui um regra no firewall.
-C - Este comando basicamente checa as regras.
-Z - Este comando zera uma regra específica.
-N - Este comando cria uma nova regra com um nome.
-X - Este comando exclui uma regra específica por seu nome.
Os parâmetros padrão do iptables são os seguintes:
-p! (protocolo) - define qual o protocolo TCP/IP deverá ser tratado. São eles: TCP, UDP e ICMP
-s! (origem)/ -d! (destino) - Define qual o endereço de origem (-S) e de destino que a regra atuará. Este comando possui dois argumentos: endereço/máscara e porta. Ex.: -S 10.0.0.1/24 80.
-i! (interface) - define o nome da interface de rede onde trafegará os pacotes de entrada e saída do firewall. Muito utilizado em mascaramento e técnicas de NAT. Exemplo: -W eth1.
-j! (ir para) - Serve para redirecionar uma ação desde que as regras sejam similares.
-f!(fragmento) - Trata datagrama fragmentados.
Os comandos e os parâmetros são exatamente iguais aos do ipchains, sem o que tirar nem pôr.
Extensões :
Novidade do iptables que facilita as regras.
-sport[!] [port:port] -dport[!] [port:port] - Normalmente estas extensões são utilizadas com o comando -m do iptables. Trata-se de um direcionamento de porta(s) origem (-sport), para porta(s) destino (-dport). Pode-se inclusive definir um número padrão de portas para o acesso (port:port). Este comando pode ser utilizado tanto para portas TCP ou UDP.
-mac-source[!] endereço - especifica qual a placa de rede, através de seu endereço MAC, que irá transmitir pacotes através do firewall, limitado pela política do mesmo.
-icmp-type[1] tipo - Especifica quais os tipos de pacotes ICMP pode passar ou não pelo firewall, São eles:
Mensagem Tipo Código
Echo-request 8 0
Echo-reply 3 0
Source-quench 4 0
Time-exceed 11 0
Destination-unreachable 3 0
Network-unreachable 3 0
Host-unreachable 3 1
Protocol-unreachable 3 2
Port-unreachable 3 3
Com isto podemos bloquear alguns ataques do tipo ping flood, bloquear ping e etc.
[!] -- syn - especifica o uso dos bits ACK e FIN em requisições SYN TCP.
Especificamente, a opção `-m state' aceita uma opção adicional `--state', que é uma lista de estados de ativação separados por vírgula. (a flag '!' não indica a ativação desses estados). Esses estados são:
NEW - um pacote que cria uma nova conexão.
ESTABLISHED - um pacote que pertence a uma conexão existente (isto é, um pacote de resposta).
RELATED - um pacote que está relacionado com (mas não faz parte de) uma conexão existente, como um ICMP error, ou (com o módulo FTP inserido),um pacote que é estabelecido por uma conexão de dados ftp.
INVALID - um pacote que não poderia ser identificado por alguma razão: isto inclui execução fora da memória e erros de ICMP que não correspondam a nenhuma conexão existente. Geralmente estes pacotes devem ser barrados (drop).
Do Site :
http://www.vivaolinux.com.br
Segura essas linha que uso contra flood's, pedidos mal formados, ping of death, DoS e coisas do tipo !!
Código:
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -p tcp -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD --protocol tcp --tcp-flags ALL SYN,ACK -j DROP
iptables -A FORWARD -m unclean -j DROP
Tradução:
Código:
Linha 01 - Protege contra os "Ping of Death"
Linha 02 - Protege contra os ataques do tipo "Syn-flood, DoS, etc"
Linha 03 - Permitir repassamento (NAT,DNAT,SNAT) de pacotes etabilizados e os relatados ...
Linha 04 - Logar os pacotes mortos por inatividade ...
Linha 05 - Protege contra port scanners avançados (Ex.: nmap)
Linha 06 - Protege contra pacotes que podem procurar e obter informações da rede interna ...
Linha 07 - Protege contra todos os pacotes danificados e ou suspeitos ...
Bom, vc fez algumas regras iptables para servidor, mas queria contribuir com algumas regras q criei, para usuarios domesticos q não querem dar acesso algum a rede
Código:
#!/bin/sh
#Para Excluir TODAS as regras anteriores do INPUT
iptables -F INPUT
# Protecao contra port scanners ocultos
iptables -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
# Bloqueando tracertroute
iptables -A INPUT -p udp -s 0/0 -i ppp+ --dport 33435:33525 -j DROP
#Protecoes contra ataques
iptables -A INPUT -m state --state INVALID -j DROP
#Performance - Setando acesso a web com delay minimo
iptables -t mangle -A OUTPUT -o ppp+ -p tcp --dport 53 -j TOS --set-tos Minimize-Delay
iptables -t mangle -A OUTPUT -o ppp+ -p tcp --dport 80 -j TOS --set-tos Minimize-Delay
#Deixa passar as portas UDP do servidores DNS, e Rejeitar o restante
iptables -A INPUT -i ppp+ -p udp -s ipdnsdoprovedor -j ACCEPT
iptables -A INPUT -i ppp+ -p udp -s ipdnsdoprovedor -j ACCEPT
iptables -A INPUT -i ppp+ -p udp -j REJECT
#Bloqueia qualquer tentativa de conexao de fora para dentro por TCP
iptables -A INPUT -i ppp+ -p tcp --syn -j DROP
#Mesmo assim fechar todas as portas abaixo de 32000
iptables -A INPUT -i ppp+ -p tcp --dport :32000 -j DROP
#Responde pacotes icmp especificados e rejeita o restante
iptables -A INPUT -i ppp+ -p icmp --icmp-type host-unreachable -j ACCEPT
iptables -A INPUT -i ppp+ -p icmp --icmp-type source-quench -j ACCEPT
iptables -A INPUT -i ppp+ -p icmp -j REJECT --reject-with icmp-host-unreachable
#A regra acima é interessante, pois da a impressão q o host não esta on-line
echo "Firewall Configurado"
Fonte: forumdgh.net by