martes, 30 de agosto de 2011

Securizando servidores (V)

Hoy descansamos un poco del DirectAdmin y volvemos con algunos consejos de seguridad. Una de las rutas de acceso más vulnerables a nuestro servidor es el /tmp y /var/tmp. ¿Y porqué? Porque aprovechan aplicaciones web mal programadas, php o perl, que les permite ejecutar código remotamente. Y desgraciadamente es uno de los problemas que más adolecen los servidores. ¿Se puede solucionar esto? Lo más efectivo sería programando bien, pero todos sabemos que eso es más dificil ya que la mayoría de las veces no hacemos el codigo, generalmente por usar wordpress, joomla, osCommerce, etc... Esto no quiere decir que no se use, simplemente que hay que tenerlo actualizado para corregir errores de éste tipo. Pero tranquilos, con este pequeño tip nos quitaremos de encima a los "hackers"*, pero si es un hacker** de verdad encontrará otra forma de entrar.

Como he comentado antes, cuando usan las vulnerabilidades del php la carpeta a la que tienen acceso es la de los temporales, que en una instalación normal es igual a las demás carpetas y pueden ejecutar lo que suban, consiguiendo por ejemplo una shell remota con la que sí tendrán acceso completo. Así que lo que tenemos que hacer es quitar los permisos de ejecución a la carpeta. Si tienes esto en consideración a la hora de instalar el servidor, puedes crear una partición de 1GB por ejemplo para asignarla a /tmp y luego quitarle los permisos en el el fstab (luego veremos cómo). Pero claro, si tenemos el servidor ya montado desde hace años (o días o horas) no podemos volver a reinstalar todo, menuda pereza. ¿Se puede hacer algo? Venga, que es Linux, que preguntas...

Por si te lo preguntabas, la respuesta es sí. Podemos crear un archivo especial y hacer que sea un disco duro (esto por ejemplo se usa también en algunas máquinas virtuales), y luego montarlo para que albergue el /tmp protegiendolo. Es bien sencillo el proceso, primero creamos el archivo:
#dd if=/dev/zero of=/tmp_partition bs=1024 count=500000
Con esto crearemos un archivo lleno de ceros y que ocupe 500MB, podemos hacerlo del tamaño que necesitemos, pero con esto suele bastar.

Lo siguiente es darle formato para poder usarlo como disco duro, en este caso usaré ext3, pero puedes usar el que prefieras:
#mkfs.ext3 /tmp_partition
Con "tune2fs -c 200 -i 200 /tmp_partition" cambiaremos la frecuencia del chequeo del disco, en este caso cada 200 días.

Para probar que está correcto, podemos montar el archivo en una carpeta cualquiera:
#mkdir dd
#mount -o loop /tmp_partition dd ***
#ls dd
Nos tendría que salir sólo la carpeta de "Lost+Found", si es así está todo correcto.Desmontamos el la carpeta con "umount dd" y listo, ya lo tenemos casi hecho, sólo nos falta editar el archivo /etc/fstab con nuestro editor favorito y añadir:
/tmp_partition /tmp ext3 loop,noexec,nosuid,rw 0 2

Para poder montar /tmp nos tenemos que asegurar de que todos los servicios que escriben en /tmp están parados. Lo normal es parar Apache, Oracle, Vmware, etc. Podemos ver si hay más ficheros en uso con "lsof -n | grep tmp". Una vez esté libre /tmp, hacemos:
#mount /tmp
#chmod 1777 /tmp
#mv /var/tmp/* /tmp
#rmdir /var/tmp
#ln -s /tmp /var/tmp

Y ya lo tenemos todo listo. Si queremos probarlo creamos un archivo en /tmp, le damos permisos de ejecución y probamos a ejecutarlo: nos dira que nones.

Me dejo para el final si teniais una partición hecha para /tmp, sería añadir (o editar la linea) en el fstab:
/dev/hdaX /tmp ext3 nosuid,noexec,nodev,rw 0 2
Y poner estos comandos:
#cd /var
#mv /var/tmp/* /tmp
#rmdir tmp
#ln -s /tmp /var/tmp

