HeltonBarbosa
(usa FreeBSD)
Enviado em 19/11/2009 - 18:35h
Este é o firewall...
#!/bin/bash
# Script de Execução de Firewall Iptables 1.0
echo "Carregando Módulos..............."
/sbin/modprobe ip_tables
/sbin/modprobe iptable_nat
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_REJECT
/sbin/modprobe ipt_MASQUERADE
/sbin/modprobe ipt_state
/sbin/modprobe ipt_multiport
/sbin/modprobe iptable_mangle
/sbin/modprobe ipt_tos
/sbin/modprobe ipt_limit
/sbin/modprobe ipt_mark
/sbin/modprobe ipt_MARK
/sbin/modprobe iptable_filter
echo "ON.........................[ OK ]"
echo "Limpando Regras do Firewall......"
/usr/sbin/iptables -F
/usr/sbin/iptables -X
/usr/sbin/iptables -t nat -F
/usr/sbin/iptables -t nat -X
/usr/sbin/iptables -t mangle -F
/usr/sbin/iptables -t mangle -X
echo "ON.........................[ OK ]"
echo "Iniciando Firewall..............."
# ------------- #
# VARIÁVEIS #
# ------------- #
IF_EXTERNA=eth1
IF_INTERNA=eth0
IF_DMZ=eth2
# ---------------------------------------- #
# PROTEÇÃO CONTRA IP SPOOFING #
# ---------------------------------------- #
echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter
# --------------------------------------- #
# DETERMINA A POLÍTICA PADRÃO #
# --------------------------------------- #
echo "Politicas de Acesso.............."
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
# --------------------------------------------------------------- #
# Redirecionamento ip_foward #
# --------------------------------------------------------------- #
echo "ON.........................[ OK ]"
echo "Redirecionamento ip_foward......."
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "ON.........................[ OK ]"
# --------------------------------------------------------------- #
# Regras loopback #
# --------------------------------------------------------------- #
echo "Regras lopback................"
#iptables -t filter -A OUTPUT -d 127.0.0.1 -j ACCEPT #Saída
#iptables -t filter -A OUTPUT -p tcp --dport 53 -d 127.0.0.1 -j ACCEPT #Saída
echo "ON.........................[ OK ]"
# --------------------------------------------------------------- #
# Regras de Saida #
# --------------------------------------------------------------- #
iptables -t INPUT -p tcp --dport 2631 -j ACCEPT
iptables -t OUTPUT -p tcp --dport 2631 -j ACCEPT
echo "Regras de Saida.................."
iptables -t filter -A OUTPUT -d 192.168.0.0/24 -j ACCEPT #Saída
iptables -t filter -A OUTPUT -d 201.24.152.68 -j ACCEPT #Saída
echo "ON.........................[ OK ]"
# --------------------------------------------------------------- #
# Libera Ping #
# --------------------------------------------------------------- #
echo "Liberando Ping.................. "
iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
echo "ON.........................[ OK ]"
# --------------------------------------------------------------- #
# LIBERA ACESSO EXTERNO A DETERMINADAS PORTAS #
# --------------------------------------------------------------- #
#iptables -A INPUT -p --dport 22 -i $IF_EXTERNA -j ACCEPT
# --------------------------------------------------------------- #
# LIBERA ACESSO SSH INTERNO -> EXTERNO#
# --------------------------------------------------------------- #
echo "SSH Interno -> Externo..........."
iptables -A OUTPUT -p tcp -s 192.168.0.0/24 --dport 22 -j ACCEPT
echo "ON.........................[ OK ]"
# --------------------------------------------------------------- #
# LIBERA ACESSO SSH via MAC ADDRESS#
# --------------------------------------------------------------- #
echo "SSH via Mac Address"
iptables -A INPUT -m mac --mac-source 00-1B-24-49-2D-48 -j ACCEPT
echo "ON.........................[ OK ]"
# --------------------------- #
# PROXY TRANSPARENTE #
# --------------------------- #
echo "Ativando Proxy Transparent......."
iptables -t nat -A PREROUTING -i $IF_INTERNA -p tcp --dport 80 -j REDIRECT --to-port 3128
echo "ON.........................[ OK ]"
# ------------------------------------------- #
# ATIVA O MASCARAMENTO DE SAÍDA #
# ------------------------------------------- #
echo "Ativando Mascaramento............"
iptables -t nat -A POSTROUTING -o $IF_EXTERNA -j MASQUERADE
echo "ON.........................[ OK ]"
# ------------------------------------------- #
# ATIVANDO REGRAS FORWARD #
# ------------------------------------------- #
echo "Regras FORWARD..................."
iptables -A FORWARD -i eth0 -j ACCEPT
iptables -A FORWARD -o eth0 -j ACCEPT
iptables -A FORWARD -p tcp -i eth1 --dport 80 -d 192.168.0.6 -j ACCEPT
iptables -A FORWARD -d 192.168.0.0/24 -i eth1 -o eth0 -j ACCEPT
iptables -A FORWARD -d 189.22.27.84 -s 192.168.0.0/24 -j ACCEPT
iptables -A FORWARD -d 201.24.152.68 -s 192.168.0.0/24 -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/24 -i eth0 -o eth1 -j ACCEPT
iptables -A FORWARD -s 201.24.152.68 -p tcp --dport 80 -d 192.168.0.6 -j ACCEPT
iptables -A FORWARD -i eth0 -p tcp --dport 3128 -j ACCEPT #SQUID
iptables -A FORWARD -i eth0 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -i eth0 -p tcp --dport 21 -j ACCEPT #FTP
iptables -A FORWARD -i eth0 -p tcp --dport 25 -j ACCEPT #SMTP
iptables -A FORWARD -i eth0 -p udp --dport 53 -j ACCEPT #DNS
iptables -A FORWARD -i eth0 -p tcp --dport 110 -j ACCEPT #POP3
iptables -A FORWARD -i eth0 -p tcp --dport 443 -j ACCEPT #HTTPS
iptables -A FORWARD -i eth0 -p tcp --dport 1433 -j ACCEPT #SQL
iptables -A FORWARD -i eth0 -p udp --dport 1434 -j ACCEPT #SQL
echo "ON.........................[ OK ]"
E este é o Squid.conf
# Porta utilizada pelo servidor para atender as requisicoes feitas a ele
http_port 192.168.0.2:3128 transparent
# Nome do servidor que aparece para o cliente
visible_hostname Server2
# Lista de palavras que, se encontradas em uma URL, irao carregar diretamente do cache local
hierarchy_stoplist cgi-bin ?
hierarchy_stoplist html ?
# Lista de palavras que nunca devem ser salvas em cache
acl QUERY urlpath_regex cgi-bin \?
acl semcache url_regex -i "/usr/local/squid/etc/nocache"
no_cache deny semcache
# Configuracao do cache
# Quantidade de memoria utilizada pelo SQUID
cache_mem 64 MB
# Tamanho maximo dos arquivos a serem armazenados em CACHE
maximum_object_size 10 MB
# Tamanho minimo dos arquivos a serem armazenados em CACHE
minimum_object_size 10 MB
maximum_object_size_in_memory 0 KB
# Tamanho minimo para reposicao de objetos armazenados
cache_swap_low 90
# Tamanho maximo para reposicao de objetos armazenados
cache_swap_high 95
#Diretorio com os arquivos de mensagens de erro
error_directory /usr/local/squid/share/errors/Portuguese
#Diretorio com os arquivos de cache do sistema
cache_dir ufs /usr/local/squid/var/cache 5000 16 256
cache_access_log /usr/local/squid/var/logs/access.log
cache_log /usr/local/squid/var/logs/cache.log
#cache_effective_user nobody
#cache_effective_group nogroup
cache_store_log /usr/local/squid/var/logs/store.log
pid_filename /var/run/squid.pid
debug_options ALL,1
client_netmask 255.255.255.255
acl apache rep_header Server ^Apache
#broken_vary_encoding allow apache
access_log /usr/local/squid/var/logs/access.log squid
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320
#---------------------------------------------------------------------------
# Liberando acesso para a equipe de T.I.
acl ip_equipe_ti src "/usr/local/squid/etc/ip_equipe_ti"
#Lista de IPs Bloqueados
acl ips_bloqueados src "/usr/local/squid/etc/ips_bloqueados"
#Bloqueio de sites por palavras
acl lista_palavra dstdom_regex "/usr/local/squid/etc/palavras_negadas"
acl lista_proxy dstdom_regex "/usr/local/squid/etc/proxy"
acl lista_pornor dstdom_regex "/usr/local/squid/etc/pornor"
#Bloqueio de sites por url
acl lista_site url_regex -i "/usr/local/squid/etc/lista_site"
#Aplicando mensagens de erro
#deny_info ERR_ACCESS_DENIED lista_site
#Bloqueando o GoogleTalk
acl blocktalk url_regex -i "/usr/local/squid/etc/google"
#Bloqueando o WebMensseger
acl webmsn url_regex -i "/usr/local/squid/etc/webmessenger"
#Bloqueando msn
acl msn dstdomain "/usr/local/squid/etc/msn_bloq"
acl msnmessenger url_regex -i /gateway/gateway.dll
acl msn2 req_mime_type -i ^application/x-msn-messenger$
#Libera mac address diretoria
acl ip_liberado_diretoria src "/usr/local/squid/etc/ip_liberado_diretoria"
#Bloqueio de maquinas a sites proibidos
acl site_restrito dstdomain "/usr/local/squid/etc/site_restrito"
acl ip_restrito src "/usr/local/squid/etc/ip_restrito"
#Bloqueio de downloads por extensão
acl download_bloqueado urlpath_regex "/usr/local/squid/etc/download_bloqueado"
#Download Liberado
acl download_liberado urlpath_regex "/usr/local/squid/etc/download_liberado"
#Libera acesso a ips da rede interna users
#acl ip_liberado_admin src "/usr/local/squid/etc/ip_liberado_admin"
acl ip_liberado_estudio src "/usr/local/squid/etc/ip_liberado_estudio"
#libera conexao.eadcon.com.br
acl aceitaurl url_regex -i "/usr/local/squid/etc/aceitaurl.txt"
acl liberaip src "/usr/local/squid/etc/liberaip.txt"
#Libera acesso a ips da interna administrativa
acl ip_liberado_users src "/usr/local/squid/etc/ip_liberado_users"
#Bloqueia Malwares
acl malware_block_list url_regex -i "/usr/local/squid/etc/malware.txt"
#Bloqueia Jogos
acl games url_regex -i "/usr/local/squid/etc/jogos"
#Bloqueia Musicas
acl music url_regex -i "/usr/local/squid/etc/musica"
#Bloqueia Blogs
acl blogs url_regex -i "/usr/local/squid/etc/blogs"
#sites liberados recepcao
acl recepcao url_regex -i "/usr/local/squid/etc/recepcao"
#Ip recepcao
acl ip_recepcao src "/usr/local/squid/etc/ip_recepcao"
#Bloqueia sites p2p
acl p2p url_regex -i "/usr/local/squid/etc/p2p"
#bloqueia Spywares
acl spywares url_regex -i "/usr/local/squid/etc/spybot.txt"
#Bloqueia Videos
acl video url_regex -i "/usr/local/squid/etc/videos"
#Liberar maquina apple do estudio
acl apple src 192.168.0.241
#Bloqueio 0800
acl 0800 src "/usr/local/squid/etc/0800"
acl sites_liberados_0800 url_regex -i "/usr/local/squid/etc/sites_liberados_0800"
acl hotmail url_regex -i "/usr/local/squid/etc/hotmail"
#Hora Segunda a Sabado
acl manha time MTWHF 7:00-8:00
acl tarde time MTWHF 12:00-14:00
acl tarde time MTWHF 18:00-22:00
#autenticação de usuários
#auth_param basic program /usr/local/bin/ncsa_auth /usr/local/squid/etc/squid_passwd
#auth_param basic children 5
#auth_param basic realm Digite sua Senha
#auth_param basic credentialsttl 2 hours
#auth_param basic casesensitive off
#acl autenticados proxy_auth REQUIRED
#------------------------------------------------------------
#acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl rede_eadcon src 192.168.0.0/255.255.255.0
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443
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 2631 #Conectividade
acl CONNECT method CONNECT
#------------------------------------------------------------
http_access allow aceitaurl
http_access allow liberaip
http_access allow ip_equipe_ti
http_access allow ip_liberado_diretoria
http_access deny ip_recepcao !recepcao
#http_access deny 0800 !sites_liberados_0800
http_access allow 0800 !p2p !lista_palavra !video !blogs !webmsn !blocktalk !lista_pornor !games !music !lista_proxy !lista_site
http_access deny ips_bloqueados
http_access deny lista_palavra !ip_liberado_estudio
http_access deny lista_proxy
http_access deny lista_pornor !ip_liberado_diretoria !ip_liberado_estudio
http_access deny blogs !ip_liberado_estudio
http_access deny p2p
http_access deny video !ip_liberado_estudio !ip_liberado_users !ip_liberado_users !apple
http_access deny download_bloqueado !ip_liberado_users !apple
http_access deny download_liberado !ip_liberado_estudio !ip_liberado_users
http_access deny lista_site !ip_liberado_estudio
http_access deny malware_block_list
http_access deny spywares !ip_liberado_estudio !ip_liberado_diretoria
http_access deny games
http_access deny music !ip_liberado_users
http_access deny webmsn
http_access deny msn !ip_liberado_users
http_access deny msnmessenger !ip_liberado_users
http_access deny msn2
http_access deny ip_restrito
http_access allow manager localhost
http_access allow rede_eadcon
http_access deny manager
http_access deny !safe_ports
http_access deny CONNECT !SSL_ports
http_access deny all
http_reply_access allow all
icp_access allow all
coredump_dir /usr/local/squid/var/cache