You are on page 1of 4

Lab 2.

Configuracin de Firewall usando IPTABLES

1. Verificar si existe el servicio iptables en el servidor:


Comprobar que existe el archivo /etc/init.d/iptables
2. Verificar estado del servicio iptables:
cd /etc/init.d
./iptables status
Otra manera: service iptables status
3. Visualizar paquetes rpm instalados relativos al servicio de listas de control de acceso iptables:
rpm qa | grep iptables
Si no est instalado el servicio, bajar los paquetes de instalacin rpm de iptables. Por ejemplo, para la
versin 4.3p2-14.fc6 de iptables, hay que bajar los siguientes archivos:
iptables-1.3.8-2.1.fc6.i386.rpm
Se recomienda bajar los paquetes del sitio web www.rpmfind.net
Otro site posible: ftp://ftp.rediris.es/volumes/vol3/fedora.redhat.com/core/6/i386/os/Fedora/RPMS/
4. Inicialmente se harn pruebas para verificar la correcta instalacin del servicio, usando la misma mquina como
servidor y cliente. Por ello, se instalarn los paquetes RPMS que incluyen el servicio ssh, sftp y scp (tanto
servidor como cliente) en la misma mquina:
rpm ivh iptables-1.3.8-2.1.fc6.i386.rpm
Otra manera que permite automticamente bajar de internet e instalar los paquetes correspondientes:
yum install iptables
5. Si el servicio iptables no est activo, arrancarlo:
/etc/init.d/iptables start
Otra manera: service iptables start
6. Probar algunas reglas de control de acceso, en la cuales se realicen las siguientes acciones:
a) Impedir el acceso al servicio ssh desde la mquina vecina
b) Impedir que la mquina vecina pueda hacer ping hacia la mquina en la que usted est trabajando
c) Impedir que la mquina en la que usted est trabajando se conecte a www.google.com
d) Permitir el acceso al servicio ssh desde la mquina vecina y bloquear el resto
e) Permitir el acceso al servicio ftp desde la red 159.90.168.0/22 y bloquear el resto
f) Listar las reglas de su lista de control de acceso
g) Vaciar completamente la lista de reglas de control de acceso
7. Construir una lista de control de acceso que permita el acceso de entrada desde la red de Lab C (159.90.168.0) a
los siguientes servicios: ftp, ssh, http, https, smtp. Permita todo tipo de trfico entre los usuarios de su mquina
local. Bloquee el resto del trfico entrante, a excepcin del que entra en respuesta a una sesin iniciada hacia
fuera (ej: a un servidor externo) y se encuentra establecida. Guarde su configuracin en forma permanente y
haga que sea cargada cada vez que se inicie el sistema.
8. Incluya en el informe la lista de reglas que utiliz para implementar el firewall en su mquina, segn las
directrices indicadas en el punto 7.

Lista de comandos posibles a ser usados en la construccin de las listas de control


de acceso que constituyen un Firewall

1. Definicin de Polticas por defecto en las cadenas de Control de acceso.


