Copyright © 2002-2004 Thomas M. Eastep
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover, and with no Back-Cover Texts. A copy of the license is included in the section entitled “GNU Free Documentation License”.
2004-02-17
Table of Contents
Shorewall supports two different forms of blacklisting; static and dynamic. Beginning with Shorewall version 1.4.8, the BLACKLISTNEWONLY option in /etc/shorewall/shorewall.conf controls the degree of blacklist filtering:
BLACKLISTNEWONLY=No -- All incoming packets are checked against the blacklist. New blacklist entries can be used to terminate existing connections. Versions of Shorewall prior to 1.4.8 behave in this manner.
BLACKLISTNEWONLY=Yes -- The blacklists are only consulted for new connection requests. Blacklists may not be used to terminate existing connections. Only the source address is checked against the blacklists.
Only the source address is checked against the blacklists. Blacklists only stop blacklisted hosts from connecting to you — they do not stop you or your users from connecting to blacklisted hosts .
Neither form of Shorewall blacklisting is appropriate for blacklisting 1,000s of different addresses. The blacklists will take forever to load and will have a very negative effect on firewall performance.
Shorewall static blacklisting support has the following configuration parameters:
You specify whether you want packets from blacklisted hosts dropped or rejected using the BLACKLIST_DISPOSITION setting in /etc/shorewall/shorewall.conf.
You specify whether you want packets from blacklisted hosts logged and at what syslog level using the BLACKLIST_LOGLEVEL setting in /etc/shorewall/shorewall.conf.
You list the IP addresses/subnets that you wish to blacklist in /etc/shorewall/blacklist. Beginning with Shorewall version 1.3.8, you may also specify PROTOCOL and Port numbers/Service names in the blacklist file.
You specify the interfaces whose incoming packets you want checked against the blacklist using the “blacklist” option in /etc/shorewall/interfaces.
The black list is refreshed from /etc/shorewall/blacklist by the “shorewall refresh” command.
Dynamic blacklisting support was added in version 1.3.2. Dynamic blacklisting doesn't use any configuration parameters but is rather controlled using /sbin/shorewall commands:
drop <ip address list> - causes packets from the listed IP addresses to be silently dropped by the firewall.
reject <ip address list> - causes packets from the listed IP addresses to be rejected by the firewall.
allow <ip address list> - re-enables receipt of packets from hosts previously blacklisted by a drop or reject command.
save - save the dynamic blacklisting configuration so that it will be automatically restored the next time that the firewall is restarted.
show dynamic - displays the dynamic blacklisting configuration.
Dynamic blacklisting is not dependent on the “blacklist” option in /etc/shorewall/interfaces.