10강 / 20강
SSH 굳히기 — 관리자의 문을 좁힌다
비밀번호 로그인 끄기 · root 차단 · 공개키
7강에서 무차별 대입으로 SSH 비밀번호가 뚫리는 걸 봤습니다. 강한 비밀번호로 늦출 수는 있지만, 근본 해결은 다릅니다 — 맞힐 수 있는 문 자체를 없애는 것입니다.
이번 강의는 SSH 설정(/etc/ssh/sshd_config)을 고쳐 관리 통로를 굳힙니다.
5강에서 배운 공개키가 여기서 실전으로 쓰여요.
공개키 인증 — 비밀번호 없이 들어가기
공개키 인증은 5강의 그 열쇠 짝을 씁니다. 공개키는 서버에 등록해 두고, 개인키는 내 노트북에만 둡니다. 로그인할 때 서버가 "이 개인키 가진 사람 맞아?"를 비밀번호를 주고받지 않고 확인해요. 네트워크에 비밀번호가 아예 안 흐릅니다.
개인키(id_ed25519)와 공개키(.pub) 둘이 생깁니다.
🖥️ 내 가상 서버
브라우저 안에서 실행 (계산용)
이제 비밀번호 문을 닫습니다
공개키로 들어갈 수 있게 됐으면, 비밀번호 로그인을 꺼도 됩니다. 그러면 7강의 무차별 대입이 시도할 곳조차 없어져요. 실습실에서 바꿔 봅시다.
PasswordAuthentication yes
맞힐 수 있는 문. 사전을 돌릴 수 있음
PasswordAuthentication no
비밀번호라는 문이 아예 없음. 사전이 소용없음
PermitRootLogin 과 PasswordAuthentication 값을 보세요.
🖥️ 내 가상 서버
브라우저 안에서 실행 (계산용)
root 직접 로그인을 막는 이유
PermitRootLogin no 도 중요합니다. 두 가지 이유예요.
- 공격 대상 축소 — 모든 서버에 'root'라는 계정이 있으니, 공격자는 root 만 노리면 됩니다. 이걸 막으면 공격자는 계정 이름부터 알아내야 해요.
- 책임 추적 — 모두가 root 로 들어오면 로그에 전부 'root'로 찍혀
누가 무엇을 했는지 알 수 없습니다. 일반 계정으로 들어와
sudo로 작업하면, 감사 로그(18강)에 '원래 누구였는지'가 남아요.
설정에 따라 문 앞에서 막히는지 보세요.
🥷 공격자
브라우저 안에서 실행 (계산용)
🤔 확인 문제
SSH 무차별 대입을 근본적으로 막는 방법은?
해설 비밀번호 로그인을 끄면 맞힐 수 있는 문 자체가 사라집니다. 사전을 아무리 돌려도 시도할 곳이 없어요. 강한 비번·포트 변경은 늦추는 보조 수단일 뿐입니다.
🤔 확인 문제
PermitRootLogin no 로 root 직접 로그인을 막으면 얻는 이점이 아닌 것은?
해설 속도와는 무관합니다. root 로그인 차단은 공격 대상 축소와 책임 추적을 위한 것이에요. 모두가 root로 들어오면 로그가 전부 root라 누가 했는지 알 수 없습니다.