+ Responder ao Tópico



  1. #1
    marcelo0
    Visitante

    Padrão colocar servidor de web apache pra funcionar

    ola pessoal

    Apos instalado o apache e as regras do meu iptables no meu slackware 10, estou tentando hospedar minha pagina no meu micro (Adsl sppedy ip-dinamico com cjb.net)
    porem, mesmo alterado a pora de 80 para 1099 quando alguem de fora tenta acessar nada acontece...pq sera heim?

    (obs eth0 rede e eth1 net)

    por favor alguem me ajuda...so quero ter meu servidor de web aqui...só isso...se algume tiver algum modelo de http_conf e firewall q esteja redondo aceito tb..valeu!!

    abaixo esta o erro do meu \var\log\syslog quando alguem tenta acessar meu ip:
    Jun 12 22:03:12 k72 kernel: Pacote input descartado: IN=ppp0 OUT= MAC= SRC=200.231.250.245 DST=200.232.180.66 LEN=48 TOS=0x00 PREC=0x00 TTL=118 ID=38078 DF PROTO=TCP SPT=2462 DPT=1433 WINDOW=16384 RES=0x00 SYN URGP=0


    segue abaixo meu firewall e meu httpd_conf

    firewall:




    /sbin/modprobe ip_tables
    /sbin/modprobe iptable_filter
    /sbin/modprobe ip_conntrack
    /sbin/modprobe ip_conntrack_ftp
    /sbin/modprobe iptable_nat
    /sbin/modprobe ip_nat_ftp
    /sbin/modprobe ipt_LOG
    /sbin/modprobe ipt_state
    /sbin/modprobe ipt_MASQUERADE

    #Beleza, carregados os módulos, vamos dar um "flushing" no firewall, para não termos problemas do tipo: Porque quando eu tiro o #proxy do navegador ele continua a utilizar a internet?"...

    /usr/sbin/iptables -F
    /usr/sbin/iptables -Z
    /usr/sbin/iptables -X
    /usr/sbin/iptables -t nat -F
    /usr/sbin/iptables -P INPUT DROP
    /usr/sbin/iptables -P FORWARD DROP
    /usr/sbin/iptables -P OUTPUT ACCEPT



    #Detalhes relevantes: nunca se esqueça de dar um flushing na tabela nat também, e pessoal, pensa bem, você tem que liberar o que #É NECESSÁRIO, e não tudo, por isso o Policy padrão de input e do forward é DROP, porque se não ta nas regras, ou você esqueceu #ou não é para estar liberado! Isso evita acidentes "comuns".

    #Habilitando roteamento e demais cositas...

    echo "1" > /proc/sys/net/ipv4/ip_forward

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

    #No meu firewal nada de scan...

    #INPUT

    #Vamos liberar o INPUT para a interface de loopback, que só vai ser usada pelo servidor,
    #mas com origem de qualquer ip, para não ter perigo de não manipular alguns pacotes:

    /usr/sbin/iptables -A INPUT -p ALL -s 127.0.0.1 -i lo -j ACCEPT
    /usr/sbin/iptables -A INPUT -p ALL -s 192.168.254.140 -i lo -j ACCEPT
    /usr/sbin/iptables -A INPUT -p ALL -s 192.168.254.140 -i lo -j ACCEPT

    #Agora uma regra que eu procuro colocar no começo, que na minha opinião melhora um "pouco" a performance do firewall já que a #leitura das regras para os pacotes é linear. Ela diz que toda conexão estabilizada ou relacionada com o meu firewall deve ser #mantida e não analizada pelas proximas regras:

    /usr/sbin/iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

    #Libera as respostas dos DNS para meu firewall

    /usr/sbin/iptables -A INPUT -p udp -s 200.204.0.10 --sport 53 -d 192.168.254.140 -j ACCEPT
    /usr/sbin/iptables -A INPUT -p udp -s 200.204.0.138 --sport 53 -d 192.168.254.140 -j ACCEPT

    #Nada de pacote fragmentado no meu firewall! Se temos um programa criando pacotes despadronizados ou uma tentativa de ataque, o #problema não é meu!

    /usr/sbin/iptables -A INPUT -i eth1 -f -j LOG --log-prefix "Pacote INPUT fragmentado: "
    /usr/sbin/iptables -A INPUT -i eth1 -f -j DROP

    #Não esquecendo de logar o pacote fragmentado para descobrir oquê ele é).

    #Evitando Spoofing:

    /usr/sbin/iptables -A INPUT -i eth1 -s 192.168.254.0/8 -j DROP
    /usr/sbin/iptables -A INPUT -i eth1 -s 172.16.0.0/12 -j DROP
    /usr/sbin/iptables -A INPUT -i eth1 -s 192.168.0.0/16 -j DROP
    /usr/sbin/iptables -A INPUT -i eth1 -s 224.0.0.0/4 -j DROP
    /usr/sbin/iptables -A INPUT -i eth1 -s 240.0.0.0/5 -j DROP

    #Obs: as mascaras estão corretas.

    #Regras para ping, aqui varia muito de admin para admin, eu só libero resposta de ping de outros ips, ping para minha rede #interna e ping do servidor da minha empresa para o firewall do cliente, como ta na ultima linha:

    /usr/sbin/iptables -A INPUT -p icmp --icmp-type 8 -i eth0 -j ACCEPT
    /usr/sbin/iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT
    /usr/sbin/iptables -A INPUT -p icmp -s 192.168.254.140 -d 192.168.254.140 -j ACCEPT

    #Libero o acesso as squid para minha rede interna:

    /usr/sbin/iptables -A INPUT -p TCP -i eth0 -s 192.168.254.0/8 --dport 3128 -j ACCEPT

    #Libero o acesso ao ssh:

    /usr/sbin/iptables -A INPUT -p TCP --dport 22 -j ACCEPT
    /usr/sbin/iptables -A INPUT -p TCP --dport 2121:2122 -j ACCEPT


    #Libera resposta de servidores www para meu squid:

    /usr/sbin/iptables -A INPUT -p TCP -i eth1 --sport 80 -j ACCEPT
    /usr/sbin/iptables -A INPUT -p TCP -i eth1 --sport 443 -j ACCEPT
    /usr/sbin/iptables -A INPUT -p TCP -i eth1 --sport 20 -j ACCEPT
    /usr/sbin/iptables -A INPUT -p UDP -i eth1 --sport 21 -j ACCEPT
    /usr/sbin/iptables -A INPUT -p TCP -i eth1 --sport 21 -j ACCEPT
    /usr/sbin/iptables -A INPUT -p TCP -i eth1 --sport 1099 -j ACCEPT
    /usr/sbin/iptables -A INPUT -p TCP -i eth0 --sport 1099 -j ACCEPT
    /usr/sbin/iptables -A INPUT -p UDP -i eth1 --sport 2121 -j ACCEPT
    /usr/sbin/iptables -A INPUT -p TCP -i eth1 --sport 2121 -j ACCEPT
    /usr/sbin/iptables -A INPUT -p UDP -i eth1 --sport 2122 -j ACCEPT
    /usr/sbin/iptables -A INPUT -p TCP -i eth1 --sport 2122 -j ACCEPT
    /usr/sbin/iptables -A INPUT -p tcp --dport 1099 -j ACCEPT

    #Ora de mandar embora as porcarias, agora que ta tudo que eu preciso liberado:

    /usr/sbin/iptables -A INPUT -p TCP -i eth0 --sport 2121:2122 -j ACCEPT
    /usr/sbin/iptables -A INPUT -p TCP -i eth0 --sport 22 -j ACCEPT
    /usr/sbin/iptables -A INPUT -p tcp --dport 3128 -j REJECT --reject-with tcp-reset
    /usr/sbin/iptables -A INPUT -j LOG --log-prefix "Pacote input descartado: "
    /usr/sbin/iptables -A INPUT -j DROP

    #Não esqueça de sempre logar o que você descarta, pois pode ser uma tentativa de ataque ou uma porta que deve ser liberada para um programa funcionar!

    #FORWARD

    #Já começamos com barra pesada no forward, descartando os pacotes inválidos, coisa que no ipchains deixa os admins de firewall #loucos:

    /usr/sbin/iptables -A FORWARD -m state --state INVALID -j DROP

    #Aceita as conexões estabilizada e recionadas com outras feitas nos pcs da minha rede interna:

    /usr/sbin/iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

    #Opa, aqui está um dos segredos para o outlook funcionar, uma coisa que ninguém faz e todo mundo reclama que o teu outlook não #funciona, é liberar a resposta e o acesso aos resolvedores de nome, para que o outlook transforme o nome que ele possui no #servidor smtp e pop em um ip:

    /usr/sbin/iptables -A FORWARD -p udp -s 192.168.254.140/8 -d 200.204.0.10 --dport 53 -j ACCEPT
    /usr/sbin/iptables -A FORWARD -p udp -s 192.168.254.140/8 -d 200.204.0.138 --dport 53 -j ACCEPT
    /usr/sbin/iptables -A FORWARD -p udp -s 200.204.0.10 --sport 53 -d 192.168.254.140/8 -j ACCEPT
    /usr/sbin/iptables -A FORWARD -p udp -s 200.204.0.138 --sport 53 -d 192.168.254.140/8 -j ACCEPT

    #Feito isso, vamos liberar para a minha rede interna as portas que o outlook vai utilizar para acessar os servidores externos ou qq outra porta q eu desejo liberar, em 2 partes a de cima e de baixo
    #35451 e 60000:620000 e 1000:1100 do ftp do junior
    # 4661 4672 é do emule
    #995 do gmail
    #ver depois se liberando a potra3128 aqui pra quando eu der squid -N -d 1 -D funcionar certinho , nao vai deixar outros de redes de fora usar minha 3128 para fazer proxy

    /usr/sbin/iptables -A FORWARD -p TCP -s 192.168.254.0/8 --dport 20:22 -j ACCEPT
    /usr/sbin/iptables -A FORWARD -p TCP -s 192.168.254.0/8 --dport 25 -j ACCEPT
    /usr/sbin/iptables -A FORWARD -p TCP -s 192.168.254.0/8 --dport 110 -j ACCEPT
    /usr/sbin/iptables -A FORWARD -p TCP -s 192.168.254.0/8 --dport 465 -j ACCEPT
    /usr/sbin/iptables -A FORWARD -p TCP -s 192.168.254.0/8 --dport 995 -j ACCEPT
    /usr/sbin/iptables -A FORWARD -p TCP -s 192.168.254.0/8 --dport 3128 -j ACCEPT
    /usr/sbin/iptables -A FORWARD -p TCP -s 192.168.254.0/8 --dport 4661:4662 -j ACCEPT
    /usr/sbin/iptables -A FORWARD -p TCP -s 192.168.254.0/8 --dport 35451 -j ACCEPT
    /usr/sbin/iptables -A FORWARD -p TCP -s 192.168.254.0/8 --dport 1000:1100 -j ACCEPT
    /usr/sbin/iptables -A FORWARD -p TCP -s 192.168.254.0/8 --dport 2121:2122 -j ACCEPT
    /usr/sbin/iptables -A FORWARD -p TCP -s 192.168.254.0/8 --dport 60000:62000 -j ACCEPT

    /usr/sbin/iptables -A INPUT -p TCP -i eth1 --sport 20:22 -j ACCEPT
    /usr/sbin/iptables -A INPUT -p TCP -i eth1 --sport 2121:2122 -j ACCEPT
    /usr/sbin/iptables -A INPUT -p TCP -i eth0 --sport 2121:2122 -j ACCEPT
    /usr/sbin/iptables -A INPUT -p TCP -i eth0 --sport 22 -j ACCEPT
    /usr/sbin/iptables -A FORWARD -p tcp --sport 20:22 -j ACCEPT
    /usr/sbin/iptables -A FORWARD -p tcp --sport 25 -j ACCEPT
    /usr/sbin/iptables -A FORWARD -p tcp --sport 110 -j ACCEPT
    /usr/sbin/iptables -A FORWARD -p tcp --sport 465 -j ACCEPT
    /usr/sbin/iptables -A FORWARD -p tcp --sport 995 -j ACCEPT
    /usr/sbin/iptables -A FORWARD -p tcp --sport 3128 -j ACCEPT
    /usr/sbin/iptables -A FORWARD -p tcp --sport 1000:1100 -j ACCEPT
    /usr/sbin/iptables -A FORWARD -p tcp --sport 2121:2122 -j ACCEPT
    /usr/sbin/iptables -A FORWARD -p tcp --sport 4661:4672 -j ACCEPT
    /usr/sbin/iptables -A FORWARD -p tcp --sport 35451 -j ACCEPT
    /usr/sbin/iptables -A FORWARD -p tcp --sport 60000:62000 -j ACCEPT


    #Pronto, o nosso objetivo do outlook funcionar está OK! Agora vamos dropar o resto, nunca se esquecendo de logar isso:

    /usr/sbin/iptables -A FORWARD -j LOG --log-prefix "Pacote forward descartado: "
    /usr/sbin/iptables -A FORWARD -j DROP

    #No caso da rede que eu fiz isso, eram poucos pcs, uns 30, então em masquerei a conexão mesmo, mas nada te impede de usar SNAT:

    /usr/sbin/iptables -t nat -A POSTROUTING -j MASQUERADE






    http_conf
    ServerType standalone

    ServerRoot "/usr"
    PidFile /var/run/httpd.pid
    ScoreBoardFile /var/run/httpd.scoreboard

    Timeout 300
    KeepAlive On
    MaxKeepAliveRequests 100

    Listen 192.168.254.140:1099
    Listen 1099

    Port 40
    Port 1099
    User nobody
    Group nobody

    DocumentRoot "/var/www/sites"


    NameVirtualHost*
    <VirtualHost *>
    ServerName localhost
    DocumentRoot /var/www/sites
    </VirtualHost>

  2. #2

    Padrão colocar servidor de web apache pra funcionar

    bom para teste, tente desabilitar o firewall e tenta acessar. sei que a telefonica bloqueia algumas portas, desative seu firewall, para poder testar.
    OK, qualquer coisa posta ae.

  3. #3

    Padrão colocar servidor de web apache pra funcionar

    O modem que vc usa é bridge ou router? Se for router tem liberar a porta que vc deseja utilizar.

  4. #4
    marcelo0
    Visitante

    Padrão colocar servidor de web apache pra funcionar

    meu modem é router e ja tentei desabilitar o firewall...ta encantado mesmo...

  5. #5

    Padrão colocar servidor de web apache pra funcionar

    bom não é o firewall que vc tem que liberar
    é o redirecionamento de portas no modem. Qual é a marca e modelo do seu modem. Passa ai derrpente posso te colocar um passo a passo. :good: