2010/7/28 daniel danielog2073@gmail.com
Hola lista tengo un problema con iptables y los puertos, lo que pasa es que necesito abrir solo el puerto 22 de la maquina con la IP 192.168.1.33 y que solo su pueda conectar con la maquina 192.168.1.16 y viceversa, mi script es el siguiente:
##!/bin/sh ##SCRIPT de IPTABLES - ejemplo del manual de iptables ## Ejemplo de script para firewall entre redes. ## Pello Xabier Altadill Izura ## www.pello.info - pello@pello.info echo Aplicando Reglas de Firewall... ## FLUSH de reglas iptables -F iptables -X iptables -Z iptables -t nat -F ## Establecemos politica por defecto iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP ##Permitir conexiones locales iptables -A INPUT -i 192.168.1.33 -j ACCEPT ##Abrimos el puerto 22
iptables -A INPUT -s 192.168.1.16 -d 192.168.1.33 -p tcp --dport 22 -j ACCEPT iptables -A OUTPUT -s 192.168.1.33 -d 192.168.1.16 -p tcp --sport 22 -j ACCEPT
No se por que cuando hago un iptables -L -n me aparece esto:
Chain INPUT (policy DROP) target prot opt source destination ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ACCEPT tcp -- 192.168.1.16 192.168.1.33 tcp dpt:22
Chain FORWARD (policy DROP) target prot opt source destination
Chain OUTPUT (policy DROP) target prot opt source destination ACCEPT tcp -- 192.168.1.33 192.168.1.16 tcp spt:22
Y al momento de hacer un ssh de la maquina 192.168.1.16 a la 192.168.1.33 si me puedo conectar pero cuando me conecto de 192.168.1.33 a la 192.168.1.16 no puedo estuve jugando con las reglas y me di cuenta que es al momento de asignarle el puerto por que por ejemplo si la unicas reglas fueran:
iptables -A INPUT -s 192.168.1.16 -d 192.168.1.33 -p tcp -j ACCEPT iptables -A OUTPUT -s 192.168.1.33 -d 192.168.1.16 -p tcp -j ACCEPT
si me puedo conectar pero abviamente al no asignarle ningun puerto las dos maquinas tiene comunicación por todos los puertos algo que no quiero alquien tiene alguna idea?? la versión de IPTABLES que manejo es la iptables v1.3.5 Gracias de antemano.
El puerto 22 debería estar abierto en la máquina que recibe la conexión SSH. Si no puedes conectarte a la 192.168.1.16 puede ser que no has corrido tu script de firewall en ese equipo.
Por otro lado, recuerda que no basta con abrir el puerto para que exista el servicio de ssh, sino que debes activarlo con "service sshd start".
Otra cosa para recordar es que posiblemente tengas activado el servicio iptables, que tiene su propio conjunto de reglas, y con este script puede tener colisiones. Si vas a usar tus propias reglas, es recomendable que bajes el servicio iptables para evitar confusiones (de iptables y tuyas). Si en cambio sigues usando el servicio iptables, busca el archivo /etc/sysconfig/iptables y edita éste. Luego manejas el firewall con service iptables stop/start. También en ese caso si usas escritorio gráfico, además tienes una consola de administración gráfica accesible desde el escritorio.