Enviado em 14/02/2018 - 13:34h
Senhores boa tarde,
Estou iniciando meus estudos sobre iptables pois desejo implementa - ló na empresa onde trabalho. Nada contra quem usa Endian, Pfsense mas infelizmente por ter um professor ruim na faculdade não aprendi o iptables. Agora estou sozinho lendo artigos fazendo os meus testes, criando as minhas vm's. Estou compartilhando esse iptables simples para que vocês possam me dar alguma dica ou sugestão.
Gostaria de fazer duas perguntas:
1ª Porque a maioria dos scripts de iptables a output do servidor é ACCEPT ? Não corre risco de um Ataque por conta disso ?
2ª Se o firewall está com a policy DROP há necessidade de colocar essas regras de segurança como ataque netbus, ping da morte, port scanners ?
Obrigado a todos e paz do senhor.
Obs: Porta ssh vou alterar, porta smtp, imap etc... isso tudo vou colocar ainda só fiz o básico para teste mesmo.
Estou iniciando meus estudos sobre iptables pois desejo implementa - ló na empresa onde trabalho. Nada contra quem usa Endian, Pfsense mas infelizmente por ter um professor ruim na faculdade não aprendi o iptables. Agora estou sozinho lendo artigos fazendo os meus testes, criando as minhas vm's. Estou compartilhando esse iptables simples para que vocês possam me dar alguma dica ou sugestão.
Gostaria de fazer duas perguntas:
1ª Porque a maioria dos scripts de iptables a output do servidor é ACCEPT ? Não corre risco de um Ataque por conta disso ?
2ª Se o firewall está com a policy DROP há necessidade de colocar essas regras de segurança como ataque netbus, ping da morte, port scanners ?
Obrigado a todos e paz do senhor.
Obs: Porta ssh vou alterar, porta smtp, imap etc... isso tudo vou colocar ainda só fiz o básico para teste mesmo.
#!/bin/bash
### BEGIN INIT INFO
# Provides: firewall
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Firewall
# Description: Enable service provided by daemon.
### END INIT INFO
#--------------------
# FIREWALL IPTABLES #
#--------------------
# CARREGANDO MODULOS NO KERNEL
modprobe ip_conntrack_ftp
modprobe ip_conntrack
modprobe ip_nat_ftp
modprobe ip_tables
modprobe ipt_MARK
modprobe ipt_MASQUERADE
modprobe ipt_REJECT
modprobe ipt_TCPMSS
modprobe ipt_TOS
modprobe ipt_limit
modprobe ipt_mac
modprobe ipt_multiport
modprobe ipt_owner
modprobe ipt_LOG
modprobe ipt_REDIRECT
modprobe ipt_state
modprobe iptable_nat
modprobe iptable_mangle
modprobe iptable_filter
# VARIAVEIS DE REDE
IF_WAN="enp0s3"
IF_LAN="enp0s8"
REDE_LOCAL="172.16.200.0/24"
# CASE PARA INICIAR FIREWALL
IniciarFirewall () {
# LIMPANDO REGRAS
iptables -F
iptables -F -t filter
iptables -F -t mangle
iptables -F -t nat
iptables -Z
# POLITICA PADRAO DROP
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
# HABILITANDO ROTEAMENTO
echo "1" > /proc/sys/net/ipv4/ip_forward
# LIBERANDO CONEXOES PARA CHAINS
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
#----------------
# REGRAS DE NAT #
#----------------
# MASCARAMENTO DE REDE
iptables -t nat -A POSTROUTING -s $REDE_LOCAL -o $IF_WAN -j MASQUERADE
#------------------
# REGRAS DE INPUT #
#------------------
# LOOPBACK
iptables -A INPUT -i lo -j ACCEPT
# SSH
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# APACHE
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# SQUID
iptables -A INPUT -p tcp --dport 1082 -j ACCEPT
# PING
iptables -A INPUT -s $REDE_LOCAL -p icmp --icmp-type 8 -j ACCEPT
#--------------------
# REGRAS DE FORWARD #
#--------------------
# PING
iptables -A FORWARD -p icmp --icmp-type 8 -j ACCEPT
# DNS
iptables -A FORWARD -p udp --dport 53 -j ACCEPT
# IP TI
iptables -A FORWARD -s 172.16.200.2 -o $IF_WAN -j ACCEPT
}
# CASE PARA PARAR O FIREWALL
PararFirewall () {
# LIMPANDO REGRAS
iptables -F
iptables -F -t filter
iptables -F -t mangle
iptables -F -t nat
iptables -Z
# POLITICA PADRAO COMO ACCEPT
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
# HABILITANDO ROTEAMENTO
echo "1" > /proc/sys/net/ipv4/ip_forward
#----------------
# REGRAS DE NAT #
#----------------
# MASCARAMENTO DE REDE
iptables -t nat -A POSTROUTING -s $REDE_LOCAL -o $IF_WAN -j MASQUERADE
}
case $1 in
start) echo "FIREWALL INICIADO.......[OK]"
IniciarFirewall
;;
stop) echo "FIREWALL PARADO..........[OK]"
PararFirewall
;;
restart) echo "FIREWALL REINICIADO...[OK]"
PararFirewall
IniciarFirewall
;;
esac
#---------------
# FIM FIREWALL #
#---------------