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

#11 Heze54
02/03/2009 - 23:14 | Informe spam
El software envtsvip no me devuelve la ip no devuelve nada.

Heze54 escribió:
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
#12 Jose Antonio Quílez [MS MVP]
03/03/2009 - 18:18 | Informe spam
Puedes ponerlo en c:\windows\system32, por ejemplo. En C:\ nunca me ha
gustado poner nada. Cuanto más limpio, mejor.
El comando, para ver algo, lo tienes que ejecutar en una ventana de comando
desde dentro de una sesión remota por Terminal Server. Si lo haces desde la
consola del servidor, o desde el propio cliente, no devuelve absolutamente
nada. Lo acabo de comprobar, y desde dentro de la sesión remota, que es
precisamente donde se ejecutaría el script que te escribí, devuelve
perfectamente la ip del cliente desde el que se lanzó la conexión al TS.


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



"Heze54" escribió en el mensaje de
noticias:
El software envtsvip no me devuelve la ip no devuelve nada.

Heze54 escribió:
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
#13 Jose Antonio Quílez [MS MVP]
03/03/2009 - 18:51 | Informe spam
He tenido que hacer algunos cambios al script para pasar la ip remota a la
variable "remoteip", y ya funciona el script que te paso tal como quieres.
Asígnaselo a los usuarios que inician remotamente en el servidor, por
ejemplo poniendo un acceso directo al archivo bat en el menú de inicio
(submenú inicio) de todos los usuarios, o bien se lo asignas como script de
inicio de sesión.
Lo acabo de probar y funciona perfectamente. Se ejecuta sólo cuando se
inicia sesión remota al TS, desde dentro de la sesión, y si se cumple la
condición de que el usuario lanza la conexión remota desde la red que no le
corresponde, le cierra la sesión automáticamente antes de que pueda hacer
nada. Recuerda cambiar la longitud de la línea 6, de los 9 caracteres que
dejo desde el primero de la dirección ip a los que tenga la dirección de las
redes que uses.

Rem Inicio del Script que se ejecutará en el servidor TS
echo off
if not %computername% EQU NOMBRESERVIDORTS goto fin
for /f "tokens=1,2* delims=:" %%i in (' envtscip ^| find "WTS" ') do set
remoteip=%%j
set remoteip=%remoteip:~1%
set remotenet=%remoteip:~,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 %remotenet% EQU 192.168.2 goto cerrarsesion
goto fin

:usuariored2
if %remotenet% 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/



"Jose Antonio Quílez [MS MVP]" escribió en el
mensaje de noticias:
Puedes ponerlo en c:\windows\system32, por ejemplo. En C:\ nunca me ha
gustado poner nada. Cuanto más limpio, mejor.
El comando, para ver algo, lo tienes que ejecutar en una ventana de
comando desde dentro de una sesión remota por Terminal Server. Si lo haces
desde la consola del servidor, o desde el propio cliente, no devuelve
absolutamente nada. Lo acabo de comprobar, y desde dentro de la sesión
remota, que es precisamente donde se ejecutaría el script que te escribí,
devuelve perfectamente la ip del cliente desde el que se lanzó la conexión
al TS.


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



"Heze54" escribió en el mensaje de
noticias:
El software envtsvip no me devuelve la ip no devuelve nada.

Heze54 escribió:
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
#14 Heze54
03/03/2009 - 22:26 | Informe spam
En relación a la IP, yo arranco con mi user una sesion de TS contra
dicho server. Arranco una ventana de cmd msdos y busco el fichero
envtscip y no me devuelve ip alguna.



Jose Antonio Quílez [MS MVP] escribió:
He tenido que hacer algunos cambios al script para pasar la ip remota a
la variable "remoteip", y ya funciona el script que te paso tal como
quieres.
Asígnaselo a los usuarios que inician remotamente en el servidor, por
ejemplo poniendo un acceso directo al archivo bat en el menú de inicio
(submenú inicio) de todos los usuarios, o bien se lo asignas como script
de inicio de sesión.
Lo acabo de probar y funciona perfectamente. Se ejecuta sólo cuando se
inicia sesión remota al TS, desde dentro de la sesión, y si se cumple la
condición de que el usuario lanza la conexión remota desde la red que no
le corresponde, le cierra la sesión automáticamente antes de que pueda
hacer nada. Recuerda cambiar la longitud de la línea 6, de los 9
caracteres que dejo desde el primero de la dirección ip a los que tenga
la dirección de las redes que uses.

Rem Inicio del Script que se ejecutará en el servidor TS
echo off
if not %computername% EQU NOMBRESERVIDORTS goto fin
for /f "tokens=1,2* delims=:" %%i in (' envtscip ^| find "WTS" ') do set
remoteip=%%j
set remoteip=%remoteip:~1%
set remotenet=%remoteip:~,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 %remotenet% EQU 192.168.2 goto cerrarsesion
goto fin

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

:cerrarsesion
shutdown /l

:fin
Rem Fin del Script

Respuesta Responder a este mensaje
#15 Jose Antonio Quílez [MS MVP]
04/03/2009 - 16:35 | Informe spam
¿Dónde arrancas la ventana de comando? ¿En la consola del servidor TS? ¿En
la consola del cliente? ¿En la sesión remota del usuario? Lo he probado en
varios servidores TS y en los dos primeros casos efectivamente no devuelve
nada (y es así), devolviendo en el tercer caso dentro de la sesión remota la
ip del cliente desde el que se lanzó la conexión al TS.
Prueba a ejecutar el script a mano desde dentro de la sesión remota y mira
si te funciona.


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



"Heze54" escribió en el mensaje de
noticias:
En relación a la IP, yo arranco con mi user una sesion de TS contra dicho
server. Arranco una ventana de cmd msdos y busco el fichero envtscip y no
me devuelve ip alguna.



Jose Antonio Quílez [MS MVP] escribió:
He tenido que hacer algunos cambios al script para pasar la ip remota a
la variable "remoteip", y ya funciona el script que te paso tal como
quieres.
Asígnaselo a los usuarios que inician remotamente en el servidor, por
ejemplo poniendo un acceso directo al archivo bat en el menú de inicio
(submenú inicio) de todos los usuarios, o bien se lo asignas como script
de inicio de sesión.
Lo acabo de probar y funciona perfectamente. Se ejecuta sólo cuando se
inicia sesión remota al TS, desde dentro de la sesión, y si se cumple la
condición de que el usuario lanza la conexión remota desde la red que no
le corresponde, le cierra la sesión automáticamente antes de que pueda
hacer nada. Recuerda cambiar la longitud de la línea 6, de los 9
caracteres que dejo desde el primero de la dirección ip a los que tenga
la dirección de las redes que uses.

Rem Inicio del Script que se ejecutará en el servidor TS
echo off
if not %computername% EQU NOMBRESERVIDORTS goto fin
for /f "tokens=1,2* delims=:" %%i in (' envtscip ^| find "WTS" ') do set
remoteip=%%j
set remoteip=%remoteip:~1%
set remotenet=%remoteip:~,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 %remotenet% EQU 192.168.2 goto cerrarsesion
goto fin

:usuariored2
if %remotenet% 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