how to dnsmasq
Las máquinas cliente:
1 - Portatil de trabajo Ip fija = 192.168.3.60
2 - Pc sobremesa Ip obtenida mediante DHCP
ip servidor freebsd 192.168.3.1
En la parte final se comprobarán los puertos abiertos
y los clientes conectados con el comando sockstat
El servidor freebsd dispone de dos tarjetas de red.
Lan - red interna = em0
Wan - externa = em1
Ip Lan - 192.168.3.1 (router default Lan)
Ip Wan - 192.168.1.250
Firewall servidor - ipfw
sshd habilitado en el servidor
Entrar por sshd como user normal desde Lan
$ ssh -l carlos -p 2222 192.168.3.1
$ hostname
$ freebsdserver.linux.bcn
$ su
Password:
#
Intalar y configurar dhcp-server
# pkg_add -r isc-dhcp41-server Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-9.1-release/Latest/isc-dhcp41-server.tbz... Done. ===> Creating users and/or groups. Creating group 'dhcpd' with gid '136'. Creating user 'dhcpd' with uid '136'. Así quedará el archivo dhcpd.conf: # sed -e '/^[ ]*#/d' -e '/^$/d' /usr/local/etc/dhcpd.conf option domain-name "linux.bcn"; option domain-name-servers 192.168.3.1; option subnet-mask 255.255.255.0; default-lease-time 3600; max-lease-time 86400; ddns-update-style none; subnet 192.168.3.0 netmask 255.255.255.0 { range 192.168.3.40 192.168.3.50; option routers 192.168.3.1; } Para iniciar dhcp-server con el sistema
agregar al archivo rc.conf: dhcpd_enable="YES" # dhcpd enabled? dhcpd_flags="-q" # command option(s) dhcpd_conf="/usr/local/etc/dhcpd.conf" # configuration file dhcpd_ifaces="em0" # ethernet interface(s) dhcpd_withumask="022" # file creation mask
Iniciar el servidor dhcp: # /usr/local/etc/rc.d/isc-dhcpd start Starting dhcpd.
Instalar dnsmasq
$cd /usr/ports$ make search name=dnsmasq
$ cd /usr/ports/dns/dnsmasq/
# make install clean
Archivo de configuración dnsmasq.conf
Filtrando dnsmasq.conf con grep para eliminar líneas que empiezan con un espacio, líneas que comienzan con almohadilla y líneas vacías.grep -v '#' /etc/dnsmasq.conf port=53 domain-needed bogus-priv strict-order interface=em0 listen-address=127.0.0.1 expand-hosts domain=linux.bcn
Iniciar dnsmasq con el sistema
agregar esta línea al archivo /etc/rc.confdnsmasq_enable="YES"
Archivo resolv.conf del servidor
#permite a las maquinas locales obtener información DNS. nameserver 127.0.0.1 #OpenDNS nameserver 208.67.222.222 nameserver 208.67.220.220 # Otra opcion es utilizar los DNS del proveedor ISP. # nameserver 192.168.1.1
Impedir cambios en el fichero resolv.conf
Añadir esta línea al archivo de configuración de resolv.conf (resolvconf.conf)# ee /etc/resolvconf.conf
resolv_conf="/dev/null"
Archivo resolv.conf de las máquinas cliente: $ cat /etc/resolv.conf
# Archivo inmutable resolv.conf
search linux.bcn
nameserver 192.168.3.1
Realizar consultas desde un cliente
Instalar squid como paquete
# pkg_add -r squid# squid -v
Version 2.7.STABLE9
Archivo de configuración squid.conf
Copiar archivo squid.conf# cp /usr/local/etc/squid/squid.conf.default /usr/local/etc/squid/squid.conf Filtrando el archivo /usr/local/etc/squid/squid.conf para ver las opciones del archivo de configuración de squid.:
# sed -e '/^[ ]*#/d' -e '/^$/d' /usr/local/etc/squid/squid.conf acl all src all acl manager proto cache_object acl localhost src 127.0.0.1/32 acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 acl localnet src 10.0.0.0/8 # RFC1918 possible internal network acl localnet src 172.16.0.0/12 # RFC1918 possible internal network acl localnet src 192.168.0.0/16 # RFC1918 possible internal network acl SSL_ports port 443 acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 # https acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http acl CONNECT method CONNECT http_access allow manager localhost http_access deny manager http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access allow localnet http_access deny all icp_access allow localnet icp_access deny all http_port 192.168.3.1:3128 transparent hierarchy_stoplist cgi-bin ? access_log /var/squid/logs/access.log squid refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern -i (/cgi-bin/|\?) 0 0% 0 refresh_pattern . 0 20% 4320 acl shoutcast rep_header X-HTTP09-First-Line ^ICY.[0-9] upgrade_http0.9 deny shoutcast acl apache rep_header Server ^Apache broken_vary_encoding allow apache coredump_dir /var/squid/cache cache_log /var/squid/logs/cache.log logfile_rotate 10 minimum_object_size 0 KB maximum_object_size 1024 MB request_body_max_size 0 cache_dir ufs /var/squid/cache 200 16 256 cache_mem 32 MB visible_hostname freebsdserver.linux.bcn acl ips src 192.168.3.0/255.255.255.0 acl hora time MTWHF 8:00-22:00 acl todas src 0.0.0.0/0.0.0.0 http_access allow ips http_access deny !hora http_access deny todas
Crear los directorios swap
# squid -z
Desactivar test DNS inicial
# squid -D
Iniciar con el sistema.
Agregar al archivo /etc/rc.confsquid_enable="YES"
El proxy ha sido configurado como transparent de manera que no hace falta configurar el navegador de los clientes:
Comprobar puertos abiertos:
# sockstat -4
FreeBSD es genial!
No hay comentarios:
Publicar un comentario