web-dev-qa-db-ja.com

毎分-ポート80でのSYNフラッディングの可能性

Linuxサーバーでは、よく知られているSYNフラッドメッセージが表示されることがあります。

possible SYN flooding on port 80

webサイトのトラフィックが大きいため、これはおそらく攻撃ではありません。

しかし、これらのメッセージは60秒ごとに届くようになりました。私が意味することは次のとおりです:

Aug 16 01:22:44 amadeus kernel: possible SYN flooding on port 80. Sending cookies.
Aug 16 01:23:45 amadeus kernel: possible SYN flooding on port 80. Sending cookies.
Aug 16 01:25:05 amadeus kernel: possible SYN flooding on port 80. Sending cookies.
Aug 16 01:26:06 amadeus kernel: possible SYN flooding on port 80. Sending cookies.
Aug 16 01:27:13 amadeus kernel: possible SYN flooding on port 80. Sending cookies.
Aug 16 01:28:13 amadeus kernel: possible SYN flooding on port 80. Sending cookies.
Aug 16 01:29:14 amadeus kernel: possible SYN flooding on port 80. Sending cookies.
Aug 16 01:30:39 amadeus kernel: possible SYN flooding on port 80. Sending cookies.
Aug 16 01:31:41 amadeus kernel: possible SYN flooding on port 80. Sending cookies.
Aug 16 01:32:53 amadeus kernel: possible SYN flooding on port 80. Sending cookies.
Aug 16 01:33:57 amadeus kernel: possible SYN flooding on port 80. Sending cookies.
Aug 16 01:35:03 amadeus kernel: possible SYN flooding on port 80. Sending cookies.
Aug 16 01:36:27 amadeus kernel: possible SYN flooding on port 80. Sending cookies.
Aug 16 01:37:30 amadeus kernel: possible SYN flooding on port 80. Sending cookies.
Aug 16 01:38:44 amadeus kernel: possible SYN flooding on port 80. Sending cookies.

これは偶然ですか?トラフィックがあるため、「SYNフラッディングの可能性」メッセージが大量に発生することは心配しませんが、それらは60秒ごとです。

/etc/rc.localのカスタム設定は次のとおりです

# 3M
echo 3145728 > /proc/sys/net/netfilter/nf_conntrack_max

# 256k
echo 262144 > /proc/sys/net/ipv4/tcp_max_orphans

echo 1048576 1572864 4194304 > /proc/sys/net/ipv4/tcp_mem

# Neighbour Table Overflow
echo  4096 > /proc/sys/net/ipv4/neigh/default/gc_thresh1
echo  8192 > /proc/sys/net/ipv4/neigh/default/gc_thresh2
echo 16384 > /proc/sys/net/ipv4/neigh/default/gc_thresh3

echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse
echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle

# Disable ip_forward
echo "0" > /proc/sys/net/ipv4/ip_forward

# Enable SYN Cookies
echo "1" > /proc/sys/net/ipv4/tcp_syncookies

echo 40 > /proc/sys/net/netfilter/nf_conntrack_tcp_timeout_syn_recv

(この質問が重複しているが、同様の問題が見つからなかった場合は申し訳ありません)。

5
Nick

同様の質問 とすべての回答を読んだので、@ Jeffが彼の回答(これは受け入れられた回答ではない)で示唆していることを試してみてください。ポート80で実行されているアプリケーション。

着信接続の「キュー」または「バックログ」がいっぱいになると、メッセージが表示されるようです。

例えば。 Apache2の場合、彼は次のように書いています。

これを解決するには、/ etc/Apache2/ports.confまたは他の.confファイルのいずれかに次の行を追加します。これは、Apache(/ etc/Apache2/Apache2。 confも大丈夫です):

ListenBackLog 5000

そして、tcp_max_syn_backlogを同じに上げます

Sudo sysctl -w net.ipv4.tcp_max_syn_backlog=5000
4
thelogix