cat /proc/net/netstat
показывает, что:
SyncookiesSent:0
SyncookiesRecv:0
SyncookiesFailed:34954
Получено количество плохих файлов cookie, но система не отправляет никаких файлов cookie。 Я ожидаю, что количество плохих файлов cookie получено меньше, чем отправленных файлов cookie. Кто знает причину?
2.6.32 :
static struct sock *tcp_v4_hnd_req(struct sock *sk, struct sk_buff *skb)
{
struct tcphdr *th = tcp_hdr(skb);
const struct iphdr *iph = ip_hdr(skb);
struct sock *nsk;
struct request_sock **prev;
/* Find possible connection requests. */
struct request_sock *req = inet_csk_search_req(sk, &prev, th->source,
iph->saddr, iph->daddr);
if (req)
return tcp_check_req(sk, skb, req, prev);
nsk = inet_lookup_established(sock_net(sk), &tcp_hashinfo, iph->saddr,
th->source, iph->daddr, th->dest, inet_iif(skb));
if (nsk) {
if (nsk->sk_state != TCP_TIME_WAIT) {
bh_lock_sock(nsk);
return nsk;
}
inet_twsk_put(inet_twsk(nsk));
return NULL;
}
#ifdef CONFIG_SYN_COOKIES
if (!th->rst && !th->syn && th->ack)
sk = cookie_v4_check(sk, skb, &(IPCB(skb)->opt)); <== check received ack.
#endif
return sk;
}
Вот соответствующий раздел из cookie_v4_check в net/ipv4/syncookies.c
:
if (tcp_synq_no_recent_overflow(sk) ||
(mss = cookie_check(skb, cookie)) == 0) {
NET_INC_STATS_BH(sock_net(sk), LINUX_MIB_SYNCOOKIESFAILED);
goto out;
}
NET_INC_STATS_BH(sock_net(sk), LINUX_MIB_SYNCOOKIESRECV);
Так что если:
затем SyncookiesFailed
увеличивается. В противном случае, SyncookiesRecv
увеличивается. Так что если CONFIG_SYN_COOKIES
включен в ядре, и вы столкнулись с новой нагрузкой на соединение, которая требует этого, вы ожидаете SyncookiesSent
быть позитивным, и SyncookiesRecv
быть положительным (но меньше). Как бы то ни было, похоже, что единственные, которые вы получили, недействительны.
Мы видим похожие цифры и думаем, что это потому, что UFWправила по умолчанию включают отбрасывание пакетов с недопустимым состоянием, которые могут включать исходящие и входящие файлы cookie SYN. Возможно, вы захотите проверить конфигурацию и журналы вашего брандмауэра, чтобы узнать, не происходят ли неожиданные отброшенные пакеты.
Или вы можете просто получать недействительные файлы cookie SYN из-за случайного злоумышленника. Однако в этом случае я бы ожидал отправки некоторых файлов cookie SYN.