Въведение
											
										
																			
											
												Стъпка 1: PF (защитна стена)
											
										
																			
											
												Стъпка 2: Черен списък
											
										
																			
											
												Стъпка 3: SSH
											
										
																			
											
												Последна стъпка
											
										
																	
												
Въведение
Всяка услуга, която е свързана с интернет, е потенциална цел за атаки с груба сила или неоправдан достъп. Има инструменти като fail2banили sshguard, но те са функционално ограничени, защото анализират само регистрационни файлове. Blacklistd използва различен подход. Модифицираните демони като SSH могат да се свързват директно към blacklistd, за да добавят нови правила за защитната стена.
Стъпка 1: PF (защитна стена)
Котвата е колекция от правила и имаме нужда от такава в нашата PF конфигурация. За да създадете минимален набор от правила, редактирайте, /etc/pf.confтака че да изглежда така:
set skip on lo0
scrub in on vtnet0 all fragment reassemble
anchor "blacklistd/*" in on vtnet0
block in all
pass out all keep state
antispoof for vtnet0 inet
pass in quick on vtnet0 inet proto icmp all icmp-type echoreq
pass in quick on vtnet0 proto tcp from any to vtnet0 port 22
Сега активирайте PFза автоматично стартиране, редактирайте /etc/rc.conf:
pf_enable="YES"
pf_rules="/etc/pf.conf"
pflog_enable="YES"
pflog_logfile="/var/log/pflog"
Има обаче едно допълнително нещо, което може да искате да направите първо: тествайте правилата си, за да сте сигурни, че всичко е правилно. За това използвайте следната команда:
pfctl -vnf /etc/pf.conf
Ако тази команда докладва грешки, върнете се и първо ги коригирайте!
Добра идея е да се уверите, че всичко работи според очакванията, като рестартирате сървъра сега: shutdown -r now
Стъпка 2: Черен списък
IP адресите са блокирани за 24 часа. Това е стойността по подразбиране и може да бъде променена в /etc/blacklistd:
# Blacklist rule
# adr/mask:port type    proto   owner           name    nfail   disable
[local]
ssh             stream  *       *               *       3       24h
Редактирайте, за /etc/rc.confда активирате Blacklistd:
blacklistd_enable="YES"
blacklistd_flags="-r"
Стартирайте Blacklistd със следната команда: 
service blacklistd start
Стъпка 3: SSH
Последното нещо, което трябва да направим, е да кажем sshdда уведомим blacklistd. Добавете UseBlacklist yesкъм вашия /etc/ssh/sshd_configфайл. Сега рестартирайте SSH с service sshd restart.
Последна стъпка
И накрая, опитайте да влезете във вашия сървър с невалидна парола. 
За да получите всички блокирани IP адреси, използвайте една от следните команди:
blacklistctl dump -bw
        address/ma:port id      nfail   last access
 150.x.x.x/32:22        OK      3/3     2017/x/x 04:43:03
 115.x.x.x/32:22        OK      3/3     2017/x/x 04:45:40
  91.x.x.x/32:22        OK      3/3     2017/x/x 07:51:16
  54.x.x.x/32:22        OK      3/3     2017/x/x 12:05:57
pfctl -a blacklistd/22 -t port22 -T show
   54.x.x.x
   91.x.x.x
  115.x.x.x
  150.x.x.x
За да премахнете блокиран IP, трябва да използвате командата pfctl. Например:
pfctl -a blacklistd/22 -t port22 -T delete <IP>
Имайте предвид, че blacklistctlIP адресът все още ще се показва като блокиран! Това е нормално поведение и се надяваме да бъде премахнато в бъдещи версии.