小規模DDoSはFreebsd+IPFWで解決します。
本稿で検討した方法は、小規模な悪意の攻撃に対してのみ有効である。弊社は全部で10台のWebサーバーを持っています。Redhat Linux 9をオペレーティングシステムとして、全国の大都市に分布しています。主にユーザーにHTTPサービスを提供しています。しばらくの間、多くのユーザーが、あるサーバーのアクセス速度が遅く、アクセスできないという反応を示しました。検査後、DDoS攻撃を受けたことが分かりました。サーバーが分散しすぎて、ハードウェアファイアウォールの方案を採用できません。IPtablesの機能はとても強くて、大部分の攻撃に十分対応できますが、Linuxシステム自体はDDoS攻撃に対する防御力がもともと弱いので、他の方法を考えるしかありません。一、Freebsdの魅力を発見したFreebsdの利点は偶然のテストで、LANにInternetを仮想して、Windows Server、Linux Server、Frebsdを一つのWindowsクライアントでそれぞれ一台のSyn Flook数パケットを送ることです。Windowsは10個のカバンに達すると完全に応答を停止し、Linuxは10個のパケットに達すると接続が正常ではなく、Freebsdは100個以上のSyn Flookのパケットに耐えることができます。筆者は会社のすべてのWebサーバをFreebsdプラットフォームに変更することにした。Freebsdを使って、確かに穏やかな時間を過ごしました。しかし、最近はまた、ユーザーがサイトに正常にアクセスできないことを再反映し、症状はユーザーのためのページを開くのが遅い、または直接にサイトが見つからないと表示されます。netstat CaであるIPからの接続はちょうど50個で、状態は全部FIN_です。WAIT 1、これは明らかなDDoS攻撃です。Freebsdはファイアウォールがなくても万能ではないようです。N多資料を見て、Freebsdの下で最も一般的なファイアウォールはIP FireWallと言います。中国語の字面はIPファイアウォールと言います。IPFWと略称します。しかし、IPFWを使用するにはFreebsdシステムのカーネルをコンパイルする必要があります。安全のために、コンパイルが終わった後、IPFWはデフォルトですべてのネットワークサービスを拒否しています。システム自体に対して拒否します。これで徹底的に「寒」します。外のサーバーに置いたらどうすればいいですか?皆さん、ここで気をつけてください。スペックに注意しないとサーバーがすべてのサービスを拒否する可能性があります。私はFreebsd 5.0 Releaseをインストールしたサーバーでテストを行いました。二、IPFWを配置することは、実際にはIPFWのインストールをソフトウェアのアップグレードの過程と見なし、Windowsでソフトウェアをアップグレードするなら、アップグレードパッケージをダウンロードしてインストールする必要があります。Freebsdでソフトウェアをアップグレードするのも同じですが、今日アップグレードしたこの機能はシステム自体が内蔵されています。この機能を利用すればいいです。この機能を開く前に、私たちは準備をします。IPFWの基本パラメータの設定を開始します。Step 1:準備作業はコマンドプロンプトの下で次のように行います。このディレクトリがないとヒントがあれば、ポータブルサービスがインストールされていないということです。ヽoo。ツ。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。IPFW Step 2:カーネルルールはエディタでケネルを開きます。IPFWというファイルは、ファイルの末尾に以下の4行の内容を追加します。オプティクスIPFIREWALLは、パケットフィルタ部分のコードをカーネルにコンパイルします。options IPFIREWALL_VERRBOSEはSyslogdで記録したログを有効にします。このオプションが指定されていない場合、フィルタルールに記録パッケージが指定されていても、本当に記録されません。options IPFIREWALL_VERRBOSE_LI MIT=10はSyslogdによって記録される各パケットルールの記録バー数を制限する。大量の攻撃を受けたら、ファイアウォールの活動を記録したいですが、Syslog洪水のような記録によって日記の書き込みに失敗したくないです。このオプションは有効です。この規則があります。ルールチェーンの中の一つが制限値に達すると、対応するログは記録されなくなります。options IPFIREWALL_DEFAULT_TOACCEPTという言葉が一番重要です。デフォルトのルール動作を「deny」から「allow」に変更します。このコマンドの役割は、デフォルトの状態では、IPFWは任意のデータを受け入れるということです。つまり、サーバーはファイアウォールがないように見えます。もし何かルールが必要なら、インストールが完了したら、そのまま追加すればいいです。入力が完了したら、ケネル_を保存します。IPFWファイルは終了します。三、コンパイルシステムのカーネルはFreebsdとLinuxのように、ソースコードを公開するオペレーティングシステムであり、Windowsのようなコードはパッケージされていません。問題が発生したら、推測するか、マイクロソフトに相談するしかないです。Freebsdシステムのカーネルは絶えずアップグレードされていますので、新しいバージョンの機能を使うために、あるいはより効率的で安定したシステムをカスタマイズするために、システムカーネルをコンパイルする必要があります。もちろん、ここでカーネルをコンパイルするのは、新しいバージョンの機能を使うのではなく、より効率的なシステムを得るためです。コンパイルの過程では、エラーメッセージをできるだけ減らすために、コンフィギュレーションファイルを最小限にしました。もしエラーメッセージがあれば、入力ミスなどの細かい問題があるかどうか、よく確認してください。Step 1:コンパイルに必要なコマンドは、コマンドライン上で次のコマンドを実行します。IPFWの実行が完了すると、次のようなヒントがあります。IPFW Don't forget to do a make depend'菗cd./comppile/ケネル_IPFWはこの場所で注意してください。Freebsd 4.Xバージョンは。IPFWですが、Freebsd 5.0バージョンは。IPFW葃make install Step 2:コンパイルを開始するカーネルはシステム性能によって違います。時間も違います。普通のダブルP 4 XEON 1 GBメモリのサーバーは5分ぐらいで完成できます。四、ローディングスタート項目のコンパイルが完了しました。システムに自動的にIPFWを起動させてログを記録するには、以下の操作が必要です。Step 1:エディタ編集/etc/rc.com fは下記のパラメータに加えます。firewall_enable=「YES」Firewallファイアウォールfirewallをアクティブにします。script=「/etc/rc.firewall」Firewallファイアウォールのデフォルトシナリオfirewall_type=「/etc/ipfw.com nf」Firewallカスタムスクリプトfirewall uquiet=「NO」スクリプトを有効にすると、ルール情報が表示されますか?もしあなたのファイアウォールのシナリオがもう修正されないなら、ここを「YES」に設定することができます。firewall_ロゴギングenable="YES"Firewallのログを有効にするStep 2:編集/etc/sylog.comファイルはファイルの最後に次の内容を追加します。ipfw*/var/log/ipfw.logという行の役割はIPFWのログを/var/log/ipfw.logファイルに書くことです。もちろん、ログファイルに他のディレクトリを指定することもできます。以上の手順が完了したらパソコンを再起動します。五、使用して保存するルールが完成したら、SSHであなたのリモートサーバにログインできることが分かります。Step 1:ログインしたばかりの時に、あなたのシステムに何か変化があるかは確認できませんが、以下のコマンドを試してみてください。以下の結果を出力します。65535 322 allow ip from any。これはIPFWの有効化に成功し、任意の接続が可能になったと教えてくれます。Step 2:コマンドプロンプトの下に次のコマンドを入力します。マティックipfw add 10001 deny all from 21.249.20.135 to any。21.249.20.135からのサービスを拒否します。実行が完了すると、IP 21.249.20.135からのサービスは全部拒否されます。Step 3:このコードを/etc/rc.firewallファイルに保存します。ipfw add 10001 deny all from 21.249.20.135 to any、次のように実行します。このコマンドを実行します。あなたのシステムを再起動するか、あなたのIPFWが有効になります。手動で解除しない限り、21.249.20.135からのすべての情報は全部拒否されます。