Web Server Seguro com Iptables [RESOLVIDO]

1. Web Server Seguro com Iptables [RESOLVIDO]

Marcos Matuzalem Alvarez Rodrigues
marcos1983

(usa Debian)

Enviado em 10/08/2011 - 10:29h

Amigos,

Eu tenho um servidor de rede que esta da seguinte forma.

Servidor Firewall (iptables)/Web Server (apache2)/Compartilhador de Internet (masquedaring)
Endereço IP LAN: 192.168.15.111
Endereço IP WAN: Dinamico Virtual
SO: Debian 32bits

Preciso publicar esse servidor na internet com segurança e para isso estou usando o iptables. Abaixo vou postar o script que pretendo colocar ele em produção e gostaria da sugestão de alguém experiente nesse assunto que somente aplicando essas regras, elas serão suficientes para a segurança do meu server.

####################################################
# Limpar regras #
####################################################
iptables -F #Limpa todas as regras da tabela filter
iptables -X #Deleta todas as cadeias da tabela filter
iptables -Z #Zera o contador da tabela filter
iptables -t nat -F #Limpa todas as regras da tabela NAT
iptables -t nat -X #Deleta todas as cadeias da tabela NAT
iptables -t nat -Z #Zera os contadores da tabela NAT
iptables -t mangle -F
iptables -t mangle -X

###################################################
# Adiciona os modulos #
###################################################
modprobe ip_tables
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe iptable_nat
modprobe ip_nat_ftp

###################################################
# Compartilhamento da Internet #
###################################################
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

####################################################
# Liberacao de trafego dos servicos padroes #
####################################################
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

#####################################################
# Redirecionamento Terminal Service Desktop Quarto #
#####################################################
iptables -t nat -A PREROUTING -p tcp -i eth1 --dport 3389 -j DNAT --to-destination 192.168.15.104:3389

#####################################################
# Redirecionamento Terminal Service Notebook Marcos #
#####################################################
iptables -t nat -A PREROUTING -p tcp -i eth1 --dport 3390 -j DNAT --to-destination 192.168.15.129:3390

#####################################################
# Redirecionamento Local WebServer Manchuria #
#####################################################
iptables -v -A INPUT -p tcp --dport 8181 -j ACCEPT

#####################################################
# Redirecionamento WebServer Manchuria BKP #
#####################################################
iptables -t nat -A PREROUTING -p tcp -i eth1 --dport 8082 -j DNAT --to-destination 192.168.15.110:8082

#####################################################
# Aceita todo trafego loopback #
#####################################################
iptables -A INPUT -i lo -j ACCEPT

#####################################################
# Libera trafego LAN #
#####################################################
iptables -A INPUT -s 192.168.15.0/24 -i eth0 -j ACCEPT

#####################################################
# Derruba qualquer conexao desconhecida #
#####################################################
iptables -A INPUT -j LOG --log-prefix "FIREWALL: INPUT "
iptables -A INPUT -j DROP

#####################################################
# Protecao contra IP Spoofing #
#####################################################
for i in /proc/sys/net/ipv4/conf/*/rp_filter;
do echo 1 >$i done

#####################################################
# Protecao contra worms #
#####################################################
iptables -A FORWARD -p tcp --dport 135 -i eth1 -j REJECT

#####################################################
# Protecao contra trojans #
#####################################################
iptables -N TROJAN
iptables -A TROJAN -j DROP
iptables -A INPUT -p TCP -i eth1 --dport 666 -j TROJAN
iptables -A INPUT -p TCP -i eth1 --dport 666 -j TROJAN
iptables -A INPUT -p TCP -i eth1 --dport 4000 -j TROJAN
iptables -A INPUT -p TCP -i eth1 --dport 6000 -j TROJAN
iptables -A INPUT -p TCP -i eth1 --dport 6006 -j TROJAN
iptables -A INPUT -p TCP -i eth1 --dport 16660 -j TROJAN

#####################################################
# Protecao contra trinoo #
#####################################################
iptables -N TRINOO
iptables -A TRINOO -j DROP
iptables -A INPUT -p TCP -i eth1 --dport 27444 -j TRINOO
iptables -A INPUT -p TCP -i eth1 --dport 27665 -j TRINOO
iptables -A INPUT -p TCP -i eth1 --dport 31335 -j TRINOO
iptables -A INPUT -p TCP -i eth1 --dport 34555 -j TRINOO
iptables -A INPUT -p TCP -i eth1 --dport 35555 -j TRINOO

#####################################################
# Protecao contra Port Scanners #
#####################################################
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT

#####################################################
# Protecao contra Back Orifice #
#####################################################
iptables -A INPUT -p tcp --dport 31337 -j DROP
iptables -A INPUT -p udp --dport 31337 -j DROP

#####################################################
# Protecao contra NETBUS #
#####################################################
iptables -A INPUT -p tcp --dport 12345:12346 -j DROP
iptables -A INPUT -p udp --dport 12345:12346 -j DROP

#####################################################
# Bloqueia ping em excesso #
#####################################################
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
iptables -A INPUT -j DROP

####################################################
# Anti-Redirects #
####################################################
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects

####################################################
# Anti Source Route #
####################################################
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route

####################################################
# Ignore echo broadcasts #
####################################################
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

####################################################
# Anti-Bugus Response #
####################################################
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses

####################################################
# Anti Synflood protection #
####################################################
echo 1 > /proc/sys/net/ipv4/tcp_syncookies

Se tiver qualquer outra forma de deixar seguro o meu server, por favor me enviem as dicas, pois esse é o meu primeiro server Linux e queria ter certeza que ele esta seguro na internet.

Obrigado Amigos !!!



  


2. Re: Web Server Seguro com Iptables [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 11/08/2011 - 11:01h

Boa Dia Colega,

Voce esqueceu de postar a politica das cadeias do firewall, mas vamos la , o firewall esta bem montado realizando filtros e liberando por estado de conexões. Agora se este servidor web for acessado e possuir banco de dados de clientes estas coisas, eu recomendo colocar em um servidor separado , ate por questão de segurança. Imagina se um cara consiga acesso a seu firewall ele teria todos os dados contido nele !Monto a topologia assim firewall dedicado somente para o encaminhamento, roteamento de pacotes e controle de fluxo de pacotes.

ATT
Tiago Eduardo Zacarias
LPIC-1
Viva o Linux !!



3. Alteração e Inclusao nas regras

Kleber William
kleberwilliam

(usa Debian)

Enviado em 22/11/2013 - 10:33h

Primeiro na sua regra do iptables de LOG's dita: "iptables -A INPUT -j LOG --log-prefix "FIREWALL: INPUT " vai gerar um grande numeros de dados no seu arquivo de log, entao nao indico fazer log de tudo que é dropado na entrada de pacotes.
Segundo precisa-se dropar as politicas padrao: iptables -P INPUT DROP, iptables -P FORWARD DROP e iptables -P OUTPUT DROP e liberar o necessario.
Assim voce vai ter um controle do que entra e sai da rede, fazendo ela esta mais segura. Contudo seria bom voce colocar um IDS/IPS na sua rede e da uma olha em seguranca em camadas.








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts