| sebb.info |
"Write programs that handle text streams, because that is the universal interface."
Creadores del sistema Unix. |
| Inicio | Informática | Letras | Links | Acerca de |
|
IPActu. Una puerta de acceso controlada para servidores sin IP fija. Método casero. > La problemática Muchos tenemos en casa una ADSL con un pequeño firewall y un servidor de acceso público. Nos sirve generalmente para disfrutar de smtp, pop, webmail, ftp, ssh, una cuenta shell (Cómo no), samba, nfs, el entorno web de amule o cualquier otro servicio de red. Como nuestra IP es dinámica (Las fijas son caras, oye), solo queda una solución: acudir a servicios como DynDNS donde se obtiene un servicio de DNS fijo sobre ip dinámica (P. ej. algo.ath.cx). Sin embargo, estos servicios son públicos y a veces un poco lentos, o son de pago, claro. En cuanto a privacidad, si hemos puesto un servidor en las condiciones descritas, usar un redireccionamineto supone que damos a conocer a todo el planeta la ip de casa, lo cual no tiene que ser necesario o útil. Pues si necesitamos algo realmente público, tenemos a disposición servicios gratuitos de alojamiento web, ftp, correo, webmail y una infinidad de servicios más, hasta cuentas shell remotas gratuitas. La elección de abrir servicios en la ADSL doméstica no ha de corresponder siempre con el perfil de un servidor público de internet, como geocities entre los gratuitos o cualquier otro de pago. Si se quiere algo realmente público, y no tener un uso casi exclusivamente personal del montaje de casa, tanto DynDSN como IPActu lo permiten, pero si se busca un mínimo de control sobre el acceso a un sistema que no tiene como finalidad servir muchos clientes (O sea, un servidor para mí y allegados), solo IPActu lo permite. > La propuesta Partiendo de esta idea, me propuse escribir un script sencillo para conseguir el objetivo sin depender de nadie, sin retraso, sin publicar nada más de lo que yo desearea. Es decir que tengo acceso al servidor de casa siempre que la web pública funcione (No es una restricción, pues puedo tener páginas publicadas en muchos servidores diferentes a la vez, por si acaso ;-). Así puedo dar o no dar, según me parezca, la URL de la página de acceso, o mejor aún, la clave para entrar a dicha página, manteniendo así la privacidad de los recursos domésticos. El esquema se puede presentar así: =Inicio= =1=> Los usuarios se conectan a una página protegida por contraseña, controlada con sesiones en php y ubicada en un servidor público con IP fija. =2=> Si los datos de conexión son válidos, se accede a una página que presenta el link que apunta a la IP dinámica de la ADSL privada. =3=> Al cliquear se llega al servidor privativo, a la vez que se desvincula de la pagina de acceso, destruyéndose la sessión php en el servidor público. =Fin= > IPActu La primera versión de IPActu se escribió hacia el 2001. Lo he usado durante años para tener acceso a un servidor de correo con webmail que corría en un PII conectado a una ADSL con IP dinámica de terra. En una de mis numerosas mudanzas un disco duro se volvió recalcitrante y perdí el script. Lo he vuelto a escribir, ha quedado más sencillo que el original. IPActu se conecta periódicamente a una página fija de internet escrita en php, la cual usa la variable de entorno $REMOTE_ADDR que indica de qué IP viene la petición, es decir, cuál es la ip de la máquina de casa. El script recupera entonces esta IP y crea una página html con un link que apunta a dicha dirección, es decir la suya propia. Finalmente sube por ftp esta página al servidor fijo, sobreescribiendo la anterior. El resultado es que en el servidor público siempre hay un acceso a la máquina detrás de la ADSL, a pesar de los cambios de dirección IP de la ADSL. Ésta es mí página ip.php funcionando, con varios detalles más acerca de la conexión, y este es el contenido de la página:
IPActu me fue muy útil durante unos viajes de trabajo a Brasil en el 2001 para acceder a los recursos de mi despacho ubicado en España. El acceso estaba protegido con una clave y el pequeño servidor de la oficina en España (Donde corría IPActu) daba pop, smtp, webmail, apache, ftp y acceso al entorno web de amule. Era un PII 450 Compaq Intellistation Epro con 64MB de memoria y un disco scsi de 8GB, llamado Atalaya. Tenía instalado por entonces samba para guardar los archivos de emule y del ftp en otro disco de 60GB ubicado en un P-III bajo ruindos 98 en la lan de la oficina. Desde Brasil pudimos trabajar con facilidad con los recursos habituales de la oficina casi a mano. Lo utilizamos luego desde Londres y otras ubicaciones. Los usuarios de la oficina entran todavía a diario desde su casa para mirar el webmail gracias a IPActu y Atalaya, ahora un servidor Compaq Proliant ML530. > ¿Bash? Sí, Bash. A parte de ser mi lenguage preferido en el día a día, es lo más sensato en un servidor: Bash siempre está instalado (En Debian por lo menos, y en las demás distribuciones lo instalo cuanto antes ;-), no se requiere nada más. Bash es lo que usa el sistema en la mayor parte de los scripts de arranque y de control o configuración de Linux. IPActu es muy sencillo y come poco recursos, no veo razones para escribirlo en otro lenguage. El script de Bash se ve al final de esta página, y está aquí con el resto de los archivos en un tar. > Instalación La instalación es muy sencilla. Se necesita un poco de espacio en un servidor público cualquiera donde colgar el archivo ip.php y meter las páginas de actualización (Unos pocos KB). 1- Se sube ip.php al servidor. 2- Se configuran las valores de las variables en IPActu (Frecuencia de conexión, Dirección de correo, usuario del ftp, contraseña, etc) 3- Se añade al final del archivo /etc/init.d/cron (u otro, pero el runlevel de cron hace que arranque entre los últimos scripts de init.d):
4- Se mete IPActu en el servidor local que está conectado a Internet por la ADSL en la "/ruta/" elegida y se hace:
La página de acceso se llama acceso.html. IPActu también proporciona un histórico en línea de los cambios de IP en el archivo acceso.log.txt > Mejoras En el tar está el archivo plantilla, que, como indica su elocuente nombre, sirve como plantilla de la página final que se publica con el acceso. Basta con editar el archivo plantilla según gustos, ahora mismo solo tiene el link necesario, no está implementado en este ejemplo el sistema de acceso con php. > Consejo Recomiendo transformar el archivo plantilla para ofrecer primero una entrada más segura, con nombre de usuario y contraseña. Se puede realizar de manera muy sencilla con php. Una vez se hayan introducido los datos correctos, se presenta el link para acceder a la ip dinámica. Este sistema sencillón permite esconder la IP de la ADSL para evitar ataques y conexiones indeseadas, tanto de robots como de humanos. Eso vale también para el log, pues no tenemos porque publicar las diferentes IPs que hemos tenido; pero eso ya depende de cada uno. > Futuros cambios No pienso tocar este script por el momento, hace muy exactamente lo que necesito, ni más ni menos. Si alguién lo usa y le añade funciones, me gustaría conocerlas si es posible. Hay un formulario para enviarme correo. Gracias. > Licencia IPActu está bajo licencia GPL, como todos los demás scripts, programas o trucos de esta web. IPActu:
|