Consulta restriccion panel web por IP

Hola,

Antes de contaros la película, decir q no soy ningún experto, y que no tengo mucha idea ni de linux, n de programacion ni nada de esto, solo lo q he aprendido cacharreando yo mismo... así q si digo alguna barbaridad no me lo tengais en cuenta.

He montado un panel de iptv xtreamcodes para servir diferentes canales de TDT, y lo he montado en un servidor ubuntu 14.04, hasta ahi todo correcto. Dicha instalacion instala tambien el servidor apache2.

El caso es q para entrar a gestionarlo, se entra a traves de la ip del servidor tal q así http://XX.XXX.XX.XX:8000 y me gustaría restringir el acceso a esa web de administracion (q pide login y usuario) a una ip en concreto (mi ip fija por ejemplo), de tal forma q si no accedes desde esa ip, no se pueda entrar, es más, q no aparezca ni la web q te pide loguearte.

Según he estado leyendo, no sé si me he informado bien, esto se podría hacer con el fichero .htaccess, puede ser??? Con la opcion allow, deny tal q así:

Order deny,allow
Deny from all
Allow from XX.XX.XX.XXX (siendo esta mi ip fija)

Tiene sentido esto q digo?? Es q no he encontrado el fichero .htaccess por ningun lado, y tambien he leido q lo puedes crear, pero para q funcione tienen q poner en e fichero de configuracion de apache2.conf la opcion AllowOverride en All, pero ni con esas... Alguna guia o referencia de por donde puedo investigar como hacer esto??

Salu2 y gracias,
CHAVO
Tiene sentido.
El archivo .htaccess lo tienes que crear justo en el directorio raíz donde se encuentren los archivos del acceso web.
Puedes probar a poner una IP diferente a la tuya para verificar que te bloquea.
Es q la putada es q eso ya lo he hecho, pero no funciona, y no sé si es porque no lo pongo en el sitio correcto, por parámetros del apache o porque...

Es decir, la web q quiero restringir esta en http://XX.XX.XX.XXX:8000 y entrando por ftp al servidor, en la carpeta q creo q corresponde a esa web, q es un directorio wwwdir ahi en el raíz meto un .htaccess q he creado, y no funciona esa restricción... no sé si se me escapa algo, o hay alguna otra manera para hacer esto. No sé si afecta el hecho de q vaya por un puerto especifico como el 8000 o yo q se...

Muchas gracias por tu mensaje WaterDark, a ver si finalmente lo saco!!!

Salu2
CHAVO
Tal vez también te pueda ser de utilidad Apache Mod Latch.
Algo de información sobre https://latch.elevenpaths.com/

Otra posibilidad podría ser conectarte mediante SSH y encapsular el tráfico del VNC, una vez estas dentro de ella, que estuviera configurado únicamente el acceso al panel de administración desde localhost.

Para filtrar los accesos a SSH puedes utilizar Fail2Ban éste es bastante fácil de configurar y puedes (des)habilitar ciertas IPs.

Un saludo ;)
Gracias Newton por tu respuesta...

Precisamente ayer hablando con un colega, la opcion que me dices me comentó algo parecido, que me conecte a una vpn (cosa q ya he conseguido), para salir con una unica ip, y luego en el fichero sshd_config q esta dentro de /etv/ssh/ especifique que sólo se pueda conectar esa ip determinada, o las ips del rango interno de esa vpn, esto con q sintaxis del fichero se haría??
Tambien me habló de bloquear el acceso mediante iptables, con algun comando, pero me parece más complicado para un newbie de la materia no?, no sé...

Voy a seguir indagando con eso q me comentas de SSH Fail2Ban... porque supuestamente al entrar a la web del panel de control lo hace mediante SSH no?? Joder, q lio tengo...


Gracias!!

Salu2
CHAVO
CHAVO escribió:Gracias Newton por tu respuesta...

Precisamente ayer hablando con un colega, la opcion que me dices me comentó algo parecido, que me conecte a una vpn (cosa q ya he conseguido), para salir con una unica ip, y luego en el fichero sshd_config q esta dentro de /etv/ssh/ especifique que sólo se pueda conectar esa ip determinada, o las ips del rango interno de esa vpn, esto con q sintaxis del fichero se haría??
Tambien me habló de bloquear el acceso mediante iptables, con algun comando, pero me parece más complicado para un newbie de la materia no?, no sé...