Como éxtra, vamos a quitar permisos de ejecución a algunos binarios que son los que más usan, como el wget para descargar archivos o el gcc para compilar, entre otros. Simplemente tendremos que dejar que el root los ejecute:
#chmod 0700 /usr/bin/make
#chmod 0700 /usr/bin/gcc*
#chmod 0700 /usr/bin/as86
#chmod 0700 /usr/bin/lynx
#chmod 0700 /usr/bin/wget
#chmod 0700 /usr/bin/curl
#chmod 0700 /usr/bin/nc
Hay que tener cuidado si algun script de algun usuario utiliza esos comandos, ya que no se lo permitirá. Si fuese necesario dar permisos a ese usuario para que utilice sólo los binarios necesarios.

Con esto podremos dormir un poco más tranquilos. ¡Hasta la próxima!

* Entrecomillado porque me refiero a los niños de copian el código de la web hacker de turno.
** Sin comillas porque me refiero a los que se lo ganan.
*** Si nos da error posiblemente no esté cargado el modulo loop en el kernel, toca o cargarlo con modprobe loop y si no funciona, recompilar el kernel.

Fuente de la información: http://www.ran.es

lunes, 29 de agosto de 2011

DirectAdmin: Panel de Administrador (III)

Bueno, volvemos a la carga con el uso del DirectAdmin, seguimos dónde lo dejamos la última vez. Las siguientes opciones son menos importantes, por lo que no haremos mucho incapié en ellas.

La primera que nos encontramos es "Multi Server Setup", que es para tener varios servidores gestionados con el panel a modo cluster. No lo he tocado nunca aunque espero poder hacerlo. Si lo hago, lo explicaré por aquí. Si realmente lo necesitas, podrás encontrar información en los foros de DirectAdmin.

Siguiente, "Mail Queue Administration". Para ver la cola de mensajes que tiene pendiente por enviar. Un método visual de ver si se está mandando spam desde nuestro servidor ya que podemos revisar la información de los mensajes. Es el equivalente a "exim -bp" que usamos en consola. Si tenemos muchos mensajes encolados, se pueden seleccionar y con el botón "Delete" borrarlos. "Move Users between Resellers" nos permitirá cambiar de reseller a un usuario. No creo que se utilice mucho, la verdad, aunque es interesante tenerlo.

Ahora llegan unas opciones para controlar el estado del servidor: "System Information" nos indica las caracterísiticas de hardware del servidor y el estado de los programas instalados, pero no se puede interactuar más. Para poder iniciar, detener o reiniciar los servicios hay que ir a "Service Monitor", que nos mostrará el estado de los servicios instalados por DirectAdmin e incluso reiniciar la máquina.

Volviendo a los backups, la siguiente opción permite hacer un backup del sistema: "System Backup". Nos permitirá hacer una copia más a fondo del sistema, con archivos de configuración. No está mal tener alguna copia de estas, pero al ser tan
exahustiva tarda y sobrecarga el servidor. Lo ideal una copia de estas al mes y en un servidor externo. Las opciones son parecidas al backup normal, por lo que no pararé en explicarlas. Simplemente seleccionar que haga copia de todo y listo.

La siguiente opción vuelve a ser para monitorizar el servidor, en "Log Viewer" podremos ver los logs de los programas de DirectAdmin para ver si existe algún error o si queremos ver qué paso cuando se bloqueo el servidor.

"File Editor" nos permitirá editar a mano las configuraciones de apache, exim, etc... desde el navegador, ya que no siempre podremos acceder a un terminal, aunque a mi parecer es más comodo. No tocar esta parte si no se sabe qué se quiere hacer y cómo se hace, y tener siempre una copia del texto antes de modificarlo (puedes seleccionarlo todo y pegarlo en un bloc de notas de tu equipo) por si no funcionan bien los cambios. Y acabamos las opciones de "Admin tools" con "Process Monitor", que es un "top", es decir, muestra los procesos que se están ejecutando en tiempo real. Es como el "administrador de tareas" en windows (Alt+Ctrl+Supr).

Pasamos rápidmente a la última sección del panel de Administrador, las "Extra Features", básicamente más opciones. Hay algunas interesantes y útiles y otras que son más específicas. En "Complete Usage Statistics" nos muestra el estado del servidor: ancho de banda consumido, espacio en el disco, dominios que hay, etc. "Custom HTTPD Configurations" nos permite editar el archivo httpd para cada dominio, como siempre a la hora de editar archivos: 1. Haz copia por si falla, 2. Si no sabes usarlo, no lo toques. Si esta mal el archivo las webs de ese domino dejarán de verse, por eso es importante. "PHP SafeMode Configuration", esto lo dejo pendiente ya que no lo tengo muy claro y para no liar a nadie mejor dejarlo por defecto si no se sabe.

