본문 바로가기
  • 산에사는 꽃사랑......
컴퓨터/Linux System and Server

해킹대처을 위한 쉡스크립트 및 crond 이용 - ip차단 스크립트

by 산에사는꽃사랑 2018. 5. 25.

해킹대처을 위한 쉡스크립트 및 crond 이용 - OK

해킹대처 및 확인을 위한 쉡스크립트 및 crond을 이용한 저장


1. 방향


해킹 상태를 확인하기 위해서 매번 log기록을 보는 것도 만만치 않다. 간단한 쉘을 이용해 잘못된 접속(해킹)을 확인하고, 접속시도하는 IP중 해킹 시도를 누적하여 관리한다.

또한, 쉘을 이용하여 정기적으로 동작 할 수 있도록 crond에 올려 정기적으로 기록되도록하고 이를 쉽게 확인 할 수 있도록 날자별로 기록한다. 이렇게 저장하면 쉽게 확인 할 수 있고, 누적된 해킹시도를 확인하고 추가로 시도되는 해킹을 예방 할수 있다. 신규로 해킹시도 되는 ip만 추가해 접속하지 못하도록 수정만 한다.


2. 응용하기


가. 해당 명령을 이용해 해킹 의심 IP를 확인한다.

해당 폴더(/var/log) 아래에 있는 비번 오류와 voip 접속 실패를 검색하고, 이를 몇회 했는지 표시한다.


- messages - 

[root@victor log]# ls *|grep -r "Failed password" |awk '{print $11}'|sort|uniq -dc|sort

- voip -

[root@victor log]# ls *|grep -r "Wrong password" |awk '{print $12}'|sort|uniq -dc|sort

- secure -

[root@victor log]# ls *|grep -r "authentication failure" |awk '{print $14}'|sort|uniq -dc|sort


나. 해당 실행을 묶어서 쉡 스크립트로 만든다.

* 쉘명 : nallan

* 저장위치 /media/tesla

* sshd 암호키 접속을 통한 sshd(ssh접근) 허가되지 않은 사용자 차단


[simmon@victor ~]$ vi nallan

#!/bin/bash

cd /var/log