Voy a seguir indagando con eso q me comentas de SSH Fail2Ban... porque supuestamente al entrar a la web del panel de control lo hace mediante SSH no?? Joder, q lio tengo...


Gracias!!

Salu2
CHAVO


Para configurar Fail2Ban en Ubuntu 14.04 es un recursos bastante utilizado en Linux entre otras cosas para reducir un poco los ataques de fuerza bruta.

Si tienes algún servicio expuesto en una máquina Linux a internet lo suelo recomendar; es fácil de ponerlo en marcha y ofrece muchas posibilidades.

Entrar al panel de control supongo que lo harás desde la propia web, al estilo que hace Joomla!, WordPress o cualquier solución del estilo; para ésto no utilizas SSH para nada.

Lo que te proponía era que realizarás una conexión al servidor (que parece que la realizas mediante VPN saliendo con una IP única) y una vez conectado a la máquina puedas gestionarlo sólo desde dentro. Vamos que el panel de control no se encuentre publicado; que sólo sea visible desde dentro de la máquina.

Si vas a implementar también una conexión SSH recuerda no utilizar el puerto por defecto, deshabilitar el acceso cómo root y configurar Fail2Ban para que banee las IPs con intentos de logueo fallidos.

Lo que buscas hacer no creo que sea demasiado difícil y en internet deberías de encontrar suficiente documentación.

Un saludo ;)
Exacto, yo lo q quiero es q ese panel de control web (al estilo joomla o wordpress como dices), no sea accesible más q desde una determinada ip. Es decir, q si yo navego con la ip XX.XXX.XX.XXX que esa y sólo esa pueda acceder a la web de login, y cualquier otra web no pueda ni siquera visualizar esa web para logearse, q directamente no se la cargue...

Supongo q controlando será crear una ruta, un iptables o alguna cosa de estas, pero claro, para alguien q no es muy ducho en estas lides, estoy dando palos de ciego... lo del ssh es porque me lo comentó un colega, aunque a mi tambien me extraño, porque yo daba por hehco q eso era para realizar conexiones mediante putty, o SFTP con filezilla no??

En fin, q entonces con esto q pretendo, no sé q coño buscar en internet para hacerlo... restringir acceso web a ip concreta??? Algo q en un momento dado pueda modificar con relativa facilidad, porque si por ejemplo, pusiese la ip de mi vpn, si por lo q sea el servidor vpn no funciona o no puedo conectar, tampoco podría entrar a ese panel de control, no se si me explico...

Salu2
CHAVO
CHAVO escribió:Exacto, yo lo q quiero es q ese panel de control web (al estilo joomla o wordpress como dices), no sea accesible más q desde una determinada ip. Es decir, q si yo navego con la ip XX.XXX.XX.XXX que esa y sólo esa pueda acceder a la web de login, y cualquier otra web no pueda ni siquera visualizar esa web para logearse, q directamente no se la cargue...

Supongo q controlando será crear una ruta, un iptables o alguna cosa de estas, pero claro, para alguien q no es muy ducho en estas lides, estoy dando palos de ciego... lo del ssh es porque me lo comentó un colega, aunque a mi tambien me extraño, porque yo daba por hehco q eso era para realizar conexiones mediante putty, o SFTP con filezilla no??

En fin, q entonces con esto q pretendo, no sé q coño buscar en internet para hacerlo... restringir acceso web a ip concreta??? Algo q en un momento dado pueda modificar con relativa facilidad, porque si por ejemplo, pusiese la ip de mi vpn, si por lo q sea el servidor vpn no funciona o no puedo conectar, tampoco podría entrar a ese panel de control, no se si me explico...

Salu2
CHAVO


1) Lo mejor que puedes hacer es habilitar únicamente la entrada a la zona de administración desde de localhost. (Vamos que es necesario que estes conectado a la máquina).

2) Para conectarte a tu servidor Linux puedes hacerlo de distintas maneras; pero tienes que controlar esas conexiones. Si cualquiera se puede conectar a tu servidor; estaría en la máquina y podría acceder a la zona de administración. (Entonces se acabo la gracia).

