viernes, 16 de enero de 2009

Instalacion Debian ETCH + Servidores



























Procedimiento para Instalacion Servidores: Web(Apache),  FirebirdSQL, SSH, FTP y MIdnigth Comander en Debian Etch!! SIn Tener minima idea de comandos de LINUX :-)



Requerimientos, PC X86 con Disco Rigido, placa de red y lectora de CD (Solo para instalacion)






  • Instalacion del SO y WEB Apache


Realizar el proceso de Instalacion del Debian NetInstall Etch 4.0 CD, con la maquina conectada a internet, definir direccion ip, mascara y gateway validos de la red, e instalar sistema Base + WebServer

Lo mas sencillo es disponer de un disco el cual se pueda formatear completamente y utilizar como unico SO el que vamos a Instalar:



Descargamos la Imagen ISO y la quemamos en un CD.

http://www.debian.org/CD/netinst/



Configuramos el BIOS para que botee desde el CDRoom, ponemos el CD en la Unidad correspondiente e iniciamos la PC, al aparecer la siguiente pantalla presionamos ENTER







Comienza la instalación y como primer paso seleccionaremos el Idioma (Spanish)







Seleccionar Nuestra Ubicacion Geografica (Argentina)






    

Elegir Teclado Español












Ahora el instalador Chequeara el CD de instalación, el hardware disponible, y tratara de configurar la red mediante DHCP si encontrase un servidor disponible.









En este momento nos informara si no encontro ningun servidor DHCP en la red. De ser asi nos  dara la opcion de configurar la IP, mascara y Gateway amnualmente. Recomendamos aprovechar este momento para hacerlo. De no ser asi, se explicara mas adelante como realizar manualmente dicha tarea.





Colocar el Nombre del Host en cuestión






Colocar el Nombre de Dominio







Ahora deberemos particionar nuestro Disco. Por cuestiones de simplicidad, crearemos una sola particion del tamaño total del disco y una pequeña porcion para Swapeo, por lo que seleccionaremos Guiada, utilizar todo el disco.






Elegiremos la unidad a particionar:






Seleccionaremos todos los archivos en una sola partición (Recomendado para usuarios nuevos)








Grabaremos los cambios en el disco:











Entonces, se crearan y formatearan las particiones:










Deberemos seleccionar una clave para el usuario root tambien conocido como superusuario(Usuario administrador del equipo con los mayores privilegios!)






pedira confirmación








Ahora crearemos una cuenta normal de usuario















Ahora el sistema Base sera instalado:








Ahora deberemos configurar el APT, ya que estamos utilizando el CD NetInstall, el cual contiene solo una pequeña parte de la totalidad de paquetes, el resto sera descargado a travez de internet de alguno de los servidores de "mirror"









Seleccionaremos el pais del servidor de espejo que queramos utilizar (generalmente el mismo pais donde estamos instalando el servidor fisicamente) en nuestro caso, ARGENTINA.




Seleccionaremos el servidor dentro de los disponibles en el pais seleccionado.






Exepto que estemos utilizando un servidor proxy, dejaremos estos campos en blanco y seleccionaremos continuar.






Apt esta actualizando la base de datos de paquetes disponibles.





Por favor, aceptar la participacion del siguiente paquete, seleccionando Si.







Si bien dijimos que instalariamos Servidores Web(Apache),  FirebirdSQL, SSH, FTP y MIdnigth Comander, por el momento seleccionaremos sistema base y servidor WEB solamente, el resto lo instalaremos manualmente.








los paquetes requeridos se instalaran en el sistema.








Cuando nos pregunte si deseamos instalar el boot loader GRUB en el master boot record, seleccionamos que si















Una vez instalado GRUB, el sistema Base y el web server, estan instalados. Sacar el CD de instalacion NetInstall de la lectora, y presionar continuar para reiniciar el sistema.
















  • Instalación de Openssh




Debido a que por defecto Debian Etch no instala un servidor SSH, lo deberemos hacer nosotros, ejecutando el comando:



apt-get install ssh openssh-server



