IPTABLES barrando acesso a internet [RESOLVIDO]

1. IPTABLES barrando acesso a internet [RESOLVIDO]

Johnathan Alisson
johnathangav

(usa KUbuntu)

Enviado em 30/05/2017 - 14:12h

Boa tarde pessoal,
gostaria de saber se alguém poderia me ajudar com este problema.
Configurei um script de firewall em meu servidor, no qual possuo a distribuição Cent OS 6.9. Não estou conseguindo navegar na internet pelo próprio servidor após iniciar o script, só está funcionando quando eu limpo as regras do iptables. Neste script eu estou compartilhando a internet do meu servidor para a rede local e está funcionando corretamente, mas no próprio servidor não funciona. Eu tento pingar em qualquer site, mas não navega.
Desde já agradeço.

Segue abaixo o meu script de firewall:

#!/bin/sh
#
echo "Iniciando o Firewall..."
echo "Limpando regras Firewall..."

# Limpando as regras
iptables -F
iptables -t filter -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -Z

# Variaveis
RI="192.168.10.0/24"
DRE0="eth0"
DRE1="eth1"

echo "ok"
echo "Habilitando regras..."

# ------------------------------------------------------------
# BLOQUEIA A CADEIA PADRAO
# ------------------------------------------------------------

echo "Ativando bloqueio..."
# -------------------------------------------------------
# ESTABELECE AS POLITICAS
# -------------------------------------------------------
#
iptables -t filter -P INPUT DROP
iptables -t filter -P OUTPUT ACCEPT
iptables -t filter -P FORWARD DROP
#
# ------------------------------------------------------------
#
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
#
# ------------------------------------------------------------
#
iptables -t mangle -P PREROUTING ACCEPT
iptables -t mangle -P OUTPUT ACCEPT

# ------------------------------------------------------------

# Compartilhamento da internet
modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o $DRE0 -j MASQUERADE

# ------------------------------------------------------------
# PROTECAO CONTRA TROJANS
# ------------------------------------------------------------
iptables -N TROJAN
iptables -A TROJAN -m limit --limit 15/m --limit-burst 15 -j LOG --log-prefix "FIREWALL: trojan"
iptables -A TROJAN -j DROP
iptables -A INPUT -p tcp -i $DRE0 --dport 666 -j TROJAN
iptables -A INPUT -p tcp -i $DRE0 --dport 4000 -j TROJAN
iptables -A INPUT -p tcp -i $DRE0 --dport 6000 -j TROJAN
iptables -A INPUT -p tcp -i $DRE0 --dport 6006 -j TROJAN
iptables -A INPUT -p tcp -i $DRE0 --dport 16660 -j TROJAN

# --------------------------------------------------------------

# -------------------------------------------------------
# FORWARD - Bloqueia Bittorrent
# -------------------------------------------------------
#
iptables -A FORWARD -s $RI -p tcp --dport 6881:6999 -j REJECT
iptables -A FORWARD -s $RI -p udp --dport 6881:6999 -j REJECT

# ---------------------------------------------------------------------------------
# (NAT) PREROUTING - RDP
# ---------------------------------------------------------------------------------
iptables -A FORWARD -p tcp --dport 3389 -j ACCEPT
iptables -A FORWARD -p udp --dport 3389 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -i $DRE0 --dport 3389 -j DNAT --to 192.168.10.10
#-----------------------------------------------------------------------------------

# ----------------------------------------------------------------------------------
# LIBERANDO PING
# ----------------------------------------------------------------------------------
iptables -A INPUT -p icmp -j ACCEPT

# Gerar LOG de icmp
iptables -A FORWARD -p icmp -j LOG
iptables -A FORWARD -p icmp -j ACCEPT

# Liberando porta SSH
iptables -A INPUT -i $DRE1 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -i $DRE0 -p tcp --dport 22 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -i $DRE0 --dport 22 -j DNAT --to 192.168.10.254

# Liberando portas HTTP e HTTPS
iptables -A FORWARD -p tcp --dport 443 -j ACCEPT
iptables -A FORWARD -p tcp --dport 80 -j ACCEPT

# Conectividade Social CEF
iptables -A FORWARD -p tcp --dport 2631 -j ACCEPT
iptables -A FORWARD -p tcp --dport 2003 -j ACCEPT
iptables -A FORWARD -p tcp --dport 2005 -j ACCEPT

