Autor Tópico: Qualquer um pode fazer um script de firewall em iptables, mamão com açucar  (Lida 12058 vezes)

Offline ucastrobr

  • Usuário Ubuntu
  • *
  • Mensagens: 693
  • Usa Ubuntu 11.10 (Oneiric Ocelot)
    • Ver perfil
Abra um editor de texto (observação tem que ser gedit, vi, nano, não me vá abrir openoffice ou abiword)
Aplicações->Acessórios->Editor de texto

Cole isso dentro do seu editor:
Código: [Selecionar]
    #!/bin/bash

    # Este script deve ser usado em Desktops apenas, não possui qualquer
    # especialização para uso em servidores de segurança ou ambientes em produção
    # oferece apenas o nível básico de proteção, para maiores informações consultar
    # a documentação oficial do iptables e sites especializados em segurança
    #
    # Criado por Allan Garcia
    # allan.garcia@gmail.com
    # V 1.0

    . /lib/lsb/init-functions

    IPTABLES=”/sbin/iptables”
    IPTABLES_SAVE=”/sbin/iptables-save”
    IPTABLES_RESTORE=”/sbin/iptables-restore”
    IPTABLES_RULES=”/etc/default/iptables”
    SAVE_RESTORE_OPTIONS=”-c”

    fillbasicrules() {
    ${IPTABLES} -F
    ${IPTABLES} -X
    ${IPTABLES} -P INPUT DROP
    ${IPTABLES} -P FORWARD DROP
    ${IPTABLES} -P OUTPUT DROP
    ${IPTABLES} -N Ubuntu-Firewall-1-INPUT
    ${IPTABLES} -A INPUT -j Ubuntu-Firewall-1-INPUT
    ${IPTABLES} -A FORWARD -j Ubuntu-Firewall-1-INPUT
    ${IPTABLES} -A OUTPUT -j ACCEPT
    ${IPTABLES} -A Ubuntu-Firewall-1-INPUT -i lo -j ACCEPT
    ${IPTABLES} -A Ubuntu-Firewall-1-INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT
    ${IPTABLES} -A Ubuntu-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT
    ${IPTABLES} -A Ubuntu-Firewall-1-INPUT -j REJECT –reject-with icmp-host-prohibited
    }

    checkrules() {
    if [ ! -f ${IPTABLES_RULES} ]; then
    echo -n “There is no rules configured, can I suggest some (y/n) [y]?”
    read input
    if [ -z $input ] || [ “$input” == “y” ] || [ “$input” == “yes” ] || [ “$input” == “Y” ] || [ “$input” == “YES” ]; then
    fillbasicrules
    save
    else
    echo “Not starting iptables. First create some rules then run”
    echo “\”/etc/init.d/iptables save\”"
    return 1
    fi
    fi
    }

    save() {
    ${IPTABLES_SAVE} ${SAVE_RESTORE_OPTIONS} > ${IPTABLES_RULES}
    return $?
    }

    start() {
    checkrules || return 1
    ${IPTABLES_RESTORE} ${SAVE_RESTORE_OPTIONS} < ${IPTABLES_RULES}
    return $?
    }

    stop() {
    for table in `cat /proc/net/ip_tables_names`; do
    ${IPTABLES} -F -t $table
    ${IPTABLES} -X -t $table
    if [ $table == nat ]; then
    ${IPTABLES} -t $table -P PREROUTING ACCEPT
    ${IPTABLES} -t $table -P POSTROUTING ACCEPT
    ${IPTABLES} -t $table -P OUTPUT ACCEPT
    elif [ $table == mangle ]; then
    ${IPTABLES} -t $table -P PREROUTING ACCEPT
    ${IPTABLES} -t $table -P INPUT ACCEPT
    ${IPTABLES} -t $table -P FORWARD ACCEPT
    ${IPTABLES} -t $table -P OUTPUT ACCEPT
    ${IPTABLES} -t $table -P POSTROUTING ACCEPT
    elif [ $table == filter ]; then
    ${IPTABLES} -t $table -P INPUT ACCEPT
    ${IPTABLES} -t $table -P FORWARD ACCEPT
    ${IPTABLES} -t $table -P OUTPUT ACCEPT
    fi
    done
    }

    restart() {
    for table in `cat /proc/net/ip_tables_names`; do
    ${IPTABLES} -F -t $table
    ${IPTABLES} -X -t $table
    done
    start
    }

    case “$1″ in
    save)
    echo -n “Saving iptables state…”
    save
    if [ $? -eq 0 ]; then
    echo ” ok”
    else
    echo ” error!”
    fi
    ;;

    start)
    log_begin_msg “Loading iptables state and starting firewall…”
    start
    log_end_msg $?
    ;;

    stop)
    log_begin_msg “Stopping firewall…”
    stop
    log_end_msg 0
    ;;

    restart)
    log_begin_msg “Stopping firewall…”
    restart
    log_end_msg $?
    ;;

    *)
    echo “Usage: /etc/init.d/iptables {start|stop|restart|save}” >&2
    exit 1
    ;;

    esac

    exit 0

