본문 바로가기

해킹

리눅스 설치 후 SSH 설정하는 방법, 포트 및 개인키 설정

안녕하세요! 오늘은 제 피씨에 TMAX-OS를 설치하면서 SSH 접속을 가능하도록 설정하였는데요.

하다보니 설정할게 조금 있어서 정리하기 위해 글을 작성합니다.

 

먼저 SSH서버를 설치합니다.

sudo apt-get install ssh

 

그리고 ssh 서비스가 되고 있는지 확인해야하는데요. 

확인하기 위한 명령어는 아래와 같습니다. (sudo service ssh status)

 

gegul@DESKTOP-4O7M0TJ:~$ sudo service ssh status
● ssh.service - OpenBSD Secure Shell server
   Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enab
   Active: active (running) since Sun 2020-04-05 11:36:34 KST; 10min ago
     Docs: man:sshd(8)
           man:sshd_config(5)
  Process: 2434 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
 Main PID: 2476 (sshd)
    Tasks: 1 (limit: 4915)
   Memory: 8.1M
   CGroup: /system.slice/ssh.service

 

지금 상태를 보니 10분 전에 시작했다 라고 나오는데요. 

만약 Active: active라고 나오지 않으면, 아래와 같은 명령어를 사용해 시작할 수 있습니다.

 

gegul@DESKTOP-4O7M0TJ:~$ sudo service ssh start

 

그리고 포트가 잘 열려있는지 확인해야하는데요. 아래와 같이 할 수 있습니다.

 

gegul@DESKTOP-4O7M0TJ:~$ netstat -anlp|grep "LISTEN "
tcp        0      0 0.0.0.0:8008            0.0.0.0:*               LISTEN      -
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -
tcp        0      0 0.0.0.0:43215           0.0.0.0:*               LISTEN      -
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      -
tcp        0      0 0.0.0.0:53              0.0.0.0:*               LISTEN      -
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      -
tcp6       0      0 :::22             	    :::*                    LISTEN      -
tcp6       0      0 :::111                  :::*                    LISTEN      -
tcp6       0      0 :::53                   :::*                    LISTEN      -
tcp6       0      0 ::1:631                 :::*                    LISTEN      -

 

더보기

netstat 명령어는 정보수집을 위해 많이 사용되는 명령어 중 하나인데요. 

제가 개인적으로 가장 좋아하는 명령어이기도 합니다 :)

나중에 이 명령어가 어떻게 해킹에 사용되는지 보여드릴 수 있을 것 같네요.

 

지금 위를 보면 여러 포트가 열려있는 것을 확인할 수 있는데요, 22번 포트가 LISTEN 중인 것을 확인할 수 있습니다.

SSH가 22번 포트를 사용하고 있기 때문인데요. 여기까지 따라오셨다면 SSH가 정상적으로 열린겁니다!

 

이제 SSH접속 설정을 할 차례인데요.

기본 설정으로 쓰지않고 약간의 설정을 바꿔주는 가장 큰 이유는 외부에서 지속적으로 

저의 SSH서버를 해킹하려고 하기 때문이죠.

 

만약 SSH포트가 열려있다면, 가장 먼저 시도해보는게 알려져있는 아이디와 패스워드로 수만번 이상 로그인을 하는거죠.

그러다가 로그인이라도 되면 제 서버는 무슨 짓을 할 지 모르기 때문에,

SSH서버를 가지고 계실려면 설정바꾸는 것은 귀찮지만 필수입니다.

 

SSH서버 설정을 바꾸려면 특정 파일에 몇가지 설정을 넣어줘야하는데요.

설정 파일은 /etc/ssh/sshd_config 입니다.  우선 제가 추가한 내용들을 보여드릴게요.

 

Allowusers gegul
PubkeyAuthentication yes
PermitRootLogin no
PasswordAuthentication no

 

첫번째 줄은 유저계정 'gegul' 외 다른 유저로 로그인을 허용하지 않는 다는 뜻입니다.

어떤 프로그램이 설치되는 사이에 어떤 계정이 생성될 수도 있겠죠.

그런데 만약 생성된 계정이 비밀번호 없이 생성이 되었다면? 해커는 계정을 알고 있는 것으로 해킹이 가능합니다.

그렇기 때문에 저는 정해진 사용자만 로그인 할 수 있도록 설정하였습니다.

 

두번째 줄은 공개키를 이용한 로그인을 허용한다는 뜻인데요.

이것은 설명하려면 너무 길어지니 다음 기회에 설명드리도록 하겠습니다. :)

단순하게 설명드리자면, 약속된 파일(키)을 이용한 로그인 방식이라고 생각하시면 될 것 같습니다.

 

세번째 줄은 서버 관리자인 root의 로그인을 허용하지 않는다는 뜻입니다.

그리고 네번째 줄은 암호를 입력하여 로그인을 허용하지 않는다는 뜻인데요.

 

위에서 만약 해커가 ssh가 열려있는 것을 확인하면 엄청나게 많은 로그인을 시도해본다고 말씀드렸는데

그것을 방지하기 위해 설정하는 거라고 생각하시면 됩니다.

그렇다면 이제 공개키 로그인 방식만을 사용해 로그인을 할 수 있는데,

암호를 이용한 로그인 방식보다는 안전하다고 말씀드릴 수 있습니다.

 

오늘은 여기까지 입니다.

만약 궁금하신 점이 있다면 댓글로 남겨주세요!