harryarroba
(usa OpenSuSE)
Enviado em 13/05/2010 - 17:19h
Ola pessoal, sou iniciante em linux e pesquisei muito mais muito e não consigo resolver minha situação.
trabalho em uma empresa e recentemente implantamos um server linux suse 11.2 rodando com squid e algumas regras de iptables.
fiz tudo certo, squid, iptables mas tem algo q não vaaaaaaai!!
eles usam um sistema de gestão, esse sistem roda num servidor win2008 e tem os sistemas clientes nas maquinas.
os sistemas clientes precisam da porta 6969 liberada entre cliente-internet para funcionar.
a conexao entre elas e o server win eh pela porta 3550 mas todos estao na mesma hub, o linux esta entre a internet e as maquinas.
se eu libero a internet pra um micro, ele estabiliza a conexao atraves dessa porta 6969 e funciona o sistema
se eu nao libero ele fica buscando e nao abre.
se eu por um 3g no micro e bloquear a rede ele conecta a 6969 e funciona tb!
essa conexao por esta porta eh entre o sistema e o pessoal q desenvolveu o sistema para fins de atualizacao e tals, precisa estar funcionando..
vou postar meu firewall
se puderem me ajudar eu agradeço mto!!!
#!/bin/bash
#
# Variaveis padroes
REDE=$(mysql -u root -puB2u58U4htccdfJn -e "select valorpar as tt from parametros where codigopar = '2' " baselinux)
REDE=$(echo $REDE | cut -c4-18)
echo "Range primaria ATIVA: $REDE"
REDE=192.168.0.0/24
REDE2=192.168.1.0/24
# Limpar regras
iptables -F
iptables -F INPUT
iptables -F FORWARD
iptables -t nat -F PREROUTING
iptables -t nat -F POSTROUTING
# Carrega modulos
modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
modprobe ip_conntrack_ftp
# Acesso Liberado
result=$(mysql -u root -puB2u58U4htccdfJn -e "select count(*) as tt from computador where status = 'l' " baselinux)
qtdvezes=$(echo $result | cut -c4-6)
if [ $qtdvezes -eq "0" ] ; then
echo "SEM REGRAS DE IP LIBERADO ATIVAS " ;
else
percc=`echo $qtdvezes | sed 's/^0*//'`
x=1
while [ "$x" -le "$percc" ];
do
#DEFINE O LIMITE
limitei=$(($x-1));
#pegaporta
IPLIBERADO=$(mysql -u root -puB2u58U4htccdfJn -e "select ip from computador where status = 'l' limit $limitei,$x " baselinux)
IPLIBERADO=$(echo $IPLIBERADO | cut -c4-18)
if [ -e $IPLIBERADO ] ; then echo "" ; else
#########<>############<>#############################<>############################## REGRA
iptables -t nat -A POSTROUTING -s $IPLIBERADO -o eth0 -j MASQUERADE
#########<>############<>#############################<>############################## REGRA
echo "SETANDO IP COM INTERNET LIBERADA = $IPLIBERADO "
fi
x=$((x+1));
done ;
fi
#Redirect 3128
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
####################################### PORTAS
result=$(mysql -u root -puB2u58U4htccdfJn -e "select count(*) as tt from portapc, computador where computador.id = portapc.idpc " baselinux)
qtdvezes=$(echo $result | cut -c4-6)
if [ -e $qtdvezes ] ; then echo " " ; else
percc=`echo $qtdvezes | sed 's/^0*//'`
x=1
while [ "$x" -le "$percc" ];
do
#DEFINE O LIMITE
limitei=$(($x-1));
#pegaporta
portaliberar=$(mysql -u root -puB2u58U4htccdfJn -e "select nporta as tt from computador,portapc where computador.id = portapc.idpc limit $limitei,$x " baselinux)
portaliberar=$(echo $portaliberar | cut -c4-12)
#pegaip
ipliberar=$(mysql -u root -puB2u58U4htccdfJn -e "select ip as tt from computador,portapc where computador.id = portapc.idpc limit $limitei,$x " baselinux)
ipliberar=$(echo $ipliberar | cut -c4-20)
## regra
if [ -e $ipliberar ] ; then
echo "SEM REGRAS PARA PORTAS LIBERADAS ";
else
#########<>############<>#############################<>############################## REGRA
iptables -t nat -A POSTROUTING -p TCP --dport $portaliberar -s $ipliberar -d 0/0 -j MASQUERADE
#########<>############<>#############################<>############################## REGRA
echo "LIBERANDO A PORTA $portaliberar PARA O IP $ipliberar "
fi
## REGRA
x=$((x+1));
done ;
fi
####################################### REGRAS PADROES
iptables -P INPUT DROP #BLOQUEIA TODOS PACOTES QUE TENTAREM ENTRAR
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT #ACEITA PASSAGERM DE CONEXOES ESTABELECIDAS E RELACIONADAS
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT #ACEITA PASSAGERM DE CONEXOES ESTABELECIDAS E RELACIONADAS
iptables -A INPUT -i lo -j ACCEPT #LOOPBACK PARA LOCALHOST
iptables -A FORWARD -i lo -j ACCEPT #LOOPBACK PARA LOCALHOST
iptables -A FORWARD -s $REDE -d 0/0 -m state --state NEW -j ACCEPT #REPASSE DE PACOTES PARA INTERNET
####################################### PORTAS
IPSLIBERA=$REDE
iptables -A INPUT -p TCP -s $IPSLIBERA --dport 10000 -m state --state NEW -j ACCEPT #WEBMIN
iptables -A INPUT -p TCP -s $IPSLIBERA --dport 2022 -m state --state NEW -j ACCEPT #PUTTY
iptables -A INPUT -p TCP -s $IPSLIBERA --dport 8080 -m state --state NEW -j ACCEPT #APACHE
iptables -A INPUT -p TCP -s $IPSLIBERA --dport 3128 -m state --state NEW -j ACCEPT #SQUID
iptables -A INPUT -p TCP -s $IPSLIBERA --dport 53 -m state --state NEW -j ACCEPT #SQUID
IPSLIBERA2=$REDE
#iptables -A INPUT -p TCP -s $IPSLIBERA2 --dport 2022 -m state --state NEW -j ACCEPT #LIBERA PUTTY PARA REDE EXTERNA
#iptables -A INPUT -p TCP -s $IPSLIBERA2 --dport 8080 -m state --state NEW -j ACCEPT #APACHE
#iptables -A INPUT -p TCP -s $IPSLIBERA2 --dport 10000 -m state --state NEW -j ACCEPT #WEBMIN
#iptables -A INPUT -p TCP -s $IPSLIBERA2 --dport 3306 -m state --state NEW -j ACCEPT #MYSQL
#iptables -A INPUT -p TCP -s $IPSLIBERA2 --dport 21 -m state --state NEW -j ACCEPT #FTP
#samba
iptables -t nat -A POSTROUTING -p TCP --dport 139 -s $IPSLIBERA2 -d 0/0 -j MASQUERADE
iptables -A INPUT -p tcp -s $IPSLIBERA2 --dport 139 -j ACCEPT
iptables -A INPUT -p udp -s $IPSLIBERA2 --dport 139 -j ACCEPT
iptables -A INPUT -p udp -s $IPSLIBERA2 --dport 138 -j ACCEPT
iptables -A INPUT -p udp -s $IPSLIBERA2 --dport 139 -j ACCEPT
iptables -A INPUT -p tcp -s 0/0 --dport 139 -j DROP
iptables -A INPUT -p udp -s 0/0 --dport 139 -j DROP
iptables -A INPUT -p udp -s 0/0 --dport 138 -j DROP
iptables -A INPUT -p udp -s 0/0 --dport 137 -j DROP
iptables -A OUTPUT -p tcp -s $IPSLIBERA2 --dport 139 -j ACCEPT
iptables -A OUTPUT -p udp -s $IPSLIBERA2 --dport 139 -j ACCEPT
iptables -A OUTPUT -p udp -s $IPSLIBERA2 --dport 138 -j ACCEPT
iptables -A OUTPUT -p udp -s $IPSLIBERA2 --dport 139 -j ACCEPT
#TERMINAR SERVICE
IPREDE=$(mysql -u root -puB2u58U4htccdfJn -e "select valorpar as tt from parametros where codigopar = '1' " baselinux)
IPREDE=$(echo $IPREDE | cut -c4-20)
IPINTERNET=192.168.1.2
if [ -e $IPREDE ]; then echo "REDIRECIONAMENTO POR TERMINAL SERVICE DESATIVADO" ;
else
echo "PLACA ETH0 TRABALHANDO COM O IP $IPINTERNET"
echo "IP LIBERADO PARA CONEXAO VIA TERMINAL SERVICE: $IPREDE"
iptables -A INPUT -i eth0 -p TCP --dport 3389 --syn -j ACCEPT
iptables -A INPUT -i eth0 -p UDP --dport 3389 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -s $IPINTERNET -d $IPREDE -p TCP --dport 3389 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -s $IPINTERNET -d $IPREDE -p UDP --dport 3389 -j ACCEPT
iptables -t nat -A PREROUTING -i eth0 -p TCP --dport 3389 -j DNAT --to-destination $IPREDE:3389
iptables -A FORWARD -i eth0 -d $IPREDE/32 -p TCP --dport 3389 -j ACCEPT
iptables -t nat -A PREROUTING -i eth0 -p UDP --dport 3389 -j DNAT --to-destination $IPREDE:3389
iptables -A FORWARD -i eth0 -d $IPREDE/32 -p UDP --dport 3389 -j ACCEPT ;
fi
#PARAMETROS FINAIS
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all #BLOQUEIA PING