인디노트

SSH 서버 보안 설정 본문

개발 플랫폼 및 언어

SSH 서버 보안 설정

인디개발자 2021. 4. 14. 07:31

OpenSSH 서버를 를 사용할 때 보안을 위해서 ssh 인증서를 설치하여 인증서 로그인을 하게됩니다.

이때, 암호 (Password) 로그인을 차단하는 방법에 대한 것입니다.

물론, 원격 접속중일때는 ssh 인증서로 로그인이 되는것을 확인 후 설정하길 바랍니다. 그렇지, 않으면 서버까지 가서 직접 무려서 해야 합니다. 설정 후에는 ssh 접속이 인증서를 사용할 경우에만 접속되기 때문입니다.

1. sshd_config 파일 수정하기

다음과 같은 명령으로 sshd_config 파일을 vi 에디터로 수정합니다.

# vi /etc/ssh/sshd_config

수정할 내용은 다음과 같습니다.

 

패스워드 차단, 공개키 인증방식만 허용

PermitRootLogin without-password
PasswordAuthentication no
PubkeyAuthentication yes

PermitRootLogin

  • yes : ssh 로 root 계정을 로그인 할 수 있습니다.
  • no : ssh 로 root 계정을 로그인 할 수 없습니다. (root 계정 차단)
  • without-password : ssh 로 root 계정을 로그인 할 수 있지만 패스워드 방식은 차단합니다.

PasswordAuthentication

  • yes : ssh 로그인시 패스워드 방식으로 로그인 할 수 있습니다.
  • no : ssh 로그인시 패스워드 방식으로 로그인 할 수 없습니다. (패스워드 접근 차단)

PubkeyAuthentication

  • yes : ssh 로그인시 공개키 방식을 허용합니다.
  • no : ssh 로그인시 공개키 방식을 차단합니다.

 

빈 암호 차단

또한, 만일을 대비하여 다음과 같은 설정도 해 두시면 좋겠습니다. 이 옵션은 ssh 서버를 설치하면 디폴트 값으로 설정되어 있겠지만 보안을 위해서 no 로 설정되어 있는지 체크하시기 바랍니다.

PermitEmptyPasswords no

PermitEmptyPasswords

  • yes : ssh 로그온시 빈 암호 (암호 물어볼 때 그냥 엔터만 치는것) 를 허용합니다.
  • no : ssh 로그온시 빈 암호를 차단합니다. (빈 암호 차단)

 

로그인 시도 제한

설정된 만큼의 로그인 실패되면 접속을 강제로 종료 시킵니다.

MaxAuthTries 5

 

로그인 제한시간

설정된 시간안에 로그인 하지 않으면 강제 종료합니다. 단위는 초 단위 입니다.

LoginGraceTime 30

 

사용자 허용

SSH 는 기본적으로 모든 사용자가 접속할 수 있습니다. 만약 특정 사용자에게만 SSH 로그인을 허용할 경우에 혹은 특정 사용자는 SSH 접속을 차단할 경우 설정하시기 바랍니다.

AllowUsers user1 user2

 

사용자 차단

DenyUsers baduser1 baduser2

 

특정 사용자의 특정 IP 만 접속 허용

AllowUsers user1@192.168.10.100

 

모든 사용자에게 특정 IP 만 접속 허용

AllowUsers *@192.168.10.100

 

DenyUsers 를 사용하는 경우 지정한 사용자 이외의 모든 사용자가 SSH 접속이 가능합니다. AllowUsers 와 DenyUsers 를 혼용해서 사용하면 헷갈릴 수 있습니다. 화이트리스트 방식인 AllowUsers 를 사용하는게 좋습니다.

 

2. sshd 데몬 재시작

# systemctl restart sshd

 

설정을 마친 후 sshd 데몬을 재시작 하고 직접 SSH 접속을 시도해 보시는것이 안전을 위해서 가장 중요합니다.

반응형
Comments