En la versión 1.39 de DirectAdmin añadieron la opción de "Brute Force Monitor" que es un registrode los ataques que recibe la máquina, entendiendo por ataque intentos de autentificación erroneas. No hay que alterarse, si se tiene una política de contraseñas medianamente segura (minusculas y numeros intercalados) no suele haber mucho peligro. Usuarios y contraseñas como: Pepe - pepe, Jose - 1234, no son seguras, ni mucho menos recomendables.

En "Administrator Settings" podemos cambiar la configuración del panel, veamos algunas:

"Notify all admins whenever a service goes down using the messaging/ticket system." - Si se cae algun servicio avisa por correo, generalmente querrás tenerla marcada ya que te indica que algo no funciona bien y que hay que resolverlo.

"Suspend a Reseller and his Users when the Reseller goes over his Bandwidth limit." - Importante, ya que si un reseller se pasa del ancho de banda bloquea todos los servicios de ese reseller y de sus usuarios. Marcado si quieres poner limite y no tener que controlarlo. El límite es mensual.

"Allow a Reseller to Backup/Restore his Users.(Separate from User Backup/Restore)" - Con esto marcado los resellers se pueden hacer cargo de las copias de seguridad de sus usuarios. Consejo: habilitarlo y que se encarguen los resellers de sus clientes.

Bajando a la sección "Security" es aconsejable habilitar esto:
"Blacklist IPs for excessive login attempts" y en el número poner unos 50 intentos. Son intentos de acceso por minuto desde una IP, los bots generalmente tratan de acceder bastante más veces. Si sobrepasan el umbral, se bloqueará el acceso mediante iptables. Para desbloquear las IPs cada cierto tiempo hay que poner un valor mayor que 0 a "Remove an IP from the blacklist after". Pasado un tiempo, puede que se nos hagan pesados los mensajes que envía DirectAdmin con avisos de ataquies, para quitarlos simplemente en la opción "Parse service logs for brute force attacks" seleccionamos "No" y dejará de enviarlos. Esta opción la deshabilitamos: "Enable Automatic Lost Password Recovery" si alguien pierde su contraseña que pida al reseller o al admin que les ponga otra nueva, toda la seguridad que se pueda tener alrededor de las contraseñas es poca. En la sección de "Mail" aparecen dos opciones: "Daily Email Limit per DirectAdmin User", que permite limitar el envío diario de correos de un USUARIO, esto es, TODAS las cuentas de correo suman. Si tenemos 10 cuentas que envían 50 mensajes al día contará como 500 correos enviados. Pasado eso, DirectAdmin no procesará los nuevos mensajes y dará error. Por último "Use RBL Blocking" comprueba las ips de los correos y si están listadas en algún servidor como spammers los rechaza. Útil también esta opción para combatir el spam.

Volvemos con el menú de adminstrador, ya quedas pocas opciones: De "Licensing / Updates" sólo nos interesará la opción de "Update DirectAdmin" que actualizará el panel si existe alguna versión nueva. Ojo, actualiza el panel, no los programas. "Plugin Manager" permite la utilización de plugins para DirectAdmin, nunca los he usado así que no puedo dar mucha información. Y ya sí, por último queda "All User Cron Jobs" que es la lista de todos los crons que están programados en la máquina.

Bueno, espero que con estos posts haya quedado claro el uso de esta parte del panel. Lo siguiente será el panel de usuario, pero tiene un poco menos de chicha asi que tranquilos. Si teneis alguna duda, no dudeis en comentar y si puedo os resolveré la duda, y si no, en los foros de DirectAdmin están muchas cosas resueltas :)

domingo, 28 de agosto de 2011

DirectAdmin: Panel de Administrador (II)

Seguimos con esta tanda de post dedicados a DirectAdmin. Ya vimos cómo crear usuarios y paquetes, asi que ahora pasaremos a otra parte más importante: la sección de "Admin Tools". Esta parte tiene uno de los puntos más importantes de la gestión del servidor, que no es otro que la realización y restauración de backups, pero empecemos por el primer punto

