Este es una material sobre la implementacion, configurar el DHCPD como compartir la red.
Ademas le agradezco mucho al
Sr. Fredy Ramirez por su ayuda.
Introducción:
- Revisión del DHCPD
- Instalación del DHCPD
- Configuración del DHCPD
- Configurar los Iptables
IntroducciónEsta configuración esta basado en la familia de red hat 8.0en adelante, y se prueba esta
Configuración red hat fedora 5.0
1. Revisión del DHCPD Aquí revisamos si esta instaladoel dhcpd
Entrando como root
[root@serv-mysql-2 /]# cd etc/rc.d/init.dLuego buscamos
ls dhcpd
Si la siguiente sentencia muestra esto:
[root@serv-mysql-2 init.d]# ls dhcpddhcpdEs que esta instalado.
2. Instalación del DHCPD Se puede de hacer de varias maneras
- vía Secure File Transfer Client
- Vía CD-ROM
- vía Internet
En nuestro caso lo haremos por la1 y la 2
Caso 1:
Metemos el CD, los últimos dos CDque generalmente están los rpm,
Y buscamos el archivo dhcpd enFedora 5 que se encuentra en el CD #4
E:FedoraRPMSdhcp-3.0.3-26.i386.rpm
Creamos una carpeta dhcpd en/home y lo pasamos a esta nueva carpeta
/home/dhcpd/ dhcp-3.0.3-26.i386.rpm
rpm -i dhcp-3.0.3-26.i386.rpm Aquí ya se habrá instalado eldhcpd
Caso 2:
Montamos el cdrom
Creamos una carpeta dhcpd en/home y lo pasamos a esta nueva carpeta
/home/dhcpd/ dhcp-3.0.3-26.i386.rpm
rpm -i dhcp-3.0.3-26.i386.rpm Aquí ya se habrá instalado eldhcpd
3. Configuración de las Redes Ifconfig eth0 xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx (IP y Mascara subred)route add default gw xxx.xxx.xxx.xxx (Puerta de enlase determinada) Y lo mismo par la eth1. Ahora nos vamos para /etc
[root@serv-mysql-2 /]# cd etc
[root@serv-mysql-2 etc]# vidhcpd.conf
Y el Scripts
# DHCP Server Configuration file.
# see/usr/share/doc/dhcp*/dhcpd.conf.sample
#
ddns-update-style interim;
ignore client-updates;
shared-network eth1 {
subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.1;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option domain-name "Servidor-linux2";
option domain-name-servers 192.168.1.1, XX.245.10.6, 199.202.55.2;
option netbios-name-servers XX.245.58.250;
range192.168.1.30 192.168.1.252;
default-lease-time 21600;
max-lease-time 43200;
}
}
Nota:shared-network nombre {
}
Esta sentencia se utiliza paraespecificar que varias subredes comparten físicamente la misma red. Losparámetros y declaraciones que se introduzcan aquí afectaran a todas lassubredes que englobe.
subnet direccion netmask mascara_de _red {
}
Podemos utilizar esta sentenciapara dar los parámetros específicos de una subred, además es sentencia lepermite al servidor de dhcp saber si unadireccion dada pertenece o no a dicha subred.
- range direccion_mas baja direccion_mas_alta;
Esta sentencia nos permiteespecificar cual es el rango de direcciones ip que serán entregadas a losclientes de forma dinámica.
Guardamos los cambios dhcpd.confy luego iniciamos el servicio
servicedhcpd start4. Configurar los IptablesPara configurar los Iptables
iptables es la herramienta que nospermite configurar las reglas del sistema de filtrado de paquetes del kernel deLinux, desde su versión 2.4 (en 2.2 era ipchains). Con esta herramienta,podremos crearnos un firewall adaptado a nuestras necesidades.
Sufuncionamiento es simple: a iptables se le proporcionan unas
reglas,especificando cada una de ellas unas determinadas características que debecumplir un paquete. Además, se especifica para esa regla una
acción o
target.Las reglas tienen un orden, y cuando se recibe o se envía un paquete, lasreglas se recorren en orden hasta que las condiciones que pide una de ellas secumplen en el paquete, y la regla se activa realizando sobre el paquete laacción que le haya sido especificada.
Estas acciones se plasman en los que se denominan
targets, queindican lo que se debe hacer con el paquete. Los más usados son bastante explícitos:
ACCEPT,
DROP y
REJECT, pero también hay otros que nospermiten funcionalidades añadidas y algunas veces interesantes:
LOG,
MIRROR...
En cuanto a los paquetes, el total del sistema de filtrado de paquetes delkernel se divide en tres
tablas, cada una con varias
chains a lasque puede
pertenecer un paquete, de la siguiente manera.
Para remover las reglas de los iptablesutilize estos comandos
Es más que todo para dejarloscomo venían por defecto:
iptables -F
iptables -t nat –F
has de tener habilitado elservicio de reenvió de paquetes.
[root@serv-mysql-2 etc]# visysctl.conf
importante que este en
uno# Controls IP packet forwarding
net.ipv4.ip_forward = 1 echo 1 > /proc/sys/net/ipv4/ip_forward
y luego para que este todo bien
[root@serv-mysql-2 /]# service network restart
con esto podemos comprobar quevalor tiene el archivo virtual de forwarding
cat /proc/sys/net/ipv4/ip_forward
debe de arrojar un "1"
Crear el iptables
service Iptables restart
Empecemos con las reglas delnat e iptables
nat: Tabla referida a los paquetes enrutados en unsistema con Masquerading
- PREROUTING: Para alterar los paquetes según entren
- OUTPUT: Para alterar paquetes generados localmente antes de enrutar
- POSTROUTING: Para alterar los paquetes cuando están a punto para salir
La
especificación de reglas se hace con lossiguientes parámetros (especificando aquellos que se necesite):
- -p [protocolo]: Protocolo al que pertenece el paquete.
- -s [origen]: dirección de origen del paquete, puede ser un nombre de host, una dirección IP normal, o una dirección de red (con máscara, de forma dirección/máscara).
- -d [destino]: Al igual que el anterior, puede ser un nombre de host, dirección de red o dirección IP singular.
- -i [interfaz-entrada]: Especificación del interfaz por el que se recibe el paquete.
- -o [interfaz-salida]: Interfaz por el que se va a enviar el paquete.
- [!] -f: Especifica que la regla se refiere al segundo y siguientes fragmentos de un paquete fragmentado. Si se antepone !, se refiere sólo al primer paquete, o a los paquetes no fragmentados.
Y además, uno que nos permitirá elegir qué haremos con el paquete:
- -j [target]: Nos permite elegir el target al que se debe enviar ese paquete, esto es, la acción a llevar a cabo con él.
Algunas de las opciones que se permiten en los comandos de arriba son:
- -v: Modo verboso, útil sobre todo con iptables -L.
- -n: las direcciones IP y números de puertos se mostrarán numéricamente (sin resolver nombres).
- --line-numbers: Muestra los número de regla de cada regla, de manera que sea más fácil identificarlas para realizar operaciones de inserción, borrado...
Principales opciones desde línea deparámetros de IPTABLES: -Aañadir una o más reglas al final de una determinada cadena
-Dborrar una o más reglas de la cadena seleccionada, especificando bien el número
de laregla (1es la primera) dentro de la cadena o una determinada condición
-Rreemplazar una regla en la cadena seleccionada
-Iinsertar una regla en una posición concreta dentro de una cadena
-Llista todas las reglas en una determinada cadena, o en todas si no seespecifica
ninguna
-Fborra todas las reglas dentro de una determinada cadena
-Zpone a cero los contadores de paquetes y bytes en todas las
cadenas
-Ncrea una nueva cadena de usuario
Paraentornos grandes y difíciles.
-Xborra una cadena de usuario
Hay 4 opciones básicascon las que se puede jugar en esta apartado del comando. Estas opciones básicasson las siguientes: ·
A es para añadir (Append) una regla.Reglas válidas son INPUT, FORWARD y OUTPUT.
·
L es para listar las reglas.
·
F es para borrar todas las reglas o enel caso de INPUT, FORWARD o OUTPUT seán dados como argumento se borraran lasreglas asociadas solo a esa clase.
·
P establece la politica por defectodel firewall. Por defecto es aceptar todas las conexiones.
Natse refiere a las conexiones que serán modificadas por el firewall
SNAT: Source NetworkAddress Translation iptables -t nat -A POSTROUTING-o eth0 -j SNAT --to
Ahoraestablecemos una regla para dejar pasar los apquetes ICMP
ICMP: Protocolo de Controlde Mensajes de Internet
iptables -A INPUT -i eth0 -pICMP -j ACCEPT
Permitimosla conexión al puerto 80 (http)
iptables -A INPUT -i eth0 -pTCP --dport 80 -m state --state NEW -j ACCEPT
hayque permitir las conexiones ssh, al puerto 22...
iptables -A INPUT -i eth0 -pTCP --dport 22 -m state --state NEW -j ACCEPT
Aceptemospaquetes de conexiones ya establecidas
iptables -A INPUT -p TCP -mstate --state RELATED -j ACCEPT
Rechazamospaquetes de conexiones nuevas
iptables-A INPUT -i eth0 -m state --state NEW,INVALID -j DROP
Rechazamospaquetes de conexiones forwarding no establecidas
iptables -A FORWARD -i eth0 -mstate --state NEW,INVALID -j DROP
Estalisto!!! ya tenemos el firewall.
Redireccionamos la conexión a un puerto hacia un puerto de unordenador interno de la Lan
iptables -t nat -A PREROUTING-i eth0 -p tcp --dport 80 -j DNAT --to :80
Pasamoslos paquetes del eth0 al eth1
iptables -A FORWARD -i eth0 -oeth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING-o eth0 -j MASQUERADE
iptables -A FORWARD -i eth1 -oeth0 -j ACCEPT
iptables -A FORWARD -j DROP