Feche o arquivo que aparecerá a opção "salvar como" aparecerá uma janelinha coloque o nome digitando "iptables" sem aspas é claro. E salve o arquivo.
Pode verificar que ele está em sua pasta pessoal, home.
Agora abra um terminal qualquer e digite: (OBS: Para colar o comando num terminal basta acionar CTRL+C  e clicar no terminal e acionar SHIFT+INSERT que colará)
Comandos cole um por vez na sequência correta, comando 1:
Código: [Selecionar]
cd /etc/init.d/
Comando 2:
Código: [Selecionar]
sudo -s
Comando 3:
mv /home/usuáriox/iptables ./     (Nota o usuáriox você terá que colocar o nome do seu)

Comando 4:
Código: [Selecionar]
chown root.root iptables
Comando 5:
Código: [Selecionar]
chmod 755 iptables
Comando 6:
Código: [Selecionar]
exit
AGORA ESTA PARTE EM COR VERDE É OPCIONAL PARA QUEM QUISER COLOCAR MAIS REGRAS EMBORA AS REGRAS DO SCRIPT ACIMA É O SUFICIENTE. Pule esta parte.
Se você iniciar o iptables sem criar regras, o próprio script irá lhe sugerir um conjunto inicial de regras, caso queira criar seu próprio conjunto de regras, faça-o e depois salve usando o comando


Código: [Selecionar]
sudo /etc/init.d/iptables start
O conjunto de regras sugerido é suficiente para proteger seu computador pessoal, todavia para uma configuração mais avançada recomento uma leitura mais aprofundada na documentação do iptables (man iptables).

Após a regras salvas inicie o iptables usando o comando 7

Código: [Selecionar]
sudo /etc/init.d/iptables start
Para habilitar a inicialização sempre que o computador ligar execute comando 8

Código: [Selecionar]
sudo update-rc.d iptables defaults
Pronto! Seu firewall está configurado para carregar na inicialização do computador

Última observação:
Esse script está muito bom, mas faz com que o NetworkManager do ubuntu deixe de funcionar. Para isto nao acontecer o script tem de ser colocado em /etc/NetworkManager/dispatcher.d/01iptables
deste modo o NM continua a funcionar.
Fonte de matéria:Allan Garcia
« Última modificação: 19 de Novembro de 2007, 17:17 por ucastrobr »
Spock – "After a time, you may find that having is not so pleasing a thing, after all, as wanting. It is not logical, but it is often true."
("Depois um de tempo você vai perceber que ter algo pode não ser tão prazeroso quanto deseja-lo. Isto não é lógico, mas frequentemente é verdade.")

Offline AquaMan

  • Usuário Ubuntu
  • *
  • Mensagens: 138
  • <Ubunteiro desde jul/07> Hardy Haron
    • Ver perfil
Re: Qualquer um pode fazer um script de firewall em iptables, mamão com açucar
« Resposta #1 Online: 19 de Novembro de 2007, 17:21 »
Bacana a sugestão, mas como sou ainda novato no Linux, isto significa que quando ligo o micro com Ubuntu eu não estou protegido? É preciso que eu siga este passo-a-passo para ter um firewall ativado no Ubuntu?

Uso o 7.04 e o 7.10.

Abarços!

(AMD Athlon 64 3.5Ghz/1Gb RAM/80Gb+250Gb/Geforce FX 6200 128Mb/Palm T5)

Offline ucastrobr

  • Usuário Ubuntu
  • *
  • Mensagens: 693
  • Usa Ubuntu 11.10 (Oneiric Ocelot)
    • Ver perfil
