Limitar usuarios TS según su ip de origen

28/02/2009 - 11:55 por heze54 | Informe spam
Buenas,


Tengo un servidor TS que vía VPN tiene colectividad con varias redes.

Son 6 los usuarios que se conectan de forma remota, 3 de un rango y 3
del otro.

En la actualidad cualquier usuario se puede conectar desde cualquiera de
los rangos y esto me esta ocasionando problemas bastante serios.

Necesito poder controlar usuario&ip de origen y si cumple, permitir que
se logee en terminal server.

Por ejemplo:

Rango 1 user 1,2,3
Rango 2 user 4,5,6


Si rango 1 y user 4 o 5 o 6 no permitir



Esto lo puedo hacer con IAS?


Un saludo

Preguntas similare

Leer las respuestas

#6 Ramon Jimenez
01/03/2009 - 01:24 | Informe spam
Igual esto puede ayudar...son 2 enlaces referenciando la misma utilidad...en
los tiempos de Metaframe 1.8 yo utilicé un freeware parecido

http://ts.veranoest.net/ts_faq_admi...m#clientIP
http://www.dabcc.com/article.aspx?id54

Otro
http://www.remkoweijnen.nl/blog/200...p-address/

Con Citrix
http://www.codeproject.com/KB/winsdk/citrixIP.aspx

Ramon

"Jose Antonio Quílez [MS MVP]" wrote in message
news:
Te he preparado el siguiente código, que puesto en un fichero .bat te
debería funcionar
Las dos primeras líneas obtienen la dirección ip del equipo en el que ha
iniciado sesión el usuario, y la tercera, "set netip", obtiene los
primeros 9 caracteres de esa dirección ip. Este número 9 lo tienes que
adaptar a la longitud que defina la subred (en mi caso he usado 192.168.0,
que con los puntos suma 9 caracteres). Si las dos subredes tienen distinta
longitud decimal para definirse, tendrás que usar dos variables, netip1 y
netip2, para acomodarte a ello, y modificar las comparaciones
convenientemente.

Rem Inicio del script

echo off
for /f "tokens=1,2* delims=:" %%i in (' ipconfig ^| find "IPv4" ') do set
dirip=%%j
set dirip=%dirip:~1%
set netip=%dirip:~,9%

if %username% EQU Pedro goto usuariored1
if %username% EQU Juan goto usuariored1
if %username% EQU Manolo goto usuariored2
if %username% EQU Paco goto usuariored2
goto fin

:usuariored1
if %netip% EQU 192.168.2 goto cerrarsesion
goto fin

:usuariored2
if %netip% EQU 192.168.1 goto cerrarsesion
goto fin

:cerrarsesion
shutdown /l

:fin
Rem Fin del script


Saludos
José Antonio Quílez
http://msmvps.com/blogs/quilez/



"heze54" escribió en el mensaje de
noticias:
algún ejemplo de script ya diseñado y como lo puedo aplicar me puedes
facilitar?


Un saludo




Jose Antonio Quílez [MS MVP] escribió:
Con el siguiente código en un script de inicio de sesión puedes obtener
la ip de la máquina en la que ha iniciado sesión el usuario:

for /f "tokens=1,2* delims=:" %%i in (' ipconfig ^| find "IP" ') do set
dirip=%%j

set dirip=%dirip:~1%

Ahora con esa variable dirip y la variable Username, tan sólo tienes que
comparar en ese script y de no cumplir la regla que pongas forzar el
cierre de sesión en el mismo.

Respuesta Responder a este mensaje
#7 Jose Antonio Quílez [MS MVP]
01/03/2009 - 08:29 | Informe spam
Muchas gracias Ramón, con ENVTSCIP se soluciona el problema en el script.


Saludos
José Antonio Quílez
http://msmvps.com/blogs/quilez/



"Ramon Jimenez" escribió en el mensaje de
noticias:#
Igual esto puede ayudar...son 2 enlaces referenciando la misma
utilidad...en los tiempos de Metaframe 1.8 yo utilicé un freeware parecido

http://ts.veranoest.net/ts_faq_admi...m#clientIP
http://www.dabcc.com/article.aspx?id54

Otro
http://www.remkoweijnen.nl/blog/200...p-address/

