Asegurar Ubuntu Home Server 16.04 y configuración básica

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.