Squid e Iptables com uma placa de rede [RESOLVIDO]

1. Squid e Iptables com uma placa de rede [RESOLVIDO]

Leonardo Gimenez
LeonardoKadina

(usa Ubuntu)

Enviado em 01/12/2009 - 16:39h

Pessoal, estou novamente com um problema no meu firewall, preciso configurar a minha internet direta em um roteador e um firewall com squid na rede todas as maquinas irão usar IP fixo então o que eu preciso é subir o iptables com o squid e assim gerenciar o trafego a internet. Já tenho um script de firewall na mesma empresa funcionando perfeitamente, só que ele rola com 2 placas de rede (eth0 com o ip de internet e eth1 com a rede local). Neste novo firewall ira somente funcionar eth0, e as maquinas irei jogar o gateway, que será o ip do meu firewall X squid. Não sei como faço!
estou mandando o meu script do firewall.
A detalhe irei fazer isso somente porque tenho um 2003 e não consegui configurar o acesso remoto a porta 3389 no Terminal Server, se puder me ajudar também e bem melhor direto com o Firewall.
Agradeço desde já pela ajuda!
Segue Script do meu Firewall!



Firewall!
-->

#! /bin/bash
iniciar(){
#Carregar moduloss
modprobe iptable_nat
modprobe ip_tables
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe iptable_filter
modprobe iptable_mangle
modprobe ipt_LOG
modprobe ip_gre
modprobe ipt_MASQUERADE
modprobe ip_nat
modprobe ip_nat_ftp
modprobe ipt_limit
printf "Modulos carreagdos.\n"
printf "*****************************ok********************************* \n"
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
printf "Limpando tabelas e setando variaveis do kernel.. \n"
printf "*****************************ok********************************* \n"
#Definir regras
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
echo "Regras definidas."
printf "*****************************ok********************************* \n"
#Abilitando comunicação entre as placas de rede.
echo 1 > /proc/sys/net/ipv4/ip_forward
printf "Roteamento ativos.\n"
printf "*****************************ok********************************* \n"
# Evitando Spoofing de Rede
echo "1" > /proc/sys/net/ipv4/conf/default/rp_filter
echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter
echo "0" > /proc/sys/net/ipv4/conf/all/accept_source_route
echo "0" > /proc/sys/net/ipv4/conf/default/accept_source_route
printf "Protecao contra Spoofing ativas.\n"
printf "*****************************ok********************************* \n"
# Evitando um Overflow de pacotes TCP
echo "1" > /proc/sys/net/ipv4/tcp_abort_on_overflow
printf "Protecao contra Overflow de pacotes TCP ativas.\n"
printf "*****************************ok********************************* \n"
# Tentando Evitar DDOS,DOS e SYN-FLOOD
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
echo "0" > /proc/sys/net/ipv4/conf/default/accept_source_route
printf "Protecao contra DDOS,DOS e SYN-FLOOD ativas.\n"
printf "*****************************ok********************************* \n"
#Protecao conta Ping da morte
printf "Protecao contra PING DA MORTE ativas.\n"
printf "*****************************ok********************************* \n"
#iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
#Proteçao contra portscan stealth.
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
printf "Protecao contra PROT SACN STEALTH ativas.\n"
printf "*****************************ok********************************* \n"
#********************************* REGRAS OUTPT ************************************
# *
#***********************************************************************************

#********************************* REGRAS INPUT ************************************
# *
#***********************************************************************************
# Abre a faixa de ip.
iptables -A INPUT -s 192.168.204.0/255.255.255.0 -j ACCEPT
#cira um masquerade.
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# Abre as portas 3389 / 22 / 21 (inclusive para a Internet):
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
# NET
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
# Impede pacotes mal formados
iptables -A INPUT -m state --state INVALID -j DROP
# Abre o trafego interno
iptables -A INPUT -i lo -j ACCEPT
printf "Abre comunicacao para interface interna ativas.\n"
printf "*****************************ok********************************* \n"
#Proxy transparente e Term. Server
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
printf "Proxtransparente ativado.\n"
printf "*****************************ok********************************* \n"
#***********************************************************************#
# echo "Direcionando Terminal Server" *
#***********************************************************************#

#******************************** REGRAS FORWARD ***********************************
# *
#***********************************************************************************
iptables -A FORWARD -p tcp -i eth0 --dport 2000 -j ACCEPT
iptables -A FORWARD -p tcp -i eth0 --dport 8080 -j ACCEPT
iptables -A FORWARD -p tcp -i eth0 --dport 5900 -j ACCEPT
iptables -A FORWARD -p tcp -i eth0 --dport 5222 -j ACCEPT
iptables -A FORWARD -p tcp -i eth0 --dport 3389 -j ACCEPT
iptables -A FORWARD -p tcp -i eth0 -s 192.168.204.0/24 --dport 3128 -j ACCEPT
iptables -A FORWARD -p tcp -i eth0 -s 192.168.204.0/24 --sport 3128 -j ACCEPT
iptables -A FORWARD -p tcp -i eth0 --dport 1719 -j ACCEPT
iptables -A FORWARD -p tcp -i eth0 --sport 1723 -j ACCEPT
iptables -A FORWARD -p tcp -i eth0 --dport 1723 -j ACCEPT
iptables -A FORWARD -p tcp -i eth0 --dport 4156 -j ACCEPT
iptables -A FORWARD -p tcp -i eth0 --dport 809 -j ACCEPT
iptables -A FORWARD -p tcp -i eth0 --dport 143 -j ACCEPT
iptables -A FORWARD -p tcp -i eth0 --sport 143 -j ACCEPT
iptables -A FORWARD -p tcp -i eth0 --dport 443 -j ACCEPT
iptables -A FORWARD -p tcp -i eth0 --sport 443 -j ACCEPT
iptables -A FORWARD -p tcp -i eth0 --dport 110 -j ACCEPT
iptables -A FORWARD -p tcp -i eth0 --sport 110 -j ACCEPT
iptables -A FORWARD -p udp -i eth0 --dport 53 -j ACCEPT
iptables -A FORWARD -p tcp -i eth0 --sport 53 -j ACCEPT
iptables -A FORWARD -p tcp -i eth0 -s 192.168.204.0/24 --dport 53 -j ACCEPT
iptables -A FORWARD -p tcp -i eth0 -s 192.168.204.0/24 --sport 53 -j ACCEPT
iptables -A FORWARD -p tcp -i eth0 --dport 80 -j ACCEPT
iptables -A FORWARD -p tcp -i eth0 --sport 80 -j ACCEPT
iptables -A FORWARD -p tcp -i eth0 -s 192.168.204.0/24 --dport 80 -j ACCEPT
iptables -A FORWARD -p tcp -i eth0 -s 192.168.204.0/24 --sport 80 -j ACCEPT
iptables -A FORWARD -p tcp -i eth0 --dport 25 -j ACCEPT
iptables -A FORWARD -p tcp -i eth0 --sport 25 -j ACCEPT
iptables -A FORWARD -p tcp -i eth0 --dport 47 -j ACCEPT
iptables -A FORWARD -p tcp -i eth0 --sport 47 -j ACCEPT
iptables -A FORWARD -p tcp -i eth0 --dport 22 -j ACCEPT
iptables -A FORWARD -p tcp -i eth0 --dport 21 -j ACCEPT
iptables -A FORWARD -p tcp -i eth0 --dport 20 -j ACCEPT
iptables -A FORWARD -p tcp -i eth0 --sport 21 -j ACCEPT
iptables -A FORWARD -p tcp -i eth0 --dport 25 -j ACCEPT
iptables -A FORWARD -p tcp -i eth0 --sport 25 -j ACCEPT
printf "Fechando as demais portas. \n"
printf "*****************************ok********************************* \n"
iptables -A FORWARD -p tcp -i eth0 -j DROP
iptables -A FORWARD -p udp -i eth0 -j DROP
iptables -A INPUT -p tcp -i eth0 -j DROP
iptables -A INPUT -p udp -i eth0 -j DROP
printf "Regras de firewall ativadas.\n"
printf "*****************************ok********************************* \n"
}
status(){
iptables -L
}
parar(){
iptables -F
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
printf "Regras de firewall desativadas.\n"
}
case "$1" in
"start") iniciar ;;
"stop") parar ;;
"status") status ;;
"restart") parar; iniciar ;;
*) echo "Use os parametros stop|start|status|restart"
esac



  