Con Citrix
http://www.codeproject.com/KB/winsdk/citrixIP.aspx

Ramon

"Jose Antonio Quílez [MS MVP]" wrote in
message news:
Te he preparado el siguiente código, que puesto en un fichero .bat te
debería funcionar
Las dos primeras líneas obtienen la dirección ip del equipo en el que ha
iniciado sesión el usuario, y la tercera, "set netip", obtiene los
primeros 9 caracteres de esa dirección ip. Este número 9 lo tienes que
adaptar a la longitud que defina la subred (en mi caso he usado
192.168.0, que con los puntos suma 9 caracteres). Si las dos subredes
tienen distinta longitud decimal para definirse, tendrás que usar dos
variables, netip1 y netip2, para acomodarte a ello, y modificar las
comparaciones convenientemente.

Rem Inicio del script

echo off
for /f "tokens=1,2* delims=:" %%i in (' ipconfig ^| find "IPv4" ') do set
dirip=%%j
set dirip=%dirip:~1%
set netip=%dirip:~,9%

if %username% EQU Pedro goto usuariored1
if %username% EQU Juan goto usuariored1
if %username% EQU Manolo goto usuariored2
if %username% EQU Paco goto usuariored2
goto fin

:usuariored1
if %netip% EQU 192.168.2 goto cerrarsesion
goto fin

:usuariored2
if %netip% EQU 192.168.1 goto cerrarsesion
goto fin

:cerrarsesion
shutdown /l

:fin
Rem Fin del script


Saludos
José Antonio Quílez
http://msmvps.com/blogs/quilez/



"heze54" escribió en el mensaje de
noticias:
algún ejemplo de script ya diseñado y como lo puedo aplicar me puedes
facilitar?


Un saludo




Jose Antonio Quílez [MS MVP] escribió:
Con el siguiente código en un script de inicio de sesión puedes obtener
la ip de la máquina en la que ha iniciado sesión el usuario:

for /f "tokens=1,2* delims=:" %%i in (' ipconfig ^| find "IP" ') do set
dirip=%%j

set dirip=%dirip:~1%

Ahora con esa variable dirip y la variable Username, tan sólo tienes
que comparar en ese script y de no cumplir la regla que pongas forzar
el cierre de sesión en el mismo.









Respuesta Responder a este mensaje
#8 Jose Antonio Quílez [MS MVP]
01/03/2009 - 08:39 | Informe spam
Con las utilidades que ha indicado Ramón se simplifica mucho el problema.
Descárgate el conjunto de utilidades freeware del siguiente enlace:
http://www.ctrl-alt-del.com.au/CAD_...m#Freeware , y de ellas
utilizaremos ENVTSCIP, cuyo ejecutable tendrás que poner en el servidor, en
una ruta que esté en el path de todos los usuarios. Asigna el siguiente
script como script de inicio de sesión para esos usuarios en el dominio del
TS. Cambia NOMBRESERVIDORTS por el nombre netbios que tenga el mismo. Igual
que antes, la primera vez tendrás que conocer la IP del usuario en la red
correcta y en la que no quieres que pueda iniciar sesión, y ajustar la
longitud de la línea set netip al número de caracteres que te defina la
subred (el 192.168.1 de mi ejemplo, incluyendo los puntos).

Rem Inicio del Script que se ejecutará en el servidor TS
echo off
if not %computername% EQU NOMBRESERVIDORTS goto fin
envtscip
set netip=%clientip:~,9%

if %username% EQU Pedro goto usuariored1
if %username% EQU Juan goto usuariored1
if %username% EQU Manolo goto usuariored2
if %username% EQU Paco goto usuariored2
goto fin

:usuariored1
if %netip% EQU 192.168.2 goto cerrarsesion
goto fin

:usuariored2
if %netip% EQU 192.168.1 goto cerrarsesion
goto fin

:cerrarsesion
shutdown /l

:fin
Rem Fin del Script


Saludos
José Antonio Quílez
http://msmvps.com/blogs/quilez/



"heze54" escribió en el mensaje de
noticias:
Buenas,

No tengo opción de modificar nada en los pcs que se conectan...

Un grupo de usuarios se conecta vía vpn contra la maquina y el otro grupo
lo hace vía internet desde 3 ips fijas que conozco. El problema es que
desde cualquiera de esas localizaciones pueden validarse con todos los
usuarios.




