socorro iptables [RESOLVIDO]

13. Re: socorro iptables [RESOLVIDO]

Buckminster
Buckminster

(usa Debian)

Enviado em 20/05/2013 - 20:17h

Antes de mais nada apague aquela gambiarra braba de dentro do /etc/rc.local. Chegou a me dar um nervoso aquilo.

Crie um arquivo vazio em /etc/init.d com o nome de firewall.sh ou dê o nome que você quiser.

#vim /etc/init.d/firewall.sh << você use o teu editor de texto preferido.
Coloque as regras abaixo dentro dele.
Salve e saia.

#!/bin/bash
#
#Desabilitando o tráfego entre as placas
########################
echo 0 > /proc/sys/net/ipv4/ip_forward
#
##Apagando e restaurando as chains e tabelas
############################
iptables -Z # Zera as regras das chains
iptables -F # Remove as regras das chains
iptables -X # Apaga as chains
iptables -t nat -Z
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -Z
iptables -t mangle -F
iptables -t mangle -X
#
#Carregando os módulos.
###############
modprobe ip_tables
modprobe iptable_nat
modprobe iptable_filter
modprobe iptable_mangle
#
##Definindo políticas padrões
####################
iptables -P INPUT DROP # iptables a política padrão da chain INPUT é proibir tudo
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
#
##Liberando a Loopback
################
iptables -A INPUT -i lo -j ACCEPT # adiciona regra na chain INPUT para liberar a loopback
#
##Regras de segurança na internet e de aceitação de pacotes
######################################
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state NEW ! -i eth0 -j DROP # << Interface de entrada da internet
iptables -A FORWARD -m state --state NEW ! -i eth0 -j DROP
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP
#
##Liberando portas somente para a rede interna (essas 10 regras abaixo você pode comentar as que você não quer liberar)
#########################################
iptables -A INPUT -p tcp --dport 3128 -i eth1 -j ACCEPT #Proxy
iptables -A INPUT -p tcp --dport 80 -i eth1 -j ACCEPT #HTTP
iptables -A INPUT -p tcp --dport 21 -i eth1 -j ACCEPT #FTP
iptables -A INPUT -p tcp --dport 53 -i eth1 -j ACCEPT #DNS
iptables -A INPUT -p udp --dport 53 -i eth1 -j ACCEPT #DNS
iptables -A INPUT -p tcp --dport 25 -i eth1 -j ACCEPT #SMTP
iptables -A INPUT -p tcp --dport 110 -i eth1 -j ACCEPT #SSL
iptables -A INPUT -p udp --dport 110 -i eth1 -j ACCEPT #SSL
#iptables -A INPUT -p tcp --dport 8080 -j ACCEPT #HTTP - Apache
#iptables -A INPUT -p udp --dport 8080 -j ACCEPT #HTTP - Apache
#
# Habilita o roteamento no kernel #
######################
echo 1 > /proc/sys/net/ipv4/ip_forward
#
# Redirecionando para o Squid
###################
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
#
# Compartilha a internet
#############
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 200.xxx.xxx.xxx # << aqui você coloca o IP que está fixo na placa de rede do servidor, a eth0, que é a placa de entrada da Internet.
#
# Acesso externo
##########
iptables -A FORWARD -p tcp --sport 8080 -j ACCEPT
iptables -A FORWARD -p tcp --dport 8080 -j ACCEPT
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8080 -j DNAT --to-destination 10.0.0.149:8080
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 8080 -j DNAT --to-destination 10.0.0.149:8080
#
iptables -A FORWARD -p tcp --sport 37778 -j ACCEPT
iptables -A FORWARD -p tcp --dport 37778 -j ACCEPT
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 37778 -j DNAT --to-destination 10.0.0.149:37778
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 37778 -j DNAT --to-destination 10.0.0.149:37778
#
iptables -A FORWARD -p tcp --sport 34567 -j ACCEPT
iptables -A FORWARD -p tcp --dport 34567 -j ACCEPT
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 34567 -j DNAT --to-destination 10.0.0.149:34567
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 34567 -j DNAT --to-destination 10.0.0.149:34567
#
iptables -A FORWARD -p tcp --sport 8081 -j ACCEPT
iptables -A FORWARD -p tcp --dport 8081 -j ACCEPT
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8081 -j DNAT --to-destination 10.0.0.150:8081
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 8081 -j DNAT --to-destination 10.0.0.150:8081
#
iptables -A FORWARD -p tcp --sport 37778 -j ACCEPT
iptables -A FORWARD -p tcp --dport 37778 -j ACCEPT
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 37778 -j DNAT --to-destination 10.0.0.150:37778
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 37778 -j DNAT --to-destination 10.0.0.150:37778
#
iptables -A FORWARD -p tcp --sport 34567 -j ACCEPT
iptables -A FORWARD -p tcp --dport 34567 -j ACCEPT
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 34567 -j DNAT --to-destination 10.0.0.150:34567
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 34567 -j DNAT --to-destination 10.0.0.150:34567
#
####################### FIM ############################


