+ Responder ao Tópico



  1. #1

    Padrão Por favor ajuda com firewall/masquerade/terminalservice/vnc


    Pessoal, li muita coisa na rede sobre iptables e no slack10 estou tentando implementar o script abaixo. Mas não funciona a navegação na internet nem o acesso da internet a algumas maquinas da rede interna. Como já vi que sozinho não vou resolver ( cabeça quente ) peço por favor a ajuda.
    Importante o rc.ip_forward esta ativado pois consegue-se pingar dos dois lados da rede. Para saber se o acesso as maquinas internas da rede via vnc/terminal service funcionava, liquei a placa de rede que tem ip web a outra maquina via cabo cross-over com um ip valido da web mesma mascara e nao fucionou , mas consigo pingar a rede interna.

    Obrigado
    Antonio Carlos

    Script de Firewall

    #!/bin/sh
    #
    #
    # Variaveis de Ambiente onde :
    #
    # ETH_WEB = eth com ip fixo da internet;
    # ETH_INT = eth da rede interna;
    # IP_WEB = IP visivel a Internet
    # IP_INT = IP do firewal na rede Interna, Gateway da Rede
    # REDE_LOCAL = Faixa de IP da Rede Interna e Mascara
    #

    ETH_WEB="eth0"
    ETH_INT="eth1"
    IP_WEB="200.152.123.87"
    IP_INT="192.168.0.250"
    REDE_LOCAL="192.168.0.0/255.255.255.0"

    # Limpando as tabelas

    iptables -F
    iptables -X
    iptables -t nat -F
    iptabels -t nat -X

    # Politica de Acesso

    iptables -P INPUT DROP
    iptables -P OUTPUT ACCEPT
    iptables -P FORWARD ACCEPT

    iptables -t nat -P PREROUTING ACCEPT
    iptables -t nat -P OUTPUT ACCEPT
    iptables -t nat -P POSTROUTING ACCEPT

    # redirecionamento de pacotes, coloquei mas no slck o rc.ip_forward eh 755
    echo "1" >/proc/sys/net/ipv4/ip_forward

    # liberando o loopback
    iptables -A INPUT -i lo -j ACCEPT
    iptables -A INPUT -m state -state ESTABLISHED,RELATED -j ACCEPT

    # liberando o que vier da rede local
    iptables -A INPUT -s $REDE_LOCAL -i $ETH_INT -j ACCEPT

    # Liberacao de PING (ICMP) na Interface Externa com certa limitacao
    iptables -A INPUT -i $ETH_WEB -p icmp -m limit --limit 2/s -j ACCEPT


    # Liberacao de Portas de Servico com destino a porta web vindo da endereço web

    iptables -A INPUT -i $ETH_WEB -s 0/0 -p tcp --dport 21 -j ACCEPT #liberando ftp
    iptables -A INPUT -i $ETH_WEB -s 0/0 -p tcp --dport 22 -j ACCEPT #liberando ssh
    iptables -A INPUT -i $ETH_WEB -s 0/0 -p tcp --dport 23 -j ACCEPT #liberando telnet
    iptables -A INPUT -i $ETH_WEB -s 0/0 -p tcp --dport 3389 -j ACCEPT #liberando terminal service
    iptables -A INPUT -i $ETH_WEB -s 0/0 -p tcp --dport 5900 -j ACCEPT #liberando vnc


    # Qualquer outro tipo de trafego aceito, creio ser necessario para a rede interna
    iptables -A INPUT -i $ETH_WEB -j ACCEPT

    # Redirecionando da porta 80 para o squid , fazendo proxy transparente
    iptables -t nat -A PREROUTING -p tcp -i $ETH_INT --dport 80 -j REDIRECT --to-port 3128
    iptables -t nat -A PREROUTING -p udp -i $ETH_INT --dport 80 -j REDIRECT --to-port 3128

    # redirecionamento de portas para um host interno
    iptables -t nat -A PREROUTING -p tcp -i $ETH_WEB --dport 3389 -j DNAT --to 192.168.0.200:3398
    iptables -t nat -A PREROUTING -p tcp -i $ETH_WEB --dport 5900 -j DNAT --to 192.168.0.1:5900

    # fazendo o ip masquerade
    iptables -t nat -A POSTROUTING -o $ETH_WEB -j MASQUERADE

  2. #2
    azanelato
    Visitante

    Padrão Por favor ajuda com firewall/masquerade/terminalservice/vnc

    Tente mudar estas configurações abaixo e vê se resolve,
    No meu servidor elas funcionam, pode ser isto:

    #liberando o trafego local (loopback)
    iptables -A INPUT -i lo -j ACCEPT
    iptables -A OUTPUT -o lo -j ACCEPT

    #liberando rede interna
    iptables -A INPUT -i ETH_INT-s $REDE_LOCAL -j ACCEPT
    iptables -A FORWARD -i ETH_INT -s $REDE_LOCAL -d 0/0 -j ACCEPT

    Alexandre Zanelato - azanelato

  3. #3
    azanelato
    Visitante

    Padrão Por favor ajuda com firewall/masquerade/terminalservice/vnc

    Ah, outra coisa na politica padrão acho melhor assim:

    #definindo politica padrao
    iptables -P INPUT DROP
    iptables -P FORWARD DROP
    iptables -P OUTPUT ACCEPT

    Acho sempre melhor bloquear tudo e somente liberar o
    que será usado, mesmo na tabela NAT, procure não
    deixar ACCEPT.

    Alexandre Zanelato - azanelato

  4. #4
    subzeronline
    Visitante

    Padrão Por favor ajuda com firewall/masquerade/terminalservice/vnc

    alimasilva, é pelas suas regras, tem algumas coisas estranhas, por exemplo, vc bloqueia as entradas para seu servidor e depois no final vc libera elas, bom apesar de estar bem documentado suas regras, a dica postada anteriormente para bloquear o Forward e ir liberando é muito bom, minha dica é a seguinte não bloquei as entradas para o servidor que já forem de uma conexão já solicitada, por exemplo de sua rede interna, um estação chama o browser www.uol.com.br certo sua rede interna está liberada para conectar na porta de seu Firewall, mas na hora que o pacote retorna do host www.uol.com.br, ele é bloqueado, por que o seu firewall, bloqueia o acesso externo. Faz o seguinte não bloqueia o não use a regra "input -j DROP" deixe ACCEPT mesmo, mas bloqueia qualquer tentativa de primeira conexão com o servidor que vir da rede externa, assim só as suas máquinas internas podem conectar no seu servidor e os pacotes que retornarem como no exemplo assim que eu lhe dei, o firewall vai identificar que não é uma primeira conexão mas sim uma conexão já estabelecida, estou postando uma regra abaixo, de uma lida nela e altere e acresente as suas regras #!/bin/sh

    iptables="/usr/local/sbin/iptables"
    ###Zera Regras
    $iptables -F
    $iptables -t nat -F

    echo 1 > /proc/sys/net/ipv4/ip_forward
    #----------------------------------------------------------------------------#
    ###Seguranca
    for f in /proc/sys/net/ipv4/conf/*/rp_filter; do
    echo 1 > $f
    done
    #----------------------------------------------------------------------------#
    ###Configuracao FTP
    /sbin/modprobe ip_conntrack_ftp ports=21,4021,2210
    /sbin/modprobe ip_nat_ftp ports=21,4021,2210
    #----------------------------------------------------------------------------#
    ###Mascaramento
    $iptables -t nat -A POSTROUTING -o "Sua placa de rede web" -j SNAT --to "endereço ip Web"
    #----------------------------------------------------------------------------#
    ###NAT
    #----------------------------------------------------------------------------#
    ###Entradas
    $iptables -A INPUT -i "Placa de Rede Web" -p ICMP -j DROP
    $iptables -A INPUT -i "Placa de Rede Web" -p TCP --syn -j DROP
    ##Essa regra acima que eu te falei
    #----------------------------------------------------------------------------#
    ##Acessos
    $iptables -A FORWARD -s "endereço ip rede interna" -j ACCEPT
    #----------------------------------------------------------------------------#
    ##Default
    iptables -A FORWARD -j DROP ##Aqui vc bloqueia os encaminhamentos