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
|
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 apt-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.