Si todo salio bien ya deberiamos poder administrar remotamente el servidor en cuestion, con algun cliente ssh (Recomendamos Putty http://www.putty.org/)







  • Configurar la red


Si bien se sugirio hacerlo durante la instalación, se puede modificar manualmente la configuración de la red, modificando el archivo de interfaces del sistema:



vi /etc/network/interfaces


                                            ( vease mini manual de vi )



luego podemos reiniciar el servicio de red para que tome los cambios:

/etc/init.d/networking restart






  • Upgrade del APT




Comentaremos en el archivo  /etc/apt/sources.list la linea que hace referencia al cd de instalación, para que actualice el apt desde internet. (no se hasta donde es realmente necesario este primer paso para continuar, la verdad hoy no tengo tiempo de más pruebas!!!! :-/ cualqueir cosita me avisan!!! )




vi /etc/apt/sources.list    comentamos la linea que comienza con "deb cdrom:[Debian GNU/Linu..." anteponiendole un #







entonces, realizamos un



apt-get update



y luego




apt-get upgrade








  • Instalacion del Midnight Commander (Similar al Utilisimo Norton Commander :-b )





    apt-get install mc











  • Configuracion del APACHE 2 WebServer


 El Directorio default para los documentos en apache es /var/www. Si queres cambiar esta ruta por defecto, deberas editar el archivo /etc/apache2/sites-available/default , buscar y modificar la linea “DocumentRoot /var/www/”  por la ruta a la que lo quieras cambiar.

El archivo de configuracion principal es /etc/apache2/apche2.conf.

EN principio, al archivo de sites default hay que ponerle el path del site web, y sino aprender a configurar virtualhost para servir varias paginas web desde el mismo servidor, generando servidores virtuales. Como realmente todavia no tube la necesida de aprender tanto, :-b me arregle con:
NameVirtualHost *
<VirtualHost *>
    ServerAdmin webmaster@localhost
    
    DocumentRoot /var/www/
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
        # This directive allows us to have apache2's default start page
                # in /pcremoteweb/, but still have / go to the right place
                RedirectMatch ^/$ /pcremoteweb/
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog /var/log/apache2/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog /var/log/apache2/access.log combined
    ServerSignature On

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>


Para el que quiera ampliar sus conocimientos VirtualHosts: http://linuxemb.wikidot.com/virtualhost


Para los acentos !!:

Solo hay que descomentar una linea en /etc/apache2/apache2.conf


originalmente esta asi


#AddDefaultCharset ISO-8859-1


al quitarle el # queda


AddDefaultCharset ISO-8859-1



y luego reiniciar el servicio

/etc/init.d/apache2 restart








  • Instalación y configuración del Servidor FTP ProFTPD






    apt-get install proftpd

En nuestro caso seleccionamos instalarlo en modo Inetd debido a que solo tenemos algunas pocas conexiones al dioa, pero en el caso de haber una cantidad importante de conexiones, se recomienda altamente el modo standalone o independiente, ya que inetd lanzara un proceso por cada conexion activa, El tema es que al ser pocas conexiones esto nos ayuda a mantener la performance del equipo, para el resto de los servicios corriendo, ya que el servidor ftp estara activo solamente cuando se le hagan peticiones al mismo, de otro modo, inetd tiene parado el servicio.-

Con esto ya tenemos funcionando un servidor FTP demasiado básico

proftpd deja errores y mensajes de error en /var/log/syslog.

para ello procedemos a la configuración:
cd /home/ftp/
Editamos el archivo de bienvenida!!
vi welcome.msg  

Crear un directorio base para el ftp:
mkdir FTP-public
Creamos el grupo ftpusers
addgroup ftpusers
Ahora vamos a crear usuarios para acceder al ftp con los siguientes comandos:

useradd
tuusuarioftp -p tu_password -d /home/FTP-public -s /bin/false
useradd CLiente1 ftpusers -p la_password -d /home/FTP-public/carpetacliente -s /bin/false

etc... por cada usuario deseado, se puede direccionar a carpetas /var/www en caso de ftp de paginas web

ahora le asignamos un grupo a los usuarios deseados.
usermod -g ftpusers tuusuarioftp

Ahora tenemos que especificar los permisos de lectura y escritura para estos directorios, en nuestro caso particular:
DebServer:/home/ftp# chmod 755 /home/ftp/FTP-public
DebServer:/home/ftp# chmod 770 /home/ftp/FTP-public/mko/upload/
DebServer:/home/ftp# chmod 750 /home/ftp/FTP-public/mko/revision/
DebServer:/home/ftp# chmod 777 /home/ftp/FTP-public/upload/

El primer dígito setea el tipo de permiso deseado al dueño; el segundo al grupo; y el tercero al resto de los usuarios.

































































NúmeroBinarioLectura (r)Escritura (w)Ejecución (x)
0000











1001











2010











3011











4100











5101











6110











7111












Por ejemplo:


chmod 766 file.txt # brinda acceso total al dueño # y lectura y escritura a los demás
chmod 770 file.txt # brinda acceso total al dueño y al grupo # y elimina todos los permisos a los demás usuarios
chmod 635 file.txt # setea lectura y escritura al dueño,  # escritura y ejecución al grupo, # y lectura y ejecución al resto


vemos que seguramente si estuvimos trabajando sobre root el owner de las carpetas sera este, y a mi me interesa tener una especie de "superusuario de FTP" por lo que hare que mi usuario sea el dueño de todas las carpetas, para poder darle privilegios marcados sobre estas.
ls -l /home/ftp/FTP-public
Entonces lo cambiamos de la siguiente manera, lo hacemos propietario de ramiro, y perteneciente al grupo ftpusers:
chown -R ramiro:ftpusers /home/ftp/FTP-public

cambiar charset esp-arg
dpkg-reconfigure locales poner esp arg iso en vez de UTF8

Ahora veamos el archivo de configuración del proftp que se encuentra en /etc/proftpd/proftpd.conf para esto ejecutamos
vi /etc/proftpd/proftpd.conf se agraga a los usuarios con su configuracion en el proftpd.conf

ServerName            "PCRemoteFTP"
agregamos
#Se especifican los usuarios que podran utilizar el FTP
<Limit LOGIN>
AllowUser ramiro
DenyALL
</Limit>


 <Anonymous /home/ftp/>
   User                ramiro
  Group               ftpusers
   # We want clients to be able to login with "anonymous" as well as "ftp"
   #UserAlias            anonymous ftp
   # Cosmetic changes, all files belongs to ftp user
   DirFakeUser    on ftp
   DirFakeGroup on ftp
   # AnonRequieredPassword       on
 
   RequireValidShell        off
 
   # Limit the maximum number of anonymous logins
   MaxClients            10
 
   # We want 'welcome.msg' displayed at login, and '.message' displayed
   # in each newly chdired directory.
   DisplayLogin            welcome.msg
   DisplayFirstChdir        .message
 </Anonymous> 








  • Instalación y configuración del Servidor SQL FIrebird.




apt-get install firebird2-super-server firebird2-utils-super
firebird2-dev



Este comando instalara Firebird en /usr/lib/firebird y esta configurado para guardar los archivos de dato en /var/lib/firebird/data


Podes iniciar y parar el servicio de Firebird con /etc/init.d/firebird o con la utilidad ibmgr en  /usr/lib/firebird/bin.



Cambiandole el passwd a Sysdba


Firebird viene con un usuario especial llamado sysdba, el cual es una herramienta muy importante en el servidor. Deberiamos modificar como primer instancia la clave de este usuario, utilizando la herramienta de seguridad de firebird llamada gsec.
 

/usr/lib/firebird2/bin/gsec -user sysdba -password masterkey


GSEC> modify sysdba -pw newpasswd


GSEC> quit



Creando un nuevo usuario de Firebird


Ahora tambien crearemos un usuario normal, llamado ramiro con la misma herramienta gsec.


/usr/lib/firebird2/bin/gsec -user sysdba -password newpasswd



GSEC> add ramiro -pw dsadasdas
GSEC> quit



Creando una base de prueba
 


/usr/lib/firebird2/bin/isql



SQL> create database 'localhost:/var/lib/firebird/data/test.gdb'
user 'ruchi' password 'ruchi';



SQL> quit;


Esto crea una base de datos en blanco en
'localhost:/var/lib/firebird/data/test.gdb'
Nos conectamos y crearemos una tabla


 
/usr/lib/firebird/bin/isql localhost:/var/lib/firebird/data/test.gdb
-u ruchi -p ruchi



SQL> create table plist (name varchar(50), phone varchar(7));



SQL> insert into plist (name, phone) values ('david','123');



SQL> insert into plist (name, phone) values ('mark','456');



SQL> select * from plist;



name                     
phone

======                
======

david                     
123

mark                      
456






Cuestiones Finales si estamos bajo NAT


Si queremos que los servicios sean accesibles desde internet, deberemos redireccionar los siguentes puertos desde nuestro router hacia la IP interna del server en cuestion:
port 21 para FTP
port 3050 para FireBird
port 80 para WWW





Muchas gracias colegas!!!!, estos son algunos de los muchisimos sitios de referecia que fueron de gran ayuda para lograr nuestro cometido :-) :

http://www.howtoforge.com/perfect_setup_debian_etch

http://www.debianadmin.com/apache2-installation-and-configuration-with-php-support-in-debian-linux.html

http://www.debianhelp.co.uk/firebird.htm

http://www.esdebian.org/configuracion/23878/configuracion-firebird-database-debian

http://jujuyusl.usla.org.ar/node/168
http://www.vensign.com/linux/servidor-ftp-con-proftp-en-ubuntu-debian/

http://www.debianhelp.co.uk/firebird.htm

http://www.esdebian.org/configuracion/23878/configuracion-firebird-database-debian




No hay comentarios: