PF com problemas no boot[atualizado]
Logo após ter instalado e configurado um firewall em BSD usando PF me deparei com um simples, comum e impactante problema. O rc no bsd é o cara que carrega e lê os scripts de inicialização do sistema. Existem um ordem para carregá-los e essa ordem normalmente tem lógica. Por exemplo, não adianta carregar um serviço como NTP antes de ter acesso a internet.
Mas é exatamente essa ordem de carregamento do serviços que estava errada para a minha necessidade. O meu firewall estava sendo carregado antes das configurações de rede. Tudo bem.. beleza. Entretanto, eu tenho algumas regras baseadas em hosts e não IP's. Exemplo:
Uma vez que a rede é "levantada" depois do firewall eu pergunto: Como o pobre firewall vai conseguir traduzir chatenabled.mail.google.com em IP?! Coisas do mundo moderno DNS. :-)
Mas é exatamente essa ordem de carregamento do serviços que estava errada para a minha necessidade. O meu firewall estava sendo carregado antes das configurações de rede. Tudo bem.. beleza. Entretanto, eu tenho algumas regras baseadas em hosts e não IP's. Exemplo:
block quick from any to chatenabled.mail.google.com
Uma vez que a rede é "levantada" depois do firewall eu pergunto: Como o pobre firewall vai conseguir traduzir chatenabled.mail.google.com em IP?! Coisas do mundo moderno DNS. :-)
Para solucionar pode-se fazer uso da POG ou:
chmod o+w /etc/rc.d/pf
vi /etc/rc.d/pf
# REQUIRE: root mountcritlocal netif pflog pfsync networking
inserir na linha acima a palavra "networking"
:x
chmod o-w /etc/rc.d/pf
Isso diz que o serviço de networking é necessário para carregar o pf. Vale pra quem tem o mesmo problema com VPN's.
Pronto!!!
Consegui solucionar esse problema alterando a ordem dos scripts na inicialização. O trecho abaixo mostra a comparação entre os arquivos originais e a modificação que é necessária fazer.
----snip------
upmefirewall# diff -ruN /etc/rc.d/ /home/lutierib/etc/rc.d/
diff -ruN /etc/rc.d/NETWORKING /home/lutierib/etc/rc.d/NETWORKING
--- /etc/rc.d/NETWORKING Fri Jan 12 04:13:15 2007
+++ /home/lutierib/etc/rc.d/NETWORKING Mon Mar 24 17:28:13 2008
@@ -7,6 +7,7 @@
# PROVIDE: NETWORKING NETWORK
# REQUIRE: netif routing network_ipv6 isdnd ppp
# REQUIRE: routed mrouted route6d mroute6d
+# BEFORE: pf
# This is a dummy dependency, for services which require networking
# to be operational before starting.
diff -ruN /etc/rc.d/pf /home/lutierib/etc/rc.d/pf
--- /etc/rc.d/pf Mon Mar 24 17:51:16 2008
+++ /home/lutierib/etc/rc.d/pf Mon Mar 24 17:27:05 2008
@@ -5,7 +5,6 @@
# PROVIDE: pf
# REQUIRE: root mountcritlocal netif pflog pfsync
-# BEFORE: routing
# KEYWORD: nojail
. /etc/rc.subr
upmefirewall#
----snip------
Resumindo a saída do diff acima:
Dois arquivos são alterados. São eles: NETWORKING e pf.
No arquivo NETWORKING adiciona-se a linha: # BEFORE: pf
E no arquivo pf remove-se a linha: # BEFORE: routing
Para verificar a ordem que os scripts serão carregados:
rcorder /etc/rc.d/* /usr/local/etc/rc.d/*
1 Comentários:
Blz cara?
Sou do sul tbm, de cachoeirinha x)
Me add ai no msn
jgabriel_mello@hotmail.com
ou email jgnmello@gmail.com
Abraço, parabéns pelo blog!
By Anônimo, at 19/04/2008, 02:49
Postar um comentário
<< Home