<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://guia-ubuntu.com/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
		<id>https://guia-ubuntu.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ruton</id>
		<title>Guía Ubuntu - Contribuciones del usuario [es]</title>
		<link rel="self" type="application/atom+xml" href="https://guia-ubuntu.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ruton"/>
		<link rel="alternate" type="text/html" href="https://guia-ubuntu.com/index.php/Especial:Contribuciones/Ruton"/>
		<updated>2026-05-01T13:20:40Z</updated>
		<subtitle>Contribuciones del usuario</subtitle>
		<generator>MediaWiki 1.22.7</generator>

	<entry>
		<id>https://guia-ubuntu.com/index.php/Cortafuegos</id>
		<title>Cortafuegos</title>
		<link rel="alternate" type="text/html" href="https://guia-ubuntu.com/index.php/Cortafuegos"/>
				<updated>2006-08-17T10:19:27Z</updated>
		
		<summary type="html">&lt;p&gt;Ruton: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Un '''cortafuegos''' o firewall es una herramienta que facilita la protección contra intrusos que pretenden acceder a nuestro ordenador sin nuestro consentimiento.&lt;br /&gt;
&lt;br /&gt;
Existen variedad de cortafuegos en GNU/Linux, en modo texto y en modo gráfico.&lt;br /&gt;
Entre ellos, el más destacable por su sencillez de manejo es [http://www.fs-security.com/ Firestarter].&lt;br /&gt;
&lt;br /&gt;
Para instalarlo, lée [[Primeros pasos/Añadir aplicaciones]].&lt;br /&gt;
&lt;br /&gt;
Otra opción es utilizar la herramienta iptables. En el siguiente artículo publicado por herje en http://www.ubuntu-es.org/node/422 muestra como hacerlo fácil:&lt;br /&gt;
&lt;br /&gt;
Para los paranoicos, explico un modo muy simple de implementar iptables con el fin de cerrar todos los puertos que queramos de nuestro pc.&lt;br /&gt;
Iptables es un sistema firewall muy potente incluido en el nucleo de Linux y que requiere una serie de conocimientos. Hay cientos de tutoriales en la red.&lt;br /&gt;
No obstante me voy a centrar en alguien que puede ser un usuario normal y que desea lo siguiente:&lt;br /&gt;
&lt;br /&gt;
-Cerrar todos los puertos de entrada&lt;br /&gt;
-Navegar por internet&lt;br /&gt;
-Permitir el acceso a internet de cualquier aplicación que él inicie.&lt;br /&gt;
-Permitir la libre navegación de la LAN de confianza si la tiene&lt;br /&gt;
&lt;br /&gt;
En primer lugar instalamos el paquete iptables:&lt;br /&gt;
&lt;br /&gt;
#apt-get install -test iptables&lt;br /&gt;
&lt;br /&gt;
Esto nos activará el servicio por defecto. Solo queda implementar el script de iptables con nuestras reglas y hacer que se carguen al inicio.&lt;br /&gt;
&lt;br /&gt;
El script que yo tengo, sin entrar en detalles viene a ser algo asi, muy sencillo:&lt;br /&gt;
&lt;br /&gt;
--------------------&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
#-s Especifica una dirección de origen&lt;br /&gt;
#-d Especifica una dirección de destino&lt;br /&gt;
#-p Especifica un prototocolo&lt;br /&gt;
#-i Especifica un interface de entrada&lt;br /&gt;
#-o Especifica un interface de salida&lt;br /&gt;
#-j Especifica la acción a ejecutar sobre el paquete&lt;br /&gt;
#--sport Puerto de origen&lt;br /&gt;
#--dport Puerto de destino&lt;br /&gt;
&lt;br /&gt;
#Borrar todas las reglas&lt;br /&gt;
iptables -F&lt;br /&gt;
&lt;br /&gt;
#Politica general.Cerramos todo.Dejamos entrar y salir lo solicitado&lt;br /&gt;
iptables -P INPUT DROP&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
###OTRAS PROTECCIONES####&lt;br /&gt;
&lt;br /&gt;
# Quitamos los pings.&lt;br /&gt;
/bin/echo &amp;quot;1&amp;quot; &amp;gt; /proc/sys/net/ipv4/icmp_echo_ignore_all&lt;br /&gt;
&lt;br /&gt;
# No respondemos a los broadcast.&lt;br /&gt;
/bin/echo &amp;quot;1&amp;quot; &amp;gt; /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts&lt;br /&gt;
&lt;br /&gt;
# Para evitar el spoofing nos aseguramos de que la dirección&lt;br /&gt;
# origen del paquete viene del sitio correcto.&lt;br /&gt;
for interface in /proc/sys/net/ipv4/conf/*/rp_filter; do&lt;br /&gt;
/bin/echo &amp;quot;1&amp;quot; &amp;gt; ${interface}&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
# Los ICMPs redirigidos que pueden alterar la tabla de rutas.&lt;br /&gt;
for interface in /proc/sys/net/ipv4/conf/*/accept_redirects; do&lt;br /&gt;
/bin/echo &amp;quot;0&amp;quot; &amp;gt; ${interface}&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
# No guardamos registros de los marcianos.&lt;br /&gt;
/bin/echo &amp;quot;1&amp;quot; &amp;gt; /proc/sys/net/ipv4/conf/all/log_martians&lt;br /&gt;
&lt;br /&gt;
# Asegurar, aunque no tenga soporte el nucleo, q no hay forward.&lt;br /&gt;
/bin/echo &amp;quot;0&amp;quot; &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
###Reglas de los puertos####&lt;br /&gt;
&lt;br /&gt;
# Permitimos que se conecten a nuestro servidor web.&lt;br /&gt;
&lt;br /&gt;
#iptables -A INPUT -m state --state NEW -p TCP --dport 80 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
#Abrimos ssh a la red.&lt;br /&gt;
#iptables -A INPUT -s 172.26.0.3 -p TCP --dport 22 -j ACCEPT&lt;br /&gt;
#iptables -A INPUT -s 172.26.0.4 -p TCP --dport 22 -j ACCEPT&lt;br /&gt;
#iptables -A INPUT -s 172.26.0.5 -p TCP --dport 22 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
#iptables -A INPUT -p TCP --dport 22 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
# Permitimos la comunicación con el servidor dns&lt;br /&gt;
iptables -A INPUT -p UDP --dport 53 -j ACCEPT&lt;br /&gt;
iptables -A INPUT -p TCP --dport 53 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
#Permitimos uso de ftp.&lt;br /&gt;
#iptables -A INPUT -p TCP --dport 21 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
#Permitimos acceso pop3.&lt;br /&gt;
#iptables -A INPUT -p TCP --dport 110 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
# Permitimos uso de smtp&lt;br /&gt;
#iptables -A INPUT -p TCP --dport 25 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
#Permitimos acceso imap.&lt;br /&gt;
#iptables -A INPUT -p TCP --dport 143 -j ACCEPT&lt;br /&gt;
#iptables -A INPUT -p UDP --dport 143 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
#Permitimos todo el trafico de la LAN&lt;br /&gt;
iptables -A INPUT -s 172.26.0.2 -j ACCEPT&lt;br /&gt;
iptables -A INPUT -s 172.26.0.4 -j ACCEPT&lt;br /&gt;
iptables -A INPUT -s 172.26.0.5 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
#Dejamos a localhost, para mysql, etc..&lt;br /&gt;
iptables -A INPUT -i lo -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
----------------------&lt;br /&gt;
&lt;br /&gt;
Logicamente las lineas van juntas. Solo se aplican las lineas no comentadas con # , las otras son para mi servidor.&lt;br /&gt;
&lt;br /&gt;
el fichero se puede llamar por ejemplo firewall.sh , debemos darle permisos de ejecución:&lt;br /&gt;
&lt;br /&gt;
#chmod +x firewall.sh&lt;br /&gt;
&lt;br /&gt;
Ahora si aplicamos el script de este modo:&lt;br /&gt;
&lt;br /&gt;
#sh firewall.sh&lt;br /&gt;
&lt;br /&gt;
podemos ver la salida de iptables haciendo:&lt;br /&gt;
&lt;br /&gt;
#iptables -L&lt;br /&gt;
&lt;br /&gt;
que viene a ser algo asi:&lt;br /&gt;
&lt;br /&gt;
--------------------&lt;br /&gt;
root@platas:/home/herje # iptables -L&lt;br /&gt;
Chain INPUT (policy DROP)&lt;br /&gt;
target prot opt source destination&lt;br /&gt;
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED&lt;br /&gt;
ACCEPT udp -- anywhere anywhere udp dpt:domain&lt;br /&gt;
ACCEPT tcp -- anywhere anywhere tcp dpt:domain&lt;br /&gt;
ACCEPT all -- glorioso anywhere&lt;br /&gt;
ACCEPT all -- minime anywhere&lt;br /&gt;
ACCEPT all -- placebo anywhere&lt;br /&gt;
ACCEPT all -- anywhere anywhere&lt;br /&gt;
&lt;br /&gt;
Chain FORWARD (policy ACCEPT)&lt;br /&gt;
target prot opt source destination&lt;br /&gt;
&lt;br /&gt;
Chain OUTPUT (policy ACCEPT)&lt;br /&gt;
target prot opt source destination&lt;br /&gt;
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED&lt;br /&gt;
root@platas:/home/herje #&lt;br /&gt;
&lt;br /&gt;
--------------------&lt;br /&gt;
&lt;br /&gt;
Solo falta hacer que las reglas se carguen al inicio, para ello copiamos el script en /etc/init.d y lo ponemos por default:&lt;br /&gt;
&lt;br /&gt;
#cp firewall.sh /etc/init.d/&lt;br /&gt;
#update-rc.d firewall.sh defaults&lt;br /&gt;
&lt;br /&gt;
Y listo con esto tenemos nuestro firewall funcionando.&lt;br /&gt;
Agradezco cualquier aclaración, complemento etc.. teniendo en cuenta que está pensado para un user casero y sin grandes pretensiones.&lt;br /&gt;
&lt;br /&gt;
{{esbozo}}&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Administración del sistema]][[Categoría:Seguridad]]&lt;/div&gt;</summary>
		<author><name>Ruton</name></author>	</entry>

	</feed>