+ Responder ao Tópico



  1. #1
    fabbyo
    Visitante

    Post Ajuda para configurar Firewall

    Boa tarde gente...

    Sou novo por aqui, e os diversos post do forum me ajudaram a fazer com que meu servidor rodando ubuntu+samba+squid funcione. Porém agora preciso configurar o firewall, é isso é uma coisa que sempre tive dificuldades.

    Bom, o que eu necessito é, liberar o acesso as portas mais comuns inclusive o MSN. Meu servidor possui duas placas de rede uma conectada ao roteador e outra a um switch e minha rede tambem a este swith.

    Possuo outro servidor, onde tenho meu sistema ERP que toda a rede acessa, até aqui tudo bem. Porém esse sistema também e acessado de fora da minha rede e sei que devo direcionar o trafego para ele.

    Então resumindo é o seguinte:
    - Meu servidor Ubuntu se conecta na rede interna pela eth1 e a internet pela eth0.
    - Preciso liberar o acesso a rede para as portas mais comuns.
    - Preciso liberar o acesso ao MSN para qualquer computador da rede (estou fazendo este controle pelo squid).
    - Preciso direcionar os acessos externos (eth0) em direção a porta 1234 para o endereço 192.168.0.10 da minha rede.
    - Preciso permitir o acesso aos serviços da caixa economica federal (como o conectividade social).

    O que eu tô pedindo não é um script de configuração pronto, eu pretendo entender como fazer um script de firewall, como funciona, como fazer para adicionar novas regras, etc.

    Já baixei diversos script prontos, mas nenhum deles explicativos...

    Desde já agradeço a atenção e ajuda.

  2. #2

  3. #3
    fabbyo
    Visitante

    Padrão

    Oi gente, essa é um script de firewall que eu fiz, mas não sei porque quando eu dou start nele a servidor que está com o Linux trava... isso mesmo trava, eu tenho que resetar ele. E depois quando reinicio, o samba e squid não funcionam mais sendo que tenho q configurar a interface eth0 para obter endereço automaticamente e depois colocar novamente o IP fixo para voltar a funcionar. O que será isso, lembrando que meu firewall tem que atender as necessidades acima... de qualque jeito, vou verificar os links sugeridos pelo colega.


    case "$1" in
    start)

    echo "Iniciando o serviço de: Iptables "
    # Carrega os módulos
    modprobe ip_tables
    modprobe iptable_nat

    # Variaveis
    LAN="192.168.0.0/24"
    INTRA="eth1"
    INTER="eth0"
    MICROSIGA="192.168.0.240"
    ACESSO_REMOTO="192.168.0.240"

    # Proteções diversas
    echo " Proteção contra IP-Spoofing..."
    for i in /proc/sys/net/ipv4/conf/*/rp_filter; do
    echo 1 >$i
    done
    echo " Proteção contra pacotes mal formados..."
    iptables -A FORWARD -m unclean -j DROP
    echo " Proteção contra Ping da Morte..."
    iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
    echo " Porteção contra Port Scanner..."
    iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
    echo " Proteção contra SYN-Fooding..."
    iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
    echo " Proteção do Kernel: syncookies... "
    if [ -e /proc/sys/net/ipv4/tcp_syncookies ]
    then
    echo 1 > /proc/sys/net/ipv4/tcp_syncookies
    fi

    # Regras de forward
    iptables -t nat -A PREROUTING -i $INTER -p tcp --dport 1234 -j DNAT --to-dest $MICROSIGA
    iptables -A FORWARD -p tcp -i $INTER --dport 1234 -d $MICROSIGA -j ACCEPT
    iptables -t nat -A PREROUTING -i $INTER -p tcp --dport 3389 -j DNAT --to-dest $ACESSO_REMOTO
    iptables -A FORWARD -p tcp -i $INTER --dport 3389 -d $ACESSO_REMOTO -j ACCEPT
    ptables -t nat -A PREROUTING -i $INTRA -p tcp --dport 80 -j REDIRECT --to-port 3128
    iptables -t nat -A PREROUTING -i $INTRA -p udp --dport 80 -j REDIRECT --to-port 3128
    iptables -t nat -A PREROUTING -i $INTRA -p tcp --dport 8080 -j REDIRECT --to-port 3128
    iptables -t nat -A PREROUTING -i $INTRA -p udp --dport 8080 -j REDIRECT --to-port 3128

    # Compartilha a conexão
    iptables -t nat -A POSTROUTING -o $INTER -j MASQUERADE
    echo 1 > /proc/sys/net/ipv4/ip_forward

    # Essa regra estabiliza a conexão com a internet.
    iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

    # Abre algumas portas (opcional)
    iptables -A INPUT -p tcp --dport 1234 -j ACCEPT
    iptables -A INPUT -p tcp --dport 3389 -j ACCEPT
    iptables -A INPUT -p tcp --dport 25 -j ACCEPT
    iptables -A INPUT -p tcp --dport 110 -j ACCEPT

    # Abre para a rede local
    iptables -A INPUT -p tcp --syn -s $LAN -j ACCEPT

    # Fecha o resto
    iptables -A INPUT -p tcp --syn -j DROP

    ;;

    stop)
    echo "Parando o serviço de: Firewall"
    echo -n " Apagando chain criada..."
    iptables -F
    iptables -X NET
    iptables -t filter -P INPUT ACCEPT
    iptables -t filter -P FORWARD ACCEPT
    iptables -t nat -P POSTROUTING ACCEPT
    echo " [ OK ]"
    echo
    ;;

    restart)
    echo "Reiniciando Firewall."
    echo
    $0 stop
    $0 start
    ;;

    status)
    echo "Exibindo regras de Iptables... "
    echo
    iptables -vnL
    ;;

    *)
    echo "Uso: iptables (start | stop | restart | status)"
    echo
    ;;

    esac
    exit 0

  4. #4

    Padrão

    Cara primeiramente parabens por estar se dedicando, vou dar uns toques pra ver se ajuda, primeiramente pra manter as coisas mais organizadas:

    #!/bin/bash
    # Carregando módulos necessários e dando inicio ao firewall
    case "$1" in
    start)
    echo "Iniciando Firewall..."

    # Variaveis do Firewall
    LAN="192.168.0.0/24"
    INTRA="eth1"
    INTER="eth0"
    MICROSIGA="192.168.0.240"
    ACESSO_REMOTO="192.168.0.240"


    # Ativa Roteamento via kernel
    echo 1 > /proc/sys/net/ip_forward

    # Zerando as chains existentes
    iptables -F
    iptables -X
    iptables -F -t nat
    iptables -X -t nat

    # Definindo política padrão
    iptables -P INPUT DROP
    iptables -P FORWARD DROP
    iptables -P OUTPUT ACCEPT

    # Permissões de acesso ao firewall
    iptables -A INPUT -i lo -j ACCEPT
    iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

    # Abrindo algumas portas
    iptables -A INPUT -p tcp --dport 1234 -j ACCEPT
    iptables -A INPUT -p tcp --dport 3389 -j ACCEPT
    iptables -A INPUT -p tcp --dport 25 -j ACCEPT
    iptables -A INPUT -p tcp --dport 110 -j ACCEPT

    # Liberando Conectividade social
    iptables -A INPUT -p tcp -s $INTRA -d 200.201.174.0/24 --dport 80 -m state --state NEW -j ACCEPT

    # Redirecionando algumas portas
    iptables -t nat -A PREROUTING -i $INTER -p tcp --dport 1234 -j DNAT --to-dest $MICROSIGA
    iptables -A FORWARD -p tcp -i $INTER --dport 1234 -d $MICROSIGA -j ACCEPT
    iptables -t nat -A PREROUTING -i $INTER -p tcp --dport 3389 -j DNAT --to-dest $ACESSO_REMOTO
    iptables -A FORWARD -p tcp -i $INTER --dport 3389 -d $ACESSO_REMOTO -j ACCEPT
    iptables -t nat -A PREROUTING -i $INTER -p tcp --dport 80 -j REDIRECT --to-port 3128

    # Compartilha a conexão
    iptables -t nat -A POSTROUTING -o $INTER -j MASQUERADE

    # Bloqueando POrtScanners
    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 REJECT
    iptables -A FORWARD -p tcp --tcp-flags ALL FIN,URG,PSH -i $INTER -j SCANNER
    iptables -A FORWARD -p tcp --tcp-flags ALL NONE -i $INTER -j SCANNER
    iptables -A FORWARD -p tcp --tcp-flags ALL ALL -i $INTER -j SCANNER
    iptables -A FORWARD -p tcp --tcp-flags ALL FIN,SYN -i $INTER -j SCANNER
    iptables -A FORWARD -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -i $INTER -j SCANNER
    iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN,RST -i $INTER -j SCANNER
    iptables -A FORWARD -p tcp --tcp-flags SYN,FIN SYN,FIN -i $INTER -j SCANNER

    # Fechando o resto
    iptables -A INPUT -j DROP
    iptables -A FORWARD -j DROP

    ;;
    stop)
    echo “Parando Firewall:”
    iptables –F
    iptables –t nat –F

    ;;
    restart)
    $0 stop
    $0 start
    ;;
    status)
    iptables –L
    iptables –t nat –L
    ;;
    *)
    echo “Use: $0 {start|stop|restart|status}”
    exit 1
    ;;
    esac
    exit 0


    Quem sabe voce tera que fazer algumas alterações ou ate mesmo acrescentar mais alguma coisa, mas o principio da coisa e por ai

    Abração
    Última edição por gatoseco; 17-05-2007 às 15:39.