Virtual Network Computing logo (Photo credit: Wikipedia) |
Я думаю многие знают что такое Terminal Server и зачем он нужен, а кто не знает может сходить по ссылке и почитать WiKi.
Так же осмелюсь предположить что многие уже использовали VNC для однопользовательского подключения, но что можно сделать в случае если необходим многопользовательский доступ.
Я попробовал осуществить несколько вариантов, но остановился на запуске vnc4server через openbsd-inetd.
Кстати оговорю сразу, мы будем использовать порт 5901 поскольку дефолтовый порт занят встроенным в Gnome сервисом vino. Так же необходимо удалить network-manager, и настроить сетевые интерфейсы через старый добрый /etc/network/interfaces.
И последнее но не менее важное. Мы установим GDM вместо текущего GDM3 по причине того что последнего совершенно не впечатляют опции [xdmcp] Enable=true так необходимые для многопользовательского доступа.
На стороне сервера
Удалим всё ненужное, и установим всё необходимое.
apt-get purge network-manager network-manager-gnome -yapt-get install vnc4server gdm openbsd-inetd openssh-server -y
Когда будете устанавливаться GDM его нужно будет выбрать оконным менеджером по умолчанию.
Теперь настроим openbsd-inetd
Поправим /etc/gdm/gdm.confecho "5901 stream tcp nowait nobody /usr/bin/Xvnc\ Xvnc -inetd -query localhost -once -depth 24\ securitytypes=none" >> /etc/inetd.conf
И перезапустим сервисыsed -i -e 's/\[xdmcp\]/\[xdmcp\]\nEnable=true/g' /etc/gdm/gdm.conf
Если вы будете использовать сервер в локальной сети может перейти к пункту настройки на стороне клиента, если же необходим доступ через Internet, то идём настраивать фаервол./etc/init.d/openbsd-inetd restart Restarting internet superserver: inetd. /etc/init.d/gdm restart Stopping GNOME Display Manager: gdm. Starting GNOME Display Manager: gdm.
Настройка фаервола для случаев доступа через ssh туннель
На стороне клиентаcat > /etc/network/if-pre-up.d/iptables <<EOF #!/bin/bash /sbin/iptables-restore < /etc/iptables.up.rules EOF chmod +x /etc/network/if-pre-up.d/iptables cat > /etc/iptables.up.rules <<EOF *filter # Allows all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0 -A INPUT -i lo -j ACCEPT -A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT # Accepts all established inbound connections -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # Allows all outbound traffic # You could modify this to only allow certain traffic -A OUTPUT -j ACCEPT # Allows SSH connections -A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT # Allow ping -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT # log iptables denied calls (access via 'dmesg' command) -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7 # Reject all other inbound - default deny unless explicitly allowed policy: -A INPUT -j REJECT -A FORWARD -j REJECT COMMIT EOF /etc/init.d/networking restart
Поставим клиентское ПО
Если вы в локальной сети то можете смело цепляться только что установленным клиентом, или воспользоваться любым другим.apt-get install vncviewer openssh-client -y
Если вы решили работать через SSH туннель тогда прокинем порт удалённого сервера на locslhost.vncviewer Terminal-Server:5901
И подключимся к нему.ssh -L 5901:localhost:5901 -N -f user1@Terminal-Server
После подключения вы должны увидеть окно входа в систему.vncviewer localhost:5901
А после второго подключения еще одно. =))
Комментариев нет:
Отправить комментарий