Vamos configurar um firewall no servidor proxy para bloquear acessos externos na rede. As conexões pela rede local serão todas permitidas. Deixaremos abertas apenas algumas portas para que seja feito acesso remoto. Caso necessário , você poderá personalizá-lo, abrindo por exemplo a porta 80, caso hospede algum site. Comece criando um arquivo firewall no diretório /etc:
# vi /etc/firewall
Digite o seguinte script:
firewall_start(){
# Essa linha abre a rede local, ajuste-a conforme a sua classe de IPs
iptables -A INPUT -s 192.168.1.0/255.255.255.0 -j ACCEPT
# Portas abertas para a Internet
# Aqui estão abertas as portas 22777 e 10000 que usaremos
# para acesso remoto por SSH e por Webmin.
# Você pode adicionar portas copiando a linha e alterando o número.
iptables -A INPUT -p tcp –destination-port 22777 -j ACCEPT
iptables -A INPUT -p tcp –destiantion-port 10000 -j ACCEPT
# Descomente a linha abaixo para impedir ‘ping’ para seu servidor
# echo “1” > /proc/sys/net/ipv4/icmp_echo_ignore_all
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
echo “1” > /proc/sys/net/ipv4/tcp_syncookies
echo “1” > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
iptables -A INPUT -p udp –dport 33435:33525 -j DROP
iptables -A FORWARD -p icmp –icmp-type echo-request -m limit –limit 1/s -j ACCEPT
iptables -A FORWARD -p tcp -m limit –limit 1/s -j ACCEPT
iptables -A FORWARD -m state –state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p tcp –tcp-flags SYN,ACK,FIN,RST RST -m limit –limit 1/s -j ACCEPT
iptables -A FORWARD –protocol tcp –tcp-flags ALL SYN,ACK -j DROP
iptables -A FORWARD -m unclean -j DROP
iptables -A INPUT -m state –state INVALID -j DROP
iptables -N VALID_CHECK
iptables -A VALID_CHECK -p tcp –tcp-flags ALL FIN,URG,PSH -j DROP
iptables -A VALID_CHECK -p tcp –tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
iptables -A VALID_CHECK -p tcp –tcp-flags ALL ALL -j DROP
iptables -A VALID_CHECK -p tcp –tcp-flags ALL FIN -j DROP
iptables -A VALID_CHECK -p tcp –tcp-flags SYN,RST SYN,RST -j DROP
iptables -A VALID_CHECK -p tcp –tcp-flags SYN,FIN SYN,FIN -j DROP
iptables -A VALID_CHECK -p tcp –tcp-flags ALL NONE -j DROP
iptables -A INPUT -p tcp –syn -s 127.0.0.1/255.0.0.0 -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
# Fecha as portas udp de 1 a 1024, abre para o localhost
iptables -A INPUT -p udp -s 127.0.0.1/255.0.0.0 -j ACCEPT
iptables -A INPUT -p udp –dport 1:1024 -j DROP
iptables -A INPUT -p udp –dport 59229 -j DROP
iptables -A INPUT -p tcp –syn -j DROP
/etc/skel-fix/firewall-msg
}
firewall_stop(){
iptables -F
iptables -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
}
case “$1” in
“start”)
firewall_start
;;
“stop”)
firewall_stop
echo “O kurumin-firewall está¡ sendo desativado”
sleep 2
echo “ok.”
;;
“restart”)
echo “O kurumin-firewall está¡ sendo desativado”
sleep 1
echo “ok.”
firewall_stop; firewall_start
;;
*)
iptables -L -n
esac
Salve e saia do arquivo. Agora é necessário dar permissão de execução do arquivo e adicioná-lo na inicialização da máquina:
# chmod +x /etc/firewall
# vi /etc/rc.d/rc.local
Adicione a seguinte linha antes da execução do firewall:
/etc/./firewall
Salve e saia. Agora reexecute o rc.local para ativar o firewall:
# /etc/rc.d/./rc.local
O passo seguinte é a configuração do SSH.
O protocolo SSH permite que você acesse seu servidor de qualquer lugar do mundo, como se estivesse na frente da própria máquina, porém seu uso sem cuidado pode abrir perigosas brechas de segurança. Configuraremos o SSH em uma porta diferente da padrão (22), usaremos a porta que já deixamos aberta no firewall a 22777 e só permitiremos o acesso de um usuário específico que criaremos. Ao se conectar remotamente com esse usuário, chamada ‘su’ , pode ser feita para tomar total controle da maquina. Essas políticas dificultam bastante qualquer invasão.
Primeiro crie um usuário para o SSH, eu uso ‘remoto’, mas você pode criar o usuário que quiser, digite:
# adduser remoto
(agora defina uma senha)
# passwd remoto
Editaremos o arquivo de configuração do SSH:
# vi /etc/ssh/sshd_config
Procure pela linha port e altere para 22777. Logo abaixo adicione a seguinte linha:
allowusers remoto
ou o nome do usuário que você escolheu.
Salve e saia do arquivo (ESC + ZZ).
Inicie o SSH:
# /etc/init.d/ssh start
Através do utilitário ‘ntsysv’ , ative o SSH. Outra forma de acesso remota é o Webmin, onde é possível ter total controle da máquina por http… não será necessária nenhuma configuração especial nele, apenas verificar se está ativo como serviço, através do utilitário ‘ntsysv’. Caso ele não esteja disponível na lista, adicione a linha ‘/etc/init.d/webmin start’ no /etc/rc.d/rc.local.
Usaremos o Webmin para configurar o DNS para redelocal.
O DNS que criaremos servirá apenas como repetidor do DNS do seu provedor. Ele é bastante útil caso você queira criar um servidor DHCP , para não precisar configurar os IPs do PCs clientes. Em nosso caso ele será configurado manualmente nos PCs clientes, apenas evite que você precise decorar o DNS do seu provedor e configurá-lo em todos os computadores.
Digite o seguinte comando para certificar que o webmin está ativo:
# /etc/init.d/webmin start
Agora abriremos o webmin. Se está no próprio servidor, digite no seu navegador:
https://localhost:10000
Caso esteja em outro micro, substitua localhost pelo IP do servidor. Se não abrir, o serviço SSL pode estar inativo… utilize então http ao invés de https.
Informe o usuário root e sua senha. Clique em servidores e depois em bind DNS. Aparecerá uma tela dizendo que não foi encontrado o arquivo /etc/resolv.conf .Deixe habilitada a primeira opção e confirme.
Seu DNS está configurado… talvez seja necessário ativá-lo como qualquer outro serviço e você pode fazer isso através do próprio Webmin. O seu servidor está pronto, agora você terá que configurar os IPs das máquinas clientes de acordo com as regras que foram estabelecidas no Squid. Use o IP do seu servidor para Gateway e DNS. Não é necessário fazer a configuração de proxy nos navegadores, já que estamos usando proxy transparente… toda a navegação dos PCs clientes obrigatoriamente passam pelas regras do Squid.
Sua rede ainda pode ser aprimorada instalando um servidor DHCP, para evitar a configuração de IPs nos outros computadores. Você pode ainda instalar o Sarg para gerar relatórios de acessos ou ainda configurar autenticação por usuário no Squid.
Espero estar ajudando.
Deixem seus comentários,
Obrigado!
Esse foi mais um post do Blog do Curso de Hardware Microcamp.
Faça um curso completo na melhor escola do Brasil >> microcamp.com.br