담덕이의 탐방일지

이 블로그의 모든 콘텐츠들은 저의 저작물이며 출처, 저자를 밝히지 않고 이루어지는
퍼가기, 복제등의 행위와 상업적인 이용을 금하며 필요하신 경우 별도로 연락을 주시기 바랍니다.


모르고 지나면 괜찮겠지만
막상 알아보면 정말 엄청난 수의 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를 사용하려고 하는데 안되는 분들이 계시다면
여기에 잘 설명되어 있으니 한번 들러보시는게 어떨까요? ^^

그럼 오늘 포스팅은 여기서 끝!

여러분들이 공감과 댓글을 남겨주시면
공감은 저에게 많은 힘이...
댓글은 저의 더 많은 포스팅 작성에 도움이 됩니다.

고맙습니다. ^^
신고
DISQUS 로드 중…
댓글 로드 중…

블로그 정보

담덕이가 생각하고 경험하고 체험하는 것들에 대한 담덕이의 주관적인 이야기들

최근에 게시된 글