터미널창에서 ssh로 접속을 진행하는 경우가 많아서 서버에 접속할 때에도 그랬지만
turtlebot3의 라즈베리파이에 접속을 할 때에도 사용을 많이 했었다.
그래서 나름 친숙하다고 생각을 했었던 것인가?
ssh를 사용하는 경우에 보안을 강화시키는 기본에 대해서 포스팅 해보려고 한다
(이미지Ssh icons created by Freepik - Flaticon)
이름 자체가 Secure Sheel 이라고 하는데 암호화된 커뮤니케이션을 할 수 있게 되어 있다고
추상적으로나 안전하겠지~ 라고 생각했던 것 같다.
이번에 Linode 에 웹서버를 이전을 하니 침입 흔적이 많다는 걸 알게 되었다.
그래서 더욱더 보안에 신경을 써야 할 듯 하다.
이렇게 ssh를 통해 로그인 시도가 많다는 걸
구지 서버를 보지 않고 내 로컬 desktop만 보더라도...
May 29 03:25:34 localhost sshd[14892]: Failed password for root from 61.177.173.47 port 35064 ssh2
May 29 03:25:34 localhost unix_chkpwd[14932]: password check failed for user (root)
May 29 03:56:28 localhost sshd[27246]: Failed password for root from 61.177.172.140 port 50096 ssh2
May 29 04:30:15 localhost sshd[40531]: Failed password for root from 61.177.173.46 port 31613 ssh2
log 파일에서 정말 극히 일부분만 가져왔는데 이렇게 root로 로그인 시도를 많이 하는지 몰랐다~
이게 다 bot 프로그램으로 게속 root 로 로그인을 시도한다. 거의 1초(?) 에 한번씩 시도할 정도로
log를 보기 전에는 정말 생각도 못했던 것 같다.
log 파일을 보려면 Rocky linux 처럼 CentOS / RHEL 계열이면
sudo cat /var/log/secure
로 확인을 해 볼 수 있다.
우분투라면
sudo cat /var/log/auth.log
IP address 주소 확인하는 사이트 ipinfo
여기에 위의 ip주소를 넣어 확인해보니 중국 베이징 부터 해서.. 러시아, 미국
그 중 그래도 중국이 제일 많은 거 같다..
root 로그인을 제한할 것이기 때문에 root로는 로그인을 못 할 것이기 때문에라도
일반 계정을 만들어 준 다음에 해야한다
useradd -m -U -s /bin/bash user1
[좀 더 자세한 내용은 여기 포스팅을 참고 하세요 - 업데이트 예정]()
사실 저번에 AWS를 사용할 때만 해도 root로만 사용했었다
항상 마음만은 사용자를 만들어야지 하다가도 어차피 나 밖에 사용을 안하는데 '구지? 필요한가?'
생각했었는데 root 자체는 너무 막강한 권한을 다 가지고 있으니
일반 유저로 sudo로 권한을 빌려오는 방식으로 사용을 하면 좀 더 안전하게 사용할 수 있을 것 같다
이제 본격적으로 첫 걸음인 root로 ssh 접속 안되게 하는 설정을 하자
아래의 파일을 열어주자
sudo vi /etc/ssh/sshd_config
PermitRootLogin yes
로 되어 있는 것을 no로 바꿔준다
PermitRootLogin no
vi 편집기에서 좀 더 쉽게 찾을려면 / (슬래쉬)를 누른후 Permit 이라고 치고 엔터를 누른다
해당 텍스트로 이동이 된다. 위의 PermitRootLogin을 찾았다면 i 키를 눌러서 편집 모드로 들어가면 된다
만약 일치하지 않는다면 (소문자) n 키를 눌러서 다음 검색 내용을 볼 수가 있다
또는 대문자n (쉬프트 n) 위로 검색을 해준다
다시 한번 리스타트를 해준다
systemctl restart sshd
이제 root로 로그인을 못하게 막았으니 조금은 안심
ssh로 root로 로그인 시도를 했더니, 비번이 맞는데도
Permission denied, please try again.
이렇게 나온다. 잘 되는 듯 하다
단, 로그인 기록에는 Failed password라고 나오기만 하는 듯 하다
여기에서 좀 더 보안을 강화시키려면 ssh key를 만들어서 사용하는 것이다
그래서 패스워드를 입력해서 로그인 하는 것도 허용 안해주는 방법이 있는데
위의 sshd_config 파일에서 PasswordAuthentication 를 no로 바꿔준다.
다음 포스팅에서 더 다뤄볼려고 한다.