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: 69.718 ]
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
Squid - Configuração básica, funcional e limpa
Bloqueando o Messenger com iptables e Squid
A verdade sobre as ACLs do Squid
Squid + proxy transparente + autentificação + SSL
O Journal no Linux para a guarda e consulta de logs do sistema
A evolução do Linux e as mudanças que se fazem necessárias desde o seu lançamento
Maquina modesta - a vez dos navegadores ferrarem o usuario
Fscrypt: protegendo arquivos do seu usuário sem a lentidão padrão de criptograr o disco
Discos que não instalam o sistema por erro MBR/GPT no Linux
Hospedagem de Mangás com Kavita e Docker para Acesso Remoto via Tailscale
Aplicar tema e ícones do Ubuntu Cinnamon no Arch Linux sem AUR
Continuando meus tópicos anteriores (6)
Configurar cloudflare via terminal (1)
Abrir uma Url Windows/Wininet pelo Ubuntu em C++ (1)









