Sshの不正アクセス対策


//ログ確認
$ cat /var/log/auth.log | grep sshd

// 存在しないユーザーへのアクセス
$ cat /var/log/auth.log | grep sshd.\*Invalid
$ cat /var/log/auth.log | grep sshd.\*Invalid |  cut -d ' ' -f 8 | sort | uniq -c | sort -nr

// 一番多い不正ログイン試行のIPAddress
$ grep -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' /var/log/auth.log | grep -E 'Invalid user' | cut -d ' ' -f 10 | sort | uniq -c | sort -nr

$ cat /var/log/auth.log | grep sshd.\*Invalid | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | sort | uniq -c | sort -nr

#sshのログのIPアドレスだけ強調
$ tail -f /var/log/auth.log | grep -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'

fail2ban のインストール

sudo apt install -y fail2ban

設定ファイルをコピーする

# cp -p /etc/fail2ban/jail.conf /etc/fail2ban/jail.d/jail.local

設定

[sshd]                              <-コメントを削除
enabled = true                      <-コメントを削除

起動

# systemctl enable fail2ban
# systemctl enable firewalld

確認

# systemctl status fail2ban

BANされたIPの確認

# fail2ban-client status sshd
# ipset --list
# iptables -nL

logの場所

/var/log/fail2ban.log

ファイルの位置

独自フィルタは「/etc/fail2ban/filter.d/」内に作成する。
独自アクション「/etc/fail2ban/action.d/」内に作成する。
拡張子は conf か local