En el último petardazo del alojamiento, se perdió todo el contenido de este servidor. Pude recuperar la base de datos de Drupal. Pero no el trabajo manual que había hecho con .htaccess para enlazar con los artículos antiguos, los que escribí con Pebble. Había escrito un programa con Delphi para extraer el contenido del XML de Pebble, pero tengo que hacer otro para meterlos en Drupal y la vagancia me puede. Por lo pronto anteayer estuve restaurando el firewall. Una ventaja de que no me visite nadie es que no tengo que preocuparme demasiado por esas cosas, a pesar por ejemplo del reciente exploit para escalada de privilegios del núcleo. Pero ya era hora. He descubierto que la nueva versión de Virtuozzo ya usa iptables con estado, lo que ha simplificado mucho las cosas. Antes que nada, recuperé el script con estado de mi viejo artículo de iptables:
# Reglas por defecto, salida permitida, entrada o redirección prohibidas. # Para hacer pruebas en remoto casi mejor permitir la entrada hasta estar # seguros, no vayamos a quedarnos sin conexión. iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT # Borra las reglas que haya. iptables -F INPUT iptables -F FORWARD iptables -F OUTPUT # iptables -F -t nat # Esta instrucción por ejemplo usa el estado: permite el tráfico en conexiones # ya iniciadas (el inicio se define más abajo). Nota: venet0 es la interfaz # de red que en otra máquina podría ser digamos eth0. iptables -A INPUT -i venet0 -m state --state ESTABLISHED,RELATED -j ACCEPT # Permitimos todo el tráfico interno dentro de la misma máquina. iptables -A INPUT -i lo -s 0/0 -d 0/0 -j ACCEPT # Y finalmente definimos cuándo se permite iniciar una conexión. # Incluimos los protocolos ssh (puerto 22), smtp (25), http (80), # pop3 (110) y https (443) iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT iptables -A INPUT -p tcp --dport 25 -m state --state NEW -j ACCEPT iptables -A INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT iptables -A INPUT -p tcp --dport 110 -m state --state NEW -j ACCEPT iptables -A INPUT -p tcp --dport 443 -m state --state NEW -j ACCEPT # La siguiente línea creo que es innecesaria. El panel de Virtuozzo, # que escucha por https en el puerto 4643, creo que está "antes" de # nuestro cortafuegos. iptables -A INPUT -p tcp --dport 4643 -m state --state NEW -j ACCEPT
Esto está muy bien por la brevedad, pero a diferencia del otro script, el que tenía para iptables sin estado, no incluye el envoltorio para meterlo en el arraque con funciones start, stop y restart. Así que estuve buscando cómo funciona ahora en Debian y encontré este artículo. Está casi bien. Vi que después de ejecutarlo, se puede guardar el estado con:
iptables-save > /etc/firewall-rules
De forma que para que se restaure se pueda usar esta línea:
pre-up iptables-restore < /etc/firewall-rules
Pero a diferencia de lo que pone el artículo, la tuve que poner en el fichero template, no en el fichero interfaces de /etc/network. Salvo por esa pequeña diferencia, todo parece funcionar como debe.
Todo esto se describe en unos pocos minutos. Hacerlo me hizo estar hasta tarde el jueves. Ayer viernes fue un día lleno de emociones, así que caí en la cama como un ladrillo. Ahora queda la parte en que subo los viejos artículos... ya veremos.