Jose Antonio Quílez [MS MVP] escribió:
Al probarlo me he dado cuenta de un error que hace que no funcione como
quieres, por lo que hay que modificarlo, y hacer que el cálculo de la ip
y subred se realice en el ordenador en que inicia sesión el usuario y no
en la sesión TS en el servidor, y las comparaciones posteriores se
realicen cuando el usuario inicie sesión por TS, por lo que habrá que
pasarle al servidor de alguna forma la variable netip que habíamos
obtenido en el PC del usuario.
No es complicado, así que en un rato espero ponerte el código modificado.
Respuesta Responder a este mensaje
#9 Heze54
01/03/2009 - 23:13 | Informe spam
Buenas,

Sea como fuere y aunque me he descargado todo y lo estoy probando, la
solución que comentaba sobre IAS no es valida? o si?

Un saludo





Jose Antonio Quílez [MS MVP] escribió:
Con las utilidades que ha indicado Ramón se simplifica mucho el problema.
Descárgate el conjunto de utilidades freeware del siguiente enlace:
http://www.ctrl-alt-del.com.au/CAD_...m#Freeware , y de ellas
utilizaremos ENVTSCIP, cuyo ejecutable tendrás que poner en el servidor,
en una ruta que esté en el path de todos los usuarios. Asigna el
siguiente script como script de inicio de sesión para esos usuarios en
el dominio del TS. Cambia NOMBRESERVIDORTS por el nombre netbios que
tenga el mismo. Igual que antes, la primera vez tendrás que conocer la
IP del usuario en la red correcta y en la que no quieres que pueda
iniciar sesión, y ajustar la longitud de la línea set netip al número de
caracteres que te defina la subred (el 192.168.1 de mi ejemplo,
incluyendo los puntos).

Rem Inicio del Script que se ejecutará en el servidor TS
echo off
if not %computername% EQU NOMBRESERVIDORTS goto fin
envtscip
set netip=%clientip:~,9%

if %username% EQU Pedro goto usuariored1
if %username% EQU Juan goto usuariored1
if %username% EQU Manolo goto usuariored2
if %username% EQU Paco goto usuariored2
goto fin

:usuariored1
if %netip% EQU 192.168.2 goto cerrarsesion
goto fin

:usuariored2
if %netip% EQU 192.168.1 goto cerrarsesion
goto fin

:cerrarsesion
shutdown /l

:fin
Rem Fin del Script

Respuesta Responder a este mensaje
#10 Heze54
02/03/2009 - 22:56 | Informe spam
El ejecutable... en que path puede ser el correcto? en c:\ o algun otro ?





Jose Antonio Quílez [MS MVP] escribió:
Con las utilidades que ha indicado Ramón se simplifica mucho el problema.
Descárgate el conjunto de utilidades freeware del siguiente enlace:
http://www.ctrl-alt-del.com.au/CAD_...m#Freeware , y de ellas
utilizaremos ENVTSCIP, cuyo ejecutable tendrás que poner en el servidor,
en una ruta que esté en el path de todos los usuarios. Asigna el
siguiente script como script de inicio de sesión para esos usuarios en
el dominio del TS. Cambia NOMBRESERVIDORTS por el nombre netbios que
tenga el mismo. Igual que antes, la primera vez tendrás que conocer la
IP del usuario en la red correcta y en la que no quieres que pueda
iniciar sesión, y ajustar la longitud de la línea set netip al número de
caracteres que te defina la subred (el 192.168.1 de mi ejemplo,
incluyendo los puntos).

Rem Inicio del Script que se ejecutará en el servidor TS
echo off
if not %computername% EQU NOMBRESERVIDORTS goto fin
envtscip
set netip=%clientip:~,9%

if %username% EQU Pedro goto usuariored1
if %username% EQU Juan goto usuariored1
if %username% EQU Manolo goto usuariored2
if %username% EQU Paco goto usuariored2
goto fin

:usuariored1
if %netip% EQU 192.168.2 goto cerrarsesion
goto fin

:usuariored2
if %netip% EQU 192.168.1 goto cerrarsesion
goto fin

:cerrarsesion
shutdown /l

:fin
Rem Fin del Script

Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida