+ Responder ao Tópico



  1. #1

    Padrão Regras de Iptables para servidor Web

    Caros,

    Tenho uma duvida sobre como proteger a porta 80 de um servidor web.

    Implementei a politica padrão DROP em meu firewall. Tenho as portas 22 e 139 liberadas para a rede local. Foi liberado somente o acesso a porta 80 pela internet e mais as proteções padrões:

    iptables -A INPUT -m unclean -j DROP
    echo 1 > /proc/sys/net/ipv4/tcp_syncookies
    echo 1 > /proc/sys/net/ipv4/conf/all/log_martians
    echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
    echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
    iptables -A INPUT -p tcp --dport 80 -j ACCEPT


    Seria essa a regra adequada para proteger meu servidor ou existe algo mais que possa ser colocado?

    Havia pensado na regra de State, mas como a conexão inicia com o SYN FLAG, não sei se seria adequado colocar essa regra....


    Alguma sugestão ou correção???

    Agradeço a atenção de todos!!

    []´s


    Lituano.

  2. #2
    Xlab
    Visitante

    Padrão Regras de Iptables para servidor Web

    Ola amigo blz?, bem quando se refere ao protocolo http eh um problema, pois esse protocolo nao ajuda termo seguranca, pois ja vem de uma origem precaria(eh tanto que a maioria das invasoes da internet se deve aos servidores web), poderia detalhar aqui os problemas mas esta fora do escorpo. Suas regras estao refinadas por usarem combinacoes do kernel e do iptables :wink:. Mas nao eh preciso usar a implatacao de:

    echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

    em seu firewall, ja que isso eh aplicado mais ao seus usuarios internos e nao ao servidor web.

    O que vc pode ainda fazer eh negar pacotes fragmentados, ja que a maioria dos servidores web nao necessitam disso, pacotes que se tornarem invalidos e ataques com syn-flood, melhorando assim o desenpenho do seu servidor web.

    Uma boa pedida sera usar o snort junto com o guardian pra ficar de olho em possieis exploit(pois evita possiveis script-kids, mas nao evita crackers de verdade) e isso tb eh apenas uma cama a mais. Outra vc pode e deve usar configuracoes do proprio apache, delimitar tipo tempo de reposta, negar scripts cgi´s (se vc nao estiver usando, e se tiver limita-los um grupo de ips),pois a maioria das distribuicoes ja vem com com o modulo implatado por default, que pra mim eh um grande furo de seguranca. Desabilitar ssl se nao estiver usando. Nao coloque um servidor de ftp junto com o web, pois existem tecnicas(que nao vou mencionar aqui) que sao capazes de burlar firewall inclusive o iptables, ou melhor se vc negar as portas 21 e 20 no iptables, cracker pode usar o http para enxergar a 21 e a 20 sem seu firewall perceber.

    E claro e mais importante matenha sempre, sempre seu servidor web atualizado e fique de olho nos logs. 8O

    []´s

  3. #3
    Xlab
    Visitante

    Padrão Regras de Iptables para servidor Web

    Outro detalhe interessante que deixei passar eh o seguinte libere somente a porta 22(ssh) a um host especifico determinando um ip e o mac. Usarios interno com desgosto com a empresa podem ser inimigos em potencial. Nunca coloque o ssh para responder com root alias negue, preferivel usar um usuario comum e sem poder para autenticar o usar outro com poderes de root para apenas algumas aplicacoes, use o sudo para fazer isso.

    []´s

  4. #4

    Padrão Regras de Iptables para servidor Web

    Caro Xlab,

    Agradeço pela sua atenção.

    O meu servidor Web está bem configurado em relação ao Apache e demais serviços.
    Todas as especificações de acesso foram dadas e funcionam corretamente. O que eu gostaria de saber é se posso acrescentar alguma regra específica de Iptables para a maior proteção de meu server.
    Você comentou sobre a negação de pacotes fragmentados para evitar o SYN FLOOD; qual seria essa regra?

    []´s

  5. #5
    Xlab
    Visitante

    Padrão Regras de Iptables para servidor Web

    De uma olhada no topico "pequena duvida" aqui mesmo no forum especifiquei regras contra syn-flood. Para fragmento use a seguinte regra:

    iptables -A INPUT -f -p tcp --dport 80 -i eth0 -j DROP


    []'s