일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- windows ssh
- 마인크래프트 포트포워딩
- 마인크래프트 ssh
- 마인크래프트 버킷
- 마인크래프트 지역트리거
- putty
- ssh 암호로 접속 제한
- 마인크래프트 클릭트리거
- variabletriggersv1
- 마인크래프트 ssh rcon
- 마인크래프트
- variabletriggers 구버전
- variabletriggers
- vtv1
- rdp 보안
- 통신사 공유기 포트포워딩
- SSH
- 마인크래프트 워크트리거
- 마인크래프트 variabletriggers
- 마인크래프트 서버
- ipban
- ssh rdp
- ssh-rdp
- 마인크래프트 rcon
- digitalruby
- 마인크래프트 서버관리
- ssh 키로만 접속
- 마인크래프트 트리거
- 마인크래프트 커맨드트리거
- 보안 rdp
- Today
- Total
개발하는 설기
SSH 와 RDP 의 연동: 안전하게 RDP 사용하기 (하) 본문
SSH 와 RDP 의 연동: 안전하게 RDP 사용하기 (상) (tistory.com)
SSH 와 RDP 의 연동: 안전하게 RDP 사용하기 (상)
https://blog.studysulgi.xyz/5 SSH 를 이용하여 외부에서 마인크래프트 서버 관리하기 - (하)SSH 를 이용하여 외부에서 마인크래프트 서버 관리하기 - (상) (tistory.com) SSH 를 이용하여 외부에서 마인크래프
blog.studysulgi.xyz
SSH 와 RDP 의 연동: 안전하게 RDP 사용하기 (중) (studysulgi.xyz)
SSH 와 RDP 의 연동: 안전하게 RDP 사용하기 (중)
SSH 와 RDP 의 연동: 안전하게 RDP 사용하기 (상) (tistory.com) SSH 와 RDP 의 연동: 안전하게 RDP 사용하기 (상)https://blog.studysulgi.xyz/5 SSH 를 이용하여 외부에서 마인크래프트 서버 관리하기 - (하)SSH 를 이
blog.studysulgi.xyz
이전 글에서 SSH 를 이용하여 RDP 에 안전하게 접근할 수 있는 방법을 소개하고, PuTTY 를 이용하여 '딸깍' 으로 내 서버에 연결하는 방법에 대해서 설명을 드렸습니다.
그럼에도 불구하고 내가 콘솔창에 들어가서 비밀번호를 적어줘야 비로소 SSH 가 개시된다는 한계점이 있었죠. 이는 SSH 의 기본 설정이 '암호를 이용한 인증' 으로 되어있기 때문입니다.
그런데 이 '암호를 이용한 인증' 은 생각보다 위험할 수 있습니다. 사람은 무의식적으로 어떤 곳에서 암호를 정할 때 자신에게 익숙한 단어나 숫자 등을 조합하여 암호를 만들고, 그러한 암호를 거의 대부분 동일하거나 비슷하게 사용합니다. 즉 만에 하나 내가 어떠한 사이트에서 사용하던 계정과 암호가 탈취당하게 되면, 대부분의 암호가 동일하므로 굉장히 빠른 속도로 개인정보를 탈취 당하게 되죠.
SSH 의 경우 서버에 대해 로컬에서 사용하는 것과 거의 동일한 권한으로 사용할 수 있기 때문에 '암호를 이용한 인증' 을 활성화해둔다면 언제든지 서버가 누군가에 의해서 탈취당할 여지를 주는 것과 마찬가지입니다. 그런 이유로 SSH 를 사용할 때는 암호가 아닌 키 파일을 이용한 인증을 사용하는 경우가 훨씬 많습니다.
키 파일을 이용한 인증은 RSA 방식, 즉 공개키와 개인키 2개를 발행하고 서버에는 공개키를, 클라이언트에게는 개인키를 부여하여 개인키를 이용하여 공개키와의 매칭을 통해 권한이 있는지, 없는지를 검사하는 방식을 사용하고 있습니다.
오늘은 SSH 를 접근하는데에 있어서 키 파일을 이용한 인증을 활성화하고, 암호를 이용하는 인증을 비활성화하여 SSH 보안을 완성하는 것을 목표로 진행해보도록 하겠습니다.
# SSH 에 사용할 키 파일 만들기
키 파일은 서버와 클라이언트 모두에서 만들 수 있습니다. 규모가 큰 서버를 운용하는 경우에는 클라이언트에서 키 파일을 만들어서 서버의 주인에게 전달해주면 추가해주는 방식을 채택하지만, 우리처럼 개인을 위한 경우에는 서버 단위에서 키 파일을 만드는 경우가 더 많습니다.
우선 Windows 검색 창에 'Windows Powershell' 을 검색하고, 마우스 우클릭을 통해 관리자 권한으로 실행해줍니다. 나타난 Windows Powershell 앞에 관리자: 라고 표시되어 있어야 합니다. 콘솔 창에 'ssh-keygen' 을 입력합니다.
그 다음, 키 파일이 저장될 위치를 적어줘야 합니다. 저는 이 작업을 수행한 적이 있기 때문에 경로가 지정되어 있지만, 경로가 지정되어 있지 않은 경우 "C:\Users\내사용자명/.ssh/id_rsa" 라고 적어주시면 됩니다. 만약 경로가 지정되어 있다면 그냥 Enter 키를 누르면 됩니다.
비밀번호를 적는 란입니다. 여기에 비밀번호를 적으면 새로 발급할 키에 비밀번호를 포함하게 되는데, 비워도 상관 없습니다. 비우지 않으실 예정이라면 아무 문구나 써주시면 되고, 비우실 예정이라면 그냥 Enter 키를 눌러주세요.
그러면 키가 생성되었다는 문구와 함께 특이한 그림을 보여주게 됩니다. 이걸로 키의 생성은 끝났습니다.
이제 이 키 파일들이 있는 곳으로 이동해보겠습니다. Windows + R (키보드) 를 눌러 실행을 열고 거기에 "C:\Users\내사용자명\.ssh" 을 입력해주세요.
그럼 사진과 같이 id_rsa, id_rsa.pub 파일이 생성된 것을 확인할 수 있습니다. 이제 이 파일들을 이용하여 서버에 접근할 수 있도록 설정을 해주어야 합니다.
Windows + R (키보드) 을 눌러 실행을 열고, notepad 를 입력하여 메모장을 열어주고, id_rsa.pub 파일도 메모장으로 열어줍니다. 그러면 이런 상황이 됩니다.
이제 id_rsa.pub 파일에 있는 모든 텍스트를 새로운 텍스트 문서에 복사 후 붙여넣기하고, 파일 이름을 'authorized_keys' 라고 저장하면 됩니다.
저장된 파일을 보면 authorized_keys.txt 로 저장이 되어 있을텐데, 이름을 바꿔서 .txt 확장자 없이 'authorized_keys' 가 되게 만들고, 이 파일을 아까 열었던 .ssh 폴더에 넣어주면 됩니다.
이렇게 하면 id_rsa 파일을 이용하여 암호가 아닌 키를 이용하여 SSH 를 접근할 수 있게 되는데, 더 해주어야 할 설정이 있습니다. 여기서부터가 매우 중요합니다!
Windows 검색 창에 'cmd' 를 검색한 후 마우스 오른쪽 클릭을 하여 관리자 권한으로 실행해주세요.
나온 콘솔 창에 다음 명령어를 적어주세요.
net user Administrator /active:yes
명령을 잘 실행했다는 문구가 나오면, 다음 명령어를 적어주세요.
net user Administrator *
그러면 변경할 암호를 입력하게끔 하는데, 설정하고자 하는 암호를 입력하고 Enter 를 누르면 한 번 더 입력하라고 합니다. 비밀번호의 입력이 끝나고 명령을 잘 실행했다는 문구가 나오면 콘솔 창을 꺼줍니다. 여기서 비밀번호를 설정하지 않으면 보안에 있어서 심각한 위험이 있을 수 있으니, 반드시 안전한 암호를 설정해주세요.
이제 사용하고 있는 계정을 로그오프하면, 로그인 화면에 'Administrator' 이라는 계정이 표시됩니다. 설정한 비밀번호와 함께 로그인을 해주세요.
로그인이 완료되면, Windows + R (키보드) 을 눌러서 실행을 열고, C:\ProgramData\ssh 를 입력합니다.
수 많은 설정 중에서 sshd_config 을 메모장으로 열어줍니다.
여기에서 PasswordAuthentication 설정을 바꿔주어야 합니다. 최초 설정에서는 #PasswordAuthentication yes 라고 되어 있습니다. 여기서 #을 제거하고 yes 를 no 로 변경해서 사진과 똑같이 되도록 해주세요.
텍스트 파일을 끝까지 내리면 Match Group administrators 라고 나와있는 구문이 있습니다. 해당 구문과 그 아랫 구문의 맨 앞에 #을 각각 추가하여 사진과 똑같이 되도록 하고, Crtl+S 를 눌러서 저장해주세요.
이제 Administrator 계정에서 로그아웃한 후, 평소에 쓰던 계정으로 다시 돌아오면 됩니다.
마지막으로, Administrator 계정을 다시 비활성화 해야 합니다. 이 계정을 메인으로 쓰는 것은 보안 상 매우 위험한 일이기 때문에 별도의 계정을 쓰는 것이 권장되는데, Windows Server 에서 이 글을 따라하고 계시는 경우 해당되지 않습니다.
Windows 검색창에 powershell 을 입력한 후, 마우스 오른쪽 클릭을 하여 관리자 권한으로 실행합니다.
powershell 창이 나오면, 다음과 같은 명령어를 입력해줍니다.
net user Administrator /active:no
이를 통해 관리자 계정은 비활성화 되었으며, SSH 이용 시 암호를 이용한 로그인이 금지되고 키를 사용한 로그인만이 강제됩니다. 이러한 설정을 SSH 에 적용하기 위해서 다음과 같은 명령어를 각각 입력해줍니다.
net stop sshd
net start sshd
다음과 같이 서비스가 잘 멈춰졌다가 잘 시작된 것을 확인하고 나면, 모든 변경사항이 적용된 것입니다!
이제 해당 키를 이용하여 SSH 로 접속하는 방법을 소개해드려야 할텐데요.
아까의 .ssh 폴더에 들어가보면, 분명 id_rsa 파일과 id_rsa.pub 파일이 생성되었습니다. 여기서 id_rsa.pub 는 이제 지워도 되지만, id_rsa 파일은 우리가 해당 서버에 접속할 때 필요한 키 파일입니다.
테스트를 위해서 이 id_rsa 파일을 바탕화면에 넣어두도록 하겠습니다.
Windows + R (키보드) 을 눌러 실행 창을 열고, 'cmd' 를 입력해줍니다.
그 다음 바탕화면으로 이동하기 위해서 'cd Desktop' 이라고 입력해줍니다.
여기에서 ssh 를 연결해보겠습니다. 키 파일을 이용하여 ssh 를 입력할 때에는 ssh -i 를 이용해야 합니다. 따라서 구문은 이렇게 작성해주어야 합니다.
ssh 사용자이름@IP주소 -i id_rsa
여기서 id_rsa 가 아니라 id_rsa 파일이 있는 경로를 입력해도 접근할 수 있으며, 여기까지 잘 따라오셨다면 아마 제대로 접속이 될 겁니다. 그런데 문득 궁금해지죠, '-i 를 안써서 키를 안불러오면 비밀번호를 물어볼테고, 그러면 비밀번호를 눌러서 접속할 수 있는거 아닌가?' 바로 확인해보겠습니다.
바로 권한 없음 오류를 내보내면서 차단해버립니다. 애초에 설정에서 암호를 통한 접근은 막았고, 키를 사용한 접근만을 허용해놨으니 이 결과는 예견된거나 마찬가지였다고 볼 수도 있겠습니다.
이때 주의할 사항을 알려드리겠습니다. 우리가 지금까지 했던 과정은 서버의 인가된 키값에 공개키를 저장하고, 개인키를 이용하여 접속할 수 있도록 한 것인데, 이 공개키와 개인키는 1대1 대응을 하며 등록되어 있는 공개키에 대응하는 개인키가 특정한 PC나 모바일에서 사용되었다면 이는 해당 기기에 귀속됩니다.
이 말인즉 한 번 어떤 기기에서 사용했던 개인키를 다른 기기에서 사용하는 것은 불가능하다는 뜻입니다. 실제로 중복되는 개인키를 이용하여 서버에 접근을 하려고 하면, 위변조된 키 값이라는 경고를 내보내면서 접속 허가를 내려주지 않습니다. 따라서 여러 기기에서 한 서버에 접근하기 위해서는 각각의 기기를 위한 키 값을 생성해주어야 합니다!
생성된 키 값은 아까 .ssh 폴더에 만들었던 'authorized_keys' 에, 공개키의 값을 추가하는 것으로 업데이트할 수 있습니다. 이렇게 한 번 특정 기기에서 사용된 키 파일을 다시 사용할 수 없는 부분 때문에 대형 서버나 기업에서는 클라이언트에서 키를 생성해서 공개키만을 서버에 업로드하는 방식을 채택하고 있는 것입니다.
한편, 우리가 만들었던, PuTTY 를 이용해서 바로 RDP 를 키는 건 어떻게 되는걸까요? 암호를 이용해야 하고 암호를 입력해야 RDP 가 켜지는건데, 이젠 못쓰는걸까요?
다음 포스팅 예고:
PuTTY 를 이용한 keygen 과 powershell 을 이용한 keygen 이 기본적으로 만들어내는 키는 약간 다릅니다. powershell 에서 만든 key 를 이용하여 PuTTY 에서 사용하기 위해서는 약간의 변환 작업이 필요하거든요. 그래서 우리는 선택을 해야 합니다. powershell 에서 생성한 키를 변환해서 PuTTY 에서 불러오게 할지, 아니면 PuTTY 에서 생성한 키를 서버의 authorized_keys 에 추가해줄지를 말입니다.
두 가지 방법 중에서 정공법을 택해야 한다면 전자가 되겠지만, 후자의 경우에는 유지보수가 굉장히 쉽고 적용하는데까지 걸리는 시간이 훨씬 짧다는 압도적인 장점이 있습니다. 따라서 다음 포스팅에서는 PuTTY 에서 키를 생성하고 이 키를 저장, 서버에 적용시키는 과정에 대해서 소개를 하고자 합니다.
아마 다음에 올라올 SSH 와 RDP 의 연동: 안전하게 RDP 사용하기 (번외) 편이 크게 보면 SSH 카테고리에 올라올 마지막 포스팅일 가능성이 높습니다. 최초에 SSH 카테고리를 만들어놓은 것은 어디까지나 마인크래프트 서버를 여는 사람들을 위해서, rcon 과 SFTP 를 활용하여 효율적으로 서버를 관리할 수 있는 방법이 있다는 것을 소개하기 위함이었습니다. 조금 깊은 영역까지 다루다보니 제가 생각했던 것보다 더 많은 글이 나왔네요.
번외편의 포스팅이 올라오고 난 뒤에는 SSH 카테고리에 대한 업데이트는 잠시 미뤄두고, Apache / Tomcat 을 활용한 웹서버의 구축과 인증, 더 나아가서 도메인의 연동 등 마인크래프트 서버를 운영하는 사람들이 서버를 운영하는데에 있어서 도움이 될 만한 내용들을 위주로 포스팅을 진행해볼 생각입니다.
초보 블로거로서 글솜씨는 훌륭하지 않더라도, 정확한 정보를 전달하고 방법이 아닌 원리를 가르쳐드릴 수 있는 게시글을 작성하기 위해서 항상 정진하도록 하겠습니다.
글의 내용에 틀린 부분이 있거나 궁금하신 점이 있다면 댓글을 남겨주시거나 mastersulgi@studysulgi.xyz 로 메일 남겨주세요! 확인하는대로 곧장 답변을 드리도록 하겠습니다.
'SSH' 카테고리의 다른 글
SSH 와 RDP 의 연동: 안전하게 RDP 사용하기 (번외) (2) | 2024.08.16 |
---|---|
SSH 와 RDP 의 연동: 안전하게 RDP 사용하기 (중) (96) | 2024.08.14 |
SSH 와 RDP 의 연동: 안전하게 RDP 사용하기 (상) (0) | 2024.08.12 |
SSH 를 이용한 SFTP 사용해보기 (0) | 2024.08.11 |
SSH 를 이용하여 외부에서 마인크래프트 서버 관리하기 - (하) (0) | 2024.08.11 |