일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- ssh rdp
- 마인크래프트 버킷
- ssh 암호로 접속 제한
- 마인크래프트 지역트리거
- 마인크래프트 서버
- 마인크래프트 ssh
- 마인크래프트
- vtv1
- 마인크래프트 포트포워딩
- 보안 rdp
- digitalruby
- SSH
- 마인크래프트 rcon
- 마인크래프트 워크트리거
- ipban
- variabletriggersv1
- 마인크래프트 ssh rcon
- windows ssh
- 마인크래프트 커맨드트리거
- variabletriggers
- 마인크래프트 variabletriggers
- 마인크래프트 트리거
- 통신사 공유기 포트포워딩
- variabletriggers 구버전
- ssh-rdp
- putty
- 마인크래프트 클릭트리거
- rdp 보안
- ssh 키로만 접속
- 마인크래프트 서버관리
- Today
- Total
개발하는 설기
SSH 와 RDP 의 연동: 안전하게 RDP 사용하기 (상) 본문
SSH 를 이용하여 외부에서 마인크래프트 서버 관리하기 - (하)
SSH 를 이용하여 외부에서 마인크래프트 서버 관리하기 - (상) (tistory.com) SSH 를 이용하여 외부에서 마인크래프트 서버 관리하기 - (상)일반적인 경우 서버를 여는 사람은 한 사람이고, 클라이언트
blog.studysulgi.xyz
SSH 를 이용하여 외부에서 마인크래프트 서버 관리하기 - (상)
일반적인 경우 서버를 여는 사람은 한 사람이고, 클라이언트의 배포나 서버의 관리도 이 한 사람이 도맡아서 합니다. 그러다보니 서버를 운영하는 사람은 좀처럼 자리를 비우기가 어렵습니다.
blog.studysulgi.xyz
SSH 를 이용한 SFTP 사용해보기
https://mastersulgi.tistory.com/4 SSH 를 이용하여 외부에서 마인크래프트 서버 관리하기 - (상)일반적인 경우 서버를 여는 사람은 한 사람이고, 클라이언트의 배포나 서버의 관리도 이 한 사람이 도맡아
blog.studysulgi.xyz
앞선 게시글들을 통해 SSH 를 구축하고 이를 이용하여 서버 컴퓨터에 접근하는 방법과 사용 예시 등을 소개드렸습니다. 더 나아가서 SSH 를 이용한 보안 FTP 인 SFTP 를 사용하는 법도 간단하게 소개를 해드렸고요.
< SFTP 사용해보기 > 글의 말미에서 제가 이런 얘기를 했더랬죠. 서버의 원격 관리의 정점은 SSH 를 이용하여 보안 연결된 RDP 를 이용하는 것이라고요. 실제로 RDP 를 다른 장치 없이 native 환경에 열어두면, 항상 무차별 대입 공격의 표적이 되기에 마음도 불편하고 서버 속도도 큰 폭으로 느려지거든요.
오늘의 SSH 와 RDP 를 연동하여, SSH 를 이용하여 서버 컴퓨터에 접속해야만 RDP 를 사용할 수 있는 메커니즘을 실현하는 것을 목표로 한 번 달려보도록 하겠습니다.
# RDP 가 정확히 뭔가?
RDP 는 Remote Desktop Protocol 의 약어로, Windows 로 호스팅되는 서버 컴퓨터 (내지는 개인 컴퓨터) 의 화면과 소리를 소프트웨어 렌더링을 통해 원격 컴퓨터에서 실시간으로 조회할 수 있는 프로토콜입니다.
현업에서는 보통 여러 대의 서버를 하나의 컴퓨터에서 관리하는 경우가 많은데다가 GUI 방식을 사용하는 것을 선호하지 않기에 SSH 와 SFTP 명령만 가지고 서버 관리를 하는 경향이 있습니다. 실제로 두 가지의 명령을 이용하면 서버 관리의 90% 를 직접 서버 컴퓨터 현장에 도착하여 행하는 것보다 더 효율적이고 빠르게 진행할 수 있습니다.
그럼에도 불구하고 일반 사용자들의 기준에서는 명령어를 이용하는 DOS 방식보다, 인터페이스가 있고 마우스를 이용할 수 있는 GUI 방식을 더 편하게 느낄 수 밖에 없습니다. 평소에 자신이 쓰던 것과 같은 환경을 사용할 수 있는 것보다 더 편한건 없을테니까요. RDP 는 이런 일반 사용자들의 니즈를 충족시킬 수 있는 매력적인 프로토콜입니다.
# RDP 의 보안적 한계
RDP 도 SSH 나 SFTP 처럼 특정한 포트를 이용하여 접속할 수 있게 하는게 일반적입니다. 따라서 RDP 를 사용하려면 필연적으로 해당 서비스를 이용하기 위한 포트를 방화벽과 공유기에서 열어주어야 하는데, 이로 인해 심각한 보안 오류를 초래합니다.
이건 이벤트 뷰어라고 하는, 컴퓨터에서 발생한 모든 이벤트를 사용자가 조회할 수 있는 Windows 의 기본 툴인데, 여기에서 감사 실패 항목, 즉 로그인 실패 이벤트만 하더라도 무수히 짧은 시간 동안 수 많은 공격이 들어오고 있다는 걸 알 수 있습니다.
이건 DigitalRuby 라는 깃헙에서 제공하고 있는 IPBan 이라는 툴입니다. SSH 나 RDP 접근이 들어오는 걸 실시간으로 볼 수 있는데, 잠깐 블로그 포스팅을 위해서 RDP 기본 포트 (3389) 를 열어두었더니 금새 공격이 들어오고 있는 걸 확인할 수 있습니다.
사용자 계정의 암호가 충분히 안전한 암호라면 모르겠으나, 대부분의 사람들은 자신의 계정에 암호를 걸어두지 않거나 유추하기 아주 쉬운 암호를 걸어두는 경우가 많습니다. 저런 공격자들이 쓰는 공격 방식은 대체로 '무차별 대입 공격', 즉 아무 계정과 암호를 들이부어서 그 중 맞는 걸 찾아내는 방식이기 때문에 RDP 포트를 열어두는 건 사실 상 자살 행위나 마찬가지라고 볼 수 있습니다.
이 뿐만이 아닙니다. RDP 는 기본적으로 평문으로 정보를 주고 받기 때문에 중간에서 패킷이나 데이터를 갈취하는 경우 데이터의 원본이 그대로 살아있습니다. 이 말인즉슨 얼마든지 패킷들을 모아서 정보의 원형을 재구성할 수 있다는 뜻이 됩니다.
# RDP 활성화하기
앞에서 언급한 RDP 의 단점과 보안적 한계는 분명합니다. 충분한 조치를 해두지 않고 RDP 를 사용하는 건 언제든 서버에 있어서 큰 위협을 초래할 수 있다는 것입니다. 그럼에도 RDP 의 장점은 일반 사용자들에게 있어서 포기하기 어렵기에, 일전에 구축해둔 SSH 와 RDP 를 연동함으로써 충분히 안전한 환경에서 RDP 를 사용할 수 있습니다.
시작하기 전의 경고입니다! 원격 데스크톱 기능은 Windows Pro / Windows Education 시리즈 및 Windows Server 시리즈에서만 활성화할 수 있습니다. 외부의 트윅을 이용하여 Windows Home 시리즈도 원격 데스크톱 기능을 활성화시킬 수는 있으나, 이 글에서는 해당 내용까지는 다루지 않습니다. 설정을 시작하기 전 자신의 Windows 버전이 Pro / Education / Server 시리즈인지 확인해보고, Home 시리즈라면 원격 데스크톱 기능을 활성화한 후 시작해주세요.
우선, Windows 검색창에 '원격 데스크톱 설정' 를 입력합니다.
여기에서 '원격 데스크톱' 이라고 써있는 항목을 '켬' 으로 변경해주시면 됩니다. 최근 서버에 문제가 있어서 포맷을 하느라 Windows 11 버전 기준의 사진이지만, Windows 10 의 경우 '원격 데스크톱 활성화' 라고 써있는 항목을 '켬' 으로 변경해주시면 됩니다.
일반적으로 RDP 를 사용하기 위해서는 3389 포트를 방화벽과 공유기에서 열어주는 작업을 거쳐야합니다. 그런데 SSH 를 서버에 구축해둔 우리에게는 공유기에서 포트포워딩 설정을 해줄 필요가 없습니다.
# SSH 터널링
SSH 에는 터널링이라고 하는 기가 막히는 기능이 있습니다. 터널링이란 접속자가 지정한 포트와 연결하는 서버의 포트를 동기화해서, SSH의 암호화는 적용하되 SSH 가 활성화되어야만 해당 서버의 포트에 접근할 수 있는 방식입니다.
이러한 기능을 이용하여 RDP 가 사용하는 포트인 3389 포트를 공유기에서 막아두더라도, 해당 포트를 동기화해서 RDP 포트와의 직접 연결이 가능할 수 있는 겁니다.
이는 RDP 를 사용하기 위해서 반드시 SSH 를 사용하게 강제하는 한편, RDP 에 native 로 액세스하는 것이 불가능하기 때문에 무차별 대입 공격을 효과적으로 차단할 수 있습니다. 또한 RDP 를 통해 주고받는 패킷이 SSH 를 통해서 암호화되기 때문에 오고가는 패킷을 중간에 갈취한다고 하더라도 정보의 원형을 재구성하는 것이 실질적으로 불가능해집니다.
# 터널링을 사용하는 방법
기존에 SSH 로 자신의 서버에 연결을 할 때, ssh 계정이름@서버주소 라는 명령어를 사용해서 접속을 하곤 했습니다. 여기에 매개 변수를 추가해주기만 하면 됩니다.
ssh 계정이름@서버주소 -L 접속하는컴퓨터의포트:localhost:3389
접속하는 컴퓨터의 포트는 자신이 원하는 아무 포트나 상관이 없지만, 이미 사용중인 포트인 경우 오류가 발생하니 적당한 값을 찾아서 변경해주면 됩니다. 보통 80, 21, 22, 3389, 25565 등과 같은 포트는 점유되어 있기 때문에 저는 2525로 설정을 해뒀습니다.
그러면 평소 SSH 에 접근하는 것과 똑같이 암호를 요구합니다. 암호를 입력하여 접속이 완료되면 SSH 터널링이 활성화된 것입니다.
# SSH 를 이용한 RDP 사용하기
이제 RDP 를 이용할 차례입니다. Windows 에서는 Windows + R (키보드) 를 눌러 실행을 연 뒤, mstsc 를 입력하여 원격 데스크톱 연결을 시작할 수 있고, macOS 에서는 Remote Desktop 이라고 하는 Microsoft 에서 제공하는 앱이 있습니다.
# macOS 에서 설정하기
macOS 의 앱의 경우 이렇게 GUI 로 Add PC 를 할 수 있습니다. 'Add PC' 버튼을 눌러줍니다.
PC name 에는 localhost:접속하는컴퓨터의포트 를 적고 'Add' 버튼을 누릅니다.
SSH 연결이 활성화되기 전까지 추가된 서버를 클릭해도 연결이 되지 않습니다. SSH 연결이 활성화되면 터널링이 활성화되면서 추가된 서버를 클릭했을 때 사용자이름과 암호를 입력해서 RDP 를 사용할 수 있습니다.
# Windows 에서 설정하기
Windows + R (키보드) 을 눌러 실행을 열고, 'mstsc' 를 입력합니다.
컴퓨터: 라고 써져있는 란에 localhost:접속하는컴퓨터의포트 를 입력하고 연결을 누르면 됩니다.
'옵션 표시' 버튼을 누르면 이 연결 설정을 저장할 수 있고, 해당 파일을 통해 아이콘으로 바로 접속하는 것도 가능합니다.
SSH 를 연결한 뒤에 RDP 를 사용하는 건 두 번의 과정을 거쳐야하므로 번거롭다고 생각하실 수도 있겠습니다만, 이런 번거로운 절차를 통해 수 없이 들어오는 공격을 차단하고 안전하게 RDP 를 사용할 수 있습니다.
다음 글에서는 서버를 운용하는데에 있어서 유용한 팁과 프로그램을 소개하고, 암호 방식이 아닌 키 방식을 통한 SSH 접근을 구현하는 걸 목표로 달려보도록 하겠습니다.
+2024.08.14. 추가
이 글을 (상) 편으로 삼고, (하) 편을 발행하기로 결정하였습니다! (하) 편에서는 PuTTY 라는 프로그램과 스크립트를 이용하여 편리하게 GUI 형식으로 SSH 에 접근하고 RDP 를 사용할 수 있는 방식을 소개하고자 합니다!
궁금하신 점이나 잘못된 부분이 있다면 댓글 남겨주세요.
확인하는대로 바로 답변드리도록 하겠습니다.
'SSH' 카테고리의 다른 글
SSH 와 RDP 의 연동: 안전하게 RDP 사용하기 (하) (98) | 2024.08.15 |
---|---|
SSH 와 RDP 의 연동: 안전하게 RDP 사용하기 (중) (96) | 2024.08.14 |
SSH 를 이용한 SFTP 사용해보기 (0) | 2024.08.11 |
SSH 를 이용하여 외부에서 마인크래프트 서버 관리하기 - (하) (0) | 2024.08.11 |
SSH 를 이용하여 외부에서 마인크래프트 서버 관리하기 - (상) (0) | 2024.08.10 |