Capitulo I: Configuraciones iniciales
Este es un artículo que forma parte de un grupo de artículos para aprender a configurar un servidor web que te pueden interesar.
Lo primero de todo, tienes que entrar al servidor por SSH.
ssh root@123.45.67.89
Entramos como usuario root como excepción, será la única vez que lo hagamos, luego quitaremos acceso root al servidor.
Una vez dentro, lo primero, cambiar la contraseña de root:
passw
y añadir un usuario que usaremos como principal
adduser txurdi
Ahora, quitaremos acceso ssh al usuario root y daremos permisos al usuario txurdi, además de configurar algunas cosas para mayor seguridad:
visudo
Añadimos al final del todo:
txurdi ALL=(ALL) ALL
Para asegurarlo más, podemos copiar la clave pública nuestra en el server para acceder sin necesidad de escribir el pass cada vez. Ya lo escribí en otro Post [Acceder por SSH sin escribir clave (clave publica-privada)], por lo que no lo voy a repetir ahora.
nano /etc/ssh/sshd_config
Y cambiamos estos valores a nuestro gusto:
Port 30000 <--- Usa un puerto diferente si quieres
Protocol 2
PermitRootLogin no
PasswordAuthentication no <-- Esto sólo si hacemos lo de la clave pública-privada
X11Forwarding no
UsePAM no
UseDNS no
AllowUsers txurdi
Ok, ahora vamos a configurar un poco las iptables. Si no lo entendéis muy bien (como yo) hacer un copy-paste y confiad en PickledOnion que es quien escribió el artículo original en inglés.
Guardamos las reglas existentes en un archivo por si acaso:
iptables-save > /etc/iptables.up.rules
Podemos ver las reglas existentes de la siguiente manera:
iptables -L
Para modificarlas, creamos un fichero de texto nuevo:
nano /etc/iptables.test.rules
En el que escribimos +o- lo siguiente:
*filter
# Allows all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0
-A INPUT -i lo -j ACCEPT
-A INPUT -i ! lo -d 127.0.0.0/8 -j REJECT
# Accepts all established inbound connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allows all outbound traffic
# You can modify this to only allow certain traffic
-A OUTPUT -j ACCEPT
# Allows HTTP and HTTPS connections from anywhere (the normal ports for websites)
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT
# Allows SSH connections
#
# THE -dport NUMBER IS THE SAME ONE YOU SET UP IN THE SSHD_CONFIG FILE
#
-A INPUT -p tcp -m state --state NEW --dport 30000 -j ACCEPT
# Allow ping
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
# log iptables denied calls
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
# Reject all other inbound - default deny unless explicitly allowed policy
-A INPUT -j REJECT
-A FORWARD -j REJECT
COMMIT
Y con esta sentencia, aplicamos los cambios:
iptables-restore < /etc/iptables.test.rules
Si volvemos a mirar las reglas, vemos que han cambiado un poquito…
iptables -L
Si todo es correcto, guardamos las reglas descritas arriba:
iptables-save > /etc/iptables.up.rules
Ahora, hagamos que se apliquen las reglas cada vez que reiniciemos el servidor:
nano /etc/network/interfaces
Solo hace falta añadir una línea para que quede +o- así:
...
auto lo
iface lo inet loopback
pre-up iptables-restore < /etc/iptables.up.rules
# The primary network interface
...
Ahora que ya tenemos todo, vamos a hacer que se aplique toda la configuración de SSH reiniciando su demonio:
/etc/init.d/ssh reload
No salgas todavía, primero abre otro terminal y prueba que puedes acceder al servidor, no vaya a ser que hayamos hecho algo mal…
ssh -p 30000 txurdi@123.45.67.890
Si todo ha ido bien, podrás loguearte al server, si no, la hemos pifiado en algún punto, repasa todos los pasos. Si sales de la consola de root, y no puedes loguearte por ssh, puedes usar la consola AJAX que ofrece slicehost desde el panel de administración de tu slice.
Capítulo anterior: Configurar un servidor web
Siguiente capítulo: Capitulo II: Actualizacion del SO y ponerlo bonito
2 comentarios
escribe tu comentarioRedifusión RSS de los comentarios de la entrada. URL para Trackback
RSS posts
[...] « Capitulo I: Configuraciones iniciales [...]
[...] « Capitulo I: Configuraciones iniciales [...]