더북(TheBook)

Port는 포트 번호를 지정하는 옵션입니다. 22번이 기본이지만 사정에 따라 포트 번호를 변경해서 운영할 수 있습니다.

주석 처리되어 있는 ListenAddress는 접속 허용할 대상을 지정하는 옵션입니다. 이 옵션이 활성화되지 않았을 때 기본값은 0.0.0.0으로 모든 네트워크에 대한 접속을 허용합니다. 이 책에서는 기본값을 그대로 사용하지만, 실무에서는 SSH 서버를 보호하기 위하여 특정 호스트에 대한 접근만 허용하는 편이 일반적입니다.

Protocol에서는 SSH 프로토콜 1 또는 2 중에서 무엇을 사용할지 결정합니다. 보안을 이유로 SSH 프로토콜 1은 사용하지 않습니다.

Port 22
...
#ListenAddress 0.0.0.0
Protocol 2

HostKey는 암호화 방식(rsa, dsa, ecdsa)에 따른 호스트키를 지정합니다. 호스트키는 공개키 인증에서 호스트를 구분하는 데 사용하는 공개키입니다. ‘ssh 활용하기’에서 저장된 호스트 정보를 확인하는 방법을 소개합니다.

HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key

UsePrivilegeSeparation은 권한을 분리할지 여부를 결정합니다. 보안을 위해 분리하는 편이 일반적입니다.

UsePrivilegeSeparation yes

SSH 서버의 활동은 syslog에 의해 INFO 수준의 로그를 저장합니다.

SyslogFacility AUTH
LogLevel INFO

LoginGraceTime: 로그인 제한 시간을 결정합니다. 120초 동안 로그인하지 않으면 연결이 끊어질 것입니다.

PermitRootLogin: 루트 계정 로그인을 허용할지 결정합니다. 시스템 보안 유지를 위해 이 옵션은 no로 설정하는 편이 바람직합니다.

StrictModes: 로그인을 허용하기 전에 사용자 홈 디렉터리에 대한 소유권 및 접근 권한을 sshd가 확인할지 결정합니다. 혹시 모를 악의적인 사용자가 숨겨 놓은 악성 코드를 찾아내기 위한 옵션입니다.

RSAAuthentication: SSH 프로토콜 1에서 RSA 인증을 사용하는 옵션입니다. SSH 프로토콜 1은 보안 문제로 더 이상 사용하지 않으니 no로 설정하는 편이 바람직합니다.

PubkeyAuthentication: 공개키 인증을 사용하는 옵션입니다. 아직 패스워드 인증을 사용해야 하므로 주석 처리해둡니다.

AuthorizedKeysFile: 공개키 인증을 사용할 때 공개키를 저장할 위치를 지정합니다. 옵션이 활성화되지 않았을 때 기본값은 [사용자 홈 디렉터리]/.ssh /authorized_keys입니다.

LoginGraceTime 120
PermitRootLogin no
StrictModes yes
RSAAuthentication no
PubkeyAuthentication yes
#AuthorizedKeysFile  %h/.ssh/authorized_keys

호스트 기반 인증 관련 설정입니다. 보안을 이유로 호스트 기반 인증은 사용하지 않는 편이 바람직합니다.

IgnoreRhosts: 호스트 기반 인증에 사용하는 rhosts 파일들을무시할지 결정합니다.

RhostsRSAAuthentication: rhosts에 지정한 호스트에 대한 인증을 허용합니다.

HostbasedA>uthentication: 호스트 기반 인증을 허용할지 여부를 결정합니다.

IgnoreRhosts yes
RhostsRSAAuthentication no
HostbasedAuthentication no

PermitEmptyPasswords: 패스워드 인증에서 빈 패스워드를 허용할지 결정합니다. 허용하지 않는 편이 바람직합니다.

PasswordAuthentication: 패스워드 인증을 사용할지 결정합니다. 옵션이 활성화되지 않았을 때 기본값은 yes로 지금 상태는 패스워드 인증을 허용합니다.

PermitEmptyPasswords no
#PasswordAuthentication yes

X11 Forwarding: SSH를 이용한 X 윈도(X Window) 시스템(X11) 포워딩을 허용하는 옵션입니다. 서버의 X 윈도 시스템 환경을 SSH를 통해 클라이언트에서 실행하는 기능인데, 보안을 생각한다면 사용하지 않는 기능은 해제하는 편이 낫습니다. no로 설정합니다.

설정 파일을 저장하고 편집기를 종료합니다.

X11Forwarding no

변경한 내용을 반영하기 위해 ssh 서비스를 재시작합니다.

administrator@server01:~$ sudo service ssh restart
ssh stop/waiting
ssh start/running process 2216

보안을 유지해야 하는 만큼 SSH 서버를 운영하는 게스트의 방화벽 기능을 활성화합니다.

administrator@server01:~$ sudo ufw enable

sshd에 대한 접속 요청은 포트 22번을 통해 전달됩니다. 22번 포트를 개방하고 방화벽 설정 상태를 확인합니다.

administrator@server01:~$ sudo ufw allow 22
administrator@server01:~$ sudo ufw status
Status: active

To           Action       From
--           ------       ----
22           ALLOW        Anywhere
22           (v6)         ALLOW Anywhere (v6)
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.