Squid 3.4.8 + SSL + Firewall + DNS + DHCP no Debian Jessie (v.8)
Este artigo é resultado de semanas em testes e o servidor está em perfeito funcionamento, gerenciando uma estrutura de Ti bastante exigente, que precisa de flexibilidade nas regras de acesso à internet e alta segurança. Ficou longo, porém, tentamos explicar detalhadamente todos os passos para que não haja erro. Foi usado Debian 8 (Jessie), mas funciona em qualquer distribuição derivada do Debian, testamos em máquinas reais com Ubuntu e Mint. Simples: LEIA!
[ Hits: 67.365 ]
Por: Riccelli Reis de Oliveira em 07/03/2016
127.0.0.1 localhost.servidor.com localhost
192.168.0.1 servidor.servidor.com servidor
192.168.0.1 ns1.servidor.com ns1
127.0.1.1 servidor.servidor.com servidor
127.0.1.1 ns1.servidor.com ns1
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
#!/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin ### BEGIN INIT INFO # Provides: firewall # Required-Start: $local_fs $remote_fs $network $syslog # Required-Stop: $local_fs $remote_fs $network $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start Firewall at boot time # Description: Enable service provided by Firewall Daemon. ### END INIT INFO export TX="echo -e" default(){ $TX "" $TX ">>>>>>>>>>>>>>>>>> Iniciando Script de Firewall <<<<<<<<<<<<<<<<<< \n" $TX "Exportar Variaveis................................................" export IFNET=eth0 export IFLOC=eth1 export MP=/sbin/modprobe export RMM="$(which rmmod)" export IPT=/sbin/iptables export SVC=/etc/init.d export IP4=/proc/sys/net/ipv4 export IP4C=/proc/sys/net/ipv4/conf export NETW=192.168.0.0/24 $TX ".................................................................. OK \n" } start() { echo "Definir politicas padrao........................................." $IPT -P INPUT DROP $IPT -P FORWARD DROP $IPT -P OUTPUT DROP $TX ".................................................................. OK \n" $TX "Desbloquear RP_Filter............................................." if [ -e $IP4C/all/rp_filter ]; then for f in $IP4C/*/rp_filter; do $TX "0" > $f done fi $TX ".................................................................. OK \n" $TX "Bloquear tudo que for desnecessário............................" $IPT -p tcp --dport 3128 -j DROP $IPT -A INPUT -m iprange --src-range 192.168.1.1-192.168.255.254 -j DROP $TX ".................................................................. OK \n" $TX "Direcionar para Proxy-Cache......................................." $IPT -t nat -A PREROUTING -i $IFLOC -s $NETW -p tcp --dport 80 -j REDIRECT --to-port 3180 $IPT -t nat -A PREROUTING -i $IFLOC -s $NETW -p tcp --dport 443 -j REDIRECT --to-port 31443 $TX ".................................................................. OK \n" $TX "Compartilhar conexao.............................................." $IPT -t nat -A POSTROUTING -o $IFNET -j MASQUERADE if [ -e $IP4/ip_forward ]; then $TX "1" > $IP4/ip_forward else $TX "Erro ao habilitar Forward!! Falha Grave no sistema................" fi $IPT -A FORWARD -s $NETW -j ACCEPT $IPT -A FORWARD -d $NETW -j ACCEPT $TX ".................................................................. OK \n" $TX "Permitir Trafegos de entrada e Saida......................................" $IPT -A INPUT -i lo -j ACCEPT $IPT -A INPUT -s $NETW -j ACCEPT $IPT -P OUTPUT -j ACCEPT $TX ".................................................................. OK \n" $TX " " $TX ">>>>>>>>>>>>>>>>>>>>>> Firewall Iniciado!! <<<<<<<<<<<<<<<<<<<<<< \n" } stop(){ $TX "Limpar todas as regras de firewall..............................." export IPT=/sbin/iptables export SVC=/etc/init.d $IPT -X $IPT -F # Zerar contadores $IPT -Z # Definir politicas padrao $IPT -P INPUT DROP $IPT -P FORWARD DROP $IPT -P OUTPUT DROP $TX ".................................................................. OK \n" $TX "Desfazer Compartilhamento........................................." # Desativar trafego entre as placas de rede $TX 0 > $IP4/ip_forward # Ativar rp_filter if [ -e $IP4C/all/rp_filter ]; then for f in $IP4C/*/rp_filter; do $TX "1" > $f done # Reiniciar servico de rede $SVC/networking restart fi $TX ".................................................................. OK \n" $TX ">>>>>>>>>>>>>>>>>>>>>> Firewall Parado!!! <<<<<<<<<<<<<<<<<<<<<< \n" } case "$1" in inicio) while true; do default break done ;; start) while true; do default start break done ;; stop) while true; do stop break done ;; restart) while true; do stop default start break done ;; esac exit 0
Chain PREROUTING (policy ACCEPT) target prot opt source destination Chain INPUT (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain POSTROUTING (policy ACCEPT) target prot opt source destination # iptables -t nat -L Chain PREROUTING (policy ACCEPT) target prot opt source destination REDIRECT tcp -- anywhere anywhere tcp dpt:http redir ports 3180 REDIRECT tcp -- anywhere anywhere tcp dpt:https redir ports 31443 Chain INPUT (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain POSTROUTING (policy ACCEPT) target prot opt source destination
Bloqueando Windows Live Messenger com Squid (Debian ou Ubuntu)
Proxy Squid com autenticação + Sarg + Webmin
Destrinchando a compilação do Squid
Identificando usuários Squid com o IDENTD
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
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
É cada coisa que me aparece! - não é só 3% (1)
Alguma pessoa pode me ajudar com drriver Core i3 7020u (Debian 12)? (2)
Mikrotik não mostra bytes nem packtes (1)
Melhores Práticas de Nomenclatura: Pastas, Arquivos e Código [RESOLVID... (4)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta