Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Debian 9 Servidor WWW

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 11

Material de Apoyo – Servidor WWW

Realizado por Carlos L. Rivero 13/05/2018

1. Instalación de Debian 9 (Stretch). Calcular filesystem.

/ => 30 GB ext3
/boot => 1 GB ext2
/tmp => 10 GB ext3
/var/log => 10 GB ext3
/var/lib/postgres => depende del tamaño de disco duro y uso btrfs
/var/lib/mysql => depende del tamaño de disco duro y uso btrfs
swap => máximo 4 GB de RAM
/var/www => resto del disco ext4

2. Verificación de configuración de equipo editando /etc/network/interfaces y agregar o


modificar los siguientes parámetros

# The primary network interface


allow-hotplug eth0
iface eth0 inet static
address xx.xx.xx.xx
netmask xx.xx.xx.xx
network xx.xx.xx.xx
broadcast xx.xx.xx.xx
gateway xx.xx.xx.xx

3. Crear /etc/resolv.conf y agregar los siguientes datos

nameserver 190.202.124.227
search inia.gob.ve

4. Verificación de parte de la configuración de red editando /etc/hosts

127.0.0.1 localhost
Dir-IP nombre-equipo.inia.gob.ve nombre-equipo

5. Verificar el nombre del equipo en /etc/hostname

6. Modificar el archivo /etc/apt/sources.list según los siguientes datos

 Comentar la búsqueda al CD y colocar al final de cada una de las sugerencias de


busqueda main non-free contrib
7. Actualizar Debian => aptitude update y luego de terminado aptitude upgrade

8. Corregir fecha y hora => date - -set=”Día Mes fecha hora militar (hh:mm:ss) VET año”
Día = Sun, Mon, Tue, Wed, Thu, Fri, Sat
Mes = Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec

Ahora si se quiere es sincronizar con los husos horarios mundiales se debe instalar =>
aptitude install ntp ntpdate
y ejecutar manualmente y una sola vez el comando => ntpdate-debian
para verificar utilizaremos => ntpdate cl.pool.ntp.org
y => grep ntpd /var/log/syslog para verificación a través de los log.

9. Creación de cuenta de usuario en servidor


useradd –c “nombre apellido” –m –d /home/usuario1 –s /bin/bash usuario1

10. Cambiar clave de usuario creado => passwd usuario1

11. Instalar SSH => aptitude install ssh

12. Bloquear el acceso de root desde el SSH, editando con nano /etc/ssh/sshd_config y setear
la opción PermitRootLogin no

Se puede permitir acceso a usuarios deseados, editar con nano /etc/ssh/sshd_config y


agregar AllowUsers usuario1 usuario2 usuario3.
Reiniciar SSH => /etc/init.d/ssh restart

13. Instalar Apache2, PHP7, Perl, Python y utilitarios


aptitude install apache2 php7.0 php7.0-curl php7.0-intl php7.0-xmlrpc php7.0-gd gcc make
ethtool sysstat alien rsync nmap zip mt-st mtx iptraf discus htop dnstop apachetop ntfs-3g

14. Agregar módulos necesarios para el funcionamiento del apache ubicándose en


/etc/apache2/mods-availables, los cambios se mostrarán en /etc/apache2/mods-enables
- a2enmod rewrite
- a2enmod vhost_alias
- a2enmod ssl

15. Modificar directivas de seguridad del apache con => nano /etc/apache2/conf-
available/security.conf y cambiar a ServerTokens Prod y ServerSignature Off. Reiniciar el
apache.
16. Instalar mysql
aptitude install mysql-server php7.0-mysql
Para que MySQL trabaje en red editar con nano /etc/mysql/mariadb.conf.d/50-server.cnf
Comentar #bind-address =127.0.0.1 y reiniciar el mysql.

17. Crear usuario administrador. Desde la consola entrar a mysql


mysql -u root –p Luego crear usuario con todos los privilegios
CREATE USER 'newuser'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'%';
FLUSH PRIVILEGES;

18. Instalar phpMyAdmin => aptitude install phpmyadmin


Crear enlace simbólico => ln –s /usr/share/phpmyadmin /var/www/phpmyadmin

19. Instalar postgreSQL


