VPSのssh用Portを変更しました

| Comments

VPS にドメインを割り当ててから、一ヶ月が経過した所です。
今の所はアクセスも無く、そんなに攻撃にさらされることもあるまいと思いました。


が・・・
sshのログ (/var/log/auth.log)を見たら、かなりの攻撃の後がありました。


こんな スクリプト で、集計した所

(password_failed_check.rb) download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/usr/bin/env ruby
require 'pp'

REGEXP_AUTH_FAILED=/Failed password for (root|invalid user ([^ ]+)) from (\d+\.\d+\.\d+\.\d+) port \d+ ssh2$/

def setDenyHostMap( map, user, ip_address )
    if map.key?(ip_address)
      user_map = map.fetch ip_address
    else
      user_map = Hash.new
    end
    if user_map.key?(user)
      user_map.store( user, (user_map.fetch(user)+1) )
    else
      user_map.store( user, 1 )
    end
    map.store( ip_address, user_map )
end

deny_host_map = Hash.new
open('/var/log/auth.log','r').read.split(/\n/).each{|line|
  line.scan(REGEXP_AUTH_FAILED){| root, user, ip_address |
    setDenyHostMap( deny_host_map, (user.nil?)? root:user, ip_address )
  }
}

puts deny_host_map.pretty_inspect

なんと13個のホストから、 合計2000回ほど・・・∑(・ω・ノ)ノ


これは放置は危険ですし、 /etc/hosts.deny で対応するには数的に骨が折れそうなので
今回は、Portを49152以降のDYNAMICな領域に移しました。(REGISTEREDの方が良いかな?)
(;´Д`A “`