Said-Dias
(usa Ubuntu)
Enviado em 26/06/2012 - 00:25h
Boa noite a todos,
É meu primeiro tópico e também sou novato em linux (ubuntu)
Tenho um servidor(ubuntu) aqui na empresa, ja peguei ele rodando , o antigo funcionário de cuidava disso pediu para sair, então peguei o lugar dele.
O servidor executa , apache2, dhcpd, firewall e bind9
nosso firewall bloqueia todas as conexões, quando se tenta acessar a internet o o sistema redireciona o usuário para uma pagina web, nesse site é pedido um usuario e uma senha, se os dados conferem um script (autoriza.sh) é executado liberado o IP para navegar.
O apache esta na porta 80
## /etc/apache2/ports.conf
Listen 80
<IfModule mod_ssl.c>
Listen 443
</IfModule>
esse script libera para acessar a internet
##/var/www/cgi-bin/autoriza.sh
#!/bin/bash
PATH=/bin:/usr/bin:/sbin:/usr/sbin
. ./config.sh
echo -e "Content-type: text/html\n"
if [ ! "`echo $HTTP_REFERER | grep 'altecnologic.com.br'`" ]; then
echo "`date +%Y-%m-%d\ %H:%M:%S`: $REMOTE_ADDR: referer invalido: $HTTP_REFERER" >> $BDIR/log/autoriza.log
echo "<head><meta http-equiv=\"refresh\" content=\"0;url=$LOGIN\"></head>"
exit
fi
awkcmd="/^$REMOTE_ADDR / { print \$3 }"
mac=`sudo arp -n | awk "$awkcmd"`
bin/sessoes/$REMOTE_ADDR
iptables -t nat -I altecnologic -s $REMOTE_ADDR -j ACCEPT
iptables -I altecnologic -s $REMOTE_ADDR -j ACCEPT
iptables -I altecnologic -d $REMOTE_ADDR -j ACCEPT
Script Firewall
#/etc/firewall.conf
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i lo -j ACCEPT
-A FORWARD -i lo -j ACCEPT
-A INPUT -m state --state INVALID -j DROP
-A INPUT -p icmp -m icmp --icmp-type 0 -m length --length 30:1100 -m limit --limit 4/sec -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 0 -j DROP
-A INPUT -p icmp -m icmp --icmp-type 8 -m length --length 30:1100 -m limit --limit 4/sec -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j DROP
-A INPUT -p icmp -j ACCEPT
-A INPUT -p tcp --dport 2250 -j ACCEPT
-A INPUT -p tcp -m multiport --dports 22,53,67,80,953 -j ACCEPT
-A INPUT -p udp -m multiport --dports 53,67,80,953 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#
#####################################################################
### Inicio das configuracoes para o ALTECNOLOGIC na tabela filter ###
#####################################################################
#
# Cria a chain ALTECNOLOGIC na tabela filter
-N ALTECNOLOGIC
# Redireciona o resto do FORWARD (trafego entrante e sainte) para ALTECNOLOGIC
-A FORWARD -j ALTECNOLOGIC
# Permite acesso livre ao login.ALTECNOLOGIC.com.br
-A ALTECNOLOGIC -s 187.17.96.84 -j ACCEPT
-A ALTECNOLOGIC -d 187.17.96.84 -j ACCEPT
# Bloqueia o resto
-A ALTECNOLOGIC -j DROP
#############################################################
### Final das configuracoes para o AltecnetCard na filter ###
#############################################################
#
COMMIT
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -o eth2 -j MASQUERADE
##################################################################
### Inicio das configuracoes para o ALTECNOLOGIC na tabela nat ###
##################################################################
#
# Cria a chain ALTECNOLOGIC na tabela nat
-N ALTECNOLOGIC
#
# Redireciona o resto da PREROUTING (trafego sainte) para ALTECNOLOGIC
-A PREROUTING -i eth1 -j ALTECNOLOGIC
# Permite acesso livre ao login.ALTECNOLOGIC.com.br
-A ALTECNETCARD -d 187.17.96.84 -j ACCEPT
# Captura pacotes DNS e HTTP
-A ALTECNOLOGIC -p tcp -m multiport --dports 53,80 -j REDIRECT
-A ALTECNOLOGIC -p udp -m multiport --dports 53,80 -j REDIRECT
-A ALTECNOLOGIC -p tcp --dport 8000 -j REDIRECT --to 80
-A ALTECNOLOGIC -p tcp --dport 8080 -j REDIRECT --to 3128
#################################################################
### Final das configuracoes para o ALTECNOLOGIC na tabela nat ###
#################################################################
#
COMMIT
Ate aqui esta tudo bem o sistema funciona perfeitamente.
Mas preciso colocar o squid para funcinar. Mas ele se recusa a trabalhar junto com esse firewall ou com o apache
Fiz um teste e parei os serviços apache e firewall.
depois dos serviços parados executei esse script
#!/bin/bash
modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE
echo "Transferindo pacotes para o proxy SQUID..."
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 3128 -j REDIRECT --to-port 80
Ai o squid funciona e gera todos os log.
mas mesmo colocando no meu firewall "iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 3128 -j REDIRECT --to-port 80" ele nao gera os logs.
Para nao deixar o topico muito longo nao colocar o squid.conf, mas se precisarem eu post aqui.
podem me ajudar?