2. Re: Squid e Iptables com uma placa de rede [RESOLVIDO]

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 01/12/2009 - 16:58h

Olha, com uma placa só não tem jeito (q eu saiba) pq o iptables não aceita alias (interface virtual, ex.: eth0:0, eth0:1...), q é a única maneira d t 2 vias em uma placa d rede só.


3. Re: Squid e Iptables com uma placa de rede [RESOLVIDO]

Leonardo Gimenez
LeonardoKadina

(usa Ubuntu)

Enviado em 01/12/2009 - 17:32h

Então será que eu consigo direcionar 2 placas?
Uma usar o ip interno com o gateway do roteador que não tem bloqueio e a outra com outro ip interno sem gateway?
Assim teria 2 placas de rede uma liberada com (eth0)gateway 192.168.204.16 e a outra so com o ip e mascara?

exemplo
eth0
IP 192.168.204.7
mask 255.255.255.0
gateway 192.168.204.16

e a outra

eth1

IP 192.168.204.8
mask 255.255.255.0
gateway 0.0.0.0


PS.
Ou seria melhor ainda se eu conseguisse liberar a porta 3389 neste script?!!!!!!(Se puder me ajudar nesta parte?)


4. Re: Squid e Iptables com uma placa de rede [RESOLVIDO]

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 01/12/2009 - 20:09h

