작업 과정 기록

[홈서버] (Ububtu 24.04 LTS) SSH 외부 접속 허용, SSH 포트 변경, 포트포워딩

Im_Hayden 2024. 10. 10. 22:32

00. 서론

  • 외부에서도 서버에 접근할 수 있도록 설정하려고 한다.
  • 원래는 키페어 인증까지 적용하려고 했는데.. 귀찮음 이슈로..ㅎ 다음에 설정하겠다.

시작해보자.

01. SSH 포트 변경

  • SSH의 기본 포트는 22번 포트이다.
  • 문제는 이 22번 포트는 너무나도 유명해서, 해커들이 가장 먼저 트라이 해보는 포트이다.
    • 인터넷에 ssh 22번 포트 뚫림을 검색해보자.. 심각성을 느낄 것이다.
  • 이를 위해 임의의 포트 번호로 SSH 포트를 변경할 것이다. 이것만 해도 보안상 훨 안전하다고 한다.

시작해보자

1.1. ssh 설정 파일 수정

가장 먼저 ssh 설정 파일에서, 변경할 포트 번호를 설정해 주어야 한다.

아래 명령어를 입력해서 파일을 열어주자.

$ sudo vim /etc/ssh/sshd_config

에디터는 본인이 익숙한 에디터로 열어주면 된다.

파일을 열어보면 #Port 22 요 부분이 있을것이다.
여기서 주석을 제거 후 포트 번호를 변경하거나, 그 아래에 변경할 포트 번호를 새로 작성하면 된다.

나는 이렇게 수정했다.
저장하고 나오자.

1.2. 변경 내용 적용

아래 명령들을 입력해서, 변경 내용을 적용시키자.

$ sudo systemctl daemon-reload
$ sudo systemctl restart ssh

위 명령은 24.04 LTS 기준이다.

  • 본래 20.04 버전에서는 sshd(ssh daemon)이 상시 실행중이었기 때문에, ssh만 재시작 해주면 변경 내용이 적용됐음
  • 근데 24.04 LTS 버전에서는 효율의 이유로, sshd가 상시 실행이 아닌, 호출될 때만 실행되는 방식으로 바뀌었기 때문에, sshd를 reload 해주는 과정이 필요
    • 이전 버전에서는 이 과정 생략 가능

그 다음 포트가 잘 변경 되었는지 확인해보자.

$ netstat -tnlp

local Address 부분에 설정한 포트가 돌아가고 있으면, 잘 적용 된것이다.

1.3. 방화벽 설정

이제 방화벽을 설정해주자

$ sudo ufw deny 22
$ sudo ufw allow <설정한 포트 번호>

22번 포트를 막고, 설정한 포트를 열어준다.

여기까지 하면 포트 변경은 성공적으로 완료된 것이다.

02. 포트포워딩

이제 외부에서도 해당 포트에 접근할 수 있도록 포트포워딩을 해주자.

여기까지 했으면 성공적으로 외부 PC 접속 설정이 완료되었다.

 


Reference