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.

 

Afinar la instalación Ubuntu Server 14.04 LTS LAMP (fqdn, dyndns, ssh,webmin, phpmyadmin)

lamp

Nota: versión actualizada a Ubuntu 16.04 aquí.

Este howto es la continuación del post Instalar Ubuntu-Server 14.04 LTS y tiene por objetivo mejorar la seguridad, y añadir un par de herramientas fundamentales:

  • Webmin: para administrar el sistema desde un navegador web, y
  • PhpMyAdmin: para administrar las bases de datos SQL y sacar copias de seguridad de estas.

La configuración del firewall no la incluyo (en mi caso, por ejemplo, tengo un firewall independiente)

Afinar la instalación Ubuntu Server 12.04 LTS LAMP (fqdn, dyndns, ssh,webmin, phpmyadmin)

lampNota: Versión actualizada a Ubuntu 16.02 aquí.

Este howto es la continuación del post Instalar Ubuntu-Server 12.04 LTS y tiene por objetivo mejorar la seguridad, y añadir un par de herramientas fundamentales:

  • Webmin: para administrar el sistema desde un navegador web, y
  • PhpMyAdmin: para administrar las bases de datos SQL y sacar copias de seguridad de estas.

La configuración del firewall no la incluyo (en mi caso, por ejemplo, tengo un firewall independiente)

Servidor web casero con Apache, Php y Mysql en debian

debianjh2

Este howto es para todos aquellos que quieran servir páginas web desde su casa, ya sea publicando directamente en el servidor o instalando
algún portal en php como wordpress o joomla.

El primer paso es dar de alta un dominio de segundo nivel en www.dyndns.com o alguna página similar. Hay que tener en cuenta que las ip’s asignadas a los usuarios caseros suelen ser
dinámicas, por lo que deberemos estar pendientes de que la ip que damos de alta en dyndns sea la correcta, y si nos la cambia nuestro ISP, deberemos cambiarla en dyndns. Continuar leyendo «Servidor web casero con Apache, Php y Mysql en debian»

Webmin en Ubuntu Lucid Lynx

Webmin-Logo-600Webmin es un gestor web de casi todos los parámetros de linux, es rápido, seguro y evita editar muchos archivos de configuración.

1. Instalamos las librerías necesarias

$ sudo apt-get install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl apt-show-versions libapt-pkg-perl

Descargamos libmd5.perl que no está en las repos de ubuntu

$ wget http://ftp.debian.org/pool/main/libm/libmd5-perl/libmd5-perl_2.03-1_all.deb

y la instalamos

$ sudo dpkg -i libmd5-perl_2.03-1_all.deb

Descargamos webmin

$ wget http://prdownloads.sourceforge.net/webadmin/webmin_1.510-2_all.deb

y la instalamos

$ sudo dpkg -i webmin_1.510-2_all.deb

Para acceder al interface web, tecleamos en el navegador http://xxx.xxx.xxx.xxx:10000 , donde la dirección xxx.xxx.xxx.xxx es la ip de linux.