IPtablesでのFail2banブロックは、Debian Lennyでは機能しません。[移動されたsshポート]


11

私は最近、いくつかのセキュリティ保守を行うことにしました。ログを確認したところ、SSHサーバーに対していくつかの試みがありました。それは、私が何かについて読んだら最初は、私はデフォルトの22からSSHポートを遠ざけfail2banのBlockHostsDenyHostsを

私は最初を見てみました。設定は簡単で、すべてが理解可能です。しかし、「保護を調査」しようとすると、テストは失敗します。すべて問題ないようですが、サーバーには引き続きアクセスできます。

私はIPtablesもテストしました:# iptables -I INPUT -j DROP-その後、SSH接続が失われました(つまり、私が望んでいたものです)。その後# iptables -I INPUT -s 84.x.y.z -j DROP、それも働いた。

しかし、Fail2banはどのようなルールを実行しましたか、それは機能しません:($ sudo iptables -L

Chain INPUT (policy ACCEPT)
target     prot opt source               destination        
fail2ban-apache  tcp  --  anywhere             anywhere            multiport dports www,https
fail2ban-ssh  tcp  --  anywhere             anywhere            multiport dports ssh
fail2ban-ssh-ddos  tcp  --  anywhere             anywhere            multiport dports ssh

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination        

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination        

Chain fail2ban-apache (1 references)
target     prot opt source               destination        
RETURN     all  --  anywhere             anywhere            

Chain fail2ban-ssh (1 references)
target     prot opt source               destination        
DROP       all  --  84.x.y.z           anywhere            
RETURN     all  --  anywhere             anywhere            

Chain fail2ban-ssh-ddos (1 references)
target     prot opt source               destination        
RETURN     all  --  anywhere             anywhere

ロードされたカーネルモジュール:($ lsmod | grep ip

iptable_nat             4680  0
nf_nat                 15576  1 iptable_nat
nf_conntrack_ipv4      12268  3 iptable_nat,nf_nat
nf_conntrack           55540  4 xt_state,iptable_nat,nf_nat,nf_conntrack_ipv4
xt_multiport            2816  2
iptable_filter          2624  1
ip_tables              10160  2 iptable_nat,iptable_filter
x_tables               13284  5 xt_state,xt_tcpudp,iptable_nat,xt_multiport,ip_tables
ipv6                  235396  24

バージョン:

  • Debian Lenny 5.06、カーネル2.6.26-2-686
  • IPtables 1.4.2-6
  • Fail2ban 0.8.3-2sid1
  • openssh-server 1:5.1p1-5

テスト#1ステップバイステップ:

  1. Fail2banを低禁止時間に設定します。60秒 次にリロードします。
  2. 間違ったpasswdで直接(SSHで)ログインしようとしました。
  3. 6回目は正しいパスワードを入力してください(最大試行回数はここでは4回のみです)。ログインしました。そのサーバーでホストされているWebページにもアクセスできます。
  4. iptables -L上記のように私を示した。禁止がアクティブだったので、私が接続したとき、サーバーに命令しました。

テスト#2ステップバイステップ:

  1. Fail2banを停止します。at下記の禁止ルールを将来削除するためのスクリプトを作成します。(iptables -D INPUT 1
  2. 禁止ルールを作成します。 iptables -I INPUT 1 -s 84.x.y.z -j DROP
  3. 他に何も入力できませんでした。SSH接続は使用できません。ウェブページにアクセスできませんでした。それで、私がiptablesに欲しかったもの。
  4. atスクリプトの後、サーバーにアクセスできます。

解決策が表示されません。IPtablesの禁止(Fail2banによって作成)を機能させるにはどうすればよいですか?


質問を編集しました!何か案は?
アンチバーテル

回答:


8

fail2banをインストールする前に、問題を見つけました。申し訳ありません。

セキュリティ上の理由から、sshdをポート22から別のポートに移動しました。の参照iptablesは、ポート22のみを指します。私はそれが変数であり、常に現在のsshdポートを参照するものだと思いました。しかし、違います。

正確な解決策(デーモンを元のポートから移動した場合):

  1. jail.local(または.conf)を開きます。
  2. (中かっこで)サービスを見つけます。
  3. portセクションをallに修正します。例:port = all
  4. banactioniptables-allportsを使用して、ポート行の後に既存の行を追加または編集します。例:banaction = iptables-allports
  5. デーモンを再起動します。例:# service fail2ban restart

port sshディレクティブを変更するための解決策が見つからなかったか、そこに番号を書き込むことができませんでした。すべてのポート以外のソリューションがある場合は、それを聞いてみます!


1
名前の代わりにポート番号を指定するだけです。
ジュリアンナイト

また、正常に追加するには、iptable名が32文字未満でなければならないことにも注意してください。
エイドリアンロペス

2

sshサーバーを非標準ポート12345に移動した後、fail2banが禁止されないという同じ問題がありました(たとえば、)。

fail2banが何度も失敗した認証試行の後に正しいルールを生成するように、私は編集しました /etc/fail2ban/jail.conf

port = ssh 

port = 12345

標準以外のポートで他のサービスに対しても同様のアプローチが機能すると思います。


0

fail2banの設定はにあり/etc/fail2ban/jail.localます。デフォルトのインストールでは、そこにあるかどうかわかりません。次に、コピーjail.confjail.localはなので、両方のファイルがにあります/etc/fail2ban/。編集jail.localを含む行に移動し、次の[ssh]ように有効にします。

enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 6

その後、fail2banを再起動します。

sudo /etc/init.d/fail2ban restart

今はうまくいく可能性があります。私はそのように設定して、うまくいきます。


私の質問が理解できなかったと思います!Fail2banは、私が望んでいることです。ログを見て、攻撃者を禁止します。しかし、その禁止、IPtablesがしなければならないことは、機能しません。上記のルール設定でサーバーに引き続きアクセスできます。
アンチバーテル

すみません、急いでいたので誤解してしまい、jail.localを追加することで解決した同じ問題があったので、助けになると思いました。残念ながら、すべてが正しく設定されている場合、私は何が問題なのかわかりませんが、他の誰かがそうすることを願っています。
eneden

0

「Fail2ban 0.8.3-2sid1」がインストールされていると記載されています。これはサポートされていない構成です。Sidパッケージは安定した環境にインストールしないでください。

LennyからアップグレードしたDebian 6(Squeeze)を、自宅用のSSHサーバーとしてVMで実行しています。私はfail2banも使用しています。私はあなたのテスト#1を実行し、すべてが正常に機能しました。最大試行回数でログインに失敗し、ログイン要求が60秒間ドロップされました。

私のバージョンリスト:

  • / etc / debian_version = 6.0.1
  • fail2ban = 08..4-3
  • iptables = 1.4.8
  • openssh-server = 1:5.5p1-6

いいえ、適切なパッケージを持っています。packages.debian.org/search?suite=lenny&keywords=fail2ban
antivirtel '17 / 07/17

その場合は、dist-upgradeを実行することをお勧めします。
James Sumners、

okk、それは簡単ではありませんが、どうにかしてなんとかするつもりです
...-

sed -i 's/lenny/squeeze/' /etc/apt/sources.list && apt-get update && apt-get dist-upgrade。とても簡単です。
James Sumners、

はい、しかし次回起動しない可能性はありますか...リリースノートには、その新しいケネル+新しいudevシステム...と書いてあります...-あなたのマシンで成功しましたか?
アンチバーテル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.