SSH 관련 관련 보안스크립트 적용 가이드
Joon Park(Cloud Engineer) @ IBM Korea

1. Fail2ban 소개

  – Fail2ban 리눅스 운영체제 대상으로 SSH Brute-force Attack(패스워드 무차별 대입공격) 대한 보안 설정을 위한 자동 설치 스크립트입니다.
  – 동작원리는 OS 내부 접속 로그(/var/log/secure, /var/log/auth.log) 사용자가 정한 임계치 이상의 로그인 실패 특정 시간만큼 해당 IP 에서 접속이 불가능(iptables)하게 설정합니다.
  – 적용 가능 운영체제(제작사 발표 기준): CentOS, Ubuntu, Debian
  – IBM Cloud(테스트 완료 기준): CentOS 6.x, CentOS 7.x, Ubuntu 14.04, Ubuntu 16.04

2. Fail2ban 설치방법

  – 해당 스크립트는 반드시Root 권한으로 실행이 필요합니다.
  – 제작사가 제공하는 Github 존재하는 자동설치 스크립트 파일을 이용합니다.
# wget https://raw.githubusercontent.com/FunctionClub/Fail2ban/master/fail2ban.sh && bash fail2ban.sh 2>&1 | tee fail2ban.log
제작사에서 제공한 스크립트 파일이 다운로드 되면서 아래와 같이 설치 화면으로 넘어갑니다.
– Do you want to change your SSH Port? [y/n]:
  => SSH 기본 포트는 TCP 22 번이며, 변경을 원하면 “1025 – 65534” 사이의 포트번호를 입력
– Input the maximum times for trying [2-10]:
  => SSH 로그인 실패에 대하여 회까지 허용하는지에 대한 임계치입니다.
 – Input the lasting time for blocking a IP [hours]:
  => 로그인을 3 실패한 IP 대하여 어느정도(“시간”) 차단할 것인가를 입력 합니다.
  – 정상적으 설치가 되면 “Fail2ban is now running on this server now!” 라는 메세지가 보입니다.
  – 또한, /etc/fail2ban 디렉토리가 생긴 것을 확인 수가 있습니다.
  – 설치시 입력한 임계치에 대하여 /etc/fail2ban/jail.local 설정된 것을 확인 가능합니다.
  => 로그인실패 횟수(maxretry = 3), 차단 시간(bantime = 3600)

3. Fail2ban 동작 확인

 – 설치가 완료 되었으면 이제 서버에 접속을 해봅니다. 서버IP: 10.10.10.10
 – 테스트를 위하여 일부러 패스워드를 3 틀리면, 후로는 접속이 차단됩니다.
   => ssh: connect to host 10.10.10.10 port 22: Connection refused
 – /etc/var/log/fail2ban.log 살펴보면 접속자 IP 192.168.1.1 에서 3 접속 실패”fail2ban.filter” 후에 접속이 차단“fail2ban.actions” 것을 보실 수가 있습니다.
 – 해당 IP 대한 차단은 OS 레벨에서 iptable 차단을 하고 있는 것이며, 확인을 위해서 아래와 같이 입력하면 현재 차단된 IP 대하여 확인이 가능합니다.

4. Fail2ban 제거

 – 네트워크 레벨의 방화벽 적용등의 이유로 더이상 서버레벨에서 “fail2ban” 필요 없을 경우 아래와 같이 제작자가 제공하는설치 제거스크립트를 통하여 제거할 수가 있습니다.
#wget https://raw.githubusercontent.com/FunctionClub/Fail2ban/master/uninstall.sh && bash uninstall.sh
그림과 같이 “Complete!” 메세지가 나온 /etc/log/fail2ban.log 확인하면 아래와 같이 현재 차단된 IP 192.168.1.1 차단 해제”Unban” 되면서 fail2ban 종료”Exiting Fail2ban” 되는 것을 확인가능합니다.

5. 서버 배포시 자동으로 Fail2ban 적용하기  

 – IBM Cloud(IaaS) 서버 주문시에 “Post Scripit” 기능을 통하여 fail2ban 같은 스크립트를 자동으로 설치하실 수가 있습니다
 – 먼저, Cloud Portal(http://control.softlayer.com)화면에서  “Devices” -> “Manage” -> “Provisioning Script” 화면으로 이동합니다.

스크립트(Name) 스크립트가 있는 URL 입력후에 “Add” 버튼을 누릅니다.
  => https://raw.githubusercontent.com/joonp/sl_fail2ban/master/sl_fail2ban.sh
 – 서버 주문시 아래와 같이 입력한 “Provisioning Script” 선택하실 수가 있습니다.
 –  서버가 정상적으로 배포된 후에는 서버에 접속하여 가이드 내용을 참조하여 정상적으로 fail2ban 서비스가 동작하는지 확인하시기 바랍니다.
 – 2017 8 14 기준 지원 현황
   . 제작사 스크립트는 CentOS 6.x, 7.x, Ubuntu 14.04, 16.04 지원 확인
   . Provision Script CentOS 6.x, 7.x, Ubuntu 14.04 지원 확인

에 대한 댓글이 1건 있습니다"SSH 관련 보안스크립트 적용 가이드"

  1. 정보 감사합니다.

토론 참가

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다