실습과제 결과
실습과제로 VNC 서버를 구축하여 Client(Kubuntu 데스크톱)에서 Server(Linux 데스크탑)을 원격 접속해보았다.
우선 Linux 데스크톱에 접속하여 '설정'에서 화면 공유를 켜고 암호를 설정해준다. 그 후 터미널에서 dconf-editor를 설치해준다.

dconf-editor를 실행한 후 require-encryption의 설정을 해제해주고 ufw allow 5900/tcp 명령어로 방화벽 설정을 변경해준다.

다음으로 Kubuntu에 접속한 뒤 터미널을 열어 apt update를 해주고 xtightvncviewer를 설치한다.

마지막으로 vncviewer (IP주소) 명령을 입력하면 해당 IP주소의 컴퓨터로 원격 접속을 할 수 있게 된다. 아래 영상은 Kubuntu를 통해 나의 컴퓨터에 설치되어 있는 Linux 데스크톱에 원격 접속한 모습이다.
새로 배운 내용
이번에는 네트워크와 관련된 기본적인 개념들과 리눅스에서 IP 주소를 확인하는 법, 그리고 원격 접속에 관련된 내용을 학습하였다.
리눅스에서 IP주소를 확인하는 데에는 ifconfig 명령어를 사용하는데, 이를 사용하기 위해서는 우선 net-tools가 설치되어 있어야 한다.

그럼 다음과 같이 ens32 옆에 'inet'이라고 쓰여 있는 부분에 현재 IP주소가 나타나는 것을 확인할 수 있다.

이외에도 ipaddr이라는 명령어를 통해서도 IP주소를 확인할 수 있다.

그리고 네트워크 장치를 정지하거나 가동하는 데에는 ifup 또는 ifdown명령어가 사용되는데, 이는 ifupdown을 설치해주면 사용할 수 있다. 또한 네트워크 관리와 관련된 또 다른 명령어로 systemctl도 존재한다.
아래 사진은, 윈도우의 명령 프롬프트에서 리눅스 Server(b)로 신호를 보내어 데이터 송신이 잘 되는지 확인해본 것이다.

Client-Server Model 이란 서비스 요청자(Client)와 서비스 제공자(Server) 간의 작업을 분리해주는 분산 애플리케이션 구조이자 네트워크 아키텍처를 의미한다. Client-Server Model에는 아래와 같은 것들이 존재한다.
Web server - Web client
Telnet server - Telnet client
SSH server - SSH client
VNC server - VNC client
FTP server - FTP client
Oracle server - Oracle client
이 중 이번 실습에서는 Telnet server와 OpenSSH server(SSH server의 오픈소스 버전), VNC server를 구축하고 사용하는 실습을 해보았다.
Telnet server의 경우 텍스트 모드에서 사용이 가능하며 TCP/IP 스택을 갖춘 대부분의 네트워크 장비, 운영체제에서 사용이 가능하다. 하지만 보안이 취약하다는 단점으로 인해 현재는 Telnet server보다는 SSH server를 많이 사용한다.
Telnet server를 구축하기 위해서는 우선 Server(b)에서 xinetd와 telnetd를 설치해주어야 한다.

다음으로 telnet 설정파일을 생성해준다. vi /etc/xinetd.d/telnet명령을 입력 후 vi 에디터에서 아래와 같은 내용을 입력해준다.

그리고 adduser 명령어로 원격 접속에 사용해볼 테스트 사용자를 추가한다(꼭 필요한 과정은 아니다). 그 후 systemctl restart xinetd 명령을 입력하여 telnet 서비스를 가동시키고 systemctl status xinetd로 가동 여부를 확인한다.

ufw allow 23/tcp 명령으로 방화벽에서 23번 포트를 허용해주고 telnet (IP주소)를 입력하면 아래와 같이 입력한 IP주소로 원격 접속할 수 있게 된다.

Telnet은 기본적으로 윈도우에도 깔려있다. 윈도우 '제어판'에서 '기능 켜기/끄기'에 들어가 텔넷 기능을 켜주고 명령 프롬프트 창에서 telnet (IP주소)를 입력하면 해당 IP 주소로 원격 접속이 가능하다.

또는 iPuTTY를 설치하여도 telnet 원격 접속이 가능하다.

다음으로는 OpenSSH 서버를 통한 원격 접속 실습을 해보았다. SSH sever의 경우 데이터 전송 시 패킷을 암호화하여 IP Spoofing을 방지할 수 있다는 장점이 있다. 우선 Server(b)에 openssh-server를 설치한 후 systemctl 명령어로 ssh를 가동시킨다. 그 후 방화벽에서 22번 포트를 허용해주면 openssh 서버를 사용할 준비가 된 것이다. 아래 사진은 iPuTTY로 SSH server를 통한 원격 접속을 시도한 모습이다.

마지막으로 VNC server란 그래픽 모드로 원격 관리를 지원하는 서버로, 원격지에서 X window 환경을 사용할 수 있게 해준다. 이를 설치하고 실행하는 법은 위의 '실습과제'에 나와 있으니 생략하도록 하겠다.
문제가 발생하거나 고민한 내용
실습 초반에 Telnet server로 원격 접속하는 실습을 진행하였을 때, 윈도우에서 원격 접속을 시도하기 위해 '설정'에서 telnet을 입력하였으나 해당 기능을 찾을 수가 없어 조금 애를 먹었다. 인터넷을 찾아보니 나의 컴퓨터에서 telnet 기능이 꺼져있으면 이러한 문제가 발생할 수 있다는 것을 알 수 있었고, 제어판에서 telnet 기능을 켜고나니 정상적으로 telnet server를 이용할 수 있게 되었다.
회고
이번 실습은 내용이 유익하기도 했지만 특히나 재미있었던 것 같다. 내 컴퓨터로 다른 컴퓨터에 원격 접속할 수 있다는 사실이 흥미로웠고, VNC 서버를 통해 Kubuntu에서 Linux Server로 원격 접속을 해보며 재미를 느꼈다. 수업을 듣고 나니 리눅스 뿐만 아니라 윈도우끼리도 원격 접속을 할 수 있는 방법을 알고 싶다는 생각이 들었고, 시간이 된다면 따로 공부하여 내 노트북으로 우리 집에 있는 데스크탑에 원격 접속해보고 싶다.
'Linux 실습일지' 카테고리의 다른 글
Linux 실습일지(12) - Mail Server (0) | 2023.02.02 |
---|---|
Linux 실습일지(11) - DNS Server (0) | 2023.02.02 |
04 프로그램 개발 환경 구축 (0) | 2023.02.02 |
03 백업 자동화 (0) | 2023.02.02 |
02 RAID6 구성 (0) | 2023.02.01 |