모르고 지나면 괜찮겠지만 막상 알아보면 정말 엄청난 수의 ssh 로그인 시도가 발생하는 걸 알 수 있습니다.
# last -f /var/log/btmp | more
위 명령어를 실행해 보면 최근 로그인 실패 기록을 확인할 수 있는데
대략 이 정도의 결과가 나오네요. 위 결과는 페이지로 잘라낸 거고 실제로는 더 많은 로그인 시도와 실패가 있다는 걸 확인할 수 있습니다.
해당 IP인 116.31.116.9를 확인해 보니 중국 IP로 나오는군요. 로그인을 성공한 흔적은 제 실력으로는 찾아볼 수가 없고 어쨌든 불안하니 최소한의 조치를 취하기 위해서 ssh 접속 포트를 변경하고 Fail2ban을 설치했습니다.
이번 포스팅에서는 ssh 접속 포트 변경 방법에 대해 설명해 보겠습니다. 물론 전문적인 설명은 없는 거 아시죠? 전 리눅스 잘 못해요. 그냥 필요에 의해서 공부하고 적용해 나가는 거죠.
일단 제가 작업한 환경은 CentOS Linux release 7.3.1611 (Core) 버전입니다.
● SSHD 설정
vi /etc/ssh/sshd_config 명령어를 실행하여 파일을 편집합니다.
#Port 22라고 되어 있는 내용을 찾으세요.
주석을 제거하고 변경하고자 하는 포트 번호로 바꾸시면 됩니다.
service sshd restart 명령어를 실행하여 변경된 내용을 바로 적용합니다.
● 방화벽 설정
변경된 ssh 포트로 접속하기 위해 CentOS의 방화벽에서 해당 포트를 허용하는 작업이 필요하겠죠? 이번에도 그냥 따라 하기 식으로
vi /etc/sysconfig/iptables 명령어를 실행하세요.
열린 창에 -A INPUT -p tcp -m state --state NEW -m tcp --dport -j ACCEPT를 입력하고 저장
service iptables restart 명령어로 방화벽 정책을 바로 적용합니다.
※ 문제 1 위 방법대로 했는데 실제로 ssh 포트가 변경되지 않고 접속이 되지 않는 문제가 발생하는 경우가 있습니다. 물론 정확한 이유는 모르겠는데 CentOS 6 버전부터 뭔가 다른 게 있는 것 같네요. 일단 해결 방법은 또 따라 하기 식으로
semanage 명령어를 실행하여 위 이미지처럼 실행이 되는지 확인하세요.
만약 실행이 되지 않고 bash: semanage: command not found 게 나온다면
yum -y install policycoreutils-python 명령어를 실행하여 의존 패키지를 설치합니다.
semanage port -l | grep ssh 명령어를 실행하여 selinux에서 설정되어 있는 ssh port를 확인하면 위 이미지처럼 ssh 기본 포트가 확인됩니다.
semanage port -a -t ssh_port_t -p tcp 명령어로 ssh 접속 포트를 추가 후
semanage port -l | grep ssh 명령어를 다시 실행하여 추가한 포트가 반영되어 있는지 확인합니다.
※ 문제 2 semanage port -a -t ssh_port_t -p tcp 명령어로 포트 추가 시 지정된 포트가 이미 정해져 있다며 아래와 같은 메시지가 발생하는 경우!
/usr/sbin/semanage: Port tcp/ is defined in policy, cannot be deleted
semanage port -m -t ssh_port_t -p tcp 명령어로 실행 포트 추가가 아닌 수정을 진행합니다.
semanage port -l | grep ssh 명령어로 변경 내용을 확인합니다.
위와 같이 나타나면, 축하합니다. ssh 접속 포트 변경 작업이 적용되었습니다. ^^
※ 추가 내용 CentOS 7부터는 iptables가 아닌 firewalld라는 방화벽 데몬이 따로 들어간다는 내용이 있습니다. 그래서 기존처럼 iptables를 사용하기 위해서는 별도 설정을 해줘야 하고 저도 한 기억이 있는데 이번에 구축한 버전은 7인데도 별도 설정한 기억이 없는데 iptables가 사용되고 있네요. 습관적으로 바꾸고 기억을 못 하는 걸까요?
아무튼 만약 CentOS 7 버전에서 iptables를 사용하려고 하는데 안 되는 분들이 계시다면 아래 글에 잘 설명되어 있으니 한번 들러보시는 게 어떨까요? ^^
그럼 오늘 포스팅은 여기서 끝!
여러분들이 공감과 댓글을 남겨주시면 공감은 저에게 많은 힘이 댓글은 저의 더 많은 포스팅 작성에 도움이 됩니다. 고맙습니다. ^^