"IP Management" nos permite añadir IPs extra a nuestro servidor, ni que decir tiene que debemos tener esas IPs contratadas ya que si no podemos tener problemas no sólo con nuestro proveedor si no en el propio servidor, alguien puede usar esa IP y hacer que el servidor nuestro deje de funcionar bien. Cabe destacar que sólo se deben añadir las IPs desde aquí, no tenemos que añadirlas manualmente desde el terminal (para eso hay un script que habrá que usar, pero cuando lleguemos a la parte de administrar DirectAdmin por consola se explicará).

La siguiente opción es "DNS Administration", para gestionar las DNS de cada dominio. Hay que decir que para que podamos gestionar el dominio desde el panel hay que redireccionar las DNS del domino hacia este servidor, si no, la gestión se hará desde el panel que ofrezca el proveedor. Puedes añadir los dominios manualmente, simplemente introduce el nombre, la ip que tendrá asociada y el servidor DNS. Para editar las dns de un dominio, en la tabla en la que están listados pulsaremos sobre el nombre de éste. Nos llevará a una página nueva en la que podremos añadir o modificar subdominios.

Llegamos a la opción importante, "Admin Backup/Transfer". Como he dicho en otros post, hay que tener copias hasta debajo de las piedras. Con esta herramienta tendremos una forma cómoda de crearlas. Hay dos secciones bien diferenciadas, "Create Backup" y "Restore Backup" divididas en pasos. Empecemos creando la copia en la sección  "Create Backup":
"Step 1: Who" - De quien se harán las copias: "All Users" selecciona todos los usuarios de la máquina, cosa recomendada. "All users except selected users", los usuarios que se marquen en la lista no tendrán copia. "Selected Users", sólo se hará copia de los usuarios seleccionados, útil si se quiere hacer alguna modificación en un usuario concreto para tener una copia.
"Step 2: When" - Establece cuando se va a hacer la copia. "Now" indica que se hará en el momento y "Cron Schedule" nos creará una tarea en el cron para que se repita.
"Step 3: Where" - Dónde se almacenará la copia. "Local" la hará en nuestro servidor, ideal para las copias diarias ya que es rápido. Generalmente la hace en /home/admin/admin_backups, pero se puede poner en cualquier carpeta a la que tenga acceso el usuario admin. La otra opción es "Ftp" para hacerla en un servidor externo. Necesitaremos saber la ip (o el nombre del domino de la máquina), un usuario del servidor ftp, la contraseña y la ruta donde queremos guardar las copias (esta ruta tiene que exisitir) y el puerto que el servidor ftp tiene habilitado para la conexión, generalmente el 21. La ventaja de estas copias es que quedan fuera del servidor, por lo que si el disco fallase habría una copia fuera. Es vital hacer copias de este tipo, como muy poco una vez al mes, si no a la semana. No es estrictamente necesario hacerlas a diario, ya que al ser por red tarda bastante más que haciendolo en local y satura más la máquina durante más tiempo. Lo ideal es hacer las copias de madrugada o cuando menos conexiones existan.
"Step 4: What" - Queda por especificar de qué queremos que se haga la copia. Lo más cómodo es "All Data" ya que hará una copia de todos los datos (ahora diré cuales son exactamente). Realmente no es necesario hacer copia de todo, ya que se puede llenar el disco de copias. Para eso está la siguiente opción: "Selected Data" con la que se puede elegir de qué hacer la copia. Veamos las opciones:

Domains Directory - Contenido del directorio del dominio, vease, las páginas webs. No es realmente importante hacer copia de esto siempre ya que el código de las webs no varía y puede ocupar mucho.

Subdomain Lists - Contenido de las DNS del domino, lo mismo, no hace falta hacer copia diaria.

Ftp Accounts - Copia la lista de usuarios, no cambia a diario, por lo que no hace falta tampoco que se diaria.

Ftp Settings - Configuración del Ftp, lo mismo que antes.

Databases - Esto sí es importante ya que la mayoría de las webs que tienen páginas dinámicas tienen los datos en una base de datos y sí es normal que cambien a diario, añadiendo o quitando datos. Copia diaria.

