Portas Liberadas Firewall IPTABLES (Dúvida) [RESOLVIDO]

1. Portas Liberadas Firewall IPTABLES (Dúvida) [RESOLVIDO]

Jayme Guimaraes Moreira
jaymegm

(usa CentOS)

Enviado em 12/02/2016 - 15:46h

Como defini as politicas padrão da FILTER como DROP, fiz um script de IPTABLES, para liberar apenas as portas necessárias. (Abaixo contém apenas parte do script.)
Em minha rede eu utilizo serviços como:

* AD (Windows Server 2008)
* NTP Server (Windows Server 2008)
* File Server (Windows Server 2008)
* Proxy (Squid)
* DHCP (Linux)


INTERFACES:
eth0 = WAN
eth1 = LAN


# Portas liberadas TCP
PORTAS_TCP_INPUT_WAN=""
PORTAS_TCP_INPUT_LAN="3128"
PORTAS_TCP_OUTPUT_WAN="20,21,80,81,443,989,990"
PORTAS_TCP_OUTPUT_LAN="23,42,53,88,135,137,138,139,389,445,464,636,1512,3259,3268,3269,5800,5900,9389,49152:65535"
PORTAS_TCP_FORWARD="25,110,143,465,587,995"

# Portas liberadas UDP
PORTAS_UDP_INPUT_WAN=""
PORTAS_UDP_INPUT_LAN="161,162"
PORTAS_UDP_OUTPUT_WAN="123,989,990"
PORTAS_UDP_OUTPUT_LAN="23,42,53,67,68,88,123,135,137,138,139,389,445,464,1512,2535"
PORTAS_UDP_FORWARD="143,161,162,5004,5005"

# Libera as portas
iptables -A INPUT -p tcp -i eth0 -m multiport --dports $PORTAS_TCP_INPUT_WAN -j ACCEPT
iptables -A INPUT -p udp -i eth0 -m multiport --dports $PORTAS_UDP_INPUT_WAN -j ACCEPT
iptables -A INPUT -p tcp -i eth1 -m multiport --dports $PORTAS_TCP_INPUT_LAN -j ACCEPT
iptables -A INPUT -p udp -i eth1 -m multiport --dports $PORTAS_UDP_INPUT_LAN -j ACCEPT

iptables -A OUTPUT -p tcp -o eth0 -m multiport --dports $PORTAS_TCP_OUTPUT_WAN -j ACCEPT
iptables -A OUTPUT -p udp -o eth0 -m multiport --dports $PORTAS_UDP_OUTPUT_WAN -j ACCEPT
iptables -A OUTPUT -p tcp -o eth1 -m multiport --dports $PORTAS_TCP_OUTPUT_LAN -j ACCEPT
iptables -A OUTPUT -p udp -o eth1 -m multiport --dports $PORTAS_UDP_OUTPUT_LAN -j ACCEPT

iptables -A FORWARD -p tcp -m multiport --dports $PORTAS_TCP_FORWARD -j ACCEPT
iptables -A FORWARD -p udp -m multiport --dports $PORTAS_UDP_FORWARD -j ACCEPT


Alguém poderia me dizer se este método é funcional e caso seja, teriam mais portas que possa ser adicionadas?


  


2. Re: Portas Liberadas Firewall IPTABLES (Dúvida) [RESOLVIDO]

Carlos Alberto de Souza Barbosa
souzacarlos

(usa Outra)

Enviado em 12/02/2016 - 16:24h

Boa tarde. Funcionar funciona. Agora será que vale todo o trabalho q vc vai ter quando tiver q implementar um novo serviço

Uma dica já q vc quer manter a política como DROP é alterar ao menos o OUTPUT para ACCEPT com isso sua dor de cabeça já melhora muito.

Abs


3. Re: Portas Liberadas Firewall IPTABLES (Dúvida) [RESOLVIDO]

Jayme Guimaraes Moreira
jaymegm

(usa CentOS)

Enviado em 12/02/2016 - 16:56h

Pois é... realmente da muito trabalho, inclusive estou nisso a um tempo. E mesmo liberando todas essas portas, a rede fica sem internet, acho que deixarei a OUTPUT como ACCEPT mesmo. Estou utilizando o TCPView para analisar os bloqueios que estão na rede, mas nem tudo ele exibe. Tenho pouco conhecimento de aplicações como esta, para monitorar o que está bloqueando ou passando pelas interfaces cliente/servidor. Vocês conhece algumas que possam me ajudar?


4. Re: Portas Liberadas Firewall IPTABLES (Dúvida) [RESOLVIDO]

Carlos Alberto de Souza Barbosa
souzacarlos

(usa Outra)

Enviado em 12/02/2016 - 17:19h

Boa tarde.

Então, eu começaria liberando tudo abaixo de 1024, como são portas bem conhecidas, ( PORTAS DE SERVIÇO ) vc não terá problemas com elas, como vc não postou teu código todo fica difícil entender o pq não navega.

Outra coisa, olhe também regras para estado da conexão ESTABLISHED e RELATED isso irá te ajudar muito na criação de regras, com elas vc terá muito tempo poupado.

Precisar estou as ordens!

jaymegm escreveu:

