web-dev-qa-db-ja.com

コマンドラインを使用して、Ubuntu 12.04のすべての禁止IPを表示するにはどうすればよいですか?

サーバー上の禁止されているIPをすべて表示するための簡単なコマンドは見つかりません。または、編集できるファイルはありますか?

Fail2banは、禁止するすべてのIPを入力するものだと思います。設定をどこで調整しますか?

Ufwを無効にした場合にのみ、リモートでサーバーにログインできます。自分の禁止を解除する方法を見つけることができないようです。そもそもなぜ私が禁止されたのかさえ分かりません。行われたすべての試行を表示するための何らかのログがありますか?

35

Sudo iptables -L INPUT -v -n | less

これにより、iptablesにINPUTチェーン内のすべてのルールを一覧表示し、詳細な数値出力を提供します。一度に1ページずつ取得できるように、パイプ処理を少なくしています。

24
Elder Geek

ショートバージョン

現在ブロックされているすべてのipsをリストします。

fail2ban-client status | grep "Jail list:" | sed "s/ //g" | awk '{split($2,a,",");for(i in a) system("fail2ban-client status " a[i])}' | grep "Status\|IP list"

iPの禁止を解除します。

fail2ban-client set postfix-mail unbanip 111.222.333.444

ロングバージョン

そのための「公式」な方法を探している場合は、fail2banのコマンドラインクライアントがあります https://www.fail2ban.org/wiki/index.php/Commands

~ # fail2ban-client status
Status
|- Number of jail:      8
`- Jail list:           roundcube, sshd, sogo, postfix-sasl, postfix-mail, dovecot, ssh, sshd-ddos

その後、実行できます

~ # fail2ban-client status roundcube

Status for the jail: roundcube
|- filter
|  |- File list:        /var/log/mail.log
|  |- Currently failed: 0
|  `- Total failed:     12
`- action
   |- Currently banned: 1
   |  `- IP list:       111.222.333.444
   `- Total banned:     1

または、既存のすべてのjailを反復処理する私のコマンドを使用できます。

fail2ban-client status | grep "Jail list:" | sed "s/ //g" | awk '{split($2,a,",");for(i in a) system("fail2ban-client status " a[i])}' | grep "Status\|IP list"

どの出力:

Status for the jail: roundcube
   |  `- IP list:
Status for the jail: sshd
   |  `- IP list:
Status for the jail: sogo
   |  `- IP list:
Status for the jail: postfix-sasl
   |  `- IP list:
Status for the jail: postfix-mail
   |  `- IP list:
Status for the jail: dovecot
   |  `- IP list:
Status for the jail: ssh
   |  `- IP list:
Status for the jail: sshd-ddos
   |  `- IP list:
45
c33s

/var/log/fail2ban.logを使用して、以前に禁止されたすべてのIPを確認できます

Sudo zgrep 'Ban' /var/log/fail2ban.log*

ただし、一部の禁止は一時的なものであるため、それらをキャンセルする最善の方法はわかりません(私のfail2banログは空なので、テストが難しくなります!)。 awkコマンドを使用して大きなアカウンティングスキームに入ることができますが、かなり退屈になっています。

とにかく、それがあなたが禁止された理由を探しているなら、あなたがそれをしたい方法。

もう1つの方法は、IPテーブルを調べて、ドロップされているものを確認することです。繰り返しますが、これにはオーバーライドされるデフォルトルートが表示されますが、ソースが0.0.0.0/0のルールをブロックしているため、実際の使用に十分なほどきれいに保つため、これにはいくつかの問題があります。

Sudo iptables -L -n | awk '$1=="DROP" && $4!="0.0.0.0/0"'

しかし、これは禁止が起こった理由を説明しません。

21
Oli