“FreeRDP” – Linux OS program za RDP sa podrškom za pristup Windows-u 8.0, 8.1, 2012, 2012 R2

Već duže vrijeme muku mučim kako bih pronašao dobar Linux RDP program, zašto? Svi znamo da ih postoji mnogo i da su se razni klijenti koristili. Jedan od najpoznatijih koji je svojim vremenom dolazio instaliran s Ubuntu OS-om je “rdesktop”. Rdesktop se super pokazao za korištenje prilikom spajanja na sustave starijih generacija kao što su:

Windows 2000, XP, Server 2003, 2003 R2, 2008, 2008 R2

Ako želite znati više o RDesktop programu možete informacije pronaći ovdje – RDesktop Website. Problem se kod nas bivših korisnika Linux OS-a pojavio prilikom izlaska Windows 8 i Server 2012 OS-a koji su donijeli novu verziju “Remote Desktop Protocol-a”, a to je RDP 8.0. Nova verzija RDP-a nam donosi mnogo novih mogućnosti i novosti kao što su:

  •     Prilagodljiva grafika brzini veze
  •     Automatski odabir TCP ili UDP prijenosa
  •     Podršku za ekrane na dodir s više dodirnih točaka
  •     Direct 11 podršku za vGPU, te još mnogo toga….

Ako želite detaljnije informacije možete ih pronaći na URL – RDP v4.0-8.1.

Zbog navedenih novosti u samom radu protokola, novim dodacima i većoj sigurnosti više se nije moguće spojiti na Windows 8.0 i 2012 ili noviji sa standardno poznatih RDC klijenata.

Za potrebe spajanja sam pronašao i testirao klijent koji se zove FreeRDP. Na stranici možete pronaći upute za instalaciju i pokretanje. Pošto jako puno koristim RDC klijente i SSH klijente kao administrator sustava u svojoj tvrtki sam izradio jednu skriptu koja može pomoći pri spajanju na željene poslužitelje. Skripta je pisana u BASH-u te se može pokrenuti na svakom Linux OS-u. Skriptu mi je pomogao napisati moj dragi kolega i prijatelj pod nadimkom Fly.

Skripta izgleda ovako:

#!/bin/bash

# function to invoke RDS connections
conrds()
{
	RUSER="rdp_username"
	RPASS="rdp_password"

	if [ -z "$1" ]; then
		return 1;
	fi

	screen -A -m -d -S Ime_Servera05 xfreerdp /f /u:$RUSER /p:$RPASS /v:$1
	return 0;
}

# function to invoke ssh connections [accepts 3 params $1:server, [$2:username, [$3:port]]
conssh()
{
	if [ -z "$1" ]; then
		return 1;
	fi

	if [ -z "$2" ]; then
		2="SSH_Username"
	fi

	if [ -z "$3" ]; then
		3="SSH_Port"
	fi

	ssh $2@$1 -p $3

	return $?
}

if [ "$1" == "" ]; then
	echo "Odaberite server:"
	prompt="Unesite broj servera [ENTER]:"
	options=( "Server01" "Server02" "Server03" "Server04" "Server05" "Server06" "Server07" )
	PS3="$prompt "
	select opt in "${options[@]}" "Izlaz"; do
		COUNT=$(( ${#options[@]}+1 ))
		if [ $REPLY -le $COUNT ]; then
			if [ $REPLY -eq $COUNT ]; then
				exit 0
			else
				CSERV=$REPLY
				break
			fi
		else
			echo -e "Neispravan unos"
			exit 1
		fi
	done
else
	CSERV=$1
fi

case $CSERV in
	"1" |  "Server01")
		conrds "Server01 FQDN or IP"
		exit $?
		;;
	"2" |  "Server02")
		conrds "Server02 FQDN or IP"
		exit $?
		;;
	"3" |  "Server03")
		conrds "Server03 FQDN or IP"
		exit $?
		;;
	"4" |  "Server04")
		conrds "Server04 FQDN or IP"
		exit $?
		;;
	"5" |  "Server05")
		conrds "Server05 FQDN or IP"
		exit $?
		;;
	"6" |  "Server06")
		conrds "Server06 FQDN or IP"
		exit $?
		;;
	"7" |  "Server07")
		conssh "Server07 FQDN or IP" "SSH_Username" "SSH_Port"
		exit $?
		;;
	*)
		echo -e "Neispravan unos"
		exit 2
		;;
esac

Nakon pokretanja skripte dobijemo sljedeći prozor koji očekuje da odaberemo željeni server za spajanje.

Screenshot from 2014-03-24 20:54:11

U skripti gdje se spominje FQDN ili IP potrebno je unijeti DNS ime ili IP adresu servera na koji se želimo spojiti.

Kako bi skripta uspješno radila na Linux OS-u trebate imati instaliranu aplikaciju “screen”.

Na Ubuntu/Debian distribucijama ako ju nemate možete to instalirati pokretanjem komande iz terminala:

sudo apt-get install screen

ili

aptitude install screen

Nadam se da je barem nekome poslužilo. Ako trebate pomoć slobodno pošaljite email na adresu.

 

Leave a Reply