Доброго времени суток.
Значит установил mpd5 - работает отлично, но есть проблема с фаерволом.Прописал правила для PF, разрешающие работу mpd:
pass in quick on $ext_if inet proto tcp from any to $ext_if port 1723 \
flags S/SA synproxy state (max 10, source-track rule, max-src-nodes 5, \
max-src-conn-rate 10/60)
pass out quick on $ext_if inet proto gre from any to any
На внутреннем интерфейсе все разрешено.
Теперь если я подключаюсь, как удаленный пользователь, внутренняя сеть не пингуется. Добавляю правила
pass in quick on ng0
pass out quick on ng0
эффекта никакого, что, в принципе, странно.
Если добавить в pf.conf строчку:
set skip on {lo ng}
то все нормально работает, лок.сеть вижу.
Но проблема теперь в том, что если пользователь отключился, а потом заново подключился, то правило skip уже не работает и правила pf нужно перечитать.
Поэтому добавил в mpd.conf стартап скрипт
set iface up-script /usr/local/etc/mpd5/if-up.sh
Сам скрипт if-ip.sh:
#!/bin/sh
/sbin/pfctl -F rules -f /etc/pf.conf
При запуске mpd в логе такая ошибка:
Apr 13 09:27:42 server mpd: mpd.conf:50: Incorrect context for: 'set iface up-script /usr/local/etc/mpd5/if-up.sh'
pfctl -sI -v
all
lo (skip)
lo0 (skip)
ng0
pflog
pflog0
pfsync
pfsync0
rl0
sk0
sk1
Помогите решить проблему. Куда смотреть? Почему не работает if-up.sh?