# iptables F
# iptables P INPUT ACCEPT
# iptables P OUTPUT ACCEPT
# iptables P FORWARD DROP
Acciones posibles:
ACCEPT: Aceptar el paquete resultado de la accin
DROP: Rechazar el paquete sin dar mensaje alguno
REJECT: Rechazar el paquete enviando un mensaje de error en respuesta al paquete entrante
2. Bloquear trfico entrante:
# iptables F INPUT
# iptables -A INPUT -m state -state ESTABLISHED j ACCEPT
# iptables A INPUT j REJECT
3. Bloquear trfico saliente:
# iptables F OUTPUT
# iptables -A OUTPUT -m state -state ESTABLISHED j ACCEPT
# iptables A OUTPUT j REJECT
4. Permitir acceso a solicitudes de servicio entrantes
# iptables -A INPUT -p tcp -dport www j ACCEPT
# iptables A INPUT j REJECT
5. Negar el acceso desde un equipo remoto
# iptables -A INPUT -s Direccion_IP_remota -j REJECT
6. Negar el acceso desde un equipo remoto a un servicio en particular
# iptables -A INPUT -p tcp -s Direccion_IP_remota --dport smtp -j REJECT
7. Negar el acceso hacia un equipo remoto
# iptables -A OUTPUT -d Direccion_IP_remota -j REJECT
8. Negar el acceso hacia un equipo remoto a un servicio en particular
# iptables -A OUTPUT -p tcp -d Direccion_IP_remota --dport smtp -j REJECT
9. Bloquear el trfico hacia los servidores Web de una red
# iptables -A OUTPUT -p tcp -d 64.58.76.0/24 --dport www -j REJECT
NOTA: En este ejemplo se est negando el acceso a todos los servidores web de yahoo.com
$ host www.yahoo.com
$ tracert www.yahoo.com
El comando
# iptables -A OUTPUT -p tcp -d www.yahoo.com --dport www -j REJECT
Se puede usar, pero no es recomendable. Por razones de seguridad se recomienda usar direcciones IP en lugar
de nombres de mquinas en las listas de control de acceso
10. Negar el acceso remoto, pero permitir el de los usuarios locales en la mquina
# iptables -A INPUT -p tcp i lo --dport service -j ACCEPT
# iptables -A INPUT -p tcp --dport service -j REJECT
11. Permitir acceso de entrada al servicio SSH. Sin embargo, permitir acceso por parte de los usuarios locales a
todos los servicios
# iptables -F INPUT
# iptables -A INPUT -p tcp --dport ssh -j ACCEPT
# iptables -A INPUT -i lo -j ACCEPT
# iptables -A INPUT -j REJECT
12. Permitir acceso de entrada al servicio SSH de una mquina en particular
# iptables -F INPUT
# iptables -A INPUT -p tcp -s 159.90.170.131 --dport ssh -j ACCEPT
# iptables -A INPUT -j REJECT
13. Si se quiere impedir el acceso de entrada al servicio SSH nicamente
# iptables -F INPUT p tcp -dport ssh -j REJECT
14. Bloquear conexiones de salida hacia el servicio telnet
# iptables -A OUTPUT p tcp -dport telnet -j REJECT
15. Bloquear todas las conexiones de salida hacia el servicio telnet a excepcin de la de la propia mquina hacia la
misma mquina
# iptables -A OUTPUT o lo p tcp -dport telnet -j ACCEPT
# iptables -A OUTPUT p tcp dport telnet -j REJECT
16. Bloquear cualquier ping
# iptables -A INPUT p icmp -icmp-type-echo-request -j DROP
En este caso, se usa DROP en lugar de REJECT. Si se est intentando esconder la mquina de cualquier ping,
una respuesta de rechazo en lugar de simplemente dejar perder el paquete notificara a la mquina origen acerca
de la presencia de la mquina destino.
NOTA: Evitar dejar perder todos los paquetes ICMP
# iptables -A INPUT p icmp j DROP
Pues los pings son simplemente un tipo de paquete icmp
Para listar los tipos de mensajes ICMP disponibles:
# iptables p icmp -h
17. Permitir el acceso a una serie de servicios especficos en la mquina. Bloquear el resto de los servicios.
Internamente, sin embargo, se permite el acceso a todos los servicios por parte de los usuarios locales
# iptables -F INPUT
# iptables -A INPUT m multiport p tcp -dport ssh,www,smtp -j ACCEPT
# iptables A INPUT i lo j ACCEPT
# iptables -A INPUT p tcp -j REJECT
18. Listar las reglas de control de acceso del Firewall
# iptables -L
19. Listar las reglas de control de acceso del Firewall, mostrando conteo de bytes y paquetes que son permitidos
segn las reglas de control de acceso
# iptables -L -v
20. Enviar todos los paquetes que son permitidos segn las reglas de la lista mychain a la lista chain2
# iptables -A mychain p tcp s 1.2.3.4 d 5.6.7.8 -dport ssh-j chain2
21. Listar las reglas de control de acceso del Firewall en respuesta al comando iptables-save
# iptables-save
22. Cargar de nuevo la lista de reglas de control de acceso del Firewall almacenada en el sistema
# iptables-restore
23. Eliminar todas las reglas de control de acceso del Firewall (flushing a chain)
# iptables -F
24. Eliminar reglas de control de acceso del Firewall en forma individual
# iptables -D nmero_de_regla_en_la_lista
NOTA: La reglas se numeran a partir del nmero 1. Para listar las reglas de control de acceso:
# iptables -L
25. Eliminar la regla 4 de control de acceso del Firewall de la lista de entrada
# iptables -D 4
26. Insertar una nueva regla en la posicin 4 de la lista de control de acceso del Firewall
# iptables -I chain 4 specification
27. Reemplazar la segunda regla de la lista de control de acceso del Firewall
# iptables -R chain 2 specification
28. Guardar los cambios en la lista de control de acceso, de manera que sigan activos al reiniciar el sistema
# iptables-save > /etc/sysconfig/iptables
NOTA: Este comando despliega las reglas del firewall en un formato leible por iptables-restore
29. Cargar las reglas del Firewall, por ejemplo al iniciar el sistema
#!/bin/sh
# iptables-restore < /etc/sysconfig/iptables
Para indicar que a Fedora Core 6 que las reglas del Firewall deben cargarse al iniciar el sistema:
# chkconfig iptables on
30. Crear y probar la configuracin de una lista de control de acceso sin afectar la configuracin del Firewall
# iptables -R chain 2 specification
31. Indicar el comando usado para verificar puertos abiertos en la mquina, usado para comprobar el correcto
funcionamiento del Firewall