# Libera porta do Squid
iptables -A INPUT -p tcp --dport 3128 -j ACCEPT

# Portas do DNS
iptables -A INPUT -p tcp -s $RI -d 0/0 --dport 53 -j ACCEPT
iptables -A INPUT -p tcp -s 0/0 -d $RI --sport 53 -j ACCEPT
iptables -A INPUT -p udp -s $RI -d 0/0 --dport 53 -j ACCEPT
iptables -A INPUT -p udp -s 0/0 -d $RI --sport 53 -j ACCEPT

iptables -A FORWARD -p tcp -s $RI -d 0/0 --dport 53 -j ACCEPT
iptables -A FORWARD -p tcp -s 0/0 -d $RI --sport 53 -j ACCEPT
iptables -A FORWARD -p udp -s $RI -d 0/0 --dport 53 -j ACCEPT
iptables -A FORWARD -p udp -s 0/0 -d $RI --sport 53 -j ACCEPT

iptables -A FORWARD -p icmp -s $RI -d 0/0 --icmp-type 8 -j ACCEPT
iptables -A FORWARD -p icmp -s 0/0 -d $RI --icmp-type 0 -j ACCEPT

# Porta VPN
# iptables -A INPUT -p udp --dport 1194 -j ACCEPT

# Porta Webmin
iptables -A INPUT -p tcp --dport 10000 -j ACCEPT

# Protecao contra pacotes danificados
# iptables -A FORWARD -m unclean -j DROP

# ---------------------------------------------------------------------------------
# MANGLE
# ---------------------------------------------------------------------------------
#
iptables -t mangle -A OUTPUT -o $DRE1 -p tcp --dport 21 -j TOS --set-tos 0x10
iptables -t mangle -A OUTPUT -o $DRE1 -p tcp --dport 23 -j TOS --set-tos 0x10
iptables -t mangle -A OUTPUT -o $DRE1 -p tcp --dport 6665:6668 -j TOS --set-tos 0x10
iptables -t mangle -A OUTPUT -o $DRE1 -p udp --dport 53 -j TOS --set-tos 0x10

# Acesso a rede externa
iptables -A FORWARD -i $DRE1 -s $RI -j ACCEPT
iptables -A FORWARD -d $RI -j ACCEPT

echo "firewall Ativado"



  


2. Re: IPTABLES barrando acesso a internet [RESOLVIDO]

Berghetti
berghetti

(usa Debian)

Enviado em 30/05/2017 - 14:47h

Deve ser por causa desse regra.

iptables -t filter -P INPUT DROP


3. Re: IPTABLES barrando acesso a internet

Perfil removido
removido

(usa Nenhuma)

Enviado em 30/05/2017 - 14:49h

1- O centos esta na versão 7.

2- Post as saídas do comandos abaixo:

ping www.vivaolinux.com.br

traceroute www.vivaolinux.com.br

cat /etc/resolv.conf


iptables -L

iptables -t nat -L


4. Re: IPTABLES barrando acesso a internet

Perfil removido
removido

(usa Nenhuma)

Enviado em 30/05/2017 - 15:03h

berghetti escreveu:

Deve ser por causa desse regra.

iptables -t filter -P INPUT DROP


+1

A tabela filter só pode tratar do que passa ou não passa.

É composta de 3 chains: INPUT, OUTPUT e FORWARD. É a tabela default, isto significa que quando não referenciamos nenhuma chain no comando iptables, a chain filter é chamada. É importante deixar claro que essa chain trata do tráfego normal de dados, isto significa que não há nenhum tipo de mascaramento (NAT) nela.

INPUT (Pacotes de Entrada) --> Os pacotes são encaminhados para esta chain quando a origem não é o firewall, mas o destino é o firewall.


Políticas de acesso

DROP --> É exatamente o inverso do ACCEPT. Bloqueia tudo, deixando passar somente os pacotes que batem exatamente com as características passadas pelo comando de liberação.


https://www.vivaolinux.com.br/artigo/Desvendando-as-regras-de-Firewall-Linux-Iptables


O firewall poderia ser mas simples e objetivo.

Você pegou esse script de algum site tem coisa faltando relacionado a questão de segurança e outra nem deveria ter.