Bom... se vc quiser fazer um alias, dá pra separar os pacotes, mas por IP e não por interface (é aonde q o iptables não aceita). Nas suas regras, pra liberar a porta 3389, acrescente essa regra na parte d INPUT do seu script:

iptables -A INPUT -p tcp --dport 3389 -j ACCEPT

Essa regra funciona se o banco d dados SQL (porta 3389) estiver no servidor d iptables.


5. Re: Squid e Iptables com uma placa de rede [RESOLVIDO]

Fernando Cesar Vaini
vaini

(usa Debian)

Enviado em 01/12/2009 - 22:11h

Da pra fazer sim o que vc quer, o detalhe é que vc nao podera mudar a rede. Por exemplo, se vc pega o ip 192.168.0.100 do seu router, vc distribuira ips 192.168.0.2, 192.168.0.3, etc, etc, sempre apontando para o gateway 192.168.0.100...se tivesse duas placas de rede, poderia pegar ip 192.168.0.100 e distribuir 10.1.1.xxx

o truque esta na sua regra do iptables...essa aqui

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

vc terá que alterar e deixar da seguinte forma:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -p tcp -s 192.168.0.0/24 --destination-port 80 -j DNAT --to-destination 192.168.0.100:3128

Nesse exemplo acima, 192.168.0.100 seria o ip da sua eth0 que no seu caso sera a entrada e saida da net...
testa ai e poste o resultado...tenho servers rodando assim em tres clientes, e funciona perfeitamente...


6. Infelismente ainda nao não deu

Leonardo Gimenez
LeonardoKadina

(usa Ubuntu)

Enviado em 02/12/2009 - 23:42h

Caros tentei das duas formas e mesmo assim não rolou!

Não sei porque, vejam só.
Se eu configuro o router depois somente uma placa de rede(eth0) e depois jogo a linha no script que voce falou Vaini mas não rolou!
Se faço direto o firewall com 2 placas como esta funcionando e libero no script a porta 3389 como voce falou Renato também não rolou!

Vou postar amanhã os scripts e por favor se puderem me ajudar ficarei grato!





7. Sem contato

Leonardo Gimenez
LeonardoKadina

(usa Ubuntu)

Enviado em 04/12/2009 - 00:04h

Infelizmente hoje não consegui nem por a mão neste Firewall mas amanhã irei postar todos os dois!

Desculpem-me!


8. Resolvido de outra forma

Leonardo Gimenez
LeonardoKadina

(usa Ubuntu)

Enviado em 11/12/2009 - 10:30h

Pessoal tentei de todas as formas e não deu certo em nenhuma, porém conversando com o meu cliente (que a maior necessidade era agilizar o trafego na rede) disse para o mesmo contratar um novo link.

Assim utilizarei o firewall normal com 2 placas eth0 e eth1!


Agradeço a todos que me ajudaram!

Leonardo Gimenez






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts