Configurare un DHCP server
Introduzione
Questo documento ha come scopo la realizzazione di un server dhcp basato sul sistema operativo Slackware Linux. Questa guida è stata realizzata su un sistema Slackware, ma con piccole differenze è facilmante adattabile a tutte le distribuzioni GNU/linux. La configurazione hardware della lan consiste in un pc che fa da gateway verso internet, da server dhcp e firewall ed alcuni client.
Topologia della rete
Il computer server possiede ovviamente due schede di rete: eth0, che lo collega alla rete internet, ed eth1 che lo collega alla rete locale, contenente i seguenti indirizzi ip: 192.168.1.0/24 con pool 50-150. Questa configurazione è integrabile con una VPN in ethernet bridging.... consulatate il relativo howto.
Configurazione del server dhcp
- Creare il file dhcp.leases (nel caso non esistesse):
touch /var/state/dhcp/dhcpd.leases
Tale file serve per temporizzare il rilascio dell'ip associato al Mac-Address della scheda. - Modificare il file /etc/dhcpd.conf:
# dhcpd.conf # # Configuration file for ISC dhcpd (see 'man dhcpd.conf') # # ddns-update-style ad-hoc; subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.50 192.168.1.150; default-lease-time 604800; # una settimana max-lease-time 2592000; # 30 giorni option subnet-mask 255.255.255.0; option broadcast-address 192.168.1.255; option routers 192.168.1.1; option domain-name-servers 213.156.54.80; option domain-name "fastwebnet.it"; } - Modificare il file /etc/resolv.conf per settare il DNS: questo serve per consentire un corretto accesso a internet da parte della rete lan (io ho fastweb quindi scrivo nella seguente maniera):
nameserver 213.156.54.80 nameserver 213.156.54.81 search fastwebnet.it
-
Dare un Ip statico al Gateway, alzare il Firewall e attivare il server dhcp. Io lo faccio con uno script:
#! /bin/bash IP=MIO IP INT_RETE_ESTERNA=eth0 INT_RETE_INTERNA=eth1 IP_ACCETTA1=MACCHINA ESTERNA TRUSTED 1 #(Amici lontani) IP_ACCETTA2=MACCHINA ESTERNA TRUSTED 2 #(Amici lontani) LANIN=192.168.1.0/24 ################# SEZIONE GATEWAY ####################### echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -o $INT_RETE_ESTERNA -j MASQUERADE ifconfig $INT_RETE_INTERNA 192.168.1.1 netmask 255.255.255.0 up dhcpd $INT_RETE_INTERNA ################ SEZIONE FIREWALL FILTRANTE ############# echo 1 > /proc/sys/net/ipv4/tcp_syncookies #contro il syn flood echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter #contro Ip spoofing iptables -F iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP #SEZIONE INPUT iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -i lo -j ACCEPT iptables -A INPUT -p all -s $IP_ACCETTA1 -j ACCEPT iptables -A INPUT -p all -s $IP_ACCETTA2 -j ACCEPT iptables -A INPUT -i $INT_RETE_INTERNA -j ACCEPT iptables -A INPUT -i $INT_RETE_ESTERNA -p all -m state --state ESTABLISHED,RELATED -j ACCEPT #SEZIONE FORWARD PER LA LAN iptables -A FORWARD -i $INT_RETE_INTERNA -p all -s $LANIN -d $LANIN -j ACCEPT iptables -A FORWARD -s $LANIN -d 0/0 -j ACCEPT iptables -A FORWARD -s 0/0 -d $LANIN -p tcp --syn -j DROP iptables -A FORWARD -s 0/0 -d $LANIN -j ACCEPT
Ovviamente questa è una possibile configurazione, fatta a mio gusto. Soprattutto la parte riguardante il firewall filtrante è fortemente personalizzabile, qui è stato solo riportato un esempio.
Se notate errori nella guida vi prego di segnalarmeli in pubblico o in privato. Ovviamente garanzia: NO WARRANTY.... non mi riterrò responsabile per qualsiasi accadimento collegato a questo howto. Usate queste informazioni a vostro rischio e pericolo.
AUTORE: MDS - <doc.spock@gmail.com>