5. Re: IPTABLES barrando acesso a internet [RESOLVIDO]

Johnathan Alisson
johnathangav

(usa KUbuntu)

Enviado em 30/05/2017 - 15:23h

Na verdade eu não peguei da internet, eu fui implementando baseado em outros scripts que eu tenho de um curso que eu fiz.
O teste de ping não dá certo:
ping: unknown host www.vivaolinux.com.br

Traceroute também dá erro:
www.vivaolinux.com.br: Falha temporária na resolução de nome
Cannot handle "host" cmdline arg `www.vivaolinux.com.br' on position 1 (argc 1)


iptables -L:
Chain INPUT (policy DROP)
target prot opt source destination
TROJAN tcp -- anywhere anywhere tcp dpt:mdqs
TROJAN tcp -- anywhere anywhere tcp dpt:terabase
TROJAN tcp -- anywhere anywhere tcp dpt:x11
TROJAN tcp -- anywhere anywhere tcp dpt:6006
TROJAN tcp -- anywhere anywhere tcp dpt:16660
ACCEPT icmp -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
ACCEPT tcp -- anywhere anywhere tcp dpt:squid
ACCEPT udp -- 192.168.10.0/24 anywhere udp dpt:domain
ACCEPT udp -- anywhere 192.168.10.0/24 udp spt:domain
ACCEPT tcp -- anywhere anywhere tcp dpt:ndmp

Chain FORWARD (policy DROP)
target prot opt source destination
REJECT tcp -- 192.168.10.0/24 anywhere tcp dpts:6881:iatp-normalpri reject-with icmp-port-unreachable
REJECT udp -- 192.168.10.0/24 anywhere udp dpts:6881:iatp-normalpri reject-with icmp-port-unreachable
ACCEPT tcp -- anywhere anywhere tcp dpt:ms-wbt-server
ACCEPT udp -- anywhere anywhere udp dpt:ms-wbt-server
LOG icmp -- anywhere anywhere LOG level warning
ACCEPT icmp -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere tcp dpt:https
ACCEPT tcp -- anywhere anywhere tcp dpt:http
ACCEPT tcp -- anywhere anywhere tcp dpt:sitaradir
ACCEPT tcp -- anywhere anywhere tcp dpt:cfinger
ACCEPT tcp -- anywhere anywhere tcp dpt:berknet
ACCEPT udp -- 192.168.10.0/24 anywhere udp dpt:domain
ACCEPT udp -- anywhere 192.168.10.0/24 udp spt:domain
ACCEPT icmp -- 192.168.10.0/24 anywhere icmp echo-request
ACCEPT icmp -- anywhere 192.168.10.0/24 icmp echo-reply
ACCEPT all -- 192.168.10.0/24 anywhere
ACCEPT all -- anywhere 192.168.10.0/24

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Chain TROJAN (5 references)
target prot opt source destination
LOG all -- anywhere anywhere limit: avg 15/min burst 15 LOG level warning prefix `FIREWALL: trojan'
DROP all -- anywhere anywhere


iptables -t nat -L:
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT tcp -- anywhere anywhere tcp dpt:ms-wbt-server to:192.168.10.10
DNAT tcp -- anywhere anywhere tcp dpt:ssh to:192.168.10.254

Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- anywhere anywhere

Chain OUTPUT (policy ACCEPT)
target prot opt source destination


cat /etc/resolv.conf:
; generated by /sbin/dhclient-script
nameserver 8.8.4.4




6. Re: IPTABLES barrando acesso a internet [RESOLVIDO]

Johnathan Alisson
johnathangav

(usa KUbuntu)

Enviado em 30/05/2017 - 15:25h

berghetti escreveu:

Deve ser por causa desse regra.

iptables -t filter -P INPUT DROP


Mas se eu deixar essa regra liberada tudo o que chegar no servidor ele vai aceitar. Eu quero que ele aceite apenas o que eu liberar, por isso eu deixei ela DROP.


7. Re: IPTABLES barrando acesso a internet [RESOLVIDO]

Johnathan Alisson
johnathangav

(usa KUbuntu)

Enviado em 31/05/2017 - 10:28h

Bom dia,
venho informar que consegui resolver este problema informando as seguintes regras:
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p udp --sport 53 -j ACCEPT

De qualquer forma, agradeço pela ajuda de vocês.
Valeu!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts