blackhole - drop refused TCP or UDP connects Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materia...
NAMEblackhole - a sysctl(8) MIB for manipulating behaviour in respect of refused SCTP, TCP, or UDP connection attempts
SYNOPSISsysctl net.inet.sctp.blackhole [= Brq 0 | 1 | 2 ] sysctl net.inet.tcp.blackhole [= Brq 0 | 1 | 2 ] sysctl net.inet.udp.blackhole [= Brq 0 | 1 ]
DESCRIPTIONThe sysctl Cm net.inet.tcp.syncookies sysctl(8) MIB is used to control system behaviour when connection requests are received on SCTP, TCP, or UDP ports where there is no socket listening.
The blackhole behaviour is useful to slow down an attacker who is port-scanning a system in an attempt to detect vulnerable services. It might also slow down an attempted denial of service attack.
SCTPSetting the SCTP blackhole MIB to a numeric value of one will prevent sending an ABORT packet in response to an incoming INIT. A MIB value of two will do the same, but will also prevent sending an ABORT packet when unexpected packets are received.
TCPNormal behaviour, when a TCP SYN segment is received on a port where there is no socket accepting connections, is for the system to return a RST segment, and drop the connection. The connecting system will see this as a ``Connection refused'' By setting the TCP blackhole MIB to a numeric value of one, the incoming SYN segment is merely dropped, and no RST is sent, making the system appear as a blackhole. By setting the MIB value to two, any segment arriving on a closed port is dropped without returning a RST. This provides some degree of protection against stealth port scans.
UDPEnabling blackhole behaviour turns off the sending of an ICMP port unreachable message in response to a UDP datagram which arrives on a port where there is no socket listening. It must be noted that this behaviour will prevent remote systems from running traceroute(8) to a system.
WARNINGThe SCTP, TCP, and UDP blackhole features should not be regarded as a replacement for firewall solutions. Better security would consist of the sysctl Cm net.inet.tcp.syncookies sysctl(8) MIB used in conjunction with one of the available firewall packages.
This mechanism is not a substitute for securing a system. It should be used together with other security mechanisms.
SEE ALSOip(4), sctp(4), tcp(4), udp(4), ipf(8), ipfw(8), pfctl(8), sysctl(8)
HISTORYThe TCP and UDP sysctl Cm net.inet.tcp.syncookies MIBs first appeared in Fx 4.0 .
The SCTP sysctl Cm net.inet.tcp.syncookies MIB first appeared in Fx 9.1 .