iptablesアクセス制御ルール2則

2082 ワード

ssh暴力の解読を防ぐ


従来、Vim表示のauthに直面していた.logに画面いっぱいの赤いsshログイン失敗記録は、許容するか、ポート番号を交換するか、fail 2 banです.ポート番号の変更は明らかに多くの不便をもたらし、特に使用者が多い場合です.fail 2 banは以前もよく使われていましたが、プロファイルを手動で編集し、長い注釈を読み、パラメータを慎重に変更する必要があります.構成が整うとfail 2 banからメールがよく届きます.これらはすべて我慢できます.ある日、ある利用者がうっかりログインに何度も失敗した後、そのIPは閉鎖された.私は/etc/hosts.denyでは対応する項目を削除しましたが、fail 2 banがauthをチェックするので役に立ちません.ロゴ、そしてそのIPを足して・・・
先日は制限速度の命令を探していたが、何気なくssh暴力の解読を防ぐ命令を見た.

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

最初の文は、外来データについて、TCPプロトコルであれば、ターゲットポート番号は22であり、ネットワークインタフェースはeth 0であり、ステータスは新しい接続であれば、それを最近のリストに追加するということです.2番目の文は、このような接続について、最近のリストで60秒以内に4回以上に達した場合、データを破棄することである.その中の-mはモジュールの意味です.
すなわち,1つのIPから1秒以内に接続して4回sshログインを試みる人がいれば,ブラックリストに登録され,後続の接続は破棄される.これはssh暴力の解読に対処する絶好のルールだ.Openshhを変更する必要もなく、面倒なサービスを追加する必要もありません.しかし、どのくらい後にそのIPが再接続されるか分かりません.
私が実際に使っていたとき、北京のIPがsshログインを試みていました.コマンド実行後、auth.ロゴの中の赤い失敗のニュースはまた4回現れて、それからなくなりました.後で調べてみると、まだ赤い色がたくさん見えますが、以前ほど密集していません.さらに重要なのは、4つのログイン失敗メッセージごとに時間間隔が大きいことです.効果は著しいと言えるでしょう.

ネットワーク速度制限


これは私が今回iptablesに関する情報を検索した本意です.起因はこうですが、ローカルテストでは、ローカル接続の速度が速すぎることがよくわかります.ウェブサイトについては、実際の使用体験を反映することはできません.ネットワークプログラムでは、ネットワーク不良時の表現をテストすることはできません.テストの規模が小さいため、実際に使用するときに発生しやすい競合も、操作が速すぎて再現できません.
iptablesが転送トラフィックを制限できることは早くから知られていた.一部のビジネスソフトウェアではなくiptablesである以上、ローカルインタフェースloではなく外部トラフィックを制限するしかない理由はありません.そして最後に次のコマンドを手に入れました.

iptables -A INPUT -s 127.0.0.1 -p tcp --dport -d 127.0.0.1 6900:6901 -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -s 127.0.0.1 -p tcp --dport -d 127.0.0.1 6900:6901 -j DROP

この2つのルールを組み合わせると、127.0.0.1から同じアドレスの6900から6901ポートへのTCP接続は、1秒に1つのパケットしか受け入れられず、余分な破棄が行われる.後の文は必要で、書かなければ役に立たない.デフォルトの策略は受け入れるからだ.
なお、ドメイン名localhostを使用すると、::1ではなくIPv 6アドレス127.0.0.1が使用される可能性が高い.

リファレンスリンク

  • Using iptables to rate-limit incoming connections