В предыдущей статье был дан ряд советов по настройке правил firewall-а. Однако раз установленные, они не переживают перезагрузку системы и приходится устанавливать их вручную. Те, кто не приобрел еще себе серверную версию Mac mini с Leopard X Server в комплекте, могут последовать моему совету.
Для начала откроем терминал и выпросим себе прав
sudo bash
Теперь создадим в текущем каталоге скрипт и назовем его rc.firewall
#!/bin/sh IPFW=/sbin/ipfw CONFIG=/etc/ipfilter/ipfw.conf . /etc/rc.common ConsoleMessage "Configuring Firewall" if [ -f $CONFIG ] ; then $IPFW $CONFIG fi
Сделаем его исполняемым и скопируем в каталог /etc
chmod a+x rc.firewall
cp rc.firewall /etc/
Данный скрипт будет искать файл конфигурации файервола /etc/ipfilter/ipfw.conf, и, если таковой есть, заставит ipfw вычитать свои правила из конфигурации.
Остается намекнуть системе на необходимость запуска rc.firewall при старте. Пойдем современным путем и переложим заботу на плечи launchd, как завещает нам великий Яббл. Для этого в текущем каталоге создадим текстовый plist файл com.tsybulin.firewall.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>Label</key> <string>com.tsybulin.firewall</string> <key>ProgramArguments</key> <array> <string>/etc/rc.firewall</string> </array> <key>RunAtLoad</key> <true/> <key>UserName</key> <string>root</string> <key>GroupName</key> <string>wheel</string> </dict> </plist>
Идентификатор com.tsybulin.firewall можно изменить на более любимый
Теперь изменим владельца файла на root из группы wheel и скопируем его в системную директорию к другим настройкам.
chown root:wheel com.tsybulin.firewall.plist cp com.tsybulin.firewall.plist /System/Library/LaunchDaemons/
Теперь, чтобы лишний раз не перезагружаться, проверим работу launchd и вызов rc.firewall
launchctl load /System/Library/LaunchDaemons/com.tsybulin.firewall.plist
Если все хорошо, в Console.app можно увидеть запись в журнале:
com.tsybulin.firewall: Configuring Firewall, а по
launchctl list
Можно увидеть в списке задачу com.tsybulin.firewall
Остается создать файл настроек. Он по синтаксису очень похож на команды, только сам вызов /sbin/ipfw нужно убрать.
Пример
add 5 pipe 10 ip from any to any via en1
pipe 10 config bw 1Mbit/s
Сохраняем в текущем каталоге, копируем на место
mkdir -p /etc/ipfilter
cp ipfw.conf /etc/ipfilter/
Ой.

6 коммент.:
Что-то бродкастит в сеть с порта 2223. Поиск в сети вроде как дружно указывает на MS Office 2008. Советуют заблокировать порт. Делаю:
sudo /sbin/ipfw add 0 deny all from any to any 2223
Но после перезагрузки компа (утром лаптоп приносится в офис и втыкается в сеть) файрфол рапортует что массированный бродкастинг продолжается.
Посоветуй[те], пожалуйста, как правильно настроить, можно ли просто последовательность команд из терминала?
Спасибо!
Ну так введенные правила после перезагрузки не восстанавливаются.
Попробуйте сделать так, как описано в статье
Написано: "Теперь создадим в текущем каталоге скрипт и назовем его rc.firewall". Туплю, но - а какой программой создавать скрипт? В каком формате? Если SimpleText то к названию файла цепляется расширение .txt, видно из терминала по ls
Если вам удобнее текстовый редактор, убедитесь, что в меню он переключен в режим простого текста (Plain text), затем в терминале
переименуйте файл
mv rc.firewall.txt rc.firewall
Последний вопрос - как подчистить кроме удаления созданных фалов? Порекомендуй[те], пожалуйста, терминальные команды, останавливающие работу фильтра на "как было". Спасибо!
трубы: ipfw pipe flush
очереди: ipfw queue flush
правила: ipfw flush
Отправить комментарий