Re: Qualquer um pode fazer um script de firewall em iptables, mamão com açucar
« Resposta #2 Online: 19 de Novembro de 2007, 18:38 »
Sim o iptables já está instalado mas sem nenhuma regra, sem nenhuma proteção contra invasores.
Não precisa desesperar porque dificilmente um desktop de usuário normal precisará usá-los a não ser que seja de empresas. Mesmo assim um homem prevenido vale por dois.
Tem que ativá-lo ou pelo script que acima acionei ou pelo firestarter um programa gráfico que irá ditar as regras do iptables.
Eu prefiro pelo script mais simples e menos burocracia.
Spock – "After a time, you may find that having is not so pleasing a thing, after all, as wanting. It is not logical, but it is often true."
("Depois um de tempo você vai perceber que ter algo pode não ser tão prazeroso quanto deseja-lo. Isto não é lógico, mas frequentemente é verdade.")

Offline rjbgbo

  • Usuário Ubuntu
  • *
  • Mensagens: 3.889
  • Xubuntu 18.04LTS
    • Ver perfil
    • Twitter
Re: Qualquer um pode fazer um script de firewall em iptables, mamão com açucar
« Resposta #3 Online: 19 de Novembro de 2007, 18:43 »
ucastrobr, minha conexão de Internet é via rádio e meu provedor faz o controle de firewall. Eu também preciso fazer tal ativação?
Linux User #440843 | Ubuntu User #11469

Offline ucastrobr

  • Usuário Ubuntu
  • *
  • Mensagens: 693
  • Usa Ubuntu 11.10 (Oneiric Ocelot)
    • Ver perfil
Re: Qualquer um pode fazer um script de firewall em iptables, mamão com açucar
« Resposta #4 Online: 19 de Novembro de 2007, 19:03 »
A minha conexão também é via rádio e veja bem um hacker pode invadir seu provedor e acessar informações de seus usuários, quanto mais proteção melhor.
Spock – "After a time, you may find that having is not so pleasing a thing, after all, as wanting. It is not logical, but it is often true."
("Depois um de tempo você vai perceber que ter algo pode não ser tão prazeroso quanto deseja-lo. Isto não é lógico, mas frequentemente é verdade.")

Offline rjbgbo

  • Usuário Ubuntu
  • *
  • Mensagens: 3.889
  • Xubuntu 18.04LTS
    • Ver perfil
    • Twitter
Re: Qualquer um pode fazer um script de firewall em iptables, mamão com açucar
« Resposta #5 Online: 19 de Novembro de 2007, 23:01 »
A minha conexão também é via rádio e veja bem um hacker pode invadir seu provedor e acessar informações de seus usuários, quanto mais proteção melhor.

Opa ucastrobr, vou providenciar isso
Obrigado.
Linux User #440843 | Ubuntu User #11469

Offline gabriel0085

  • Usuário Ubuntu
  • *
  • Mensagens: 577
    • Ver perfil
Re: Qualquer um pode fazer um script de firewall em iptables, mamão com açucar
« Resposta #6 Online: 20 de Novembro de 2007, 01:56 »
A minha conexão também é via rádio e veja bem um hacker pode invadir seu provedor e acessar informações de seus usuários, quanto mais proteção melhor.

Opa ucastrobr, vou providenciar isso
Obrigado.

Ricardo,

se não quiser ter muito trabalho criando um script, basta usar o Firestarter, que é justamente um scrpt gráfico e facilitado para o iptables.

Mas se quiser aprender um pouco o tópico é ótimo.

Valeu ucastorbr, mais um ótimo tópico pra quem 'tá afim de fuçar no sistema.

Offline ucastrobr

  • Usuário Ubuntu
  • *
  • Mensagens: 693
  • Usa Ubuntu 11.10 (Oneiric Ocelot)
    • Ver perfil
Re: Qualquer um pode fazer um script de firewall em iptables, mamão com açucar
« Resposta #7 Online: 20 de Novembro de 2007, 19:24 »
Obrigado Gabriel, o uso do script simplificado é apenas para os iniciantes começarem a pegar o gosto fazendo seu primeiro script, afinal só usar interface gráfica para tudo é mais confortável mas não acrescenta nada ao aprendizado.
Spock – "After a time, you may find that having is not so pleasing a thing, after all, as wanting. It is not logical, but it is often true."
("Depois um de tempo você vai perceber que ter algo pode não ser tão prazeroso quanto deseja-lo. Isto não é lógico, mas frequentemente é verdade.")

