The blackholesysctl(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.
SCTP
Setting 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.
TCP
Normal 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.
UDP
Enabling 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.