[解決済み] SYN_SENTを停止するには?
質問
実行中
netstat
は、サーバーを再起動しても、この行が何百も表示されます - 再び送信を開始し、そのIPへの多くの接続を引き起こします。
tcp 0 1 server1700.skdedicate:36283 154.45.206.59:https SYN_SENT
tcp 0 1 server1700.skdedicate:36283 154.45.206.59:https SYN_SENT
tcp 0 1 server1700.skdedicate:36283 154.45.206.59:https SYN_SENT
tcp 0 1 server1700.skdedicate:36283 154.45.206.59:https SYN_SENT
tcp 0 1 server1700.skdedicate:36283 154.45.206.59:https SYN_SENT
すべてのスクリプトを停止しましたが、まだ試行錯誤が続いています。
これは、IPが応答していないことを意味していると思いますが
SYN_SENT
を止めるにはどうすればよいのでしょうか?
SYN_SENT
? または、これに対する最良の解決策は何ですか?
ありがとうございます。
解決方法は?
この質問は多くのビューを得るが、まだ答えがないようなので、解決策を探している人のために私自身の質問に答えることにしました。
まず最初に、原因を知ることは解決策の半分です。私は、HTTPプロトコルの動作を自分自身に対して使用するSYNフラッディング攻撃と呼ばれるものにさらされていました。
簡単に説明すると、リモートクライアントがSYNを送信してサーバーとの接続を確立しようとすると、サーバーはSYN_ACKで応答し(ログにはSYN_SENTと表示されます)、ACKを受け取るまで待ちます。ACKがxx秒以内に受信されない場合、サーバーはSYN_ACKを再度送信し、・・・・・・・・・・・・・・・を繰り返します。最終的には設定された閾値に達し、それ以上のSYNリクエストは受け付けなくなり、サーバーは応答しなくなります。私に起こった症状の1つは、私のウェブサイトが何事もなかったかのように一度は反応したが、次のxx回で反応しなくなったというものです。
私の場合は、SYNクッキーを有効にして、サーバーにSSH接続し、お気に入りのエディターで以下のファイルを開いて、解決策を得ました。この例ではviを使用しています。
vi /etc/sysctl.conf
そして、これらの行をファイルに追加し、サーバーを再起動します。うまくいけば、私の場合のように、これで攻撃を止めることができます。
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.tcp_synack_retries = 3
私はCentOSを使用していたので、上記の解決策はすべてのディストリビューションで動作すると思いますが、そうでない場合は、お使いのLinuxディストリビューションの "How to stop SYN Flooding Attack" を検索してください。
余談ですが、SYNリクエストを開始したIPをブロックしても、攻撃者がIPを偽装している可能性が高いので、おそらく役に立ちません。
関連
-
[解決済み】Postgresql -bash: psql: コマンドが見つかりませんでした。
-
[解決済み] sshpass: コマンドが見つからないエラー
-
[解決済み] CLIから、ファイルの最終行を表示する
-
[解決済み] Linuxで特定のテキストを含むすべてのファイルを検索するにはどうすればよいですか?
-
[解決済み] ワイルドカードマッチングに基づいて、現在のフォルダとサブフォルダ内のすべてのファイルを再帰的に検索するにはどうすればよいですか?
-
[解決済み] フォルダとそのサブフォルダ/ファイルのパーミッションを一括で変更する方法
-
[解決済み] Linux上で動作するC++コードのプロファイリングを行うにはどうすればよいですか?
-
[解決済み] エクスポートされた環境変数を削除する方法を教えてください。
-
[解決済み] すべてのディレクトリとサブディレクトリを再帰的にgrepするにはどうしたらいいですか?
-
[解決済み] find .コマンドでディレクトリを除外する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】ssh: ホスト名を解決できなかった [ホスト名]: nodename も servname も提供されないか、不明 [終了].
-
[解決済み】makeでビルドした後の.dファイルとは?
-
[解決済み] glibc: elfファイルのOS ABIが無効です。
-
[解決済み] Linuxで.dllを使用することは可能です [重複].
-
[解決済み] STRACEがEAGAINを表示する理由(リソースが一時的に使用できないため)
-
[解決済み] awk や sed を使って特定の文字を削除する
-
[解決済み] あるパターンの前にテキストを追加する際に、大文字小文字を無視してsedを使用する
-
[解決済み] Bashを使ったファイルの検索とコピー [重複]。
-
[解決済み] CLIから、ファイルの最終行を表示する
-
[解決済み] Linux の設定 -- ssmtp: smtp.gmail.com:587 を開くことができません。