Servicios que brindaremos:
- NAT / Firewall
- DNS Server
- Web Server
- Mail Server
- FTP Server
- MySQL Server
Resaltare las lineas de codigo a utilizar, de modo que puedan copiar y pegar en las consolas de sus equipos.
Cabe aclarar que esta no es la unica manera de instalar y configurar todo el sistema operativo, tan solo asi lo hice en varias ocasiones.
Instrucciones:
Paso 1) Obteniendo el software a utilizar.
El sistema operativo que usaremos es Debian 4.0 (Etch). La pagina para bajarlo es: http://www.debian.org/CD/netinst/
Aqui tienen que elegir la plataforma que van a utilizar, segun el procesador que tengan.
Adjunto aqui una pequeña reseña de que arquitectura utiliza cada procesador:
i386 -> 32 Bits. Para CPU's basados en Intel x86. (Cualquier CPU 32Bits)
amd64 -> 64 Bits. Para Athlon64/Opteron64/Intel Core2Duo
ia64 -> 64 Bits. Solamente para Intel Itanium
Vamos a bajar la imagen oficial "NETINST". Que es esto? Es una imagen minima para dejar un sistema funcional, y bajara de Internet todo lo que le haga falta.
Una vez tengan la imagen ISO en su PC, la graban en un CD y vamos al paso siguiente.
Paso 2) Instalando el Sistema Base.
Configuramos el BIOS del equipo para que bootee desde el CD, e ingresamos nuestro CD de Debian4 en la lectora.
Al bootear nos muestra el logo de Debian, tan solo apretamos enter.
La primer pantalla nos pide el lenguaje a utilizar durante la instalacion, escojan "English".
Luego nos pedira la ubicacion: Le damos "Other"
Ahora si, al buscar el pais ponemos "Argentina"
Siguiente, lenguaje del teclado: Pongan el que usen en sus PCs.
El instalador va a chequear el CD de instalacion, a revisar minimamente el hardware que tengan instalado e intentara configurar la placa de red mediante DHCP si es que lo tienen disponible en su red.
En caso que no tengan DHCP disponible, configuren la placa de red a mano (Recomiendo hacerlo a mano siempre, para asignar una IP fija al servidor).
Colocan la IP, luego la mascara de red, luego los 2 servidores DNS separados por un espacio entre ellos. Una vez configurado manual o automaticamente, seguimos.
Ingresamos el nombre del servidor, y a continuacion el nombre del dominio (Ya que no usan, dejenlo vacio y aprieten Enter).
Aqui tardara unos segundos, y luego pasara a la configuracion + particionado del/los discos rigidos.
Uno aqui podria armar el esquema de particiones a mano: Recuerden que Linux no se maneja como Windows y podran sentirse un poco incomodos al principio.
Recomendacion para principiantes, dejen que el instalador arme todo automaticamente en una sola particion "/". Como elegimos esto?
Primera opcion: "Guided - Use Entire Disk" -> Les devuelve la lista de discos donde aplicar esto.
Segunda opcion: "All files in one Partition"
Tercera opcion: "Finish partitioning and write changes to disk" -> Nos pide confirmar, le decimos que si.
Esperamos unos segundos mientras realiza todos los cambios, luego seguimos.
Usuarios. De forma predeterminada se crea el usuario "root", pero tambien crearemos un usuario extra para correr tareas no administrativas en el servidor en el futuro.
Lo primero que nos pide el instalador, es ingresar la password del usuario "root". Al darle enter nos pide que la ingresemos de nuevo para confirmar.
Ahora si, a crear nuestro usuario no-admin. Primero el nombre completo, luego el nombre del usuario, luego la password (2 veces!).
Aguardamos unos minutos mientras instala los paquetes base, luego nos preguntara como seguir nuestro curso de accion: Podemos utilizar un mirror en internet para ir bajando ahora los paquetes adicionales, o hacerlo despues.
Mi preferencia: No usar un mirror AHORA, instalarlo bien pelado y despues agregar los paquetes de a poco.
Que nos pregunta el instalador ahora? Como configurar nuestro sistema. Si hubieramos puesto un mirror por internet, tendriamos muchas opciones para armar automaticamente un WebServer, Print Server, File Server, etc.
Como queremos instalar todo por nuestra cuenta elegimos: "Standard System".
Tenemos para un ratito mientras instala el paquete base, asi que vayan a buscar un cafe si gustan.
Una vez terminado nos ofrecera instalar el GRUB. Que es el GRUB? Es el administrador de booteo. Le decimos que Si.
Instalara el GRUB en nuestra maquina, terminara la configuracion inicial y nos pedira que retiremos el CD de la lectora y a continuacion reiniciemos el equipo.
Al siguiente paso...
Paso 3) Configurando el equipo!
Nos logueamos al equipo como root, ya que vamos a ejecutar tareas administrativas.
Lo primero recomendable, es configurar un SSH Server. Esto nos permitira conectarnos remotamente al servidor (usando Putty, por ejemplo) y hacer todo desde nuestra PC...mucho mas comodo.
Ejecutamos lo siguiente (Aclaracion, nos va a pedir que metamos el CD de instalacion):
Código:
apt-get install openssh-server
Una vez completado esto, podemos probar ingresar desde nuestra PC. Nos pedira que aprobemos la clave RSA de autenticacion y listo.
Ahora, vamos a habilitar la busqueda de paquetes de instalacion en internet. Tenemos que editar un archivo de texto, comentar el CD y agregar nuestros servidores.
Personalmente, uso los de Alemania...siempre tienen las ultimas versiones actualizadas. Lo hacemos de la siguiente manera:
Código:
vi /etc/apt/sources.list
Borramos todo el contenido del archivo:
- Apretamos ESC, luego dos veces la tecla "D" para borrar una linea. Repetimos esto hasta que este vacio.
Ingresamos la nueva informacion:
- Apretamos ESC, luego la tecla "i". Ahora pegamos lo que pongo a continuacion
Código:
# # deb cdrom:[Debian GNU/Linux 4.0 r0 _Etch_ - Official i386 NETINST Binary-1 20070407-11:29]/ etch contrib main #deb cdrom:[Debian GNU/Linux 4.0 r0 _Etch_ - Official i386 NETINST Binary-1 20070407-11:29]/ etch contrib main deb http://ftp2.de.debian.org/debian/ etch main deb-src http://ftp2.de.debian.org/debian/ etch main deb http://security.debian.org/ etch/updates main contrib deb-src http://security.debian.org/ etch/updates main contrib
Para salir del VI (VI = Editor de texto en Linux) se hace asi:
1) Apretar la tecla ESCAPE
2) Escribir dos puntos ":"
3) Escribir "wq" (viene de Write & Quit)
4) Apretar Enter
Ya actualizado el archivo de configuracion, procedemos a poner al dia nuestro sistema:
Código:
apt-get update
Código:
apt-get upgrade
Lo primero baja las definiciones y los listados de paquetes disponibles. Lo segundo actualiza los paquetes existentes buscando versiones nuevas.
Ya que instalamos Debian4, no hay muchos paquetes para actualizar...el kernel a lo sumo.
Con nuestro equipo actualizado, vamos a instalar una serie de paquetes basicos...prerequisitos para todo lo demas, por simplificarlo.
Son librerias utilizadas por muchos programas, asi que copien y peguen esto en su consola. Ojo que es UNA sola linea!:
Código:
apt-get install binutils cpp fetchmail flex gcc libarchive-zip-perl libc6-dev libcompress-zlib-perl libdb4.3-dev libpcre3 libpopt-dev linux-kernel-headers lynx m4 make ncftp nmap openssl perl perl-modules unzip zip zlib1g-dev autoconf automake1.9 libtool bison autotools-dev g++
Paso 4) Instalando software.
4.1 - DNS Server
Lo primero a instalar es el DNS Server, usaremos "BIND9". Ejecutamos lo siguiente en nuestra consola y esperamos a que termine:
Código:
apt-get install bind9
Por razones de seguridad, vamos a hacer que Bind9 corra bajo un usuario "bind" chrooted. Primero paramos el servicio:
Código:
/etc/init.d/bind9 stop
Ahora vamos a editar el archivo de configuracion y cambiar el parametro que permite esto.
Código:
vi /etc/default/bind9
El contenido del archivo debe ser:
Código:
OPTIONS="-u bind -t /var/lib/named" # Set RESOLVCONF=no to not run resolvconf RESOLVCONF=yes
Creamos los directorios necesarios y luego movemos el archivo de configuracion:
Código:
mkdir -p /var/lib/named/etc mkdir /var/lib/named/dev mkdir -p /var/lib/named/var/cache/bind mkdir -p /var/lib/named/var/run/bind/run mv /etc/bind /var/lib/named/etc
Para evitar un posible problema de configuracion futura por si actualizamos Bind, hacemos un link simbolico de la vieja ubicacion a la nueva.
Código:
ln -s /var/lib/named/etc/bind /etc/bind
Armamos los dispositivos nulos y random, seteamos permisos, etc.
Código:
mknod /var/lib/named/dev/null c 1 3 mknod /var/lib/named/dev/random c 1 8 chmod 666 /var/lib/named/dev/null /var/lib/named/dev/random chown -R bind:bind /var/lib/named/var/* chown -R bind:bind /var/lib/named/etc/bind
La ultima parte de la configuracion se refiere al log de errores. Vamos a hacer que se logueen los errores en los logs del sistema.
Editamos el archivo de configuracion:
Código:
vi /etc/default/syslogd
Cambiamos la linea "SYSLOG=" para que quede asi:
Código:
SYSLOGD="-a /var/lib/named/dev/log"
Por ultimo reiniciamos el daemon del Bind:
Código:
/etc/init.d/sysklogd restart
Congrats! Ya tienen un DNS Server instalado, ahora falta configurarlo...
4.2 - SQL Server
Vamos a instalar un servidor MySQL. Ejecutamos lo siguiente:
Código:
apt-get install mysql-server mysql-client libmysqlclient15-dev
Esperamos a que termine y procedemos a configurarlo basicamente: Queremos que escuche en todas las interfases que tengamos, no solo localhost (127.0.0.1).
Editamos el archivo de configuracion de MySQL:
Buscamos y comentamos la linea que dice "bind-address" para que quede como pongo a continuacion
Código:
vi /etc/mysql/my.cnf
Código:
#bind-address = 127.0.0.1
Luego reiniciamos SQL:
Código:
/etc/init.d/mysql restart
Siguiente! A configurar un usuario y password basicos para SQL, asi no entra nadie a jugar que no nos guste..jeje.
Reemplazen la linea obvia con su password y ejecuten:
Código:
mysqladmin -u root password PONGAN-UN-PASSWORD-ACA! mysqladmin -h HOSTNAME-DEL-SERVIDOR -u root password PONGAN-UN-PASSWORD-ACA!
Ya tenemos el SQL Instalado y vacio. Mas adelante lo vamos a llenar con cosas copadas...
4.3 Mail Server - Primera Parte: Postfix con SMTP-Auth y TLS
El siguiente paso es instalar Postfix con autenticacion por SMTP. Evitaremos ser un relay de SPAM entre otras cosas.
Para instalar postfix y procmail todo junto, ejecutamos lo siguiente:
Código:
apt-get install postfix libsasl2 sasl2-bin libsasl2-modules libdb3-util procmail
Nos va a preguntar 2 cosas:
General type of configuration? <-- Internet Site
Mail name? <-- HOSTNAME-DEL-SERVIDOR
Una vez que termina, vamos a reconfigurar todo a mano...
Código:
dpkg-reconfigure postfix
Les paso las opciones a elegir en cada uno:
General type of configuration? <-- Internet Site
Where should mail for root go <-- Nada
Mail name? <-- HOSTNAME-DEL-SERVIDOR
Other destinations to accept mail for? (blank for none) <-- localhost.localdomain, localhost
Force synchronous updates on mail queue? <-- No
Local networks? <-- 127.0.0.0/8
Use procmail for local delivery? <-- Yes
Mailbox size limit <-- 0
Local address extension character? <-- +
Internet protocols to use? <-- all
Ahora, a configurar Postfix:
Código:
postconf -e 'smtpd_sasl_local_domain =' postconf -e 'smtpd_sasl_auth_enable = yes' postconf -e 'smtpd_sasl_security_options = noanonymous' postconf -e 'broken_sasl_auth_clients = yes' postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination' postconf -e 'inet_interfaces = all' echo 'pwcheck_method: saslauthd' >> /etc/postfix/sasl/smtpd.conf echo 'mech_list: plain login' >> /etc/postfix/sasl/smtpd.conf
Una vez que tenemos Postfix configurado, tenemos que crear los certificados SSL para TLS! Lo hacemos asi:
Código:
mkdir /etc/postfix/ssl cd /etc/postfix/ssl/ openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024 chmod 600 smtpd.key openssl req -new -key smtpd.key -out smtpd.csr openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt openssl rsa -in smtpd.key -out smtpd.key.unencrypted mv -f smtpd.key.unencrypted smtpd.key openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650
Ahora que tenemos los certificados TSL hechos y cargados, vamos a reconfigurar Postfix de nuevo.
Código:
postconf -e 'smtpd_tls_auth_only = no' postconf -e 'smtp_use_tls = yes' postconf -e 'smtpd_use_tls = yes' postconf -e 'smtp_tls_note_starttls_offer = yes' postconf -e 'smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key' postconf -e 'smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt' postconf -e 'smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem' postconf -e 'smtpd_tls_loglevel = 1' postconf -e 'smtpd_tls_received_header = yes' postconf -e 'smtpd_tls_session_cache_timeout = 3600s' postconf -e 'tls_random_source = dev:/dev/urandom' postconf -e 'myhostname = server1.example.com'
Reiniciemos Postfix para que tome todos los cambios:
Código:
/etc/init.d/postfix restart
Siguiente: Autenticacion.
Vamos a autenticar por saslauthd, pero hay que tocar un par de cositas para que ande porque Postfix corre chrooted!. Empecemos a meter mano:
Creamos el directorio de configuracion.
Código:
mkdir -p /var/spool/postfix/var/run/saslauthd
Vamos a editar el archivo de configuracion para activar saslauthd, hay que tocar 2 lineas en el archivo. Una lo activa y la otra le dice donde corre.
Código:
vi /etc/default/saslauthd
Cambien estas 2 lineas para que queden asi:
Código:
# Should saslauthd run automatically on startup? (default: no) START=yes OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"
Arrancamos saslauthd y esperemos que funcione...
Código:
/etc/init.d/saslauthd start
Para verificar el funcionamiento pueden hacer un telnet a localhost en el puerto 25...
4.3 Mail Server - Segunda Parte: Courier para IMAP/POP3 con soporte para SSL
Instalamos toda la serie de paquetes necesarios:
Código:
apt-get install courier-authdaemon courier-base courier-imap courier-imap-ssl courier-pop courier-pop-ssl courier-ssl gamin libgamin0 libglib2.0-0
Nos va a preguntar 2 cosas nomas:
Create directories for web-based administration ? <-- No
SSL certificate required <-- OK
Configuramos solamente una cosita: La carpeta donde se guardan los mails. Luego reiniciamos el servicio.
Código:
postconf -e 'home_mailbox = Maildir/' postconf -e 'mailbox_command =' /etc/init.d/postfix restart
Ready to go! Falta aun, no desesperen.
4.4 - Web Server
Vamos a instalar un Apache2 y PHP5. Es lo mas usado, es facil de configurar y anda genial.
Primero apache:
Código:
apt-get install apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert
Luego PHP:
Código:
apt-get install libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-json php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl
A modo referencia, el instalador nos va a preguntar una sola cosa:
Continue installing libc-client without Maildir support? <-- Yes
Una vez que termino la instalacion completa, vamos a meter mano en la configuracion de Apache. Que vamos a hacer? A setear el directorio donde estan los mods para el Apache.
Código:
vi /etc/apache2/mods-available/dir.conf
Cambiamos la linea de "DirectoryIndex" para que quede asi:
Código:
Segunda configuracion: Seteamos los puertos en los que escucha el servidor! Agregamos "Listen 443"
Código:
vi /etc/apache2/ports.conf
Tiene que quedar asi:
Código:
Listen 80 Listen 443
Una vez terminado, vamos a activar 4 modulos de Apache (Soporte para SSL, ejecucion de comandos, etc etc). Luego reiniciamos Apache:
Código:
a2enmod ssl a2enmod rewrite a2enmod suexec a2enmod include /etc/init.d/apache2 force-reload
Hasta aca esta el servidor basico instalado. Una vez terminado veremos como se configura para hostear una web y demas...paso a paso!
4.5 - FTP Server
Vamos a usar ProFTPD para un FTP Server, configurado internamente con una base SQL. Bajamos los paquetes necesarios con esto:
Código:
apt-get install proftpd ucf
Solamente nos va a hacer una pregunta el instalador:
Run proftpd from inetd or standalone? <-- standalone
Tenemos que tocar algo de configuracion? Si, una sola cosa: Deshabilitar el soporte para IPv6. Por que? Porque sino cuando levantamos el servicio nos tira un error.
Como lo hacemos? Cambiamos una linea en un archivo de configuracion:
Código:
vi /etc/proftpd/proftpd.conf
Buscamos y cambiamos la linea que dice "UseIPv6" a "off". Que quede asi:
Código:
UseIPv6 off
Por seguridad, tambien agregamos estas lineas al final del proftpd.conf:
Código:
DefaultRoot ~ IdentLookups off ServerIdent on "FTP Server ready."
Por ultimo, reiniciamos ProFTPD.
Código:
/etc/init.d/proftpd restart
Paso 5) Administracion
A esta altura estaran pensando: Como hago para administrar y mantener el servidor si aun no se tanto de Linux como para tocar todo por linea de comando?
Hay una solucion a esta pregunta: Webmin.
Que es Webmin? Es un administrador via Web. Este nos permite configurar cualquier servicio del sistema y tambien software extra que hayamos instalado, ejemplo: Apache o MySQL.
Primero lo bajamos. Desde nuestro home ejecutamos:
Código:
wget http://prdownloads.sourceforge.net/webadmin/webmin_1.350_all.deb
A continuacion, vamos a instalar todos las librerias que son prerequisitos, por si antes olvidamos alguna:
Código:
apt-get install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl libmd5-perl
Ahora si, una vez terminada la actualizacion, a instalar el paquete:
Código:
dpkg --install webmin_1.350_all.deb
En el momento que termina la instalacion, podemos ingresar al Panel desde nuestro navegador apuntando al puerto 10000.
Ejemplo: http://IP_Servidor:10000
Los invito a jugar revisando Webmin y todas sus opciones. Es un panel de control grafico que les ayudara muchisimo a controlar y modificar todo lo instalado anteriormente.
El mayor secreto ahora es meter mano y probar, no hay que tener miedo a romper...arreglando se aprende.
Espero que les sea de utilidad... ante cualquier duda o consulta pueden llamar al 0800-222-NOENTENDIUNCHOTO o preguntarlo por aqui y tendran la respuesta deseada... o no.
Saludos!
No hay comentarios.:
Publicar un comentario