Enviado em 15/05/2014 - 14:27h
Pessoal, boa tarde
#!/bin/sh
echo -e "\n Carregando rc.firewall...\n"
LSMOD=/sbin/lsmod
DEPMOD=/sbin/depmod
MODPROBE=/sbin/modprobe
INSMOD=/sbin/insmod
GREP=/bin/grep
AWK=/bin/awk
SED=/bin/sed
CUT=/bin/cut
IFCONFIG=/sbin/ifconfig
IPTABLES=/sbin/iptables
UNIVERSE="0.0.0.0/0"
EXTIF0="p4p1" #mesma coisa que eth0, que e' conectado no roteador
IPEXTIF0=192.168.1.49 #192.168.30.2
INTNET0=192.168.50.0/24
INTIF0="em1" #mesma coisa que eth1
INTNET1=192.168.51.0/24
INTIF1="em1.2"
echo -en "Carregando modulos: \n"
echo "\n Carregando e verificando se os modulos do kernel estao ok... \n"
$DEPMOD -a
echo "\n Habilitando forwarding...\n"
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "\n Limpando as regras existentes e configurando a politica default para drop...\n"
$IPTABLES -P INPUT DROP
$IPTABLES -F INPUT
$IPTABLES -P OUTPUT DROP
$IPTABLES -F OUTPUT
$IPTABLES -P FORWARD DROP
$IPTABLES -F FORWARD
$IPTABLES -F -t nat
# Esvazia a drop-it chain... se ela existe.
if [ -n "`$IPTABLES -L | $GREP drop-it`" ]; then
$IPTABLES -F drop-it
fi
# Remove todas as chains definidas pelos usuarios.
$IPTABLES -X
#
# Zera todos os contadores do IPTABLES.
$IPTABLES -Z
echo "\n Protecao contra Ping of dead...\n"
$IPTABLES -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
echo "\n Criando um DROP chain...\n"
$IPTABLES -N drop-it
$IPTABLES -A drop-it -j LOG --log-level info
$IPTABLES -A drop-it -j REJECT
echo "\n Carregando regras INPUT...\n"
# A interfaces loopback é valida.
#
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 20022 -j ACCEPT #ssh
$IPTABLES -A INPUT -p tcp --dport 10000 -j ACCEPT #webmin
$IPTABLES -A INPUT -p tcp --dport 901 -j ACCEPT #swat(samba)
#portas Squid
$IPTABLES -A INPUT -i $INTIF0 -p tcp --dport 3128 -j ACCEPT
#portas para o Samba
$IPTABLES -A INPUT -p udp --dport 137 -j ACCEPT
$IPTABLES -A INPUT -p udp --dport 138 -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 139 -j ACCEPT
#Permitindo acesso interno ao srvadmin da dell
$IPTABLES -A INPUT -i $INTIF0 -p tcp --dport 1311 -j ACCEPT
$IPTABLES -A INPUT -i $INTIF1 -p tcp --dport 1311 -j ACCEPT
$IPTABLES -A INPUT -i $INTIF0 -p tcp --dport 3128 -j ACCEPT
$IPTABLES -A INPUT -i $INTIF0 -p tcp --dport 3129 -j ACCEPT
$IPTABLES -A INPUT -i $INTIF1 -p tcp --dport 3128 -j ACCEPT
$IPTABLES -A INPUT -i $INTIF1 -p tcp --dport 3129 -j ACCEPT
# Permite algum trafego relacionado retornando para o servidor.
$IPTABLES -A INPUT -s $UNIVERSE -m state --state ESTABLISHED,RELATED -j ACCEPT
# Todas as regras nao explicitas e todas as outras entradas
# sao negadas e registradas no log.
#
$IPTABLES -A INPUT -j drop-it
echo "\n Carregando regras OUTPUT...\n"
# A interface loopback é valida.
#
$IPTABLES -A OUTPUT -o lo -j ACCEPT
# Qualquer pacote saindo da interface externa para algum lugar e valido.
#
$IPTABLES -A OUTPUT -o $EXTIF0 -j ACCEPT
$IPTABLES -A OUTPUT -o $INTIF0 -j ACCEPT
$IPTABLES -A OUTPUT -o $INTIF1 -j ACCEPT
# Todas as regras nao explicitas e todas as outras saidas
# sao negadas e registradas no log.
#
$IPTABLES -A OUTPUT -j drop-it
echo "\n Carregando regras FORWARD...\n"
$IPTABLES -A FORWARD -i $INTIF0 -o $EXTIF0 -s $INTNET0 -j ACCEPT
$IPTABLES -A FORWARD -i $INTIF1 -o $EXTIF0 -s $INTNET1 -j ACCEPT
$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
$IPTABLES -t nat -A POSTROUTING -s 192.168.51.0/24 -o $EXTIF0 -j MASQUERADE
#Usado para libera a conexão da rede interna em1
$IPTABLES -t nat -A POSTROUTING -o $EXTIF0 -j MASQUERADE
$IPTABLES -t nat -A POSTROUTING -s 192.168.50.0/24 -j MASQUERADE
#roteamento para a VLAN geral em1.2
$IPTABLES -t nat -A POSTROUTING -s 192.168.51.0/24 -j MASQUERADE
#bloquear de um rede para a outra
$IPTABLES -A FORWARD -s 192.168.50.0/24 -d 192.168.51.0/24 -j DROP
$IPTABLES -A FORWARD -s 192.168.51.0/24 -d 192.168.50.0/24 -j DROP
#liberar para o servidor de uma vlan para outra somente a conexão do servidor
$IPTABLES -A FORWARD -s 192.168.50.0/24 -d 192.168.50.1 -j ACCEPT
$IPTABLES -A FORWARD -s 192.168.51.0/24 -d 192.168.51.1 -j ACCEPT
#Roteamento para o squid
$IPTABLES -t nat -A PREROUTING -i $INTIF0 -p tcp --dport 80 -j REDIRECT --to-port 3129
#
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
echo "\n Protecao contra Ping of dead...\n"
$IPTABLES -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
$IPTABLES -A FORWARD -p icmp --icmp-type echo-reply -m limit --limit 1/s -j ACCEPT
# Todas as regras nao explicitas e todos os outros direcionamentos ( forwards )
# sao negados e registradas no log.
$IPTABLES -A FORWARD -j drop-it
#### Regras NAT
echo "\n Carregando regras NAT...\n"
#
# Recommended minimum configuration:
#
acl manager proto cache_object
acl localhost src 127.0.0.1/32 ::1
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1
acl redeCV src 192.168.50.0/24
acl redeGeral src 192.168.51.0/24
acl SSL_ports port 443 563 3128
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 901 # swat
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny to_localhost
#
http_access allow redeCV
http_access allow redeGeral
acl block_redes_sociais dstdomain "/etc/squid/block/redes_sociais"
http_access allow redeCV !block_redes_sociais
acl block_palavras url_regex -i "/etc/squid/block/palavras"
http_access deny block_redes_sociais
http_access deny block_palavras
http_access allow localhost
http_access deny all
#configuracoes gerais
http_port 3128
http_port 3129 intercept
visible_hostname srv_proxy
cache_mgr webmaster
error_directory /usr/share/squid/errors/pt-br
hosts_file /etc/hosts
dns_nameservers 8.8.8.8 8.8.8.4
hierarchy_stoplist cgi-bin ?
cache_mem 256 MB
maximum_object_size_in_memory 128 KB
cache_dir ufs /var/spool/squid 2040 16 256
coredump_dir /var/spool/squid
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320
maximum_object_size 200 MB
.facebook.com*
orkut
xxx
sexo
warez
torrent
[*****]
sex[^t]
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Criando uma VPC na AWS via CLI
Multifuncional HP imprime mas não digitaliza
Dica básica para escrever um Artigo.
Como Exibir Imagens Aleatórias no Neofetch para Personalizar seu Terminal
UUID da partição efi mudou, multiboot já era...e agora? (0)