Mailing Lists - Las listas de distribución, si las tienes habilitadas quizá quieras tener copia diaria.

E-Mail Accounts - Copia de las cuentas de correo, depende de la importancia que tengan los correos, pero se puede hacer diaria.

Forwarders - Esto ya da un poco más igual, depende de la cantidad de correos que tengas apuntados.

Autoresponders - Igual que antes, depende de la cantidad que se tengan creados.

Vacation Messages - Válido lo de "Autoresponders"

E-Mail Settings - Lo mismo que con "E-mail Accounts".

"Step 5 [submit]" - Pulsaremos el botón "Submit" para confimar la copia. En unos minutos empezará y si más abajo tenemos habilitada la casilla "Send a message when a backup has finished." mandará un correo cuando finalice la copia.

Resumen, lo más importante serían las bases de datos y los correos, por lo que programaría una copia diaria de éstos y una semanal completa siempre en el propio servidor y en el ftp, y si acaso, una de las bases de datos y del correo cada 3 días en el ftp.

Lo siguiente es restaurar las copias en la sección "Restore Backup", también está dividido en pasos, esta vez sólo tres:
"Step 1: From Where" - Hay que indicarle dónde están las copias,  si en el servidor local o en uno externo. Si esran en el propio servidor seleccionamos "Local" e indicamos la ruta donde están las copias almacenadas. Si está en un servidor externo hay seleccionar "Ftp" y poner los mismos datos que pusimos al crear la copia: IP del servidor, usuario, contraseña, ruta y puerto. Cuando lo tengamos pulsamos el botón "Update Files".

"Step 2: Select IP" - Hay dos opciones, la primera "Use the IP stored in the backup" asignará la IP que tiene el backup al dominio. Si fuese una migración y no se tiene la misma IP hay que seleccionar la segunda opción "Use the IP from the list" y seleccionar la que queramos. Si se quiere asignar una IP a varios dominios tiene que estar marcada como compartida (en IP Management).

"Step 3: Select File(s)" - Seleccionamos los usuarios que queremos restaurar.

"Step 4: [Submit]" - Cuando hayamos finalizado de rellenar todo, pulsamos el botón submit y en unos minutos empezará a restaurarlo todo. Como antes al crear el backup, si tenemos habilitada la casilla "Send a message when a backup has finished." mandará un correo cuando finalice la restauración.
Queda por ver la parte de "Current Backup Crons" que serían las copias programadas y "Backup / Restore Settings", que la primera opción es para que te mande un correo cuando finalice la acción y la otra es para que al restaurar un dominio te ponga como DNS las dns del servidor o deje las que trae el backup. Si los dominios los gestiona el servidor y se han traido de otra máquina seleccionar esta opción para que actualice la información.

Con esto acabamos por hoy con las tres primeras opciones de la seccion "Admin Tools", más adelante seguiremos explicando el resto de opciones.

sábado, 27 de agosto de 2011

DirectAdmin: Panel de Administrador (I)

Bueno, como dije, empezaremos usando el panel de administrador, ya que es el primero que necesitaremos usar para configurar nuestro hosting. Lo primero indicar que por defecto el DirectAdmin está en inglés y que para poder cambiarlo de idioma necesitaremos instalar un skin en el idioma que necesitemos. Lo difícil de ésto es encontrar un panel que esté en nuestro idioma y que sea útil, por lo que en principio no tengo planeado tocar el tema.

Tras instalar el panel en nuestro servidor, tendremos que acceder a él desde un navegador para configurarlo. Para ello, accederemos desde un navegador cualquiera a http://ipdelservidor:2222 y nos aparecerá un recuadro pidiendo el usuario y la contraseña. Accederemos como admin ya que por ahora es la única cuenta que tenemos creada con la contraseña que nos dió DirectAdmin o bien con la que le pusieramos al usuario admin. Existen tres subpaneles, "Admin Level", "Reseller Level" y "User Level" a los que podremos acceder desde la derecha. Nos centraremos ahora en el "Admin level" para empezar a usar nuestro servidor.

Se nos abrirá una página con tres secciones bien diferenciadas: "Server Management", "Admin tools" y "Extra features", con sus correspondientes apartados. De los botones que aparecen arriba sólo nos interesará de momento el botón "Home" que es la página que aparece. La sección de "Server Management" es básicamente para la creación de usuarios. Como hemos indicado en el otro post, este panel es para hosting, por lo que nos ofrece diversos de cuentas.

