Po nurkowaniu w Adaptive Firewall jeszcze raz Odniosłem wrażenie, że cały system jest wadliwy, a dokumentacja jest bałaganem.
Komenda .../hb_summary
najwyraźniej w ogóle nie działa, ponieważ wydaje się, że plik / private / var / db / af / blockedHosts jest wypełniany
przez ipfw który nie jest aktywowany w 10.9 (i nie działałby z kotwicą 400.AdaptiveFirewall). pf nie używa zablokowanego plikuHosts w ogóle.
Najlepsze, co możesz zrobić, to:
Włącz usługę Adaptive Firewall
sudo /Applications/Server.app/Contents/ServerRoot/usr/sbin/serverctl enable service=com.apple.afctl
Wypełnij białą listę za pomocą
sudo /Applications/Server.app/Contents/ServerRoot/usr/libexec/afctl -c
Zdefiniuj maksymalne złe próby autoryzacji (np. 3) i czas zakazu (np. 60 minut)
sudo /Applications/Server.app/Contents/ServerRoot/usr/libexec/afctl -T 3
sudo /Applications/Server.app/Contents/ServerRoot/usr/libexec/afctl -H 60
Spowoduje to modyfikację pliku / Applications /Server.app/Contents/ServerRoot/private/etc/emond.d/rules/AdaptiveFirewall.plist.
Sprawdź mod za pomocą:
sudo grep -m 2 -A 4 hostBlockThreshold /Applications/Server.app/Contents/ServerRoot/private/etc/emond.d/rules/AdaptiveFirewall.plist
- Uruchom ponownie emond:
sudo killall emond
Dodaj znane złe hosty przez długi czas:
sudo /Applications/Server.app/Contents/ServerRoot/usr/libexec/afctl -a 104.16.35.178 -t 1000000
(Pamiętaj o y2038 problem ).
Spowoduje to modyfikację pliku / private / var / db / af / blacklist. Hosty dodane tutaj zazwyczaj nie przeżywają ponownego uruchomienia.
- Zacznij af z
sudo /Applications/Server.app/Contents/ServerRoot/usr/libexec/afctl -f
Aby uzyskać zablokowane hosty, wprowadź:
sudo pfctl -a com.apple/400.AdaptiveFirewall -t blockedHosts -T show -vvv
Aby wejść w stan pf sudo pfctl -s all
.
Jest to testowane z wrogością ssh
i openssl s_client -connect imapserver_ip:993
próby logowania.
Po ponownym uruchomieniu .../afctl -f
komenda uruchomi pf i af, ale w co najmniej jednym z dwóch przypadków nie blokuje wrogich prób logowania, chociaż jest to ogłaszane w pliku dziennika.
Ulepszenia:
Po modyfikacji kluczy debugLevel i logEvents w pliku /etc/emond.d/emond.plist ::
...
<key>debugLevel</key>
<integer>3</integer>
...
<key>logEvents</key>
<true/>
...
utworzenie pliku /System/Library/LaunchDaemons/com.apple.afctl_boot.plist z treścią:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Disabled</key>
<false/>
<key>Label</key>
<string>com.apple.afctl_boot</string>
<key>Program</key>
<string>/Applications/Server.app/Contents/ServerRoot/usr/libexec/afctl</string>
<key>ProgramArguments</key>
<array>
<string>/Applications/Server.app/Contents/ServerRoot/usr/libexec/afctl</string>
<string>-f</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
i ładowanie go:
sudo launchctl load /System/Library/LaunchDaemons/com.apple.afctl_boot.plist
wydaje się działać bardziej niezawodnie. Adaptive Firewall zostanie załadowany podczas rozruchu. Nie jest wymagane dalsze polecenie uruchomienia afctl!