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 installation
UUID=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 installation
UUID=5f78aebc-f770-43d5-8ad6-5618377fee2a /R5 ext4 noatime,nodiratime,user_xattr,acl 0 2
# /boot was on /dev/sde1 during installation
UUID=2cab022f-7b2e-4d33-a76d-795bfe3e7d3b /boot ext2 noatime,nodiratime 0 2
# /vbox was on /dev/sdc1 during installation
UUID=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 installation
UUID=fb9db486-b2b3-4c17-9675-364bb4ebbd4f none swap sw 0 0
tmpfs /tmp tmpfs rw,nosuid,nodev
tmpfs /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 autoclean
apt-get clean
apt-get autoremove
fstrim -v /
fstrim -v /vbox
exit 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 protection
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1 # Ignore ICMP broadcast requests
net.ipv4.icmp_echo_ignore_broadcasts = 1 # Disable source packet routing
net.ipv4.conf.all.accept_source_route = 0
net.ipv6.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
net.ipv6.conf.default.accept_source_route = 0 # Ignore send redirects
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0 # Block SYN attacks
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 5 # Log Martians
net.ipv4.conf.all.log_martians = 1
net.ipv4.icmp_ignore_bogus_error_responses = 1 # Ignore ICMP redirects
net.ipv4.conf.all.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv6.conf.default.accept_redirects = 0 # Ignore Directed pings
net.ipv4.icmp_echo_ignore_all = 1
vm.swappiness=10
|
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 /root
wget http://www.webmin.com/jcameron-key.asc
apt-key add jcameron-key.asc apt-get update
apt-get install apt-transport-https
apt-get install webmin |
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.