Як налаштувати адаптивний брандмауер


4

Я перейшов за цим посиланням: Увімкніть адаптивний брандмауер на сервері macOS

і я отримую цей вихід, але не знаю, чи дійсно активував адаптивний брандмауер:

No ALTQ support in kernel
ALTQ related functions disabled
No ALTQ support in kernel
ALTQ related functions disabled
pf enabled
Token : 13540967312582709951
No ALTQ support in kernel
ALTQ related functions disabled

Я хочу дозволити адаптивному брандмауеру автоматично додавати користувачів із кількома невдалими спробами входу.

Я успішно додав певний IP до чорного списку брандмауера, але мені не вдалося побачити його в hb_summary, не знаю, чи повинен він відображатися вручну доданих IP-адрес. І він не додавав автоматично, коли я нібито його включав.

На моєму порту IMAP сталася жорстка атака, і мій адаптивний брандмауер не додав цього IP до чорного списку. Лише постфікс мав справу з ним, роблячи фатальну помилку через занадто багато помилок і програма припинялася, але це було лише на дуже короткий проміжок часу.

Характеристики сервера:

  • Server.app 3.2.2
  • Mac OS X 10.9.5

Відповіді:


2

Після занурення в Адаптивний Брандмауер ще раз склалося враження, що вся система хибна, а документація - безлад.

Команда, .../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 не потрібно!


Перш за все, дуже дякую вам за чудовий підручник! Це насправді безлад, всі дані, які Apple опублікувала про налаштування цього брандмауера в попередніх версіях macosx.
SipriusPT

Я зробив кілька тестів, і я виявив, що мій сервер не допускав більше 6 спроб увійти через одне і те ж ім'я користувача за замовчуванням, але не зміг автоматично додати поганий IP-код у чорний список. Після того, як я зробив підручник до "покращення" частини, я помітив, що зараз з hostBlockThreshold з 12 та hostMinBlockTime 60, він працює добре (я зробив цей тест принаймні 2 рази і обидва працюють добре).
SipriusPT

Я зроблю частину вдосконалення, щоб уникнути необхідності виконувати цю afctl -f щоразу, коли я перезавантажую систему. PS Я зміню назву цього питання, щоб бути більш інтуїтивно зрозумілим для інших, хто може зіткнутися з цією проблемою.
SipriusPT

Просто щоб повідомити вам, що в моїй системі я мав LaunchDaemons замість вашого LaunchDaemon. Як я можу отримати доступ до логвентів емонтів? (Я вже змінив emond.plist, як ви зробили вдосконалення)
SipriusPT

@SipriusPT LaunchDaemon написано неправильно, і я виправив це!
кланомат
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.