3) Para controlar las conexiones a tu servidor Linux puedes utilizar muchas herramientas y medidas de seguridad distintas.
Si quieres profundizar un poco puedes entrar a configurar IPTABLES - no deja de ser un cortafuegos/firewall -; pero para empezar no es lo más fácil. Primero probaría a jugar un poco con Fail2Ban.
También puedes añadir Latch para controlar las conexiones a tu servidor y habilitarlo tú desde el móvil. (La verdad creo que es una utilidad que puede facilitarte bastante las cosas para lo que quieres hacer).

Lo adecuado sería realizar una lista blanca con las IPs que sueles utilizar y permitir el acceso a esas IPs por si alguna te fuera fallar.

Lo que NO puedes hacer es, quiero que sólo pueda entrar esta IP, pero cómo esa IP ahora no funciona quiero que ahora pueda entrar todo el mundo. Entonces piensa bien cómo puedes hacerlo, si a la hora de banear hacerlo por un tiempo limitado, añadir varias IPs en la lista blanca etc.

Al final se trata de leer documentación, tener los conceptos claros e después ponerlo en práctica en el servidor.

Un saludo ;)
Gracias por la info tio, el caso es q la maquina en cuestion no esta en mi red, con lo cual no puedo entrar en local, sino q he alquilado un servidor a un centro de datos...
No obstante, tomo nota de todos tus comentarios, para empezar a empaparme del asunto, e ire leyendo sobre Fail2ban y Latch, estas dos opciones son gratuitas o de pago??

Salu2
CHAVO
En wwwdir estan directamente los archivos del sitio web? o entan en otra subcarpeta?
Yo tengo esto en un .htaccess para limitar el acceso por IP

Order Allow,Deny
Allow from xxx.xxx.xxx.xxx


Si no te funciona y lo estas colocando en el sitio correcto con el nombre correcto ( .htaccess empieza por un punto), pues lo que te falta es añadir el AllowOverride, que es lo que dice si se hace caso o no a los archivos .htaccess
<Directory /var/www/rutaAlSitio>
        AllowOverride All
</Directory>

Esa linea tienes que ponerla en un archivo que hay donde esta instalado apache, se suele llamar apache.conf, o httpd.conf, lo añades al final, con la ruta hacia el directorio del sitio web correcta y listo.


De todas formas, hay otra forma bastante eficaz de hacer esto, si ves que por lo que sea no lo consigues, configura una regla en el cortafuegos directamente.
Intentalo con el htaccess, pero si no te va prueba con esto: http://stackoverflow.com/a/19396579
Apache es bastante lio de congifurar ... yo lo haría en el fichero del "site":

/etc/apache2/sites-available/...


https://httpd.apache.org/docs/2.4/howto/access.html

Eso sí, de la versión 2.2 a la 2.4 cambiaron todo eso, mira bien que version de apache tienes.
Joder, cuantas opciones me estais dando y manda pelotas q aun no lo haya conseguido... A ver...

Waterdark, esa opcion q me comentas del htaccess la hice, poniendo el htaccess en al raiz de esa carpeta wwwdir, y especificando en el fichero config de apache eso mismo de allowoverride, con ese directorio, y macho, no me funciona... ¬_¬

noentiendero, voy a probar eso de modrewrite.

cercata, esa opcion no la había encontrado hasta ahora en lo q he ido leyendo, a mi con q una opcion me funcione me vale...

Os comentaré por aqui, porque a más q leo mas me entero de cosillas, y tengo q ir asimilando los conocimientos, jeje

Salu2
CHAVO
CHAVO escribió:
Waterdark, esa opcion q me comentas del htaccess la hice, poniendo el htaccess en al raiz de esa carpeta wwwdir, y especificando en el fichero config de apache eso mismo de allowoverride, con ese directorio, y macho, no me funciona... ¬_¬

Has reiniciado despues de cambiar los archivos de configuracion? para que se haga efectivo el cambio en el fichero de apache hay que reiniciar el servicio apache al menos.
Cosa importante, en el wwwdir estan los archivos de la web directamente, como index.html y demas? o estan en una subcarpeta? porque el .htaccess tiene que estar donde esten los archivos de la web. Muchas veces el directorio raiz que te abre por FTP es un directorio superior al de la web de verdad, no se si será el caso.
13 respuestas