Los administradores son los usuarios con más acceso al panel, pudiendo modificar todo lo que aparece en el panel. Generalmente sólo debería haber uno, y sólo tener acceso a él el administrador del servidor o en su defecto un grupo pequeño de gente. Como siempre, todos los cambios que se hagan deberían quedar apuntados en el cuaderno de bitácora del servidor, esto es, un cuaderno de papel en el que se apuntará todo lo que pase en el servidor, con todos los detalles posibles y fechas, para futuras referencias. Luego están los usuarios, que son los que tendrán el hosting con su espacio web y correo. No hay mucho que detallar en el concepto, más adelante veremos qué opciones tienen. Por último, existe un usuario llamado reseller. No tiene tanto permiso como el administrador, ya que su función es para la reventa de hosting, por lo que su uso es el de crear usuarios normales.

Con ésto explicado, creo que las funciones de "Create Administrator" y "Create Reseller" quedan claras, es para la creación de usuarios con esas características, al igual que "List Administrators" y "List Resellers" sirve para mostrar y acceder a estos usuarios. Si entrarmos en "Create Administrator" vemos que nos pide 3 datos, nombre de usuario, email de éste y una contraseña.

Antes de crear un reseller hay que crear un paquete de reseller en "Manage Reseller Packages", ya que hay que establecer los límites que tendrán éstos a la hora de crear cosas. Recordemos que éstos usuarios son para revender el hosting, esto es, Pepito tiene una pequeña empresa y quiere vender alojamiento pero no quiere un servidor entero ya que no le compensa. Se le crea una cuenta de éstas y listo, él podrá crear tantos usuarios como se le permita. Pinchamos en "Manage Reseller Packages" y nos saldrá la lista de los paquetes que tenemos creados. La primera vez aparece vacío asi que vamos a crear uno pulsando en "Add Package". Hay un montón de opciones, asi que vamos a explicarlas una a una:

Bandwidth (MB) - Ancho de banda del que dispone el usuario, si se pasa, se le cortará el servicio hasta que pase el mes. Esto es útil si el servidor que tienes tiene un límite de ancho de banda mensual o si quieres limitarlo por alguna razón.

Disk Space (MB) - Espacio que tendrá el usuario para almacenar tanto web como correo. Si se pasa del espacio, se bloquea la cuenta y hay que borrar las cosas. Lo más importante es que si nos pasamos, dejará de funcionar el correo, así que cuidado.

Domains - Numero de dominios que puede gestionar el usuario desde el servidor. Como el panel nos ofrece servicio de DNS, como veremos más adelante, nos permite asignar un límite de dominios que puede tener un usuario. Lo normal para un usuario es 1.

Sub-Domains - Número de subdominios que puede tener cada domimio. Los subdominios son "www.", "ftp." "mail.", o lo que queramos poner. Lo normal será poner estos 3, pero se puede cambiar y en algunos casos hay gente que necesita más porque puede tener aplicaciones web o por ejemplo tener una version para movil de la web.

IPs - Numero de IPs que puede usar. Esto es por si tienes varias IPs en el servidor.

Email Accounts - Numero máximo de cuentas de correo que tendrá un usuario. Esto dependerá de lo que necesites o quieras vender. La mayoría de la gente se conformará con tener 5 cuentas, pero como digo, depende de lo que quieras vender.

Email Forwarders - Opcion para reenviar el correo que entra en una cuenta a otra, lo mismo de antes, lo que se necesite.

Mailing Lists - Para crear listas de distribución. Cuidado con ellas porque pueden hacer que listen el servidor como spammer, usar con cuidado.

AutoResponders - Para mandar mensajes automáticamente. Por ejemplo si se está de vacaciones o se quiere avisar al que envía el correo que se ha recibido.

MySQL Databases - Numero de bases de datos del que dispondrá el usuario, depende de las necesidades de cada uno.

Domain Pointers - Para redireccionar dominios desde el panel, por ejemplo para tener juntos el .com y el .es de nuestro dominio.

Ftp Accounts - Numero de cuentas ftp del que dispondrá. Con una suele ser suficiente.