Fedora Core
To control services either use chkconfig or ntsysv if you are using the command line, or use system-
config-services in the GUI. Gnome users: System > Administration > Server Settings > Services.

PermitRootLogin no
AllowUsers clase@159.90.170.125

ip6tables
If you do not know whether or not you are using IPv6, then most likely you are not. This
services is the firewall for IPv6 communication. Most users can disable this. Read the
following to disable IPv6 support in Fedora.

Iptables open ftp port 21


Posted in Linux, Troubleshooting, Iptables
Use iptables administration tool for IPv4 packet filtering and NAT under Linux to open tcp port 21 (FTP).
Following rule-set assumes that your eth0 network interface directly connected to internet. It has public ip
(202.54.1.20). FTP use both port 21 and 20 (port 21 for the command port and port 20 for the data). So
following iptables rules take care of both ports (add rules to your iptables script):
Add support for FTP connection tracking. Load two modules first:
modprobe ip_conntrack
modprobe ip_conntrack_ftp

Now add following iptables rules for incoming request on port 21 (open port 21) to your script:

iptables -A INPUT -p tcp -s 0/0 --sport 1024:65535 -d 202.54.1.20 --dport 21 -m state


--state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -s 202.54.1.20 --sport 21 -d 0/0 --dport 1024:65535 -m state
--state ESTABLISHED -j ACCEPT

iptables -A INPUT -p tcp -s 0/0 --sport 1024:65535 -d 202.54.1.20 --dport 1024:65535 -m


state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp -s 202.54.1.20 --sport 1024:65535 -d 0/0 --dport 1024:65535 -m
state --state ESTABLISHED -j ACCEPT

iptables -A OUTPUT -p tcp -s 202.54.1.20 --sport 20 -d 0/0 --dport 1024:65535 -m state


--state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -s 0/0 --sport 1024:65535 -d 202.54.1.20 --dport 20 -m state
--state ESTABLISHED -j ACCEPT

$chkconfig --list network


network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Muestra el estado del servicio network segn los diversos niveles de arranque del
sistema

You might also like