問題
Linux カーネルは、次のような警告メッセージをログに記録することがあります:
Mar 7 09:17:14 hostname kernel: TCP: Possible SYN flooding on port 26450. Sending cookies.
または
Mar 7 09:17:14 hostname kernel: TCP: Possible SYN flooding on port 26450. Dropping request.
解決策
これは、サーバーが特定のポートに頻繁に接続しようとしていることを示す警告メッセージであり、これが SYN フラッド攻撃 (=DoS (サービス拒否) 攻撃) である可能性があることをカーネルが警告しています。
このメッセージがログに記録されると、カーネルはクライアントに syn Cookie を返すか、/proc/sys/net/ipv4/tcp_syncookies によって制御されるセルフガードのためにパケットをドロップします。 .
本当に DoS 攻撃かどうか、ポートとネットワーク トラフィックを確認してください。攻撃が確認されない場合、このメッセージは無視できます。メッセージをログに記録する頻度は、以下の 2 つのカーネル パラメータで制御できます:
/proc/sys/net/core/message_cost(def=5) /proc/sys/net/core/message_burst(def=10)
「メッセージ_コスト 」は、「カーネルが SYN フラッド攻撃である可能性があると判断する間隔 (jiffies) の長さ」です。
「メッセージバースト 」は、「message_cost 中にメッセージがログに記録される頻度」です。数を減らすと、メッセージをログに記録する頻度を減らすことができます。
これらは、実行中の本番システムでも sysctl で設定できます。たとえば、/etc/sysctl.conf に行を追加します。 として:
# vi /etc/sysctl.conf net.core.message_cost = 10 net.core.message_burst = 20
その後、次のコマンドを実行します:
# sysctl -p
これは、システムの可用性には影響しません。
「netstat」の出力に CLOSE_WAIT ステータスの接続が多数表示されるのはなぜですか?
CentOS/RHEL 7 のリモート サーバーからの「接続が拒否されました」のトラブルシューティング (Firewalld または iptables サービスの問題)