Після занурення в Адаптивний Брандмауер ще раз склалося враження, що вся система хибна, а документація - безлад.
Команда, .../hb_summary
мабуть, зовсім не працює, оскільки, здається, покладається на файл / приватний / var / db / af / заблокованийHosts, заповнений ipfw, який не активується в 10.9 (і не працюватиме з якорем 400.AdaptiveFirewall ). pf взагалі не використовує файл заблокованийHosts.
Найкраще, що ви можете зробити, це:
Увімкніть послугу адаптивного брандмауера
sudo /Applications/Server.app/Contents/ServerRoot/usr/sbin/serverctl enable service=com.apple.afctl
Населяйте білий список
sudo /Applications/Server.app/Contents/ServerRoot/usr/libexec/afctl -c
Визначте максимум поганих спроб auth (наприклад, 3) та час заборони (наприклад, 60 хвилин)
sudo /Applications/Server.app/Contents/ServerRoot/usr/libexec/afctl -T 3
sudo /Applications/Server.app/Contents/ServerRoot/usr/libexec/afctl -H 60
Це змінить файл /Applications/Server.app/Contents/ServerRoot/private/etc/emond.d/rules/AdaptiveFirewall.plist.
Перевірте мод за допомогою:
sudo grep -m 2 -A 4 hostBlockThreshold /Applications/Server.app/Contents/ServerRoot/private/etc/emond.d/rules/AdaptiveFirewall.plist
- Відновіть емоцію:
sudo killall emond
Додайте відомих поганих хостів уже давно:
sudo /Applications/Server.app/Contents/ServerRoot/usr/libexec/afctl -a 104.16.35.178 -t 1000000
(Зверніть увагу на проблему y2038 ). Це змінить файл / приватний / var / db / af / чорний список. Хости, додані тут, зазвичай не переживають перезавантаження.
- Почніть аф з
sudo /Applications/Server.app/Contents/ServerRoot/usr/libexec/afctl -f
Щоб заблокувати заблоковані хости, введіть:
sudo pfctl -a com.apple/400.AdaptiveFirewall -t blockedHosts -T show -vvv
Щоб отримати стан pf, введіть sudo pfctl -s all
.
Це перевірено з ворожими ssh
і openssl s_client -connect imapserver_ip:993
спробами входу.
Після перезавантаження .../afctl -f
команда запустить pf та af, але принаймні в одному з двох випадків вона не блокує ворожі спроби входу, хоча це оголошено у файлі журналу.
Покращення:
Після зміни ключів debugLevel та logEvents у файлі /etc/emond.d/emond.plist,:
...
<key>debugLevel</key>
<integer>3</integer>
...
<key>logEvents</key>
<true/>
...
створення файлу /System/Library/LaunchDaemons/com.apple.afctl_boot.plist із вмістом:
<?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>
і завантажуючи його:
sudo launchctl load /System/Library/LaunchDaemons/com.apple.afctl_boot.plist
це, здається, працює надійніше. Адаптивний брандмауер буде завантажений під час завантаження. Більше ніяких команд запуску afctl не потрібно!