Nginx의 stream(TCP 프록시) 기능으로 3389번 포트 요청을 내부 PC로 넘겨, Nginx 서버 IP로 원격 데스크톱에 접속하도록 설정했습니다.
1. 환경
| 항목 | 내용 |
| OS | Ubuntu Server 18.04 |
| 프록시 | Nginx (stream 모듈) |
| 대상 | 내부 PC의 RDP(3389/TCP) |
RDP는 HTTP가 아니라 TCP 프로토콜이므로, http 블록이 아닌 stream 블록에서 설정합니다.
2. 설정
2.1 Nginx 설치
apt-get install -y nginx
2.2 nginx.conf 수정
vi /etc/nginx/nginx.conf
파일 맨 아래(http 블록 바깥)에 stream 블록을 추가합니다. server에는 원격 접속할 PC의 IP를 입력합니다.
stream {
upstream rdp {
server 192.168.1.31:3389; # 원격 접속할 PC
}
server {
listen 3389;
proxy_pass rdp;
}
}

nginx.conf에 추가한 stream 설정
2.3 재시작
service nginx restart
3. 결과
원격 데스크톱 연결에서 Nginx 서버의 IP로 접속하면 설정한 PC로 연결됩니다.

Nginx 서버 IP로 원격 접속
4. 정리
- RDP 같은 TCP 서비스는 Nginx stream 블록으로 프록시합니다.
- stream 블록은 http 블록 바깥에 둡니다.
- 외부에 3389번 포트를 그대로 열면 무차별 대입 공격 대상이 되기 쉬우므로, 접속 IP 제한이나 다른 포트 사용을 함께 고려합니다.
728x90
'Server & OS > Linux' 카테고리의 다른 글
| [Ubuntu] Apache2 포트 기반 가상 호스트 설정 (0) | 2021.07.30 |
|---|---|
| [Ubuntu Server 18.04] Netplan으로 고정 IP 설정 (0) | 2021.07.28 |
| [Ubuntu 18.04] 커널 버전 업데이트하고 이전 커널로 되돌리기 (0) | 2021.05.22 |
| [Ubuntu 18.04] 부팅 시 GRUB 메뉴가 안 보일 때 해결 (0) | 2021.05.22 |
| [CentOS] yum 실행 시 "Loaded plugins: fastestmirror" 후 멈출 때 해결 (0) | 2021.03.15 |
서울
--:--:--
-전체 글
-카테고리
오늘 방문