CS/Linux

[Linux] Xrdp 서버

kyoulho 2024. 10. 3. 20:49

Xrdp는 리눅스 서버에 원격 데스크탑 프로토콜(RDP)을 통해 접속할 수 있도록 해주는 오픈 소스 도구로, 윈도우의 원격 데스크탑과 유사한 환경을 제공한다.


Xrdp 서버 설치

Rocky Linux에 Xrdp 서버를 설치하기 위해 다음 단계를 따라 진행한다.

1. 시스템 업데이트

먼저, 시스템 패키지를 최신 상태로 업데이트한다.

sudo dnf update -y

2. EPEL 저장소 활성화

Xrdp는 EPEL(Extra Packages for Enterprise Linux) 저장소에 포함되어 있으므로, EPEL 저장소를 활성화해야 한다.

sudo dnf install epel-release -y

3. Xrdp 설치

EPEL 저장소가 활성화된 후, Xrdp 패키지를 설치한다.

sudo dnf install xrdp -y

4. Xrdp 서비스 시작 및 활성화

설치가 완료되면 Xrdp 서비스를 시작하고, 시스템 부팅 시 자동으로 시작되도록 설정한다.

sudo systemctl start xrdp
sudo systemctl enable xrdp


데스크탑 환경 설치

Xrdp는 GUI 환경이 필요하므로, 데스크탑 환경을 설치해야 한다. 이 가이드에서는 GNOME 데스크탑을 기준으로 설명한다.

1. GNOME 데스크탑 설치

sudo dnf groupinstall "Server with GUI" -y

2. 기본 타겟을 그래픽 타겟으로 설정

sudo systemctl set-default graphical.target

3. 그래픽 타겟으로 전환

sudo systemctl isolate graphical.target

 

사용자 계정 설정

Xrdp를 통해 접속할 사용자 계정을 설정하거나 기존 사용자의 접근 권한을 확인한다.

사용자 계정 생성 (필요 시)

sudo adduser xrdpuser
sudo passwd xrdpuser

사용자 그룹 확인

Xrdp는 기본적으로 ssl-cert 그룹을 사용하므로, 필요에 따라 사용자 그룹을 확인하고 추가할 수 있다.

sudo usermod -aG ssl-cert xrdpuser

 

방화벽 설정

Rocky Linux는 기본적으로 firewalld를 사용하므로, Xrdp가 사용하는 포트(기본: 3389)를 열어야 한다.

Xrdp 서비스 허용

sudo firewall-cmd --permanent --add-service=xrdp
sudo firewall-cmd --reload

포트 확인

Xrdp가 기본 포트 3389를 사용하는지 확인하고, 필요 시 변경할 수 있다. 포트를 변경할 경우, 변경된 포트를 방화벽에서 허용해야 한다.

sudo firewall-cmd --permanent --add-port=3389/tcp
sudo firewall-cmd --reload


보안 고려 사항

Xrdp를 통해 원격 데스크탑에 접속할 때는 보안에 유의해야 한다. 다음과 같은 보안 강화 방안을 고려할 수 있다.

SSH 터널링 사용

Xrdp 접속을 SSH 터널링을 통해 암호화하여 보안을 강화할 수 있다. 클라이언트에서 로컬 포트 3389를 통해 Xrdp에 접속한다.

ssh -L 3389:localhost:3389 xrdpuser@서버\_IP주소

포트 변경

기본 포트 3389를 다른 포트로 변경하여 자동화된 공격을 방지할 수 있다. 포트를 변경하려면 /etc/xrdp/xrdp.ini 파일을 편집한다.

sudo vi /etc/xrdp/xrdp.ini

[globals] 섹션에서 port=3389를 원하는 포트 번호로 변경한 후, 방화벽에서도 해당 포트를 열어준다.

\[globals\]  
port=3390

변경 후, 방화벽에서 새로운 포트를 허용한다.

sudo firewall-cmd --permanent --add-port=3390/tcp  
sudo firewall-cmd --reload

Fail2Ban 설치

Xrdp 접속 시도를 모니터링하고, 의심스러운 IP 주소를 자동으로 차단하는 Fail2Ban을 설치할 수 있다.

sudo dnf install fail2ban -y  
sudo systemctl enable fail2ban  
sudo systemctl start fail2ban

Xrdp를 위한 별도의 jail을 설정하여 보호할 수 있다.

TLS 인증서 사용

Xrdp는 TLS 인증서를 사용하여 연결을 암호화할 수 있다. 자체 서명된 인증서를 생성하거나 신뢰할 수 있는 인증 기관에서 인증서를 발급받아 설정할 수 있다.

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/xrdp/key.pem -out /etc/xrdp/cert.pem

생성된 인증서를 /etc/xrdp/xrdp.ini 파일에 설정한다.

\[globals\]  
certificate=/etc/xrdp/cert.pem  
key\_file=/etc/xrdp/key.pem

설정을 변경한 후, Xrdp 서비스를 재시작한다.

sudo systemctl restart xrdp
728x90

'CS > Linux' 카테고리의 다른 글

[Linux] Firewalld vs Iptables  (0) 2024.10.05
[Linux] IP 주소를 얻는 내부 흐름  (0) 2024.10.04
[Linux] GUI 방화벽 설정  (1) 2024.10.03
[Linux] OpenSSH  (1) 2024.10.03
[Linux] 텔넷 서버  (2) 2024.10.03