클라우드 환경의 CentOS7/RHEL7에서 "안전하게"GUI(VNC)를 도입·이용하는 방법
1. 소개
많은 클라우드에서는 디폴트로 CUI(캐릭터 기반의 인터페이스) 밖에 제공되지 않고, SSH등으로 로그인하는 것이 대부분입니다. 다만, 최근의 제품 중에서는 GUI(그래픽 유저 인터페이스)를 요구되고 있는 일도 많기 때문에, 아무래도 GUI를 사용하고 싶다! 라는 사람도 계십니다.
이 기사에서는 Bluemix Infrastructure (이전 SoftLayer)에서 VNC 및 GUI 환경을 도입하고 안전하게 연결하는 방법을 설명합니다. 이용하고 있는 OS는 CentOS7입니다.
# cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
# uname -a
Linux guitest.softlayer.com 3.10.0-514.21.1.el7.x86_64 #1 SMP Thu May 25 17:04:51 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
2. 구성 요소 확인 및 배포
GUI를 이용하기 위해서는 VNC(tiger-VNC)를 이용하면 됩니다만, VNC를 간단하게 도입하는 것만으로는 윈도우 매니저가 없기 때문에 거의 쓸모가 없습니다. 따라서 GUI가 있는 Server 구성 요소를 도입합니다. 2GB 정도 있기 때문에주의하십시오.
ServerWithGUI 및 VNC 확인# yum grouplist
Loaded plugins: fastestmirror
There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
Available Environment Groups:
Minimal Install
Compute Node
Infrastructure Server
File and Print Server
Basic Web Server
Virtualization Host
Server with GUI
GNOME Desktop
KDE Plasma Workspaces
Development and Creative Workstation
Available Groups:
Compatibility Libraries
Console Internet Tools
Development Tools
Graphical Administration Tools
Legacy UNIX Compatibility
Scientific Support
Security Tools
Smart Card Support
System Administration Tools
System Management
Done
# yum search tigervnc
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
========================================================================== N/S matched: tigervnc ==========================================================================
tigervnc.x86_64 : A TigerVNC remote display system
tigervnc-icons.noarch : Icons for TigerVNC viewer
tigervnc-license.noarch : License of TigerVNC suite
tigervnc-server.x86_64 : A TigerVNC server
tigervnc-server-applet.noarch : Java TigerVNC viewer applet for TigerVNC server
tigervnc-server-minimal.x86_64 : A minimal installation of TigerVNC server
tigervnc-server-module.x86_64 : TigerVNC module to Xorg
Name and summary matches only, use "search all" for everything.
ServerWithGUI 및 VNC 배포
# yum groupinstall "Server with GUI"
# yum install tigervnc-server.x86_64
3. VNC Server의 동작 확인
vncserver 명령을 실행하고 VNC 액세스를 위한 암호를 설정하고,
vncserver 실행# vncserver
You will require a password to access your desktops.
Password:
Verify:
New 'guitest.softlayer.com:1 (root)' desktop is guitest.softlayer.com:1
Creating default startup script /root/.vnc/xstartup
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/guitest.softlayer.com:1.log
VNC Viewer에서 포트 5901에 액세스하면 안전하게 액세스할 수 있었습니다.
그러나 이번에는 VNC Server는 5901을 모든 인터페이스에 공개합니다. . . 게다가 6001번도. . .
# ss -anptu|grep vnc
tcp LISTEN 0 5 *:5901 *:* users:(("Xvnc",pid=3714,fd=10))
tcp LISTEN 0 128 *:6001 *:* users:(("Xvnc",pid=3714,fd=1))
tcp LISTEN 0 5 :::5901 :::* users:(("Xvnc",pid=3714,fd=11))
tcp LISTEN 0 128 :::6001 :::* users:(("Xvnc",pid=3714,fd=0))
4. 안전한 접속을 위해 실시하는 내용
아래의 4가지 조합으로 대응합시다.
# cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
# uname -a
Linux guitest.softlayer.com 3.10.0-514.21.1.el7.x86_64 #1 SMP Thu May 25 17:04:51 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
GUI를 이용하기 위해서는 VNC(tiger-VNC)를 이용하면 됩니다만, VNC를 간단하게 도입하는 것만으로는 윈도우 매니저가 없기 때문에 거의 쓸모가 없습니다. 따라서 GUI가 있는 Server 구성 요소를 도입합니다. 2GB 정도 있기 때문에주의하십시오.
ServerWithGUI 및 VNC 확인
# yum grouplist
Loaded plugins: fastestmirror
There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
Available Environment Groups:
Minimal Install
Compute Node
Infrastructure Server
File and Print Server
Basic Web Server
Virtualization Host
Server with GUI
GNOME Desktop
KDE Plasma Workspaces
Development and Creative Workstation
Available Groups:
Compatibility Libraries
Console Internet Tools
Development Tools
Graphical Administration Tools
Legacy UNIX Compatibility
Scientific Support
Security Tools
Smart Card Support
System Administration Tools
System Management
Done
# yum search tigervnc
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
========================================================================== N/S matched: tigervnc ==========================================================================
tigervnc.x86_64 : A TigerVNC remote display system
tigervnc-icons.noarch : Icons for TigerVNC viewer
tigervnc-license.noarch : License of TigerVNC suite
tigervnc-server.x86_64 : A TigerVNC server
tigervnc-server-applet.noarch : Java TigerVNC viewer applet for TigerVNC server
tigervnc-server-minimal.x86_64 : A minimal installation of TigerVNC server
tigervnc-server-module.x86_64 : TigerVNC module to Xorg
Name and summary matches only, use "search all" for everything.
ServerWithGUI 및 VNC 배포
# yum groupinstall "Server with GUI"
# yum install tigervnc-server.x86_64
3. VNC Server의 동작 확인
vncserver 명령을 실행하고 VNC 액세스를 위한 암호를 설정하고,
vncserver 실행# vncserver
You will require a password to access your desktops.
Password:
Verify:
New 'guitest.softlayer.com:1 (root)' desktop is guitest.softlayer.com:1
Creating default startup script /root/.vnc/xstartup
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/guitest.softlayer.com:1.log
VNC Viewer에서 포트 5901에 액세스하면 안전하게 액세스할 수 있었습니다.
그러나 이번에는 VNC Server는 5901을 모든 인터페이스에 공개합니다. . . 게다가 6001번도. . .
# ss -anptu|grep vnc
tcp LISTEN 0 5 *:5901 *:* users:(("Xvnc",pid=3714,fd=10))
tcp LISTEN 0 128 *:6001 *:* users:(("Xvnc",pid=3714,fd=1))
tcp LISTEN 0 5 :::5901 :::* users:(("Xvnc",pid=3714,fd=11))
tcp LISTEN 0 128 :::6001 :::* users:(("Xvnc",pid=3714,fd=0))
4. 안전한 접속을 위해 실시하는 내용
아래의 4가지 조합으로 대응합시다.
# vncserver
You will require a password to access your desktops.
Password:
Verify:
New 'guitest.softlayer.com:1 (root)' desktop is guitest.softlayer.com:1
Creating default startup script /root/.vnc/xstartup
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/guitest.softlayer.com:1.log
# ss -anptu|grep vnc
tcp LISTEN 0 5 *:5901 *:* users:(("Xvnc",pid=3714,fd=10))
tcp LISTEN 0 128 *:6001 *:* users:(("Xvnc",pid=3714,fd=1))
tcp LISTEN 0 5 :::5901 :::* users:(("Xvnc",pid=3714,fd=11))
tcp LISTEN 0 128 :::6001 :::* users:(("Xvnc",pid=3714,fd=0))
아래의 4가지 조합으로 대응합시다.
2~4의 대책을 담은 예
# vncserver :10001 -interface=10.132.75.77 -nolisten tcp
# ss -anptu|grep vnc
tcp LISTEN 0 5 10.132.75.77:15901 *:* users:(("Xvnc",pid=7779,fd=6))
명령 옵션의 설명은 다음과 같습니다.
vncserver --help
및 Xvnc --help
로 다른 옵션의 확인도 가능합니다. firewall의 구성은 이번에는 소개하지 않지만, 별도 반드시 해 둡시다. GUI를 도입할 때 모르는 서비스가 오르고 있을 가능성도 있으므로,
ss -anptu
로 모르는 서비스가 오르고 있는지 어떤지 체크 필수입니다.※ 참고로 systemd가 TCP 포트 111에서 포트 오픈하고 있었으므로, 나는 다음과 같이 무효화했습니다.
# systemctl stop rpcbind.socket
# systemctl disable rpcbind.socket
Reference
이 문제에 관하여(클라우드 환경의 CentOS7/RHEL7에서 "안전하게"GUI(VNC)를 도입·이용하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/testnin2/items/70da80eac9b74c6a28f0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)