iptablesでブルートフォースのsshをブロックできない


9

私のsshdサーバーに対するブルートフォース攻撃をブロック(スローダウン)しようとしています。私はこのガイドhttp://www.rackaid.com/resources/how-to-block-ssh-brute-force-attacks/に従っています基本的には、以下の2つのコマンドを入力するだけでよいと言っています。

sudo iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --set
sudo iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent  --update --seconds 60 --hitcount 4 -j DROP

私のsshdポートは6622なので、エントリを「22」から「6622」に変更し、それらのコマンドを入力しました。次に、新しいiptablesを簡単にテストしてみました。別のPCに行って、意図的に間違ったログインパスワードを何度か入力しました。残念ながら、新しいルールによって、思い通りに試すことができなくなっているようには見えません。以下は私の現在のルールです。何が悪いのですか?

# iptables --list

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
DROP       tcp  --  anywhere             anywhere             tcp dpt:6622 state NEW recent: UPDATE seconds: 60 hit_count: 4 name: DEFAULT side: source
           tcp  --  anywhere             anywhere             tcp dpt:6622 state NEW recent: SET name: DEFAULT side: source

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain LOGDROP (0 references)
target     prot opt source               destination         
LOG        all  --  anywhere             anywhere             LOG level warning
DROP       all  --  anywhere             anywhere            

4
総当たり攻撃を示しているブロックIPを処理するためにfail2banをお勧めします。インストールと設定は簡単です。私はそれがあなたの質問に直接答えないことを知っていますが、乾式壁にいくつかの穴を節約するかもしれません。
Banjer 2013年

1
@Banjerに同意する-そのラックリンクを忘れて、fail2banを設定します。
Shadur 2013年

MaxStartupsデーモン側で微調整が役立つかもしれませんか?
peterph 2013年

2
@peterph総当たり攻撃をサービス拒否に変えたい場合のみ。
Shadur 2013年

sshサーバーをインターネットに公開し、その影響を最小限に抑えようとするのはなぜですか?職場でも自宅でも、ipsec VPN経由でインターネットにアクセスします。
Rui F Ribeiro

回答:


5

@banjerがコメントで指摘したように、実際の問題に対して間違った解決策を試みています。

あなたがする必要があるのはfail2banを設定すること です。バックグラウンドでiptablesを使用して、さまざまなソースからの失敗したアクセス試行を生成するホストからの接続試行を自動的にブロックします。これは信じられないほど用途が広く、さまざまなしきい値、検索するパターン、メソッドの禁止を追加および変更できます。使用している非標準ポートを考慮して、デフォルトのssh jailを少し調整する必要がありますが、難しくありません。


1

私はこのようなルールを使用して物事を遅くしています:

iptables -A DDoS -m limit --limit 12/s --limit-burst 24 -j RETURN
iptables -A DDoS -j LOG --log-prefix "[DDos Attack?] "
iptables -A DDoS -j DROP

他の場所では、私はこのようなことを制限します:

LOGLIMIT="50/h"
LOGLIMITBURST="10"
iptables -A IANA -p tcp -m limit --limit $LOGLIMIT --limit-burst \
     $LOGLIMITBURST -j DROP

0

マニュアルページを読みましたか?

man sshd_config:

 MaxAuthTries
         Specifies the maximum number of authentication attempts 
         permitted per connection.  Once the number of failures 
         reaches half this value, additional failures are logged. 
         The default is 6.
 MaxSessions
         Specifies the maximum number of open sessions permitted 
         per network connection.  The default is 10.
 MaxStartups
         Specifies the maximum number of concurrent unauthenticated
         connections to the SSH daemon.  Additional connections
         will be dropped until authentication succeeds or 
         the LoginGraceTime expires for a connection. The default is 10:30:100.

         Alternatively, random early drop can be enabled by specifying
         the three colon separated values “start:rate:full” (e.g.
         "10:30:60").  sshd(8) will refuse connection attempts with a
         probability of “rate/100” (30%) if there are currently “start”
         (10) unauthenticated connections.  The probability increases
         linearly and all connection attempts are refused if the 
         number of unauthenticated connections reaches “full” (60).

3
助けにはならない。SSHブルートフォース攻撃は最近分散ボットネットワークで使用される傾向があるため、各接続は3〜4回しか試行しませんが、さまざまなホストから何百もの接続があります。
Shadur 2013年

0

2つのルールソリューションを試したところ、確認したところ同じ問題がありました。次に、公開されたルールには-i eth0オプションがあると言います!私はそれを良いネットワークインターフェースに変更し、ついに機能し始めました。


0

ほとんどのチュートリアルは-A、ルールセットの最後に追加するために使用します。OPは以前-Iは挿入なしでインデックスを使用していなかったため、ルールの順序が間違っていました。

iptablesルールをデバッグするための貴重なツールiptables -vLは、各ルールが適用された回数のカウントとともにルールを一覧表示することです。予期しない0のカウントを取得すると、何が問題かを確認するのに役立ちます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.