Archivo para la categoría "*BSD"
Comixwall 4.3
Hace unos días se publicó la versión 4.3 de Comixwall un ISG(Internet Security Gateway) basado en OpenBSD, aunque ya no he seguido de cerca el desarrollo de este ISG, voy a darme un tiempo para revisarlo esta semana.
Entre las caracteristcas que nos brinda ComixWall tenemos:
- Funciones de Firewall usando pf (packet filter)
- DansGuardian y Squid
- DHCP
- Snort
- ClamAv
- SpamAssassin
- DNS y entre muchas cosas mas.
Compilando paquetes con pkgsrc en NetBSD
Como ya vimos la administración de binarios en NetBSD ahora veremos como administrar los paquetes desde codigo fuente en NetBSD para eso damos por entendido que tenemos instalado el pkgsrc.
Para este proceso es necesario tener instalado algun compilador de C (ya se gcc o cc, por defecto pkgsrc usa gcc) para esto es necesario instalar los sets text.tgz y comp.tgz, para esto poenmos en practica el ultimo post e instalamos wget desde los binarios de pkgsrc:
# export PKG_PATH=”ftp://ftp.netbsd.org/pub/pkgsrc/packages/NetBSD-4.0/amd64/All”
# pkg_add wget
Luego descargamos los sets de distribucion:
# wget -c ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-4.0/amd64/binary/sets/text.tgz
# wget -c ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-4.0/amd64/binary/sets/comp.tgz
Instalamos los sets de distribucion:
- Para text.tgz: tar zxvf text.tgz -C /
- Para comp.tgz: tar zxvf comp.tgz -C /
Con esto ya tendremos los compiladores de C, gcc o cc
Ahora para probarlo instalaremos nmap desde las fuentes.
# cd /usr/pkgsrc/net/nmap
# make
# make install
# make clean
# make clean-depends
Con esto ya tendremos instalado nmap,al igual que un binario se instala en el directorio /usr/pkg, el directorio de instalacion si lo hacemos desde las fuentes podemos modificarlo con el parametro LOCALBASE del archivo de configuracion /etc/mk.conf
Para cambiar el compilador que deseemos usar lo podemos hacer tambien en el msimo fichero /etc/mk.conf (muy parecido al make.conf de gentoo) en la variable: PKGSRC_COMPILER, alcualle podemos agregar parametros como ccache(para cache) o distcc(para compilacion distribuida)
Otro punto a tomar en cuenta es que si dseamos compilar paquetes relacionados con las aplicaciones X11 debemos instalar los sets xbase y xcomp
Binarios en NetBSD
Como dije en un post anterior el administrador de paquetes de NetBSD, pkgsrc nos permite tambien gestionar binarios, del siguiente modo.
- Como en OpenBSD, declaramos la variable PKG_PATH:
# export PKG_PATH=”ftp://ftp.netbsd.org/pub/pkgsrc/packages/NetBSD-4.0/amd64/All”
- Y comenzamos a gestionar los binarios:
- Para Instalar:
# pkg_add cvs
En este caso veremos como nos crea el directorio /usr/pkg en donde se instalaran los archivos de los binarios que instalemos y en /var/db/pkg tendremos una base de datos de los binarios q vayamos instalando.
- Para desinstalar:
# pkg_delete cvs
Existe un parametro para pkg_delete que seguro nos interesara mucho, es el parametro “-r” el cual le dira a pkgsrc que desinstale tambien las dependencias del paquete que que queremeos desinstalar.
# pkg_delete -r nmap
pkg_delete aparte de usarse para desinstalar paquetes en formato binario tambien sirve para aquellos que hemos compilado.
- Informacion de los paquetes
# pkg_info
Nos mostrara los paquetes q tenemos instalado en nuestro sistema.
# pkg_info cvs
Nos mostrara la informacion del paquete cvs
Como vemos la administracion de binarios es igual q en OpenBSD y FreeBSD
Desempolvando NetBSD
Despues de casi 1 año que ya no venia trabajando con NetBSD, que es una version de los sistemas operativos basados en 4.4BSD y cuya filosofia es la portabilidad, actualmente tiene soporte para mas de 50 arquitecturas de computadoras, con decirles que un grupo de personas llego a instalarlo en un tostador.
Pues bueno me decidi a darle una oportunidad a NetBSD, en este caso la version 4.0, como servidor de Backups (aun en pruebas) en una p4, con 1 de Ram y 80 de GB de disco, el proceso de instalacion no varió en nada respecto a las versiones anteriores que usaba, bastante sencillo por decirlo, el wizard te guia todos los pasos y bueno en estos momentos me encuentro configurandolo remotamente desde mi hogar, y para hacerla un poco mas dificl me instale ksh como Shell para aprender este lenguaje, por lo q me hice un pequeño script que no hace nada importante, pero me sirvio para ir jugando un poco con los principales comandos de este lenguaje, bueno este script nos muestra una consola interactiva para poder instalar los paquetes del arbol de ports de NetBSD y poder usarlo con el administrador de paquetes “pkgsrc”, el cual es muy parecido al portage de gentoo, ya que nos permite instalar binarios y compilar codigo fuente segun nuestras preferencias, a la vez el pkgsrc nos brinda dos arboles uno para la version “stable” y otra para la version “current”, asi como tambien este script nos permitira actualizar el pkgsrc via cvs( en este caso deberemos de tener instalado la aplicacion cvs), bueno pues aqui les dejo este scriptpara conocer un poco de ksh.
#!/bin/ksh
# Direcciones para descargar pkgsrc por FTP
URL_PKGSRC="ftp://ftp.netbsd.org/pub/pkgsrc"
DIR_PKGSRC_STABLE="pkgsrc-2008Q2"
DIR_PKGSRC_CURRENT="current"
NAME_PKGSRC_STABLE="pkgsrc-2008Q2.tar.gz"
NAME_PKGSRC_CURRENT="pkgsrc.tar.gz"
PKGSRC_STABLE="$URL_PKGSRC/$DIR_PKGSRC_STABLE/$NAME_PKGSRC_STABLE"
PKGSRC_CURRENT="$URL_PKGSRC/$DIR_PKGSRC_CURRENT/$NAME_PKGSRC_CURRENT"
# Direcciones para actualizar via CVS
CVSROOT="anoncvs@anoncvs.NetBSD.org:/cvsroot"
CVS_RSH="ssh"
function get_pkgsrc {
print "=================="
print "Elija version de pkgsrc"
print "(1) Version stable"
print "(2) Version current"
print -n "Opcion: "
read op_version
if [[ $op_version = 1 ]];then
get_pkgsrc_stable
NAME_PKGSRC=$NAME_PKGSRC_STABLE
elif [[ $op_version = 2 ]]; then
get_pkgsrc_current
NAME_PKGSRC=$NAME_PKGSRC_CURRENT
else
echo "Tu opcion es incorrecta!!"
exit
fi
}
function get_pkgsrc_stable {
echo "Descargando version estable de pkgsrc..."
echo $PKGSRC_STABLE
ftp $PKGSRC_STABLE
}
function get_pkgsrc_current {
echo "Descargando version current de pkgsrc..."
echo $PKGSRC_CURRENT
ftp $PKGSRC_CURRENT
}
function install_pkgsrc {
echo "Instalando pkgsrc..."
get_pkgsrc
tar zxvf $NAME_PKGSRC -C /usr
}
function update_pkgsrc {
echo "Actualizando pkgsrc..."
cd /usr/pkgsrc
cvs update -dP
}
function getout {
print "Byeee...
"
exit
}
op=1
while [[ $op -ne 3 ]];do
print "Elija que opcion desea realizar: "
print "(1) Instalar pkgsrc"
print "(2) Actualizar pkgsrc"
print "(3) Salir"
print -n "Opcion: "
read op
#done
case $op in
1) install_pkgsrc;;
2) update_pkgsrc;;
3) getout;;
*) print "Opcion incorrecta
"
esac
done
exit
Como ven el codigo es bastante simple pero nos servira para reconocer el funcionamiento los principales comandos de ksh.
NAS OpenSource
Buscando alternativas para NAS en el mundo opensource me encontre con FreeNAS y OpenFiler, el primero basado en FreeBSD y el segundo en CentOS, para describir un poco un NAS según la wikipedia: “NAS (del inglés Network Attached Storage) es el nombre dado a una tecnología de almacenamiento dedicada a compartir la capacidad de almacenamiento de un computador (Servidor) con ordenadores personales o servidores clientes a través de una red (normalmente TCP/IP), haciendo uso de un Sistema Operativo optimizado para dar acceso con los protocolos CIFS, NFS, FTP o TFTP.”
Estas dos alternativas nos permite compartir almacenamiento mediante Samba, CIFS, FTP, WebDav, incluso servicios como UPnP, autenticacion mediante LDAP o el Active Directory de Windows, así como tambien RAID’s por software, iSCSI, LVM.
La diferencias, no muchas, los dos brindan los mismos servicios, aunque FreeNAS aun esta en fase beta pero funciona muy bien segun las pruebas q vengop haciendo
FreeBSD y Postgresql
Vamos a instalar el servidor de base de datos postgresql en la version 8.2 en un FreeBSD 7, utilizando el sistema de ports.
- Instalacion
# cd /usr/ports/databases/postgresql82-server/
# make install
- Configuracion
# mcedit /etc/rc.conf //para arrancar postgres desde el boot
postgresql_enable=”YES”
Instalacion de la B/D:
/usr/local/etc/rc.d/postgresql initdb
Iniciar el servicio:
# su – pgsql
$ /usr/local/bin/postgres -D /usr/local/pgsql/data
Creamos una base de datos de prueba
$ createdb demo
$ psql demo
Welcome to psql 8.2.5, the PostgreSQL interactive terminal.
Type: \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit
demo=#
Para los que deseen pueden instalar phpPgAdmin que es una interfaz web para la administración de PostgreSQL, parecido al phpmadmin del MySQL, para esto suponemos que ya tenemos instalado, apache, php y el modulo de conexion de php a postgresql:
# cd /usr/ports/databases/phppgadmin/
# make install
Y Creamos un usuario para administrar desde la web:
# su – pgsql
$ createuser -P
Enter name of role to add: corredorx
Enter password for new role:
Enter it again:
Shall the new role be a superuser? (y/n) y
Shall the new role be allowed to create databases? (y/n) y
Shall the new role be allowed to create more new roles? (y/n) y
Y ya podemos administrar postgresql desde la web
Terminando nuestro OAMP
Para finalizar de configurar nuestro servidor OAMP: OpenBSD – Apache – MySQL y PHP vamos a instalar PHP y algunas extensiones, como apache ya viene instalado en OpenBSD nos saltamos ese paso.
- Comenzamos instalando php5
# export PKG_PATH=ftp://ftp.openbsd.org/pub/OpenBSD/4.3/packages/i386/
# pkg_add -v php5-core
- Configuración:
Creamos un enlace simbolico para habilitar el modulo de php en apache
# ln -s /var/www/conf/modules.sample/php5.conf /var/www/conf/modules/
Creamos el directorio /var/www/tmp para q pueda ser usado por php:
# mkdir /var/www/tmp
# chown www:www /var/www/tmp/
Reiniciamos apache:
# apachectl restart
Creamos un archivo de prueba test.php agregamos lo sgte., y lo vemos en el navegador: http://servidor/test.php
<?php
phpinfo();
?>
Instalamos y configuramos algunos modulos
# pkg_add -v php5-gd
# ln -fs /var/www/conf/php5.sample/gd.ini /var/www/conf/php5/
# pkg_add -v php5-curl
# ln -fs /var/www/conf/php5.sample/curl.ini /var/www/conf/php5/
# pkg_add -v php5-mbstring
# ln -fs /var/www/conf/php5.sample/mbstring.ini /var/www/conf/php5/
# pkg_add -v php5-mcrypt
# ln -fs /var/www/conf/php5.sample/mcrypt.ini /var/www/conf/php5/
# pkg_add -v php5-mysql
# ln -fs /var/www/conf/php5.sample/mysql.ini /var/www/conf/php5/
# pkg_add -v php5-mysqli
# ln -fs /var/www/conf/php5.sample/mysqli.ini /var/www/conf/php5/
Para que carguen los modulos reiniciamos apache:
# apachectl restart
MySQL 5 en OpenOBSD
Aqui les dejo un tip para instalar mysql en OpenBSD.
- Instalamos el paquete mysql:
# pkg_add mysql-server-5.0.45
- Configuración
Configurar el siguiente parametro del Kernel para tunear el manejo de un numero mayor de archivos con la base de datos en /etc/sysctl.conf:
kern.maxfiles=4096
Creamos una clase de login para mysql en /etc/login.conf
mysql:\
penfiles-cur=1024:\
penfiles-max=2048:\
:tc=daemon:
Actualizamos login.conf.db :
# cap_mkdb /etc/login.conf
Creamos la base de datos por defecto:
# /usr/local/bin/mysql_install_db
Iniciamos el servicio: # /usr/local/bin/mysqld_safe &
Configuramos algunos parametros de mysql con este script:
# /usr/local/bin/mysql_secure_installation
y eso seria todo, luego nos autenticamos al server: mysql -u root -p
y ya podremos trabajar.
Squid 2.6 en OpenBSD
Despues de tener un sistema OpenBSD instalado, podemos en este caso instalar squid mediante los ports, tambien podemos usar los paquetes compilados q brinda el equipo de openbsd, pero en este caso usaremos la primera alternativa:
Ingresamos al directorio donde se encuentran los ports:
# cd /usr/ports
# make search name=squid // esto nos muestra todos los paquetes o ports cuyo nombre coincida con squid
# cd www/squid // ingresamos al directorio del port de squid
# make install // instalamos
# make clean // limpiamos el directorio de instalación
Tambien podemos ejecutar:
# make show=flavors
para ver con q flags podemos compilar squid, en este caso se omitio esos flags.
Debemos tomar en cuenta las siguientes lineas despues q hayamos terminado la instalación de squid, ya que nos servirán de mucho para poder confirgurarlo a nuestros requerimientos.
NOTES ON OpenBSD POST-INSTALLATION OF SQUID 2.6
The local (OpenBSD) differences are:
configuration files are in /etc/squid
sample configuration files are in /usr/local/share/examples/squid
error message files are in /usr/local/share/squid/errors
sample error message files are in /usr/local/share/examples/squid/errors
icons are in /usr/local/share/squid/icons
sample icons are in /usr/local/share/examples/squid/icons
the cache is in /var/squid/cache
logs are stored in /var/squid/logs
the ugid squid runs as is _squid:_squid
Please remember to initialize the cache by running “squid -z” before
trying to run Squid for the first time.
You can also edit /etc/rc.local so that Squid is started automatically:
if [ -x /usr/local/sbin/squid ]; then
echo -n ‘ squid’; /usr/local/sbin/squid
fi
OpenBSD 4.3
El 1 de Mayo se lanzo la versión 4.3 de OpenBSD esta disponible en http://www.openbsd.com/ftp.html para una diversidad de arquitecuras e incluye nuevas caracteristicas en esta version http://www.openbsd.com/43.html
Despues de un tiempo de no haber usado OpenBSD, me baje el cd de instalacion unos 203M y lo instale, no ha cambiado en nada el wizard a modo texto, esta vez instale todos los paquetes por defecto, despues una rebooteada y tenemos un OpenBSD virgen.
Lo primero que hize fue configurar el administrador de paquetes y los ports.
Administrador de Paquetes – como root
# echo “export PKG_PATH=ftp://ftp.openbsd.org/pub/OpenBSD/4.3/packages/i386/” >> ~/.profile
y ya podemos instalar uno q otro paquete, por ejemplo
# pkg_add -i wget
Ports – como root
y no pueden faltar los ports, nos los desacargamos
# wget -c ftp://ftp.openbsd.org/pub/OpenBSD/4.3/ports.tar.gz
y descomprimimos:
# tar zxvf /tmp/ports.tar.gz
y ya podemos usar el sistema de ports de openbsd, cada vez debemos actualizar:
# cd /usr/ports
# cvs -d anoncvs@server.openbsd.org:/cvs update -Pd -rOPENBSD_4_3
Ahora que se encuentra esta nueva version de OpenBSD lanzada no habrá excusa para migrar un Firewall/Proxy que tengo en FreeBSD en el centro donde laboro.