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


36

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

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

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


5
sudo iptables -L -n
セス14年

たくさんの出力があります。何を探していると思いますか?i.imgur.com/zTTXJTE.png ...おかげで.. ufw allow <ip_address>を実行しましたが、まだ動作しませんでした。私はそれが禁止されたと言っている場所を知らない。
パトシパトシ14

また、ufwステータスを実行してからufwを無効にし、iptables -Fを実行してからufwを有効にしました。それでも、サーバーにリモートでアクセスできません。私のIPは、ステータスボックスに許可として明確に表示されます。i.imgur.com
パトシパトシ

サーバーを投入する前にsshポートを開いていますか?
カシム14年

どうやって確認しますか?ファイアウォールがオフのときにSSHで接続できます。だからデフォルトで動作していませんか?
パトシパトシ14

回答:


24

sudo iptables -L INPUT -v -n | less

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


2
2014年以降、何かが変わったのかもしれませんが、現状では、fail2banはINPUTチェーンに物事を入れていないため、この答えは間違っています。
ビリノア

@billynoahもちろん、何かが変わった。人生には静的なものはありません。1つは、12.04のサポートが終了したことです。あなたはまだそれを使用している場合、私はあなたが4月2021までサポートされています16.04 LTSにアップグレードすることをお勧めします
エルダーオタク

2014年と言ったので、12.04を参照しているかどうかわかりませんか?私はあなたの答えの年について話していました。
ビリーノア

1
@billynoah 12.04を参照しているのは、この回答が提供された質問で参照されているという事実のためです。ご迷惑をおかけしましたことをおaび申し上げます。:
オタク長老

45

ショートバージョン

現在ブロックされているすべての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:

今受け入れられた答えであるはずです。
バスジ

awkなし:fail2ban-client status | grep "Jail list:" | sed "s/`- Jail list://" | sed "s/\s//g" | sed "s/,/\n/g" | xargs -L1 fail2ban-client status | less
Quamis

21

以前に禁止されたすべてのIPを見ることができます /var/log/fail2ban.log

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"'

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


fail2banは禁止を行うメインアプリケーションであり、他のアプリではありませんか?私のサーバーは基本的なubuntuサーバーなので、他に何もインストールしていません。
パトシパトシ14

その場合、はい。
オリ

1
私の現在のバージョンでは、Banという語NOTICE [snap-iptables] Ban 45.32.216.148':'後ではなく、前後にスペースがあります。
アレクシスウィルク
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.