Anonymous Ftp Accounts - Activar el acceso anonimo al ftp, esto es que no haga falta tener un usuario para poder subir y bajar cosas. Mejor dejarlo desactivado ya que pueden usarse para subir cosas que no se desean.

CGI Access - Habilitar el uso de CGIs, que son scripts para hacer algunas funciones como envíos de correos.

PHP Access - Habilitar el uso de PHP, en la mayoría de los casos necesario.

SpamAssassin - Habilita un programa para quitar el spam, a veces útil pero puede dar problemas si no se configura bien.

Catch-All E-mail - Cuenta de correo a la que irá todos los mails que se dirijan a cuentas que no existan en el dominio. Puede ser útil, o no.

SSL Access - Activa la seguridad SSL, hace falta tener un certificado y generalmente una IP dedicada.

SSH Access - Acceso SSH para el reseller.*

SSH Access for Users - Da la capacidad al reseller de que las cuentas de usuario que cree tengan acceso por ssh si quiere.*
* No recomiendo estas opciones, cuantas menos cuentas tengan acceso por ssh mejor.

Allow Overselling - Deja saltarse los límites pero avisando.

Cron Jobs - Habilita el cron, esto es, poder automatizar tareas.

System Info - Ver el estado del servidor. Yo lo deshabilitaría para que los clientes no molesten a la mínima, y la mayoría de veces sin saber.

DNS Control - Permite la edición de los datos de las DNS.

Personal DNS's        None
             Uses 2 IP's, domain uses one of them
             Uses 3 IP's, domain gets own IP
El usuario tiene un panel de DNS para él, mejor desactivarlo si sólo tenemos una IP.

Share Server IP - Para que el reseller cree las cuentas usando la IP del servidor.

Package Name - Nombre con el que guardaremos el paquete para usarlo más adelante.
Ahora vamos con la creación de un reseller ya que si no se alargará mucho. Simplemente cuando tengamos creado el paquete, en el menú principal seleccionaremos "Create Reseller", nos pedirá los datos: nombre, correo, contraseña, dominio, paquete que se asociará, IP que le daremos (Shared - server si sólo hay una) y si queremos editar el mail que se le envía. Da la opción de crearlo con características diferentes del paquete, pero son las mismas que he comentado anteriormente.

Por último un vistazo rápido a las opciones que quedan, ya que no hay mucho que contar. Con "Change Passwords" podremos cambiar la contraseña a cualquier usuario, y con "Show All Users" veremos todas las cuentas que tengamos creadas en nuestro servidor, pudiendo editarlas o lo más cómodo, loguearnos con ellas, por ejemplo para solventar errores o guiar al cliente a la vez mientras trata de hacer algo. La última opción que nos queda de ésta parte del panel es "Manage Tickets", una opción para gestionar las incidencias creando tickets, ya dependerá de cada uno si quiere usarlos o prefiere otro método de contacto.

PD: No se borra el usuario admin NUNCA, JAMAS DE LOS JAMASES, NEVER EVER IN THE EVER. Que se puede hacer, Linux lo permite, pero no significa que tengas que hacerlo. Si quieres tener un administrador con tu nombre lo puedes crear, pero dejando el de admin, que te cargas todo si lo borras.

viernes, 26 de agosto de 2011

Instalación de DirectAdmin

¿Qué es DirectAdmin, se preguntarán algunos? Bien sencillo, es un panel de gestión web con el que podremos gestionar algunos servicios de nuestro servidor Linyx de una manera sencilla. Es un panel pensado para hosting, por lo que ofrece lo necesario para tener y mantener páginas webs en el servidor. No es compatible con todas las versiones de Linux, podeis comprobar los que necesitais en su web, aunque explicaré lo necesario aquí.

Se necesita un servidor con un linux recien instalado, ya que el instalador usa sus propias versiones de los programas, por lo que si existiesen otros habrá conflictos y acabará siento necesario reinstalar. Supondremos una CentOS 5.5 x64, ya que ésta tiene unos pasos extra para que funcione por un problema con unas librerías. En la página explica un particionado, pero no es obligatorio, por lo que en la instalación del linux preferido podeis seleccionar lo que querais. Yo sólo hago 2 particiones, una para la swap y el resto para la raiz, ya que así se evitan futuros problemas de espacio mal calculado, con sus correspondientes pegas claro está, pero eso es otro cantar. Lo más importante para instalarlo es tener una licencia del panel (no es gratuito) adecuada a nuestro sistema (CentOS, Debian, ...), tener una IP pública y hacer una instalación básica, sin instalar el apache ni nada, sólo el paquete "base" y si acaso, las "Herramientas de desarrollo".