Offline rjbgbo

  • Usuário Ubuntu
  • *
  • Mensagens: 3.889
  • Xubuntu 18.04LTS
    • Ver perfil
    • Twitter
Re: Qualquer um pode fazer um script de firewall em iptables, mamão com açucar
« Resposta #8 Online: 20 de Novembro de 2007, 20:54 »
Pois é optei mesmo é claro pelo gráfico Firestarter, mas tô c/ um dúvida:
Ainda ñ o configurei p/ inicializar na sessão, por causa dele sempre pedir ao abrir a senha, neste fórum encontrei 2 casos sobre o assunto:
http://ubuntuforum-br.org/index.php/topic,2862.msg15403.html#msg15403
http://ubuntuforum-br.org/index.php/topic,15913.msg85342.html#msg85342

Ainda vou dar minha checada no fórum internacional sobre o caso.
Linux User #440843 | Ubuntu User #11469

Offline gabriel0085

  • Usuário Ubuntu
  • *
  • Mensagens: 577
    • Ver perfil
Re: Qualquer um pode fazer um script de firewall em iptables, mamão com açucar
« Resposta #9 Online: 20 de Novembro de 2007, 21:09 »
Pois é optei mesmo é claro pelo gráfico Firestarter, mas tô c/ um dúvida:
Ainda ñ o configurei p/ inicializar na sessão, por causa dele sempre pedir ao abrir a senha, neste fórum encontrei 2 casos sobre o assunto:
http://ubuntuforum-br.org/index.php/topic,2862.msg15403.html#msg15403
http://ubuntuforum-br.org/index.php/topic,15913.msg85342.html#msg85342

Ainda vou dar minha checada no fórum internacional sobre o caso.


A dica do primeiro link que você colocou funciona perfeitamente com o firestarter.

Com a dica ele irá iniciar minimizado no systray e não irá pedir senha.

Esse método é seguro.

Citar
coloquei o firestarter para iniciar junto com a sessão, e agora ele sempre me pede senha ao entrar no gnome. Quero eliminar essa segunda senha, e para isso pensei em usar o sudoers para abrir o firestarter como root sem senha.

ficou assim o meu sudoers:
# /etc/sudoers
#
# Defaults

Defaults   !lecture,tty_tickets,!fqdn

# User privilege specification
root   ALL=(ALL) ALL

# Members of the admin group may gain root privileges
%admin   ALL=(ALL) ALL
%admin   ALL=NOPASSWD: /usr/bin/firestarter

-------------------------


Eu pertenço ao grupo admin, no entanto por algum motivo não está funcionando na inicialização. Recebo a mensagem de que eu preciso de permissões de root para rodar. No entanto, chamando $ sudo firestarter funciona ok.

vejam isso:
$ sudo -l
User alexandre may run the following commands on this host:
    (ALL) ALL
    (root) NOPASSWD: /usr/bin/firestarter

Offline rjbgbo

  • Usuário Ubuntu
  • *
  • Mensagens: 3.889
  • Xubuntu 18.04LTS
    • Ver perfil
    • Twitter
Re: Qualquer um pode fazer um script de firewall em iptables, mamão com açucar
« Resposta #10 Online: 21 de Novembro de 2007, 11:27 »
Amigos, ucastrobr e gabriel0085, encontrei um bom tuto de como instalar e configurar o Firestarter p/ iniciar junto c/ o Linux, s/ pedir senha:

http://ubuntuforum-br.org/index.php/topic,28364.0.html

também sugiro esse tópico - http://ubuntuforum-br.org/index.php/topic,17835.0.html
C/ um tuto anterior/ postado nesse fórum
« Última modificação: 21 de Novembro de 2007, 15:44 por rjbgbo »
Linux User #440843 | Ubuntu User #11469

alarcon

  • Visitante
Re: Qualquer um pode fazer um script de firewall em iptables, mamão com açucar
« Resposta #11 Online: 21 de Novembro de 2007, 12:30 »
Realmente seguir um roteiro é mamão com açúcar, mais entender o que está fazendo e conseqüentemente as regras do iptables para a partir daí você criar o seu próprio firewall, é que é mais complicado. Agora mais fácil ainda é instalar o Firestarter. ;)

Agora deixo como contribuição este excelente link do guia do hardware para quem quer entender um pouco sobre iptables e firewall no linux:

http://www.guiadohardware.net/tutoriais/linux-escrevendo-scripts-firewall/