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.