VNCServer Configuration on Fedora
Written by superflay123 (blackstar)
Благодарности на http://www.dhstudio.eu
Първото нещто което трябва да направим е да проверим дали имаме инсталиран VNCServer за целта пишем следното в конзолата с роот превилегии,
#rpm -q vnc
vnc-4.1.1-10
#
ако имаме инсталирано VNC ще ни излезе надписа както е показано по-горе с името и версията на пакета, а ако нямаме ще видим следното:
package VNC is not installed
и ако не е инсталиран пакета ще се наложи да го инсталираме за целта пишем
apt-get install vnc
или
yum install vnc
След като сме го инсталирали идва ред на конфигурирането:
за целта трябва да разгледаме файла vncservers в директорията /etc/sysconfig/ отваряме го с някои текстов редактор
medit /etc/sysconfig/vncservers
в него ще намерим следното :
# The VNCSERVERS variable is a list of display:user pairs.
#
# Uncomment the line below to start a VNC server on display :1
# as my 'myusername' (adjust this to your own). You will also
# need to set a VNC password; run 'man vncpasswd' to see how
# to do that.
#
# DO NOT RUN THIS SERVICE if your local area network is
# untrusted! For a secure way of using VNC, see
# URL:http://www.uk.research.att.com/vnc/sshvnc.html
# VNCSERVERS="1:myusername"
# VNCSERVERARGS[1]="-geometry 800x600 -depth 16"
Така сега следва да направим малко промени според нашите нужди
в секцията VNCSERVERS= трябва да укажем номера на дисплея към които искаме да се вържем и юзъра с които да се вържем пример:
VNCSERVERS="3:blackstar"
като предварително трябва да зададем парола на този потребител с vncpasswd за VNCServera в самата хоум директория на предварително създадения потребител, примерно:
при нас потребителя е blackstar, влизаме в домашната директория на потребителя и в текущата директория на vnc-to:
# cd /home/blackstar/.vnc/
.vnc]#
след като сме в домашната директория на потребителя и в неговата скрита поддиректория на vnc ( .vnc ) изпълняваме горе описаната команда vncpasswd
# cd /home/blackstar/.vnc/
.vnc]# vncpasswd
password:
verify:
въвеждаме паролата след което я повтаряме и вече потребителят blackstar има парола за vncserver. Командата vncpasswd създава един файл който сървара го изисква за идентификация към него на съответния потребител.
Във конфигурационния файл на сървъра може да зададем повече от един потребител на различни дисплей пример:
VNCSERVERS="1:blackstar 2:albatros 3:asrock"
като процедурата с паролата подлежи за всеки потребител по отделно
Освен това на всеки потребител може да се зададе различна резолюция и цветове за логването. Това се позволява от секцията VNCSERVERARGS пример:
VNCSERVERARGS[1]="-geometry 800x600 -depth 16"
тук на дисплей [1] резолюзията е 800х600 с 16 хил. цвята което ще рече че юзъра blakstar които беше конфигуриран за дисплей [1] ще се логва с резолюция 800х600 с 16 хил. цвята
за другите потребители примерът е следния:
VNCSERVERS="1:blackstar 2:albatros 3:asrock"
VNCSERVERARGS[1]="-geometry 800x600 -depth 16"
VNCSERVERARGS[2]="-geometry 800x600 -depth 8"
VNCSERVERARGS[3]="-geometry 1024x768 -depth 24"
Сега нека да уточним нещо, всеки номер на дисплей отговаря на номер на порт от протокола TCP/IP. Номерата на дисплейте зависи кой номер дисплей е избран, но те започват от 5900 и се покачват с 1, пример:
No. Display | No. TCP port |
[1] | 5901 |
[2] | 5902 |
[3] | 5903 |
[4] | 5904 |
След като сме конфигурирали файла /etc/sysconfig/vncserver идва ред и на другия конфигурационен файл xstartup който се намира в хоум директорията на дадения юзър. Например ако той е blackstar директорията ще е /home/blackstar/.vnc/ ако е друг юзър /home/drug_user/.vnc . В директорията ( .vnc ) на дадения юзър трябва да намерим файла xstartup които трябва да коригираме. Отваряме този файл с текстов редактор
#mcedit /home/blackstar/.vnc/xstartup
и двата коментирани реда който са описани доло в синьо ги разкоментираме. Разкометираме тези редове защото по подразбиране не е включена функцията за дефаулт Х средата и няма да можем да оперираме с нея.
unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc
Сега за защитната стена, трябва да разрешите портовете който са описани по-горе (5901,5902,5903,5904...). Естествено ако не е направено вече.
Не е нужно ако използвате един юзър да отваряте всички портове.
Отварянето на примерен порт може да стане така: в конфигурационния файл на IPTABLES които се намира в /etc/sysconfig/iptables добавете ето този ред
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5901 -j ACCEPT
пример:
$ vi /etc/sysconfig/iptables
# Firewall configuration written by redhat-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0
] -A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5901 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
след това изпълвате командата
service iptables restart
за да се задействат направените промени.
След това вавеждате
service vncserver start|restart|stop
или
/etc/init.d/vncserver start|stop
за да стартирате рестартирате или спрете VNCServer.
Вече имате работещ VNCServer за да го изпробвате въведете в промпта следното
vncviewer [Server's IP]:[Port]:[Display]
пример:
# vncviewer 192.168.0.1:5901:1
Това е всичко от мен !!!!