+ Responder ao Tópico



  1. #1
    ScorpionAm_Br
    Visitante

    Padrão Direcionamento a missão

    A galera preciso fazer um direcionamento que passe pelo firewall pela porta 443 e direcione para um ip interno pela porta 80. Estou usando o Fedora 5.
    Pois funciona desse jeito a pessoa acessa o site que está hospedado em outro lugar e nesse site tem um campo de pesquisa andamento de processos para saber se processo ja está em anadamento. No codigo fonte tem essa regra que direciona pro firewall da empresa para acessar o servidor interno ttp://200.xxx.xxx.xx:443/scripts/consulta.exe/posicao?.
    Nesse caso o ip "200.xxx.xxx.xx e porta 443" e do firewall e "/scripts/consulta.exe/posicao?" e do servidor interno pela porta 80.
    Obs: esse direcionamento tem que receber os dados da pesquisa e reponder de volta e mostrar no site.
    As regras do firewall são essas tentei aqui vc mandou naum deu certo por favor verifique que está errado nessas regras e também não consigo pingar para o firewall só quando paro o iptables.
    Agradeço quem poder mi ajudar pois já pesquisei bastante e tentei varias dicas e ainda não obtive sucesso.
    !/bin/sh

    # Variáveis
    # -------------------------------------------------------
    iptables=/sbin/iptables
    IF_EXTERNA=eth0
    IF_INTERNA=eth1

    # Ativa módulos
    # -------------------------------------------------------
    /sbin/modprobe iptable_filter
    /sbin/modprobe iptable_nat
    /sbin/modprobe ip_conntrack
    /sbin/modprobe ip_conntrack_ftp
    /sbin/modprobe ip_nat_ftp
    /sbin/modprobe ipt_LOG
    /sbin/modprobe ipt_state
    /sbin/modprobe ipt_REJECT
    /sbin/modprobe ipt_MASQUERADE

    # Ativa roteamento no kernel
    # -------------------------------------------------------
    echo "1" > /proc/sys/net/ipv4/ip_forward

    # Proteção contra IP spoofing
    # -------------------------------------------------------
    echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter

    #echo 'Carregando rotas...'
    #route add 10.248.0.0 dev eth1
    route add -net 10.248.0.0 netmask 255.252.0.0 gw 10.12.1.1
    route add -net 10.28.0.0 netmask 255.252.0.0 gw 10.12.1.1
    route add -net 10.60.0.0 netmask 255.252.0.0 gw 10.12.1.1

    # Zera regras
    # -------------------------------------------------------
    $iptables -F
    $iptables -X
    $iptables -F -t nat
    $iptables -X -t nat
    $iptables -F -t mangle
    $iptables -X -t mangle

    # Determina a política padrão
    # -------------------------------------------------------
    $iptables -P INPUT DROP
    $iptables -P OUTPUT ACCEPT
    $iptables -P FORWARD DROP

    #################################################
    # Tabela FILTER
    #################################################
    # -------------------------------------------------------
    $iptables -A FORWARD -p tcp ! --syn -m state --state NEW -j LOG --log-level 6 --log-prefix "FIREWALL: NEW sem syn: "
    $iptables -A FORWARD -p tcp ! --syn -m state --state NEW -j DROP

    # Dropa pacotes mal formados
    # -------------------------------------------------------
    #$iptables -A INPUT -i $IF_EXTERNA -m unclean -j LOG --log-level 6 --log-prefix "FIREWALL: pacote mal formado: "
    #$iptables -A INPUT -i $IF_EXTERNA -m unclean -j DROP

    # Aceita os pacotes que realmente devem entrar
    # -------------------------------------------------------
    $iptables -A INPUT -i ! $IF_EXTERNA -j ACCEPT
    $iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    $iptables -A OUTPUT -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT
    $iptables -A FORWARD -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT

    # Proteção contra trinoo
    # -------------------------------------------------------
    $iptables -N TRINOO
    $iptables -A TRINOO -m limit --limit 15/m -j LOG --log-level 6 --log-prefix "FIREWALL: trinoo: "
    $iptables -A TRINOO -j DROP
    $iptables -A INPUT -p TCP -i $IF_EXTERNA --dport 27444 -j TRINOO
    $iptables -A INPUT -p TCP -i $IF_EXTERNA --dport 27665 -j TRINOO
    $iptables -A INPUT -p TCP -i $IF_EXTERNA --dport 31335 -j TRINOO
    $iptables -A INPUT -p TCP -i $IF_EXTERNA --dport 34555 -j TRINOO
    $iptables -A INPUT -p TCP -i $IF_EXTERNA --dport 35555 -j TRINOO

    # Proteção contra tronjans
    # -------------------------------------------------------
    $iptables -N TROJAN
    $iptables -A TROJAN -m limit --limit 15/m -j LOG --log-level 6 --log-prefix "FIREWALL: trojan: "
    $iptables -A TROJAN -j DROP
    $iptables -A INPUT -p TCP -i $IF_EXTERNA --dport 666 -j TROJAN
    $iptables -A INPUT -p TCP -i $IF_EXTERNA --dport 666 -j TROJAN
    $iptables -A INPUT -p TCP -i $IF_EXTERNA --dport 4000 -j TROJAN
    $iptables -A INPUT -p TCP -i $IF_EXTERNA --dport 6000 -j TROJAN
    $iptables -A INPUT -p TCP -i $IF_EXTERNA --dport 6006 -j TROJAN
    $iptables -A INPUT -p TCP -i $IF_EXTERNA --dport 16660 -j TROJAN

    # Proteção contra worms
    # -------------------------------------------------------
    $iptables -A FORWARD -p tcp --dport 135 -i $IF_INTERNA -j REJECT


    # Proteção contra syn-flood
    # -------------------------------------------------------
    $iptables -A FORWARD -p tcp --syn -m limit --limit 2/s -j ACCEPT


    # Proteção contra ping da morte
    # -------------------------------------------------------
    $iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

    # Proteção contra port scanners
    # -------------------------------------------------------
    $iptables -N SCANNER
    $iptables -A SCANNER -m limit --limit 15/m -j LOG --log-level 6 --log-prefix "FIREWALL: port scanner: "
    $iptables -A SCANNER -j DROP
    $iptables -A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -i $IF_EXTERNA -j SCANNER
    $iptables -A INPUT -p tcp --tcp-flags ALL NONE -i $IF_EXTERNA -j SCANNER
    $iptables -A INPUT -p tcp --tcp-flags ALL ALL -i $IF_EXTERNA -j SCANNER
    $iptables -A INPUT -p tcp --tcp-flags ALL FIN,SYN -i $IF_EXTERNA -j SCANNER
    $iptables -A INPUT -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -i $IF_EXTERNA -j SCANNER
    $iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -i $IF_EXTERNA -j SCANNER
    $iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -i $IF_EXTERNA -j SCANNER

    # Loga tentativa de acesso a determinadas portas
    # -------------------------------------------------------
    $iptables -A INPUT -p tcp --dport 21 -i $IF_EXTERNA -j LOG --log-level 6 --log-prefix "FIREWALL: ftp: "
    $iptables -A INPUT -p tcp --dport 23 -i $IF_EXTERNA -j LOG --log-level 6 --log-prefix "FIREWALL: telnet: "
    $iptables -A INPUT -p tcp --dport 25 -i $IF_EXTERNA -j LOG --log-level 6 --log-prefix "FIREWALL: smtp: "
    $iptables -A INPUT -p tcp --dport 80 -i $IF_EXTERNA -j LOG --log-level 6 --log-prefix "FIREWALL: http: "
    $iptables -A INPUT -p tcp --dport 110 -i $IF_EXTERNA -j LOG --log-level 6 --log-prefix "FIREWALL: pop3: "
    $iptables -A INPUT -p udp --dport 111 -i $IF_EXTERNA -j LOG --log-level 6 --log-prefix "FIREWALL: rpc: "
    $iptables -A INPUT -p tcp --dport 113 -i $IF_EXTERNA -j LOG --log-level 6 --log-prefix "FIREWALL: identd: "
    $iptables -A INPUT -p tcp --dport 137:139 -i $IF_EXTERNA -j LOG --log-level 6 --log-prefix "FIREWALL: samba: "
    $iptables -A INPUT -p udp --dport 137:139 -i $IF_EXTERNA -j LOG --log-level 6 --log-prefix "FIREWALL: samba: "
    $iptables -A INPUT -p tcp --dport 161:162 -i $IF_EXTERNA -j LOG --log-level 6 --log-prefix "FIREWALL: snmp: "
    $iptables -A INPUT -p tcp --dport 6667:6668 -i $IF_EXTERNA -j LOG --log-level 6 --log-prefix "FIREWALL: irc: "
    $iptables -A INPUT -p tcp --dport 3128 -i $IF_EXTERNA -j LOG --log-level 6 --log-prefix "FIREWALL: squid: "

    # Libera acesso externo a determinadas portas
    # -------------------------------------------------------
    $iptables -A INPUT -p tcp -s 10.12.1.0 -j ACCEPT
    $iptables -A INPUT -p tcp --dport 22 -i $IF_EXTERNA -j ACCEPT
    $iptables -A FORWARD -p tcp -i $IF_EXTERNA --dport 443 -d 10.12.1.4 -j ACCEPT
    $iptables -t nat -A PREROUTING -p tcp -d 200.xxx.xxx.xx --dport 443 -j DNAT --to 10.12.1.4:80
    $iptables -t nat -A POSTROUTING -p tcp -s 10.12.1.4 --sport 80 -j SNAT --to 200.xxx.xxx.xx

    # Libera acesso de smtp para fora apenas para o IP XXX.XXX.XXX.XXX
    # -------------------------------------------------------
    #$iptables -A FORWARD -p tcp -d ! XXX.XXX.XXX.XXX --dport 25 -j LOG --log-level 6 --log-prefix "FIREWALL: SMTP proibido: "
    #$iptables -A FORWARD -p tcp -d ! XXX.XXX.XXX.XXX --dport 25 -j REJECT


    # Bloqueio do MSN
    # -------------------------------------------------------
    #$iptables -A FORWARD -s 192.168.0.0/255.255.0.0 -p tcp --dport 1863 -j REJECT
    #$iptables -A FORWARD -s 192.168.0.0/255.255.0.0 -d loginnet.passport.com -j REJECT
    #$iptables -A FORWARD -s 192.168.0.0/255.255.0.0 -d svcs.microsoft.com -j REJECT
    #$iptables -A FORWARD -s 192.168.0.0/255.255.0.0 -d webmessenger.msn.com -j REJECT
    #$iptables -A FORWARD -m string --string "msn." -j REJECT
    #$iptables -A FORWARD -d 64.4.13.0/24 -j REJECT


    #################################################
    # Tabela NAT
    #################################################


    # Ativa mascaramento de saída
    # -------------------------------------------------------
    #$iptables -A POSTROUTING -t nat -o $IF_EXTERNA -j MASQUERADE


    # Habilitar NAT para os IPs da Rede'
    # -------------------------------------------------------
    $iptables -A POSTROUTING -t nat -s 10.12.1.1 -o $IF_EXTERNA -j MASQUERADE
    $iptables -A POSTROUTING -t nat -s 10.12.1.2 -o $IF_EXTERNA -j MASQUERADE
    $iptables -A POSTROUTING -t nat -s 10.12.1.3 -o $IF_EXTERNA -j MASQUERADE
    $iptables -A POSTROUTING -t nat -s 10.12.1.4 -o $IF_EXTERNA -j MASQUERADE
    $iptables -A POSTROUTING -t nat -s 10.12.1.32 -o $IF_EXTERNA -j MASQUERADE
    $iptables -A POSTROUTING -t nat -s 10.12.1.139 -o $IF_EXTERNA -j MASQUERADE
    $iptables -A POSTROUTING -t nat -s 10.12.1.180 -o $IF_EXTERNA -j MASQUERADE
    $iptables -A POSTROUTING -t nat -s 10.12.1.186 -o $IF_EXTERNA -j MASQUERADE
    $iptables -A INPUT -p tcp --syn -j DROP

    ## Liberando a Conectividade da Caixa Economica
    # -------------------------------------------------------
    $iptables -t nat -A PREROUTING -p tcp -d 200.201.173.68 --dport 80 -j DNAT --to 200.201.173.68:80
    $iptables -I FORWARD -p tcp -s 0.0.0.0/0 -d 200.201.173.68/32 --dport 80 -j ACCEPT
    $iptables -t nat -A PREROUTING -p tcp -d 200.201.166.200 --dport 80 -j DNAT --to 200.201.166.200:80
    $iptables -I FORWARD -p tcp -s 0.0.0.0/0 -d 200.201.166.200/32 --dport 80 -j ACCEPT
    $iptables -t nat -A PREROUTING -p tcp -d 200.201.174.207 --dport 80 -j DNAT --to 200.201.174.207:80
    $iptables -I FORWARD -p tcp -s 0.0.0.0/0 -d 200.201.174.207/32 --dport 80 -j ACCEPT
    $iptables -I FORWARD -p all -s 200.201.174.0/24 -d 0.0.0.0/0 -j ACCEPT
    $iptables -I OUTPUT -p all -s 200.201.174.0/24 -d 0.0.0.0/0 -j ACCEPT
    $iptables -I INPUT -p all -s 200.201.174.0/24 -d 0.0.0.0/0 -j ACCEPT


    ## Definindo um repasse para a porta 200.xxx.xxx.xx porta 443 -> 10.12.1.4 porta 80
    # ---------------------------------------------------------
    #$iptables -t nat -A PREROUTING -d 200.xxx.xxx.xx -p tcp --dport 443 -j DNAT --to-destination 10.12.1.4:80
    #$iptables -t nat -A PREROUTING -i $IF_INTERNA -p tcp --dport 443 -j DNAT --to-destination 10.12.1.4:80


    # Proxy transparente
    # -------------------------------------------------------
    $iptables -t nat -A PREROUTING -i $IF_INTERNA -p tcp --dport 80 -j REDIRECT --to-port 3128
    $iptables -t nat -A PREROUTING -i $IF_INTERNA -p tcp --dport 8080 -j REDIRECT --to-port 3128

  2. #2

    Padrão Re: Direcionamento a missão

    Peraí...

    Se bem me lembro e se o meu arquivo /etc/services não mudou...

    PORTA 443 - HTTPS
    PORTA 80 - HTTP

    Pra tu fazer um esquema desse que você tá querendo, você tem que ativar uns lances no Apache que eu nem lembro mais (Convenhamos, não é todo dia que eu monto um servidor Apache com SSL).

    Outro conselho que eu faço pra você é começar por baixo e depois ir vendo aos poucos o quê você deve ir bloqueando/liberando. Por que você não mata as suas dúvidas sobre as regras corretas simplesmente deixando a regra de NAT básico, ativando o roteamento e as regras de DNAT, mas ao invés de redirecionar a porta 80 para a 443, faça da 443 para a 80.


    Abraços!