Dê permissão de execução:
#chmod +x /etc/init.d/firewall.sh

E coloque em /etc/rc.local antes de 'exit 0', assim:

/etc/init.d/firewall.sh start
exit 0

Dessa maneira o iptables inicia junto com o sistema e você pode iniciar, parar e reiniciar no terminal com o comando:
#/etc/init.d/firewall.sh start, stop ou restart

Segue link para o Manual do IPtables traduzido para te auxiliar futuramente:
http://www.vivaolinux.com.br/artigo/Manual-do-IPtables-Comentarios-e-sugestoes-de-regras/


  


14. MUITO GRATO

kildren
kil-linux

(usa Ubuntu)

Enviado em 21/05/2013 - 15:53h

MEU CARO VOU TESTAR AS REGRAS E INFORMO O RESULTADO.



15. meu caro

kildren
kil-linux

(usa Ubuntu)

Enviado em 21/05/2013 - 20:41h

voce pode me explicar tirar minhas duvidas


#!/bin/bash
#
#Desabilitando o tráfego entre as placas ( porque estou desabilitando o trafego entre as lacas )
########################
echo 0 > /proc/sys/net/ipv4/ip_forward
#
##Apagando e restaurando as chains e tabelas
############################
iptables -Z # Zera as regras das chains
iptables -F # Remove as regras das chains
iptables -X # Apaga as chains
iptables -t nat -Z
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -Z
iptables -t mangle -F
iptables -t mangle -X
#
#Carregando os módulos.
###############
modprobe ip_tables
modprobe iptable_nat
modprobe iptable_filter
modprobe iptable_mangle
#
##Definindo políticas padrões
####################
iptables -P INPUT DROP # iptables a política padrão da chain INPUT é proibir tudo
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
#
##Liberando a Loopback
################
iptables -A INPUT -i lo -j ACCEPT # adiciona regra na chain INPUT para liberar a loopback
#
##Regras de segurança na internet e de aceitação de pacotes
######################################
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state NEW ! -i eth0 -j DROP # << Interface de entrada da internet
iptables -A FORWARD -m state --state NEW ! -i eth0 -j DROP
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP
#
##Liberando portas somente para a rede interna (essas 10 regras abaixo você pode comentar as que você não quer liberar)
#########################################
iptables -A INPUT -p tcp --dport 3128 -i eth1 -j ACCEPT #Proxy
iptables -A INPUT -p tcp --dport 80 -i eth1 -j ACCEPT #HTTP
iptables -A INPUT -p tcp --dport 21 -i eth1 -j ACCEPT #FTP
iptables -A INPUT -p tcp --dport 53 -i eth1 -j ACCEPT #DNS
iptables -A INPUT -p udp --dport 53 -i eth1 -j ACCEPT #DNS
iptables -A INPUT -p tcp --dport 25 -i eth1 -j ACCEPT #SMTP
iptables -A INPUT -p tcp --dport 110 -i eth1 -j ACCEPT #SSL
iptables -A INPUT -p udp --dport 110 -i eth1 -j ACCEPT #SSL
#iptables -A INPUT -p tcp --dport 8080 -j ACCEPT #HTTP - Apache ( ei preciso ter o apache instalado visto que odvr ja possui um software de administração )
#iptables -A INPUT -p udp --dport 8080 -j ACCEPT #HTTP - Apache
#
# Habilita o roteamento no kernel #
######################
echo 1 > /proc/sys/net/ipv4/ip_forward
#
# Redirecionando para o Squid
###################
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
#
# Compartilha a internet
#############
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 200.xxx.xxx.xxx << aqui você coloca o IP que está fixo na placa de rede do servidor, a eth0, que é a placa de entrada da Internet.
#
# Acesso externo
##########
iptables -A FORWARD -p tcp --sport 8080 -j ACCEPT
iptables -A FORWARD -p tcp --dport 8080 -j ACCEPT
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8080 -j DNAT --to-destination 10.0.0.149:8080
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 8080 -j DNAT --to-destination 10.0.0.149:8080
#
iptables -A FORWARD -p tcp --sport 37778 -j ACCEPT
iptables -A FORWARD -p tcp --dport 37778 -j ACCEPT
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 37778 -j DNAT --to-destination 10.0.0.149:37778
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 37778 -j DNAT --to-destination 10.0.0.149:37778
#
iptables -A FORWARD -p tcp --sport 34567 -j ACCEPT
iptables -A FORWARD -p tcp --dport 34567 -j ACCEPT
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 34567 -j DNAT --to-destination 10.0.0.149:34567
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 34567 -j DNAT --to-destination 10.0.0.149:34567
#
iptables -A FORWARD -p tcp --sport 8081 -j ACCEPT
iptables -A FORWARD -p tcp --dport 8081 -j ACCEPT
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8081 -j DNAT --to-destination 10.0.0.150:8081
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 8081 -j DNAT --to-destination 10.0.0.150:8081
#
iptables -A FORWARD -p tcp --sport 37778 -j ACCEPT
iptables -A FORWARD -p tcp --dport 37778 -j ACCEPT
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 37778 -j DNAT --to-destination 10.0.0.150:37778
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 37778 -j DNAT --to-destination 10.0.0.150:37778
#
iptables -A FORWARD -p tcp --sport 34567 -j ACCEPT
iptables -A FORWARD -p tcp --dport 34567 -j ACCEPT
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 34567 -j DNAT --to-destination 10.0.0.150:34567
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 34567 -j DNAT --to-destination 10.0.0.150:34567
#
####################### FIM ############################


