> Pessoal, estou estudando o IPFW e quero usa-ló no trabalho e uma coisa > que > não consegui é. Como fazer para alterar as regras remotamente via SSH por > exemplo... sem perder a conexão... já compilei o kernel com > DEFAULT_ACCEPT > uso o check-state... tudo isso dentro de uma script bash, dai quando > altero > uma regra ou adiciono/removo e recarrego o script minha sessão cai... > segue > minhas regra. > > # Limpa regras antigas e aplica as novas. > /sbin/ipfw -q -f flush > > # comando para adicionar regras > fwadd="/sbin/ipfw -q add" > fw="/sbin/ipfw" > $fwadd pass all from any to any via lo0 > $fwadd check-state > $fwadd nat 1 config if em0 same_ports unreg_only > $fwadd pass all from me to any keep-state > $fwadd pass tcp from any to me 22 setup keep-state > $fwadd pass icmp from any to any keep-state > $fwadd pass udp from $lan to any keep-state > $fwadd pass all from $lan to any keep-state > $fwadd nat 1 all from $lan to any > $fwadd deny ip from any to any
Você esta utilizando uma regra com keep-state para aceitar o trafego do ssh (porta 22) então quando você executa o ipfw flush todas as regras dinamicas são removidas (junto com as estaticas) e você perde a conexão. Você pode remover o keep-state da conexão do ssh (workaround). Outra solução para isso é executar o script na maquina remota em background: # sh /path/do/seu/script/de/firewall.sh & Mesmo que a sua conexão seja fechada ele vai carregar suas regras até o fim e você não vai ficar com o firewall inconsistente. Normalmente depois de carregar todas as regras (em background) e mesmo utilizando o keep-state, a conexão volta a funcionar. Att., Luiz ------------------------- Histórico: http://www.fug.com.br/historico/html/freebsd/ Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd