Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
BLACKHOLE(4)		     Kernel Interfaces Manual		    BLACKHOLE(4)

NAME
     blackhole -- quietly drop refused SCTP, TCP, or UDP packets

SYNOPSIS
     sysctl net.inet.sctp.blackhole[={0 | 1 | 2}]
     sysctl net.inet.tcp.blackhole[={0 | 1 | 2 | 3}]
     sysctl net.inet.tcp.blackhole_local[={0 | 1}]
     sysctl net.inet.udp.blackhole[={0 | 1}]
     sysctl net.inet.udp.blackhole_local[={0 | 1}]

DESCRIPTION
     The  blackhole  sysctl(8) MIB is used to control system behaviour when con-
     nection requests are received on SCTP, TCP, or UDP ports where there is  no
     socket listening or unexpected packets are received on listening sockets.

     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.

     The  blackhole  behaviour	is disabled by default.  If enabled, the locally
     originated   packets   would   still   be	 responded   to,   unless   also
     net.inet.tcp.blackhole_local  (for TCP) and/or net.inet.udp.blackhole_local
     (for UDP) are enforced.

   SCTP
     Setting the SCTP blackhole MIB to a numeric value of one will prevent send-
     ing 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 unex-
     pected 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 seg-
     ment, and drop the incoming SYN segment.  The connecting  system  will  see
     this  as a "Connection refused".  By setting the TCP blackhole MIB to a nu-
     meric 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.  Setting the MIB value to three, any segment arriving  on  a  closed
     port  or an unexpected segment on a listening port is dropped without send-
     ing a RST in reply.   This  provides  some  degree  of  protection  against
     stealth port scans.

   UDP
     Enabling blackhole behaviour turns off the sending of an ICMP port unreach-
     able  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.

WARNING
     The  SCTP,  TCP, and UDP blackhole features should not be regarded as a re-
     placement for firewall solutions.	Better security  would	consist  of  the
     blackhole sysctl(8) MIB used in conjunction with one of the available fire-
     wall packages.

     This  mechanism  is  not  a substitute for securing a system.  It should be
     used together with other security mechanisms.

SEE ALSO
     ip(4), sctp(4), tcp(4), udp(4), ipf(8), ipfw(8), pfctl(8), sysctl(8)

HISTORY
     The TCP and UDP blackhole MIBs first appeared in FreeBSD 4.0.

     The SCTP blackhole MIB first appeared in FreeBSD 9.1.

AUTHORS
     Geoffrey M. Rehmet

FreeBSD 15.1		       September 24, 2025		    BLACKHOLE(4)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=blackhole&manpath=FreeBSD+15.1-RELEASE+and+Ports.quarterly>

home | help