Una forma de establecer las reglas de firewall en CentOS es reemplazar el /etc/sysconfig/iptables
enteramente mediante el uso de una plantilla en la receta.
Supongamos que desea ajustar el enrutamiento porque está configurando un libro de cocina del servidor web Apache ("apache2"). Crear el archivo cookbooks/apache2/templates/default/iptables.erb
Con el siguiente contenido:
# Firewall configuration created and managed by Chef
# Do not edit manually
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m tcp -p tcp --dport 443 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
Asegúrese de tener una línea de retorno después de COMPROMISO.
Luego llame a la plantilla en su receta, y luego reinicie el iptables
Servicio.
#
# Load firewall rules we know works
#
template "/etc/sysconfig/iptables" do
# path "/etc/sysconfig/iptables"
source "iptables.erb"
owner "root"
group "root"
mode 00600
# notifies :restart, resources(:service => "iptables")
end
execute "service iptables restart" do
user "root"
command "service iptables restart"
end
Cuando corres vagrant up
, verá la siguiente salida (extracto).
...
INFO: Processing template[/etc/sysconfig/iptables] action create (bpif_apache2::default line 40)
INFO: template[/etc/sysconfig/iptables] backed up to /var/chef/backup/etc/sysconfig/iptables.chef-20130312055953
INFO: template[/etc/sysconfig/iptables] updated content
INFO: template[/etc/sysconfig/iptables] owner changed to 0
INFO: template[/etc/sysconfig/iptables] group changed to 0
INFO: template[/etc/sysconfig/iptables] mode changed to 600
INFO: Processing execute[service iptables restart] action run (bpif_apache2::default line 49)
INFO: execute[service iptables restart] ran successfully
...
Los siguientes enlaces me ayudaron a asimilar y finalmente resolver este problema.
FWIW, Opscode parece ser que encontrar los firewalls en CentOS también es un desafío, según su libro de recetas de apache2 README (23 de febrero de 2013):
La forma más fácil, pero ciertamente no ideal, de tratar con IPtables es
Limpia todas las reglas. Opscode proporciona un libro de cocina de iptables pero es
Migración del enfoque utilizado allí a una solución más robusta.
utilizando un LWRP general de "firewall" que tendría un "iptables"
proveedor. Alternativamente, puedes usar ufw, con uscw de Opscode y
Firewall de libros de cocina para configurar reglas. Ver los READMEs de esos libros de cocina para
documentación.