viernes, 23 de julio de 2010

FreeBSD 8: DNS Jail

Vamos a crear una jail para un dns en FreeBSD 8 i386.

El proceso mas tardado es el builworld, para ello estamos usando esta configuracion:

src.conf

WITHOUT_ACCT="yes"
WITHOUT_ACPI="yes"
WITHOUT_AMD="yes"
WITHOUT_APM="yes"
WITHOUT_ASSERT_DEBUG="yes"
WITHOUT_ATM="yes"
WITHOUT_AUTHPF="yes"
WITHOUT_BLUETOOTH="yes"
WITHOUT_BOOT="yes"
WITHOUT_CALENDAR="yes"
WITHOUT_CDDL="yes"
WITHOUT_CVS="yes"
WITHOUT_DICT="yes"
WITHOUT_EXAMPLES="yes"
WITHOUT_FLOPPY="yes"
WITHOUT_FREEBSD_UPDATE="yes"
WITHOUT_GAMES="yes"
WITHOUT_GPIB="yes"
WITHOUT_GSSAPI="yes"
WITHOUT_HTML="yes"
WITHOUT_INET6="yes"
WITHOUT_IPFILTER="yes"
WITHOUT_IPFW="yes"
WITHOUT_IPX="yes"
WITHOUT_JAILS="yes"
WITHOUT_KERBEROS="yes"
WITHOUT_KVM="yes"
WITHOUT_LPR="yes"
WITHOUT_MAIL="yes"
WITHOUT_NCP="yes"
WITHOUT_NETGRAPH="yes"
WITHOUT_NIS="yes"
WITHOUT_NC_CACHING="yes"
WITHOUT_PF="yes"
WITHOUT_PMC="yes"
WITHOUT_PPP="yes"
WITHOUT_QUOTAS="yes"
WITHOUT_RCMDS="yes"
WITHOUT_RCS="yes"
WITHOUT_SHAREDOCS="yes"
WITHOUT_WIRELESS="yes"
WITHOUT_WPA_SUPPLICANT_EAPOL="yes"

Como podran observar la idea es tener lo necesario para un dns con bind. Mientras menos modulos tengamos mucho mejor asi nuestro servidor sera menos vulnerable, se imaginan que entren por un hoyo en el dns, luego por uno en el ncp, etc,etc.

No vamos a usar bind de los ports sino el que viene por default en FBSD 8 que es:

ns1# named -v
BIND 9.6.1-P1

El buildworld termino sin problemas, asi dejamos la configuracion en el host de los jails para este dns:

#####################################################
### Jail Configuration #######################################
#####################################################
jail_enable="YES" # Set to NO to disable starting of any jails
jail_list="dns" # Space separated list of names of jails
jail_set_hostname_allow="NO" # No quiero que el root de los jails cambie su hostname
jail_socket_unixiproute_only="YES" # Route only TCP/IP within a jail
jail_sysvipc_allow="NO" # No necesito SYSV

###########################################
#### jail dns #########
###########################################
jail_dns_rootdir="/jails/dns" # ubicacion fisica del jail
jail_dns_hostname="ns1 . midominio . com . mx" # dns hostname
jail_dns_interface="xl0" # Jail's interface variable to create IP aliases
jail_dns_ip="192.168.40.2" # Jail's primary IPv4 and IPv6 address
jail_dns_exec_start="/bin/sh /etc/rc" # command to execute in jail for starting
jail_dns_exec_stop="/bin/sh /etc/rc.shutdown" # command to execute in jail for stopping
jail_dns_devfs_enable="YES"

Ya solo checamos el handbook y vemos como vaciar nuestro buildworld a este jail, no lo pongo aqui por que el handbook es muy claro y nunca me ha fallado.

Ahora su arrancamos el jail:

/etc/rc.d/jail start dns

fw# jls
JID IP Address Hostname Path
6 192.168.40.2 ns1 . midominio . com . mx /jails/dns

Ahora sigue configurar el rc.conf de esta jail, para ellos debemos entrar a su shell:

jexec 6 /bin/csh
csh: Cannot open /etc/termcap
csh: using dumb terminal settings.
ns1#

Solo tenemos que copear el folder /usr/share/misc/termcap a el jail y listo.

named.conf


No hay comentarios: