본문 바로가기
취미/Smart Home

Ubuntu ssh 해킹 방지 대책, 로그보기

by zipi 2017. 4. 1.
반응형

Ubuntu에서 SSH 서버를 열어두면 1분에도 수차례식 해킹 시도가 발생한다.

보통 암호를 마구 입력하는 방식으로 들어온다. 암호가 약할경우 바로 뚫린 수 있다.

암호를 강력하게 하더라도 보안을 위해서 몇가지 설정을 해두었다.


SSH를 기본으로 설정하였고, 웹서버는 차후에 진행할 예정이다.(아직 구축하지 않았으므로..)

보안을 위해서는 22번 포트대신 다른 포트를 이용하고, 암호를 강력하게 또는 암호대신 보안키를 이용해야 한다.

하지만 편의를 위해서 22번포트를 사용하고, 암호를 강력하게 하여서 진행하였다.


보안설정하기


방화벽 설정하기

보안의 첫번째는 방화벽이라 생각된다. 서비스를 하는 포트를 제외하고는 모두 막아두고,
사전에 접속할 위치에만 방화벽을 열어주는게 좋다.

위의 링크에서 UFW를 이용하여 진행하였다. 내장된 iptables가 있지만 사용하기가 불편하고, 쉽게 사용할 수 있도록 만들어진게 UFW라고 한다.
아래와 같이 해서 사용할 서비스만 열어주었다.

sudo ufw enable # 서비스 활성화

sudo ufw allow ssh
sudo ufw allow 22  #ssh 또는 22번 포트 Open

sudo ufw delete allow ssh # 22번 허락 제거

sudo ufw deny from 192.168.0.1 [to any port 22]  # 특정 IP 거부 [22번 포트만]

sudo ufw status 


SSH 보안 설정하기

SSH 서버를 열어두면 계속해서 해킹 시도가 들어온다. 특히 중국쪽에서 많이 들어오는것으로 보인다.
tail -f /var/log/auth.log 
위 명령어를 이용해서 보면 계속해서 해킹 시도가 있다.
sudo ufw limit ssh 명령으로 Brute-force Attack를 영향을 줄일수 있다고 한다.


# /etc/ssh/sshd_config 설정을 변경한다.

LoginGraceTime 30   # 로그인할 때 비밀번호 입력을 기다리는 시간(초). 기본값은 120
PermitRootLogin prohibit-password  # Root 로그인 허용할지. no로 하여도 되지만, 최신버전엣 기본값은 비밀번호 방식을 거부하고, 
                                                # 공개키방식으로만 하도록 되어 있다. 그대로 놔둬도 무방한듯.



Fail2ban 설치하기

fail2ban은 log를 검사하여 의심스럽거나, 자주 시도하는데 실패하면 자동으로 차단해주는 솔루션이다.
이 기능을 이용해서 무차별로 로그인을 시도하는 IP를 차단하면 좋다.

$ sudo apt-get install fail2ban 
$ sudo vi /etc/fail2ban/jail.conf

[DEFAULT]
ignoreip = 127.0.0.1/8 192.168.0.1/24   # 로컬환경 항상 허용
bantime = 2592000      # 30일 차단 (초단위)
maxretry = 3        # 최대 재시도 횟수. 이 이상되면 차단됨.


기능 활성화하기.

기본으로 ssh는 활성화 되어 있으나, 아래처럼 ssh-ddos를 활성화 하였다.

SSH 스캔을 막는다고 한다.

$ sudo vi /etc/fail2ban/jail.d/sshd-ddos.conf

[sshd-ddos] 

enabled = true


$ sudo service fail2ban restart



이외에도 다양한 기능이 있다고 한다. 그러나 아직 ssh만이 올라갔기에 위만 적용하였다.

apache 같은 것도 사전에 처리가 가능하다고 한다.



 cat /var/log/fail2ban.log  | grep fail2ban.actions

위 명령어를 이용하면, 어떤 활동이 있었는지 검사가 가능하다.



끝...

대략 방화벽 설정과 자주 시도하다 틀리면 차단하도록 하였다.

다음번에는 중국에서 들어올 경우, 모두 차단하도록 처리할 예정이다. 


[우분투, 민트] GeoIP와 Shell Script를 이용해서 ssh 접속 제한하기


내가 중국 갈 일도 없으니, 일단 차단하는게 좋을것 같다.

반응형

댓글