aptitude install postgresql-9.6 libapache2-mod-auth-pgsql php7.0-pgsql libdbd-pg-perl
Para crear nuevo usuario, entrar como usuario postgres (#su postgres)
Por último => createuser -P -s -e usuario_a_crear
Salir del usuario postgres para estar de nuevo como administrador

20. Instalar phppgadmin => aptitude install phppgadmin


Crear enlace simbólico => ln –s /usr/share/phppgadmin /var/www/phppgadmin
Modificar con => nano /etc/apache2/conf-available/phppgadmin.conf
Comentar #Require local

Editar => nano /etc/postgresql/9.6/main/postgresql.conf


Colocar listen_addresses = '*' para que sean escuchado por todos

Editar => nano /etc/postgresql/9.6/main/pg_hba.conf por si utilizamos pgadmin y accesar


desde una maquina determinada identificada con su dirección IP; al final agregar
host all all 192.168.110.45/32 md5

Reiniciar Apache

21. Instalar Oracle Cliente:

aptitude install libaio1

Conseguir los siguientes RPM's de la página de Oracle:

Oracle instantclient basic


Oracle instantclient devel
Oracle instantclient sqlplus

Pasarlos de rpm a deb con alien:

alien oracle-instantclient-basic_11.1.0.1-2_i386.rpm
alien oracle-instantclient-devel_11.1.0.1-2_i386.rpm
alien oracle-instantclient-sqlplus_11.1.0.1-2_i386.rpm

y ya tendremos los deb correspondientes.

Los instalamos:

dpkg -i oracle-instantclient-basic_11.1.0.1-2_i386.deb
dpkg -i oracle-instantclient-devel_11.1.0.1-2_i386.deb
dpkg -i oracle-instantclient-sqlplus_11.1.0.1-2_i386.deb

Ahora creamos la carpeta /etc/oracle:

mkdir /etc/oracle

Y crearemos dentro de esta carpeta el archivo tnsnames.ora

nano /etc/oracle/tnsnames.ora

Y tendremos que crear un fichero del estilo:

PRESU.world =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =
(COMMUNITY = tcp.world)
(PROTOCOL = TCP)
(Host = 192.168.1.15)
(Port = 1521)
)
(ADDRESS =
(COMMUNITY = tcp.world)
(PROTOCOL = TCP)
(Host = 192.168.1.15)
(Port = 1526)
)
)
(CONNECT_DATA = (SID = PRESU)
)
)
Ahora tendremos que editar el .bashrc del root y le añadiremos las siguientes lineas:

nano /root/.bashrc
export TNS_ADMIN=/etc/oracle
export SQLPATH=/usr/lib/oracle/11.2/client/bin
export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client/lib:$LD_LIBRARY_PATH
export PATH=$PATH:$SQLPATH

Instalacion del oci8 para php:

apt-get install php-pear php5-dev (sino están instalados)


pecl install oci8

Solamente nos quedará añadir las correspondientes líneas en el php.ini:

echo extension=oci8.so >> /etc/php5/apache2/php.ini

Reiniciar el apache y servidor:

/etc/init.d/apache2 reload
reboot

22. Creación y eliminación de VirtualHost con a2ensite y a2dissite ubicándose en el directorio


de trabajo /etc/apache2/site-available/
- Desactivar inicio por defecto => a2dissite default
- Prepara el o los nuevos VirtualHost copiando como modelo el sitio por defecto
cp defualt dominio1-intra
- Activar nuevo VirtualHost
a2ensite dominio1-intra (hace un enlace simbólico a /etc/apache2/site-enable/)
- Crear el o los directorios donde se van alojar los nuevos sitios en /var/www/dominio1-
intra y darle los respectivos permisos para el administrador del nuevo sitio.
cd /var/www/
mkdir dominio1-intra
chown –R usuario-dueño dominio1-intra (dueño)
chmod –R 775 domino1-intra (permisología)
- Crear enlace simbólico del directorio del usuario al directorio WWW
ln -s /var/www/domino1 /home/usuario1/nombre-enlace
- Editar el nuevo VirtualHost
cd /etc/apache2/site-available/
nano dominio1-intra
Ejemplo:

#NameVirtualHost dominio1.inia.gob.ve
<VirtualHost dominio1.inia.gob.ve>
ServerAdmin usuario1@inia.gob.ve
ServerName dominio1.inia.gob.ve
ServerAlias www.dominio1.inia.gob.ve *.dominio1.inia.gob.ve

DocumentRoot /var/www/dominio1/

<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>

<Directory /var/www/dominio1>
Options FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
# This directive allows us to have apache2's default start page
# in /apache2-default/, but still have / go to the right place
# RedirectMatch ^/$ /apache2-default/
</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.dominio1.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.dominio1.log combined
ServerSignature Off

#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>

23. Reiniciar Apache2 => /etc/init.d/apache2 restart

24. Pasar a UTF-8 (formato de codificación de caracteres), editando el archivo


/etc/apache2/conf.d/charset y descomentar AddDefaultCharset UTF-8

25. Editar => /etc/php/7.0/apache2/php.ini


max_execution_time = 7000
max_input_time = 1200
memory_limit = 1024M
post_max_size = 128M
upload_max_filesize = 128M (depende del tamaño del archivo)
short_open_tag = On

Reiniciar Apache => /etc/init.d/apache2 restart

26. Editar => /etc/apache2/apache2.conf


Timeout 13
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 3

27. editar => nano /etc/apache2/mod-available/mpm-prefork.conf

<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
ServerLimit 250
MaxClients 250
MaxRequestsPerChild 1000
</IfModule>
Reiniciar Apache => /etc/init.d/apache2 restart

28. Acelera tu servidor Apache + PHP con APC (Alternate PHP Cache). Instalamos algunos
paquetes necesarios => aptitude install php-pear php7.0-dev libapache2-mod-perl2
libapache2-mod-python
Instalamos APC => pecl install apc
Ahora que ya tenemos instalado APC, vamos a añadirlo a la configuración de apache. El
siguiente comando => echo "extension=apc.so" > /etc/php/7.0/apache2/conf.d/apc.ini,
por ultimo reiniciar apache.

29. Comandos a2enmod y a2dismod para instalar y desinstalar módulos; a2enconf y a2disconf
para instalar y desinstalar módulos de configuración para apache2

30. Comando du –h (devuelve el tamaño de la carpeta donde estas ubicado)

31. Para proteger el acceso al servidor instalaremos => aptitude install fail2ban
Copiaremos el archivo de configuración para que sea nuestro archivo de trabajo con =>
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Editamos con => nano /etc/fail2ban/jail.local y modificamos
ignoreip = 127.0.0.1 192.168.X.0/24 ó 192.168.X.X (dirección o rango IP a ignorar)
bantime = 86400 (tiempo a ser baneado 24h * 60 * 60 = 86400 segundos)
maxretry = 3 (número de intento fallidos permitidos)
y por últimos las jaulas a configurar agregando en la zona destinada para esto
Agregar SSH=> [ssh]

enabled = true
port = ssh
filter = sshd
action = iptables[name=SSH, port=22, protocol=tcp]
logpath = /var/log/auth.log
maxretry = 3 .Guardar y reiniciar fail2ban

32. Instalar Webmin, descargando de Internet la última versión webmin_version_all.deb e


instalar con el comando dpkg –i webmin_version_all.deb y luego instalar dependencias
sugeridas.

33. Con alguno de los navegadores de Internet entrar a https://xx.xx:10000, donde xx.xx es el
dominio o la dirección ip según el caso, utilizando como usuario y clave la misma del
servidor.

34. Actualizar el Webmin, configurar el idioma a español y cambiar el tema (MSC Linux
Theme).

35. Instalar Webalizer a través del Webmin y configurarlo para cada uno de los site.
Permisología:

0 => _ _ _ (Sin permisos)


1 => _ _ x (Ejecución sin permiso de escritura ni lectura)
2 => _ w _ (Escritura sin permiso de lectura ni ejecución)
3 => _ w x (Escritura y ejecución sin permiso de lectura)
4 => r _ _ (Lectura sin permiso de escritura ni ejecución)
5 => r _ x (Lectura y ejecución sin permiso de escritura)
6 => r w _ (Lectura y escritura sin permiso de ejecución)
7 => r w x (Lectura, escritura y ejecución)

Aplicaciones a ser instaladas:

1. Creación de cuentas de usuario para B.D. MySQL y PostgreSQL


2. Joomla
3. Foro
4. OCS Inventory
5. GLPI
6. Moodle
7. Wiki

La metodología a seguir para la redacción de los manuales es la siguiente: instalación,


configuración y políticas de respaldo, restauración y seguridad.

Tips: Para instalar un paquete rpm en Debian puedes convertirlo con el comando alien –d
archivo.rpm, luego lo puede instalar normalmente, ahora si lo que desea es convertirlo e instalarlo
de una vez puede utilizar alien –i archivo.rpm.

Actividad extra para verificación de fecha con PHP:

 aptitude install php5-dev php-pear


 pecl install timezonedb
 nano /etc/php5/apache2/php.ini

Agregar en Dynamic Extensions: extensión = timezonedb.so

 Hacer archivo tipo php en /var/www/

nano hora.php

<?

print date("F j, Y, g:i a");

?>

 Abrir un explorador de Internet y abrir http://IPmaquina/hora.php


Comandos para monitorización

Monitorear carga del procesador

 vmstat 2 (los últimos datos us, sy e id son unos de los más importantes en cuanto a
información para el administrador que corresponden a user, system e idle
respectivamente son usuario, sistema y desocupado.

Monitorear el acceso al disco duro

 Si no se encuentra instalar sysstat (conjunto de herramientas para el monitoreo del


rendimiento del sistema)
 iostat (utilización del procesador y estadísticas de E/S de los discos)
 mpstat (estadísticas globales y por procesador)
 pidstat (estadísticas de los procesos de Linux)

Si tenemos configuradas dos tarjetas de red y una de las dos pierde la conexión, revisar route y
si no aparece agregar con:

route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1 dev eth0

Mostrar tabla de particiones

fdisk –l /dev/sdx

Revisa sectores dañados

Badblocks –svnf /ruta/deldisco

Muestra el tipo de file system

blkid /ruta/deldisco

Memoria disponible

free –m o con –g

Información de la memoria

cat /proc/meminfo

Purgar el equipo

aptitude purge ~c
Revisar si está instalado un paquete y que versión tiene

dpkg -s paquete

Instalar Media Wiki

aptitude install php5-intl

Netstat (Puertos en escucha)

netstat -tamp | grep LISTEN

También podría gustarte