Firewall para Squid liberando somente detrminadas portas
Pessoal eu tenho um servidor que ta rondando com todas as portas abertas , eu gostaria de fechar todas e liberar somente as necessarias como: 21,443,110,25,80,53
eu uso o squid na porta 3128
eu fecho as portas desta forma:
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
eu gostaria de saber como posso fazer para que libere as portas sitadas acima n firewall estando com squid rodando ?
grato
Re: Firewall para Squid liberando somente detrminadas portas
Re: Firewall para Squid liberando somente detrminadas portas
Caro, você pode deixar as políticas INPUT e FORWARD como DROP e OUTPUT como ACCEPT.
As portas 21,25,53,110 você faz nat.
Não aconselho você mascarar a porta 80, assim você o pessoal vai navegar sem proxy.
Faça assim.
# Define políticas de acesso padrão
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
# Habilita todas a conexões previamente aceitas (estados Estabelicida e Relacionada)
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# Habilita apenas as portas que você acha necessário
iptables -t nat -A POSTROUTING -o $EXT_IF -m multiport -p tcp --dports 20,21,22,25,53,110,443 -j MASQUERADE
Onde $EXT_IF é sua interface externa. Desta maneira você terá que marcar o proxy no
browser das máquinas. Para deixar o proxy transparente basta adicionar uma regra no iptables.
Espero ter ajudado.
Re: Firewall para Squid liberando somente detrminadas portas
Cristinanff ta aqui a conf que fiz conforme vc citou aqui
#!/bin/sh
# Define políticas de acesso padrão
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
# Habilita todas a conexões previamente aceitas (estados Estabelicida e Relacionada)
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# Habilita apenas as portas que você acha necessário
iptables -t nat -A POSTROUTING -o eth0 -m multiport -p tcp --dports 20,21,1024,25,53,110,443 -j MASQUERADE
# Proxy transparente
iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth1 -s 192.168.0.0/24 -j REDIRECT --to-port 3128
# Bloquear o input na porta 3128 para todos os endereços que não sejam o da rede interna.
iptables -A INPUT -p tcp -s ! 192.168.0.0/24 --dport 3128 -j REJECT
o que esta acontecendo e que quando rodo este script as maquina nao pegam mais ip do servidor que roda tb DHCP. e tb nao conseguem usar o Outlook.
quando eu adiciona esta regra
iptables -A INPUT -i ! eth0 -j ACCEPT
as maquinas passam a pegar Ip mais nao conseguem usar o Outlook
acima ta citado a posta 110 e 25 nao to entendendo o pq nao ta funcionando o Outlook
to tento dor de cabeca com iptables nunca pensei que era tao complicado assim
uma coisa aparentemente simples rs
abraco
Re: Firewall para Squid liberando somente detrminadas portas
Vou mandar um script que fiz aqui pra você.
Crio que ficou faltando alguns detalhes no outro que tinha te mandado.
Código :
#!/bin/sh
### Carrega módulos de connection tracking
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_conntrack_irc
modprobe ip_nat_ftp
### Define políticas de acesso padrão
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
### Limpa regras e cadeias de usuário prévias
iptables -X
iptables -F
iptables -t nat -F
### Habilita repasse de pacotes
echo 1 > /proc/sys/net/ipv4/ip_forward
### Interface externa
EXT_IF=eth0
### Interface Interna
INT_IF=eth1
### Rede interna
INT_NET=192.168.0.0/24
### Habilita comunicação interna entre processos locais
iptables -A INPUT -i lo -j ACCEPT
### Habilita acesso pela rede interna a esse host
iptables -A INPUT -i $INT_IF -j ACCEPT
iptables -A FORWARD -i $INT_IF -j ACCEPT
### Habilita SSH externo - use isso se for acessar o servidor externamente
iptables -A INPUT -i $EXT_IF -m tcp -p tcp --dport 22 -j ACCEPT
### Habilita todas a conexões previamente aceitas (estados Estabelicida e Relacionada)
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
### Liberar acesso externo às portas de Mail(25), Pop-3(110), Dns(53(tcp e udp)), Https(443), Gmail(465,955)
iptables -t nat -A POSTROUTING -o $EXT_IF -m multiport -p tcp --dports 20,21,22,25,53,110,443,465,995 -j MASQUERADE
iptables -t nat -A POSTROUTING -o $EXT_IF -m multiport -p udp --dports 20,21,53,443 -j MASQUERADE
### Proxy transparente
iptables -t nat -A PREROUTING -p tcp --dport 80 -i $INT_IF -s $INT_NET -j REDIRECT --to-port 3128
O script está bem comentado, neste caso você não precisará da regra "iptables -A INPUT -p tcp -s ! 192.168.0.0/24 --dport 3128 -j REJECT" pois no script acima você já está tratando isso. Repare que apenas foi liberado acesso interno a $INT_IF ou seja, a sua interface interna "eth1". O único acesso de fora pra dentro liberado no script é ssh na porta 22. Se você não quiser abrir ssh basta comentar a linha.
Qualquer coisa grita aí velho.
Abraços e tenha um bom dia.
:mrgreen: