Su configuración en si es bastante sencilla, es recomendable probar comando por comando en consola. De todas formas hay que crear un script para que se cargue con el arranque, ya que cada vez que se reinicia el sistema los cambios se pierden.
Probando comandos.
Abrir consola en Applications->accesories->terminal.
En consola todo lo que haremos será con el comando iptables, si no está instalado:
#sudo apt-get iptables
Pero hace años que se integró en los repositorios por defecto, lo mas seguro es que no haga falta.
Aceptamos conexiones entrantes activas en el momento. Es importante que el sistema esté limpio de intrusos en este momento. Hay que ser originales.
#sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Aceptamos conexiones ssh tcp por el puerto por defecto (22). Esto nos permitirá loguearnos de forma remota, en caso de necesitarlo.
#sudo iptables -A INPUT -p tcp --dport ssh -j ACCEPT
Aceptamos conexiones tcp por el puerto 80, es decir www.
#sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
Aceptamos todo el tráfico por el puerto loopbak (como un puerto espejo...) en posición primera de iptables.
recordemos que muchos programas utilizan la interfaz loopback para comunicarse con otras.
#iptables -I INPUT 1 -i lo -j ACCEPT
Bloqueamos todo el resto del tráfico.
#iptables -A INPUT -j DROP
Hasta ahora se puede trabajar con esto, para comprobar lo que se ha hecho hay que usar el siguiente comando:
root@laptop:~# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT tcp -- anywhere anywhere tcp dpt:www
DROP all -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Puede ser necesario compartir la conexión en un futuro...
NAT/PAT
#sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -o ppp0 -j MASQUERADE
La orden anterior supone que su espacio de direcciones privadas es 192.168.0.0/16 y que el dispositivo que conecta con Internet es ppp0.
La sintaxis se descompone de la siguiente forma:
-t nat -- la regla es para ir a la tabla nat
-A POSTROUTING -- la regla es para añadir (-A) a la cadena POSTROUTING
-s 192.168.0.0/16 -- la regla se aplica al tráfico originado desde la dirección específica
-o ppp0 -- la regla se aplica al tráfico programado para ser enrutado a través del dispositivo de red especificado
-j MASQUERADE -- el tráfico que se ajuste a esta regla «saltará» («jump», -j) al destino MASQUERADE para ser manipulado como se describió anteriormente
Listado de filtros habilitados para el forwarding.
root@laptop:~# iptables -A FORWARD -s 192.168.0.0/16 -o ppp0 -j ACCEPT
root@laptop:~# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT tcp -- anywhere anywhere tcp dpt:www
DROP all -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 192.168.0.0/16 anywhere
Maquina ppp0 la anterior y las activas en el momento.
root@laptop:~# iptables -A FORWARD -d 192.168.0.0/16 -m state --state ESTABLISHED,RELATED -i ppp0 -j ACCEPT
root@laptop:~# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT tcp -- anywhere anywhere tcp dpt:www
DROP all -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 192.168.0.0/16 anywhere
ACCEPT all -- anywhere 192.168.0.0/16 state RELATED,ESTABLISHED
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Ahora para que todo el trabajo no se pierda al reiniciar, hay que crear un script con todos los comandos aplicados hasta el momento...
En un archivo de texto en blanco, abierto con el writer de openoffice, se añaden las siguientes lineas:
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport ssh -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -I INPUT 1 -i lo -j ACCEPT
iptables -A INPUT -j DROP
sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -o ppp0 -j MASQUERADE
sudo iptables -A FORWARD -s 192.168.0.0/16 -o ppp0 -j ACCEPT
sudo iptables -A FORWARD -d 192.168.0.0/16 -m state --state ESTABLISHED,RELATED -i ppp0 -j ACCEPT
Guardar y cerrar. En consola se le aplica al archivo permiso de ejecución:
#chmod +x nombredelscript
Un apunte, para comprobar que no hay intrusos en el sistema, se puede hacer con el comando:
# chkrootkit -q
No hay comentarios:
Publicar un comentario