Buckminster
(usa Debian)
Enviado em 23/04/2017 - 11:48h
Tenta essa regra abaixo no terminal:
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128
e testa sem reiniciar a máquina.
Mas depois tu deverá fazer um script do Iptables para o redirecionamento ficar permanente. No terminal as regras do Iptables funcionam somente até reiniciar a máquina.
Aqui tem uma configuração básica do Iptables:
https://www.vivaolinux.com.br/dica/Configuracao-basica-do-IPtables
Mas tu pode usar o seguinte script:
#!/bin/bash
#Desabilitando o tráfego entre as placas
#################################
echo 0 > /proc/sys/net/ipv4/ip_forward
#
##Apagando e restaurando as chains e tabelas
######################################
iptables -Z # Zera as regras de todas as chains
iptables -F # Remove as regras de todas as chains
iptables -X # Apaga todas as chains
##Proteção contra ping, SYN Cookies, IP Spoofing e proteções do kernel
#
##########################################################
echo 1 > /proc/sys/net/ipv4/tcp_syncookies # Syn Flood (DoS)
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts # Port scanners
echo 0 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses # Sem resposta remota
for i in /proc/sys/net/ipv4/conf/*; do
echo 0 > $i/accept_redirects # Sem redirecionar rotas
echo 0 > $i/accept_source_route # Sem traceroute
echo 1 > $i/log_martians # Loga pacotes suspeitos no kernel
echo 1 > $i/rp_filter # Ip Spoofing
echo 1 > $i/secure_redirects; done # Redirecionamento seguro de pacotes
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all # Sem ping e tracert
#
# Definindo políticas padrões
######################
iptables -P INPUT DROP # iptables a política padrão da chain INPUT é proibir tudo
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
#
# Liberando a Loopback
####################
iptables -A INPUT -i lo -j ACCEPT
#
## Regras de segurança na internet e acessos
#####################################
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state NEW ! -i ethx -j DROP # Interface de entrada da internet
iptables -A FORWARD -m state --state NEW ! -i ethx -j DROP # Interface de entrada da internet
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP
#
# Redirecionamento para o Squid e mascaramento/compartilhamento
###########################################
iptables -t nat -A PREROUTING -i ethx -p tcp --dport 80 -j REDIRECT --to-port 3128 # Interface da rede interna
iptables -t nat -A POSTROUTING -o ethx -j MASQUERADE # Interface de entrada da internet
#
# A partir daqui você pode inserir as regras de liberação e bloqueio, não esqueça habilitar no final o tráfego entre as placas.
#
# Habilitando o tráfego entre as placas
##########################
echo 1 > /proc/sys/net/ipv4/ip_forward
#
Quanto à execução do script eu sempre faço assim, como root:
Crio o script em /etc/init.d/ (Debian e Ubuntu):
#vim /etc/init.d/firewall.sh << eu usei o vim, você usa o teu editor de texto preferido e pode colocar outro nome para o script (aconselhável).
Coloco as regras dentro.
Salvo e saio.
Dou permissão de execução:
# chmod +x /etc/init.d/firewall.sh
E coloco em /etc/rc.local (Debian e Ubuntu) antes de 'exit 0', assim:
...
/etc/init.d/firewall.sh start
exit 0
Dessa maneira o iptables inicia junto com o sistema e você pode iniciar, parar e reiniciar no terminal com o comando:
#/etc/init.d/firewall.sh start, stop ou restart.