Pois é... realmente da muito trabalho, inclusive estou nisso a um tempo. E mesmo liberando todas essas portas, a rede fica sem internet, acho que deixarei a OUTPUT como ACCEPT mesmo. Estou utilizando o TCPView para analisar os bloqueios que estão na rede, mas nem tudo ele exibe. Tenho pouco conhecimento de aplicações como esta, para monitorar o que está bloqueando ou passando pelas interfaces cliente/servidor. Vocês conhece algumas que possam me ajudar?





5. Re: Portas Liberadas Firewall IPTABLES (Dúvida)

Jayme Guimaraes Moreira
jaymegm

(usa CentOS)

Enviado em 12/02/2016 - 18:22h

Obrigado Carlos. Já coloquei a OUTPUT como ACCEPT. Agora a Internet Funciona normalmente.

Segue o Script completo.



#!/bin/bash

# Interface de rede ligada a internet
IFACE_WEB="eth0"

# Interface de rede ligada a rede interna
IFACE_REDE="eth1"

# Rede interna
REDE_INTERNA="192.168.1.0/24"

# Portas liberadas TCP
#PORTAS_TCP_INPUT_WAN=""
PORTAS_TCP_INPUT_LAN="3128"
PORTAS_TCP_FORWARD="25,110,143,465,587,995"

# Portas liberadas UDP
#PORTAS_UDP_INPUT_WAN=""
PORTAS_UDP_INPUT_LAN="161,162"
PORTAS_UDP_FORWARD="143,161,162,5004,5005"

function start () {

#++++++++++++++++++++++
# LIMPA AS REGRAS EXISTENTES #
#+++++++++++++++++++++#

# Limpa as regras e tabela
iptables -F
iptables -X
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -L -n

# DEFINE AS POLÍTICAS PADRÕES DO IPTABLES COMO DROP #
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

# HABILITA O ROTEAMENTO NO KERNEL #
echo 1 > /proc/sys/net/ipv4/ip_forward

# CRIA A IDA E VOLTA DO ACESSO NAS CHAINS INPUT, OUTPUT E FORWARD, ASSIM NÃO PRECISAMOS CRIAR A IDA E VOLTA NAS REGRAS
# Não vamos nos aprofundar neste assunto, mas vale a pena dar uma estudada no módulo state ;-)
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

#################
# REGRAS DE NAT #
#################

# COMPARTILHA A INTERNET #
iptables -t nat -A POSTROUTING -s $REDE_INTERNA -o $IFACE_WEB -j MASQUERADE

######################################
# REGRAS DE INPUT / OUTPUT / FORWARD #
######################################

# Libera o acesso SSH de um host especifico
iptables -A INPUT -p tcp -s 192.168.1.10 --dport 22 -j ACCEPT

# Libera o acesso BitTorrent de um host especifico
iptables -A FORWARD -p tcp -m multiport -s 192.168.1.10 --dport 6881:6999 -j ACCEPT
iptables -A FORWARD -p udp -m multiport -s 192.168.1.10 --dport 6881:6999 -j ACCEPT

# Libera as portas
#iptables -A INPUT -p tcp -m multiport --dports $PORTAS_TCP_INPUT_WAN -j ACCEPT
#iptables -A INPUT -p udp -m multiport --dports $PORTAS_UDP_INPUT_WAN -j ACCEPT
iptables -A INPUT -p tcp -m multiport --dports $PORTAS_TCP_INPUT_LAN -j ACCEPT
iptables -A INPUT -p udp -m multiport --dports $PORTAS_UDP_INPUT_LAN -j ACCEPT
iptables -A FORWARD -p tcp -m multiport --dports $PORTAS_TCP_FORWARD -j ACCEPT
iptables -A FORWARD -p udp -m multiport --dports $PORTAS_UDP_FORWARD -j ACCEPT

# Aceita ping apenas da rede interna
iptables -A INPUT -s $REDE_INTERNA -p icmp --icmp-type 8 -j ACCEPT

# Libera ping para qualquer lugar
iptables -A OUTPUT -p icmp --icmp-type 8 -j ACCEPT

service iptables save
service iptables restart

# FINAL DA FUNÇÃO START #
}

####################
# CRIA FUNÇÃO STOP #
####################

function stop () {

# LIMPA AS REGRAS EXISTENTES #
iptables -F
iptables -t nat -F

# DEFINE AS POLÍTICAS PADRÕES DO IPTABLES COMO DROP #
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

# HABILITA O ROTEAMENTO NO KERNEL #
echo 1 > /proc/sys/net/ipv4/ip_forward

# COMPARTILHA A INTERNET #
iptables -t nat -A POSTROUTING -s $REDE_INTERNA -o $IFACE_WEB -j MASQUERADE

service iptables save
service iptables restart

# FINAL DA FUNÇÃO STOP #
}

case $1 in

start)
start
;;

stop)
stop
;;

restart)
stop
start
;;

*)
echo "Insira um parâmetro para /etc/init.d/firewall... start | stop | restart"
exit 0
;;

esac
# FIM DO SCRIPT DE FIREWALL #



6. Re: Portas Liberadas Firewall IPTABLES (Dúvida) [RESOLVIDO]

Carlos Alberto de Souza Barbosa
souzacarlos

(usa Outra)

Enviado em 12/02/2016 - 19:19h

OK.

Copiei isto do teu script

# DEFINE AS POLÍTICAS PADRÕES DO IPTABLES COMO DROP #
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

?






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts