Asegurar el servidor y configuración básica
Ubuntu 16.04 Home server

Este tuto viene del post. Se supone que tenéis configurado ubuntu 16.04 con una instalación mínima, red con ip fija, y acceso por ssh.
Objetivo: una instalación básica para correr Oracle VirtualBox 5.1 cpm php virtualbox.
Paso 1. Ajustar los archivos de configuración
Instalar algunos paquetes esenciales
$ sudo apt-get install nano lm-sensors smartmontools build-essential dkms sysstat htop perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl apt-show-versions python openssh-server zip unzip rar unrar
Modificación del nombre de Host
Podemos omitirlo si hemos realizado la instalación según el post anterior.
Actuamos como root, tecleando en la terminal:
$ sudo su
- Con el nombre de dominio que hemos obtenido en dyndns (en el presente ejemplo namebox.dyndns.org), modificamos el nombre de nuestro ordenador
$ nano /etc/hosts
127.0.0.1 localhost.localdomain localhost
192.168.0.100 server1.example.comserver1
# The following lines are desirable for IPv6
capable hosts
::1ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
Editamos también:
$ nano /etc/hostname
namebox
Y ejecutamos
$ /bin/hostname -F /etc/hostname
$ shutdown -r now
Asegurar ssh.
Vamos a cambiar el puerto por defecto de ssh, desactivar el acceso del root y establecer los usuarios que podrán acceder.
$ sudo nano /etc/ssh/sshd_config
– Buscamos
Port 22 – y lo cambiamos por un numero diferente (12345) para ponérselo más difícil a los hackers. (Hay que configurar el router para acceder a este nuevo puerto)
– Cambiamos:
PermitRootLogin no
X11Forwarding no
UsePAM no
– y añadimos estas líneas al final:
UseDNS no
AllowUsers user1
Para reiniciar ssh
$ service ssh restart
Salimos e iniciamos una sesión ssh con el nuevo usuario
* desde OSX o Linux:
ssh -p 12345 user1@123.45.6.78
* Desde Windows:
putty user1@123.45.6.78 1234
Modificar fstab
Os dejo una copia de mi fstab (arhivo de puntos de montaje de los dispositivos y discos duros.
Las líneas que comienzan por tmpfs, son recomendables para todas las configuraciones ( si hay >2 Gb de Ram) por rendimiento y seguridad.
La línea correspondiente a /, es la configuración para una SSD EVO 850, configurada para instalar después netatalk y aumentar el rendimiento.
La línea correspondiente a /R5, es para el raid5 del LSI Megaraid.
La línea /vbox, es para una SSD destinada únicamente a las máquinas virtuales.
Ahora ajustad vuestra propia configuración.
# /etc/fstab: static file system information.## Use 'blkid' to print the universally unique identifier for a# device; this may be used with UUID= as a more robust way to name devices# that works even if disks are added and removed. See fstab(5).## <file system> point> # / was on /dev/sdb1 during installationUUID=e352177d-e79e-45aa-bdd0-b519df2fe5e0 / ext4 noatime,nodiratime,nodelalloc,barrier=0,i_version,commit=30,inode_readahead_blks=64,errors=remount-ro,user_xattr,acl 0$# /R5 was on /dev/sda2 during installationUUID=5f78aebc-f770-43d5-8ad6-5618377fee2a /R5 ext4 noatime,nodiratime,user_xattr,acl 0 2# /boot was on /dev/sde1 during installationUUID=2cab022f-7b2e-4d33-a76d-795bfe3e7d3b /boot ext2 noatime,nodiratime 0 2# /vbox was on /dev/sdc1 during installationUUID=5d8766f7-c0b2-4703-a3b5-a0073a7b4b8b /vbox ext4 noatime,nodiratime,nodelalloc,barrier=0,i_version,commit=30,inode_readahead_blks=64,user_xattr,acl 0 2# swap was on /dev/sda1 during installationUUID=fb9db486-b2b3-4c17-9675-364bb4ebbd4f none swap sw 0 0tmpfs /tmp tmpfs rw,nosuid,nodevtmpfs /run/shm tmpfs defaults,noexec,nosuid 0 0 |
Fstrim al inicio del sistema para optimizar las SSD
Borramos temporales, cache de apt y optimizamos los puntos de montaje sobre SSD’s.
$ sudo nano /etc/rc.local
#!/bin/sh -e## rc.local## This script is executed at the end of each multiuser runlevel.# Make sure that the script will "exit 0" on success or any other# value on error.## In order to enable or disable this script just change the execution# bits.## By default this script does nothing.rm -R /var/crash/*apt-get autocleanapt-get cleanapt-get autoremovefstrim -v /fstrim -v /vboxexit 0 |
Modificar systcl.conf
Para un servidor web y mínimo uso de la swap, añadir estas líneas a vuestro /etc/sysctl.conf
$ sudo nano /etc/sysctl.conf
# IP Spoofing protectionnet.ipv4.conf.all.rp_filter = 1net.ipv4.conf.default.rp_filter = 1# Ignore ICMP broadcast requestsnet.ipv4.icmp_echo_ignore_broadcasts = 1# Disable source packet routingnet.ipv4.conf.all.accept_source_route = 0net.ipv6.conf.all.accept_source_route = 0net.ipv4.conf.default.accept_source_route = 0net.ipv6.conf.default.accept_source_route = 0# Ignore send redirectsnet.ipv4.conf.all.send_redirects = 0net.ipv4.conf.default.send_redirects = 0# Block SYN attacksnet.ipv4.tcp_syncookies = 1net.ipv4.tcp_max_syn_backlog = 2048net.ipv4.tcp_synack_retries = 2net.ipv4.tcp_syn_retries = 5# Log Martiansnet.ipv4.conf.all.log_martians = 1net.ipv4.icmp_ignore_bogus_error_responses = 1# Ignore ICMP redirectsnet.ipv4.conf.all.accept_redirects = 0net.ipv6.conf.all.accept_redirects = 0net.ipv4.conf.default.accept_redirects = 0net.ipv6.conf.default.accept_redirects = 0# Ignore Directed pingsnet.ipv4.icmp_echo_ignore_all = 1
|
Si tenéis un linux Raid, podéis seguir este tuto, donde también se añaden lineas a /etc/rc.local dependiendo del raid que hayáis montado.
Instalar webmin
Basado en el enlace del propio sitio de wemin.
Editamos el archivo /etc/apt/sources.list
$ sudo nano /etc/apt/sources.list
y añadimos la línea
deb http://download.webmin.com/download/repository sarge contrib
Pulsamos Ctrl+X y guardamos (y).
Ejecutamos:
cd /rootapt-get update |
Para acceder a webmin utilizamos la ip fija de nuestro servidor (192.168.1.X), y entramos por el navegador https://192.168.1.X:10000/
Es importante tener en cuenta que según nuestro esquema de instalación no accederemos directamente a webmin desde el router, sino desde una máquina virtual, por tanto es conveniente acceder directamente a la ip del servidor desde la red interna.
Si has instalado MySql o MariaDB:
Para asegurarlo
$ mysql_secure_installation
Le decimos a todo que si.