Lo primero necesitamos instalar las dependencias, principalmente el compilador gcc ya que se descarga el código fuente de los programas que usa y los compila él mismo para evitar problemas.
#yum install gcc gcc-c++ flex perl
Lo siguiente será descargar de su web el instalador y lanzarlo:
#wgetvhttp://www.directadmin.com/setup.sh
#chmod 755 setup.sh
#./setup.sh
Nos pedirá que introduzcamos nuestro usuario y licencia, así como el nombre de la máquina, que tiene que ser FQDN. Aquí viene el primer punto que hay que tener cuidado, el nombre tiene que ser del tipo servidor.dominio.es, no admite que sea ni dominio.es ni servidor. No tiene porqué existir el dominio, pero sí que se tiene que poner así, ya que si no dará problemas y muchos. Lo siguiente será decirle en qué tarjeta de red tenemos la IP asociada a la licencia, generalmente eth0, pero revisarlo por si acaso, ya que si no la instalación fallará. En algunos casos habrá que cambiarla, por tenerla en eth1 o por tener otra nomenclatura de tarjeta de red, como suele ser en algunos servidores virtuales. Ahora pedirá confirmación del sistema Linux, ya que tiene que coincidir con la licencia. Lo siguiente que hay que tener cuidado es cuando nos pregunta qué necesitamos instalar, si "customapache" o "custombuild". Para una instalación básica y fácil de mantener seleccionaremos "custom build" ya que es la versión que ahora mismo tiene soporte y de la que iré haciendo los posts. Por último, nos preguntará si queremos una instalación con los valores por defecto: apache 2.2 y php 5, contestaremos que sí y listo, se pondrá a compilar los programas él solo.

Si todo ha salido bien, nos dará saldrá un mensaje con la dirección con la que podemos acceder al panel y la contraseña del usuario admin. No hay que preocuparse mucho por esa contraseña, ya que podremos cambiarla desde el terminal por la que más nos apetezca con "passwd admin", ¡pero hay que recordar tener siempre una contraseña medianamente fuerte para evitar los ataques!

Hasta aquí tenemos una instalación normal, ahora le toca el turno a los pasos extra para el CentOS 5 de 64 bits. Hay ejecutar estos cuatro comandos:
#ln -sf /usr/lib64/libexpat.so /usr/lib/libexpat.so
#ln -sf /usr/lib64/libm.so /usr/lib/libm.so
#ln -sf /usr/lib64/libssl.so /usr/lib/libssl.so
#/usr/local/directadmin/custombuild/build all d
Volverá a recompilar todo y al finalizar ya podremos acceder desde un navegador a http://ipdelservidor:2222 y loguearnos con admin.

Uno de los detalles que hace interesante al DirectAdmin es que elimina la necesidad de utilizar al usuario root para la mayor parte de la administración, por lo que uno se puede olvidar del terminal... mentira. Cierto es que no haya que usarlo para la gestión del día a día, pero nunca nos tendremos que olvidar del usuario root, ya que será necesario para muchas acciones que necesitemos, sobre todo a la hora de instalar nuevas funcionalidades y evidentemente para mantener la seguridad del servidor, pero eso ¡será en otro post!

El siguiente que tengo planeado es referente al uso del panel en sí, empezaremos por el panel de administración, acto seguido trataremos el de usuario y para acabar con el de reseller, ya que es el que menos he usado. Tras esos posts, indagaremos un poco más en todas las opciones que trae "ocultas" el DirectAdmin y que son destinadas al administador del servidor, para añadir o modificar las características.

PD: El otro día me pasó, que tras pegarme y reinstalar varias veces el DirectAdmin porque no me dejaba acceder a la interfaz web, resulta que estaban activadas unas reglas en el iptables, por lo que es conveniente revisar que no esté activado ni el SELinux ni el firewall de CentOS a la hora de usar el DirectAdmin, o configurarlos para que no bloquee las conexiones.