ls *|grep -r "Failed password" |awk '{print $11}'|sort|uniq -dc|sort +r >/media/tesla/ssh/ssh$(date '+%Y-%m-%d-%T)

ls *|grep -r "Invalid user" |awk '{print $10$11$12$13}'|sort|uniq -dc|sort -r|head -n 100|sort -r|awk '{print $2}' >/media/tesla/hacksh/Ssh$(date '+%Y-%m-%d-%T)


ls *|grep -r "Wrong password" |awk '{print $12}'|sort|uniq -dc|sort +r >/media/tesla/voip/voip$(date '+%Y-%m-%d-%T)

ls *|grep -r "authentication failure" |awk '{print $14}'|sort|uniq -dc|sort +r >/media/tesla/message/messa$(date '+%Y-%m-%d-%T')

cd

echo "check hacking try to access"


다. ssh 접속 시도(Failed password 기록)확인


[root@victor ssh]# vi ssh2016-12-18-22:50:03

  46405 202.43.154.233

  38730 122.194.229.5

  21464 218.87.109.151

  16986 182.100.67.120

  16219 58.218.199.134

  14335 112.85.42.124

  13526 112.85.42.103

  13026 58.218.200.37

  10734 58.218.204.182

   8397 116.31.116.23

   2683 218.87.109.153

   2111 58.218.204.181

   1506 117.21.224.124

   1338 182.100.67.119

   1184 117.21.173.11

    885 112.85.42.106

    790 182.100.67.4

    740 222.186.56.226

    482 195.143.227.35

    461 202.115.8.181

    408 76.8.221.119

    262 111111

    258 59.63.188.2

    235 210.212.214.107

"ssh2016-12-18-22:50:03" 563L, 9296C 


 


다. 실행가능하도록 설정한다.

# chmod u+x nallan

# cp nallan /usr/bin/



라. 해당 쉘을 crond에 태워서 정기적으로 시행하고, 날자가 변경되면 별도의 파일로 만든다.

/etc/crontab에 추가해준다.(3시간  간격 시행시간 30분에  실행)


# For details see man 4 crontabs

# Example of job definition:

# .---------------- minute (0 - 59)

# |  .------------- hour (0 - 23)

# |  |  .---------- day of month (1 - 31)

# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...

# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

# |  |  |  |  |

# *  *  *  *  * user-name  command to be executed

30 0-24/3 * * * root nallan


마. 정기 동작 확인 및 기록을 확인한다.


3. 기록 장소는 별도의 저장장치를 통해 저장하고, 저장기록은 시스템이 망가져도 남도록 한다. 


4. 기록 상태를 확인한다.


drwxr-xr-x  5 root root 41 12월  8 16:52 .

drwxr-xr-x. 6 root root 55  8월 22 20:45 ..

drwxr-xr-x  2 root root 28 12월  8 17:10 message

drwxr-xr-x  2 root root 26 12월  8 17:10 ssh

drwxr-xr-x  2 root root 27 12월  8 17:15 voip

 


5. 매일 일정한 시간단위로 추가되므로 시간별/일자별 관리가 가능하고,

간단하게 나마 해킹으로 날릴 수 있는 정보를 확인하고 기록으로 남겨둔다. 



6. 서비스 결과 [ssh root 계정에 접근을 시도한 ip] 


[root@victor ssh]# ls

ssh2016-12-13     ssh2016-12-14-37  ssh2016-12-16-34  ssh2016-12-18-    ssh2016-12-18-22:50:03  ssh2016-12-18-48

ssh2016-12-14     ssh2016-12-15-01  ssh2016-12-17-01  ssh2016-12-18-01  ssh2016-12-18-23        ssh2016-12-18-56

ssh2016-12-14-11  ssh2016-12-16-01  ssh2016-12-17-53  ssh2016-12-18-07  ssh2016-12-18-34        ssh2016-12-18-58 



7. 보안을 위해서  해당 ip를 분류해 차단 시킬 때 log기록을 보아야 하지만, 간편하게 설정해

사용 할 수 있다. 특정시비스 접근을 간추려서 관리 할 수 있다.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

1. 간편쉘 스크립트

#secureT   (/usr/bin/secreT)

1ce5301d5c88891345b79c2dcd3d4888_1490168

#!/bin/bash 

cat /media/tesla/hackip /media/tesla/hacksh >/media/tesla/ipstop

cd /media/tesla

while read ipstop;

do 

    route add -host $ipstop reject

done < ipstop

cd

[root@goldplob simmon]# 


가. 간편한 쉘스크립트를 이용한 자동 ip차단 로그 분석을 위해 자동으로 분석해 해당 명령인 route명령을 적용한다.

나. 로그 분석해 시도되는 해킹 ip를 간추린다.

http://www.nplob.com/gb5/bbs/board.php?bo_table=np_boardD&wr_id=139

다. 이 로그 기록에 들어가는 ip를 자동으로 차단하도록 위와 같이 스크립트를 적용해 실시간 적용 시킨다.


3. 실제적용

-----------------------------------------------------------------------------

Hacking IP(VOIP/SSH)        voip-nallip     ssh-nallsh    info & dual(motds) 

-----------------------------------------------------------------------------

89.163.251.60    183.214.141.101

83.136.86.85    61.177.172.34

79.143.190.147    61.177.172.31

79.143.190.146    59.63.188.30

5.189.180.201    211.44.43.165

46.20.46.8    222.132.83.69

23.95.110.171    59.63.166.81

23.239.85.66    180.97.220.239

23.239.70.162    223.99.60.41

213.202.233.191    61.135.193.142

209.126.120.180    195.162.95.60

203.170.119.178    173.235.0.233

195.154.181.218    139.219.228.43

163.172.77.148    74.208.148.233

146.0.42.41    163.172.210.106

142.0.41.140    112.33.0.30

142.0.41.128    186.46.85.2

142.0.41.125    182.162.85.250

103.16.142.13    103.207.39.40          

(India)                  (Vietnam)        

============================================================================


4. 해킹 예방하기

가. 해킹을 막기 위해서 로그 분석을 할 필요가 있는데, 그 로그 기록을 계속 보기는 어렵다. 하지만, 로그 기록에 남아 있는

해킹 시도정보는 자신의 시스템을 분석해 이를 방어하는데 유용하게 사용 할 수 있고, 이 로그 기록이 자신을 방어하는

최후에 보루이자 수단인 셈이다.


나. 자료(데이타)뿐만 아니라, 자료 보관 할 때 사용기록(log) 또한 같이 보관하자. 기동한 길고 긴시간동안 공격을 감행했던

기록들도 로그 기록에 고스란히 남아 있다. 일일 공격회수가 몇만회에 이를 만큼 악의적인 해킹 ip가 있다라는 것을 알아도

이를 기록에 남겨 두어야 해킹에 따른 대비도 세울 수 있다.


다. 불필요한 서비스를 중지시킨다.

방화벽이 잘 구성되어 있어도, 그 방화벽에 구명을 내는 것은 서비스를 확대 시키기 위한 방안이지만, 서비스 확대에 따른

보안도 뚫리게 되는 것이 당연하다. 서비스를 제한하면, 그만큼 대응해야 할 부담도 적어진다.