socorro iptables [RESOLVIDO]

13. Re: socorro iptables [RESOLVIDO]

Buckminster
Buckminster

(usa Void Linux)

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 Void Linux)

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 Void Linux)

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 Void Linux)

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