Linux Server Deployment & SSH Mastery · 강의

SSH 서버 보안 강화

sshd_config를 편집해 SSH 서버를 잠급니다. 루트 및 비밀번호 로그인을 비활성화하고, 위험한 기본값을 변경하며, 사용자를 제한하고, 신뢰할 수 있는 클라이언트만 연결할 수 있도록 다층 보호를 적용합니다.

레슨 4/413개 단계

SSH 서버 보안 강화은(는) CoddyKit의 무료 Linux Server Deployment & SSH Mastery 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Linux Server Deployment & SSH Mastery 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Linux Server Deployment & SSH Mastery 강의에는 총 4개의 강의가 포함되어 있습니다.

SSH를 강화해야 하는 이유

인터넷에 노출된 SSH 서버는 자동화된 공격의 끊임없는 표적이 됩니다. 기본 설정은 봇이 집요하게 조사하는 여러 진입점을 그대로 열어 둡니다.

보안 강화란 서버 측 구성을 더 엄격하게 조정하여 공격자가 서버를 발견하더라도 무차별 대입으로 침입할 수 없게 만드는 것입니다.

sshd_config 파일

서버 측 SSH 동작은 /etc/ssh/sshd_config에서 제어합니다. 이는 앞에서 구성한 클라이언트 구성(~/.ssh/config)과 다릅니다.

항상 root 권한으로 편집하고, 변경하기 전에 백업을 보관하십시오.

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
sudo nano /etc/ssh/sshd_config

root 로그인 비활성화

root 계정은 공격자가 가장 먼저 시도하는 대상입니다. root 직접 로그인을 비활성화하면 공격자는 유효한 사용자 이름도 추측해야 합니다.

PermitRootLogin을 no로 설정하십시오. 관리자는 일반 사용자로 로그인한 다음 sudo를 사용해야 합니다.

PermitRootLogin no

비밀번호 인증 비활성화

키 기반 인증이 작동하면 비밀번호를 완전히 끄십시오. 추측할 비밀번호가 없어지므로 무차별 대입 공격을 완전히 차단할 수 있습니다.

경고: 이 설정을 적용하기 전에 키 로그인이 작동하는지 확인하십시오. 그렇지 않으면 시스템에 접근하지 못할 수 있습니다.

PasswordAuthentication no
ChallengeResponseAuthentication no
PubkeyAuthentication yes

로그인할 수 있는 사용자 제한

AllowUsers 또는 AllowGroups를 사용하여 SSH를 사용할 수 있는 계정을 정확히 허용 목록에 지정할 수 있습니다. 목록에 없는 사용자는 유효한 키가 있어도 거부됩니다.

다중 사용자 서버에서 사용할 수 있는 강력하고 간단한 제어 방법입니다.

AllowUsers deploy admin
# or by group:
AllowGroups sshusers

기본 포트 변경(선택 사항)

SSH를 포트 22에서 다른 포트로 옮겨도 실제 보안이 강화되지는 않지만, 로그에 기록되는 자동화된 스캐너의 잡음을 크게 줄일 수 있습니다.

표준이 아닌 포트를 선택하고, 방화벽에서 해당 포트를 열며 클라이언트에도 포트 정보를 알려 주십시오.

Port 2222

로그인 시도와 세션 제한

다음 지시어는 공격자가 활동할 수 있는 시간을 줄입니다.

  • MaxAuthTries — 연결이 끊기기 전 허용되는 실패 시도 횟수
  • LoginGraceTime — 인증에 허용되는 시간(초)
  • MaxSessions — 연결당 동시 세션 수
MaxAuthTries 3
LoginGraceTime 30
MaxSessions 2

안전하게 변경 사항 적용하기

편집한 후 다시 시작하기 전에 sshd -t로 구문을 검증하십시오. 오타로 인해 서비스가 시작되지 않아 시스템에 접근하지 못할 수 있습니다.

그런 다음 서비스를 다시 불러오십시오. 현재 세션은 열어 둔 상태로 새 연결을 테스트한 후 기존 세션을 종료하십시오.

sudo sshd -t
sudo systemctl restart ssh

Fail2ban으로 무차별 대입 공격 방어하기

Fail2ban은 인증 기록을 감시하고, 너무 많이 실패한 IP를 일시적으로 차단합니다. sshd 설정에 동적인 방화벽 계층을 추가합니다.

Fail2ban을 설치하고 SSH 감옥을 활성화하십시오. 기본값은 대부분의 서버에 적합합니다.

sudo apt install fail2ban
sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd

보안 강화 확인하기

이제 서버가 비활성화한 항목을 거부하는지 확인하십시오. 자세한 출력으로 연결을 시도하여 서버가 제공하는 인증 방법을 확인하십시오.

보안이 강화된 서버는 publickey만 알리고 비밀번호 로그인과 root 로그인을 거부해야 합니다.

ssh -v deploy@server
# Look for: 'Authentications that can continue: publickey'

권장 사항

시간이 지나도 SSH 서버를 안전하게 유지하십시오:

  • 키 로그인을 테스트하기 전에 PasswordAuthentication no를 절대 적용하지 마십시오
  • 설정을 변경하는 동안 열려 있는 세션을 하나 유지하십시오
  • 편집할 때마다 sshd -t를 사용하십시오
  • sshd 보안 강화 설정을 방화벽 및 Fail2ban과 함께 사용하십시오

빠른 확인

SSH 보안 강화에 관한 지식을 테스트해 보십시오.

복습

/etc/ssh/sshd_config를 통해 SSH 서버의 보안을 강화했습니다:

  • root 로그인과 비밀번호 로그인 비활성화
  • AllowUsers로 허용된 사용자 지정
  • MaxAuthTries 및 LoginGraceTime 조정
  • 동적인 무차별 대입 공격 방어를 위해 Fail2ban 추가

sshd -t로 확인하고, 세션을 종료하기 전에 항상 테스트하십시오.

무료로 시작

AI 튜터와 함께 Linux Server Deployment & SSH Mastery을(를) 배우세요 — 무료

브라우저에서 실제 코드를 작성하고 실행하며, 24/7 AI 튜터로부터 즉각적인 도움을 받고, 웹이나 앱에서 중단한 부분부터 계속 학습하세요.

코스
12
레슨
48

자주 묻는 질문

“SSH 서버 보안 강화” 강의는 무료인가요?

네 — “SSH 서버 보안 강화” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Linux Server Deployment & SSH Mastery 강의 전체를 잠금 해제할 수 있습니다. Linux Server Deployment & SSH Mastery 강의에는 총 4개의 강의가 포함되어 있습니다.

“SSH 서버 보안 강화”에서 뭘 배우나요?

sshd_config를 편집해 SSH 서버를 잠급니다. 루트 및 비밀번호 로그인을 비활성화하고, 위험한 기본값을 변경하며, 사용자를 제한하고, 신뢰할 수 있는 클라이언트만 연결할 수 있도록 다층 보호를 적용합니다. 브라우저에서 직접 실행하는 실습 코드로 Linux Server Deployment & SSH Mastery을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Linux Server Deployment & SSH Mastery을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Linux Server Deployment & SSH Mastery은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.

“SSH 서버 보안 강화” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Linux Server Deployment & SSH Mastery 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Linux Server Deployment & SSH Mastery 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. SSH 프로토콜 이해하기
  2. SSH 클라이언트 구성
  3. SSH 키 기반 인증
  4. SSH 서버 보안 강화
← Linux Server Deployment & SSH Mastery(으)로 돌아가기