rkallai
(usa Debian)
Enviado em 27/07/2011 - 20:56h
Boa noite, pessoal.
Estou com um problema meio complexo ao meu ver. Vou tentar descrever o cenário:
Em uma empresa, vamos chamar de cliente A, existe uma rede em operaçao, com endereço 192.168.0.0/24. Uma empresa filiada, a empresa B, precisa ser integrada a esta rede. A solução adotada foi instalar um link PPP de rádio, com um router na empresa B fazendo NAT para a rede interna, que é 192.168.1.0/24. Na porta eth0 (WAN) foi conectado o rádio, com IP 192.168.0.80, e na porta eth1, a LAN com IP 192.168.1.1 e um DHCP rodando neste roteador, distribuindo os IPs de final 51 a 100.
Apliquei um script adaptado de um firewall que uso normalmente a este LAN-to-LAN e tenho internet, emails, todo tipo de acesso e também um sistema com BD Oracle rodando, tudo funcionando certinho. Porém, um sistema que utiliza o SQL da Microsoft não está funcionando. Não localiza o banco de dados por nada.
Abaixo segue o script adaptado:
echo "Iniciando o Firewall!"
#
# Variaveis de Ambiente
INTER="eth0"
INTERIP="192.168.0.80/24"
UNIVERSO="0.0.0.0/0"
PALTA="1024:65535"
MOD="/sbin/modprobe"
IPT="iptables"
LO="127.0.0.1"
#
INTRA="eth1"
INTRAIP="192.168.1.1/24"
INTRABROAD="192.168.1.255"
REDEINT="192.168.1.0/24"
#
# Inserindo Modulos IPTables
echo " * Inserindo Modulos IPTables * "
$MOD ip_conntrack
$MOD ip_conntrack_ftp
$MOD ip_nat_ftp
$MOD ip_queue
$MOD ip_tables
$MOD ipt_LOG
$MOD ipt_MARK
$MOD ipt_MASQUERADE
$MOD ipt_REDIRECT
$MOD ipt_REJECT
$MOD ipt_TCPMSS
$MOD ipt_TOS
$MOD ipt_limit
$MOD ipt_mac
$MOD ipt_mark
$MOD ipt_multiport
$MOD ipt_owner
$MOD ipt_state
$MOD ipt_tcpmss
$MOD ipt_tos
$MOD iptable_filter
$MOD iptable_mangle
$MOD iptable_nat
#
# Iniciando Politicas de Firewall
echo " - Politicas de Firewall"
$IPT -P INPUT ACCEPT
$IPT -P FORWARD ACCEPT
$IPT -P OUTPUT ACCEPT
#
# Fazendo Flush
echo " - Flush nas Regras Anteriores"
$IPT -F INPUT
$IPT -F FORWARD
$IPT -F -t nat
#
# Habilitando Forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
#
# Liberando Acesso Loopback
$IPT -A INPUT -i $LO -s 0/0 -d 0/0 -j ACCEPT
$IPT -I INPUT -m state --state NEW -i $LO -j ACCEPT
$IPT -I INPUT -m state --state NEW -s 127.0.0.1/24 -d 127.0.0.1/24 -i lo -j ACCEPT
$IPT -I INPUT -m state --state NEW -s $REDEINT -d $REDEINT -i $INTRA -j ACCEPT
#
# Habilitando Conexao Pela Rede Interna / Fazendo Liberacao Caso Esteja Bloqueada
$IPT -t nat -A POSTROUTING -s $REDEINT -d $UNIVERSO -o $INTER -j MASQUERADE
$IPT -A INPUT -s $REDEINT -d $REDEINT -j ACCEPT
#
# Liberando Acesso SMTP HTTP POP3 RDESKTOP
$IPT -A INPUT -p tcp --dport 25 -j ACCEPT
$IPT -A INPUT -p tcp --dport 80 -j ACCEPT
$IPT -A INPUT -p tcp --dport 110 -j ACCEPT
#
# Liberando Acesso IPSEC para acesso VPN
#$IPT -A INPUT -p udp --dport 500 -d $INTERIP -j ACCEPT
#$IPT -A INPUT -p esp -d $INTERIP -j ACCEPT
#$IPT -A INPUT -p ah -d $INTERIP -j ACCEPT
#
# Libera o Servidor Apache pra WEB
$IPT -A INPUT -p tcp --dport 80 -j ACCEPT
$IPT -A INPUT -p tcp --dport 443 -j ACCEPT
#
# Rede Interna > Internet
$IPT -A FORWARD -i $INTRA -p tcp --dport 20 -j ACCEPT #FTP DATA
$IPT -A FORWARD -i $INTRA -p tcp --dport 21 -j ACCEPT #FTP
$IPT -A FORWARD -i $INTRA -p tcp --dport 22 -j ACCEPT #SSH
$IPT -A FORWARD -i $INTRA -p tcp --dport 25 -j ACCEPT #SMTP
$IPT -A FORWARD -i $INTRA -p tcp --dport 53 -j ACCEPT #DNS
$IPT -A FORWARD -i $INTRA -p udp --dport 53 -j ACCEPT #DNS
$IPT -A FORWARD -i $INTRA -p tcp --dport 80 -j ACCEPT #HTTP
$IPT -A FORWARD -i $INTRA -p tcp --dport 110 -j ACCEPT #POP3
$IPT -A FORWARD -i $INTRA -p tcp --dport 443 -j ACCEPT #HTTPS
$IPT -A FORWARD -i $INTRA -p tcp --dport 3128 -j ACCEPT #SQUID
#
echo " - Melhorando Tempo de Conecxao com Internet..."
$IPT -t mangle -A OUTPUT -o $INTER -p tcp --dport 20 -j TOS --set-tos Minimize-Delay
$IPT -t mangle -A OUTPUT -o $INTER -p tcp --dport 21 -j TOS --set-tos Minimize-Delay
$IPT -t mangle -A OUTPUT -o $INTER -p tcp --dport 25 -j TOS --set-tos Minimize-Delay
$IPT -t mangle -A OUTPUT -o $INTER -p tcp --dport 53 -j TOS --set-tos Minimize-Delay
$IPT -t mangle -A OUTPUT -o $INTER -p tcp --dport 80 -j TOS --set-tos Minimize-Delay
$IPT -t mangle -A OUTPUT -o $INTER -p tcp --dport 110 -j TOS --set-tos Minimize-Delay
$IPT -t mangle -A OUTPUT -o $INTER -p tcp --dport 443 -j TOS --set-tos Minimize-Delay
$IPT -t mangle -A OUTPUT -o $INTER -p tcp --dport 3128 -j TOS --set-tos Minimize-Delay
#
$IPT -t mangle -A FORWARD -o $INTER -p tcp --dport 20 -j TOS --set-tos Minimize-Delay
$IPT -t mangle -A FORWARD -o $INTER -p tcp --dport 21 -j TOS --set-tos Minimize-Delay
$IPT -t mangle -A FORWARD -o $INTER -p tcp --dport 25 -j TOS --set-tos Minimize-Delay
$IPT -t mangle -A FORWARD -o $INTER -p tcp --dport 53 -j TOS --set-tos Minimize-Delay
$IPT -t mangle -A FORWARD -o $INTER -p tcp --dport 80 -j TOS --set-tos Minimize-Delay
$IPT -t mangle -A FORWARD -o $INTER -p tcp --dport 110 -j TOS --set-tos Minimize-Delay
$IPT -t mangle -A FORWARD -o $INTER -p tcp --dport 443 -j TOS --set-tos Minimize-Delay
$IPT -t mangle -A FORWARD -o $INTER -p tcp --dport 3128 -j TOS --set-tos Minimize-Delay
#
# Regras para DNS
echo " - Executando Regras para DNS"
$IPT -A INPUT -i $INTRA -p tcp -s $REDEINT -d $UNIVERSO --dport 53 -j ACCEPT
$IPT -A INPUT -i $INTRA -p udp -s $REDEINT -d $UNIVERSO --dport 53 -j ACCEPT
#
$IPT -A INPUT -i $INTRA -p udp -s $UNIVERSO --sport 53 -d $INTERIP --dport $PALTA -j ACCEPT
$IPT -A INPUT -i $INTRA -p tcp -s $UNIVERSO --sport 53 -d $INTERIP --dport $PALTA -j ACCEPT
#
$IPT -A INPUT -s $UNIVERSO -d 0/0 -p tcp --dport 1024:65535 -j ACCEPT
$IPT -A INPUT -s $UNIVERSO -d 0/0 -p udp --dport 1024:65535 -j ACCEPT
#
# Iniciando Inspecao de Pacotes
echo " - Executando Inpecao de Pacotes"
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# Configurando Regras de Ping
$IPT -A INPUT -p icmp --icmp-type 0 -j ACCEPT
$IPT -A INPUT -p icmp --icmp-type 8 -j ACCEPT
# Protecao Contra Ping da Morte
$IPT -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
# SMB / Windows Filesharing
$IPT -A FORWARD -p tcp --sport 137:139 -j DROP
$IPT -A FORWARD -p udp --sport 137:139 -j DROP
# NFS Mount Service (TCP/UDP 635)
$IPT -A FORWARD -p tcp --sport 635 -j DROP
$IPT -A FORWARD -p udp --sport 635 -j DROP
# NFS (TCP/UDP 2049)
$IPT -A FORWARD -p tcp --sport 2049 -j DROP
$IPT -A FORWARD -p udp --sport 2049 -j DROP
# Portmapper (TCP/UDP 111)
$IPT -A FORWARD -p tcp --sport 111 -j DROP
$IPT -A FORWARD -p udp --sport 111 -j DROP
# Block incoming syslog, lpr, rsh, rexec...
$IPT -A FORWARD -i $INTERIP -p udp --dport syslog -j DROP
$IPT -A FORWARD -i $INTERIP -p tcp --dport 515 -j DROP
$IPT -A FORWARD -i $INTERIP -p tcp --dport 514 -j DROP
$IPT -A FORWARD -i $INTERIP -p tcp --dport 512 -j DROP
# Bloqueando acesso para o X Server
$IPT -A INPUT -p tcp -i $INTER --dport 5999:6003 -j DROP
$IPT -A INPUT -p udp -i $INTER --dport 5999:6003 -j DROP
$IPT -A INPUT -p tcp -i $INTER --dport 7100 -j DROP
# Bloqueando Back Orifice
$IPT -A INPUT -p tcp -i $INTER --dport 31337 -j DROP
$IPT -A INPUT -p udp -i $INTER --dport 31337 -j DROP
# Rejeitando nao aceitos - ident requeridos
$IPT -A INPUT -p tcp -i $INTER --dport 113 -j REJECT
$IPT -A INPUT -p udp -i $INTER --dport 113 -j REJECT
# Bloquear Trin00
$IPT -A INPUT -p tcp -i $INTER --dport 1524 -j DROP
$IPT -A INPUT -p tcp -i $INTER --dport 27665 -j DROP
$IPT -A INPUT -p udp -i $INTER --dport 27444 -j DROP
$IPT -A INPUT -p udp -i $INTER --dport 31335 -j DROP
#
# Desabilitando protecao a echo de broadcast ICMP.
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
# Habilitando protecao a mensagem de "bad error"
echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
# Habilitando protecao contra spoof de pacotes input e output
echo "1" > /proc/sys/net/ipv4/conf/all/accept_source_route
# Habilitando redirecionamentos de ICMP
echo "1" > /proc/sys/net/ipv4/conf/all/secure_redirects
# Logar pacotes spoofed, roteados na origem ou redirecionados.
echo " - Logar pacotes spoofed, roteados na origem ou redirecionados "
echo "1" > /proc/sys/net/ipv4/conf/all/log_martians
# Reduce Dos'ing ability by reducing timeout
echo "30" > /proc/sys/net/ipv4/tcp_fin_timeout
echo "1800" > /proc/sys/net/ipv4/tcp_keepalive_time
echo "1" > /proc/sys/net/ipv4/tcp_window_scaling
echo "0" > /proc/sys/net/ipv4/tcp_sack
echo 1280 > /proc/sys/net/ipv4/tcp_max_syn_backlog
# Protecao Contra SYN-Flood
$IPT -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
# Protecao Contra TCP SYS-Cookies
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
# Ocultando a rota de origem dos pacotes
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
# Protecao conta Port Scanners Ocultos
$IPT -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
# Conjunto de portas Locais
echo 61000 65095 > /proc/sys/net/ipv4/ip_local_port_range
# Bloqueando acesso telnet
$IPT -A INPUT -p tcp --dport 23 -j DROP
#$IPT -A INPUT -p tcp --dport 23 -j ACCEPT
#
echo " - Rejeitar INPUTs especificos."
#
# Recusar pacotes via interface externa com endereco de loopback. *
$IPT -A INPUT -i $INTER -s $LO -j DROP
# Interface remota alegando ser maquina local.Caso de IP spoofing.
$IPT -A INPUT -i $INTER -s $REDEINT -d $UNIVERSO -j REJECT
#
echo " Firewall Inicializado!"
Por favor, deem uma olhada e vejamonde posso ter errado e por que não estaria funcionando o sistema do SQL...
Desde já agradeço....