16. Re: socorro iptables [RESOLVIDO]

Buckminster
Buckminster

(usa Debian)

Enviado em 21/05/2013 - 22:24h

"porque estou desabilitando o trafego entre as placas"

Por questão de segurança. Daí as regras necessárias são aplicadas antes do compartilhamento entre as placas. Mais abaixo o tráfego é habilitado. Mas se você quiser comentar essa linha que está desabilitando não tem problema.

"ei preciso ter o apache instalado visto que odvr ja possui um software de administração"

Se você precisa do Apache é só descomentar as linhas e colocar ele para escutar na porta 8080.


17. meu caro

kildren
kil-linux

(usa Ubuntu)

Enviado em 21/05/2013 - 23:31h

coloquei as regras como voce falou

coloquei dentro do rc.local deixei o mesmo nome, as maquina da rede pararam de navegar na net



18. mano

kildren
kil-linux

(usa Ubuntu)

Enviado em 22/05/2013 - 00:14h

se voce permitir posso ligar para voce e tirar algumas duvidas,
posso ligar amanha domeu trabalgo

e so passar o tele pro meu email

kildren.chaves@gmail.com

fico no aguardo isso ta me tirando o sono


19. Re: socorro iptables [RESOLVIDO]

Buckminster
Buckminster

(usa Debian)

Enviado em 22/05/2013 - 00:52h

Enviei o email.


20. CORRETO

kildren
kil-linux

(usa Ubuntu)

Enviado em 28/05/2013 - 21:09h

meu caro,

voce estava certo, o que estava dando errado era meu virtual box, testei na cara e na coragem no servidor e deu certinho mesmo.

muito obrigado pela grande apoio.



21. Re: socorro iptables [RESOLVIDO]

Buckminster
Buckminster

(usa Debian)

Enviado em 28/05/2013 - 23:06h

De nada.

É que o VirtualBox tem 3 ou 4 opções (se não me engano) de configurar rede (NAT, Rede Interna, Placa em modo Bridge, etc.) e cada opção tem sua particularidade, daí deve se adaptar o iptables de acordo e as configurações de um iptables para um servidor direto são diferentes de um iptables para um servidor no VirtualBox.



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts