개인용 서버로 이것저것 해보려고 서브컴을 조립했다. 가장먼저 ssh접속을 시도했는데, 당연하게도 서버를 먼저 설치해야 하더라. 설치하고 실행하는 방법은 다음과 같다.
sudo apt install openssh-server
sudo systemctl enable --now sshsystemctl은 systemd를 통해 실행되는 백그라운드 서비스를 관리하는 명령어라고 한다. 위와같이 enable을 수행하면, 부팅시 자동으로 서비스가 실행되도록 해준다.
아직은 외부접근이 안되니 상관은 없지만, 나중에라도 보안문제가 있을 수 있으니 최대한 노출을 피하기 위해서 포트번호를 바꿔보자. ssh 설정은 /etc/ssh/sshd_config 파일에서 한다. 파일을 열어보면 대부분 주석처리된 설정들이 있는데, “Port 22″부분을 찾아 주석을 풀어주고 포트를 변경한다.
# When systemd socket activation is used (the default), the socket
# configuration must be re-generated after changing Port, AddressFamily, or
# ListenAddress.
#
# For changes to take effect, run:
#
# systemctl daemon-reload
# systemctl restart ssh.socket
#
Port 22 # 원하는 포트번호 사용
주석으로 되어 있는 부분에 systemd socket 이 활성화 되어 있으면 socket configuration도 다시 생성되어야 한다고 써있다. 그리고 다음과 같이 실행해야 한다고 써있는데, 실제로 이렇게 해야 포트번호가 변경된걸 확인할 수 있었다.
sudo systemctl daemon-reload
sudo systemctl restart ssh.socket제대로 동작하는지 확인하는 방법은 다음과 같다.
sudo systemctl status ssh다음은 서버를 실행하지 않은 상태에서 명령어를 실행한 화면이다.
○ ssh.service - OpenBSD Secure Shell server Loaded: loaded (/usr/lib/systemd/system/ssh.service; disabled; preset: enabled) Active: inactive (dead) TriggeredBy: ● ssh.socket Docs: man:sshd(8) man:sshd_config(5)
여기서는 서버를 실행하지 않았지만, 실행해놨다면 포트번호 확인이 가능하다.
추가로 보안을 위해서 root 로그인도 아예 막아버리자. PermitRootLogin을 찾아 no로 설정한다.
#PermitRootLogin prohibit-password
PermitRootLogin no만약에 ufw 방화벽을 사용하고 있다면 해당 포트를 방화벽에서 열어줘야 한다.
sudo ufw allow 22 #수정한 포트번호를 사용위에서는 그냥 기본 ssh 포트번호인 22번을 적었지만, 포트번호를 변경했다면 변경된 포트번호를 사용하면 된다.
참고로 패스워드보다 보안을 강화하려면 사용할 클라이언트에서 ssh key를 생성해서 공개키를 서버에 복사해주면 된다. 개인이 사용할 것이라면 이 방법이 최선으로 보인다.