Категорії
FreeBSD Linux OpenBSD

Группируем интерфейсы в файерволах

Предположим, вам нужно будет создать одно правило для целой кучи интерфейсов вида int0, int1, …, intN, … Создавать на каждый интерфейс отдельное правило – слишком сложно, а если на каждый интерфейс не одно правило, а интерфейсов 20 или 100? на помощь приходят записи для группировки. И так, будет рассмотрены варианты для разных файерволов (для примера взяты интерфейсы tun0, tun1, …).

– ipfw

ipfw .... via tun*

А еще (это есть в мане, но я всё равно разжую), из серии “знаете ли вы, что…” — проверка функции iface_match() в ядре, которая обрабатывает recv/xmit/via (кусок исходника был выше), принимает не только имя интерфейса, но и IP-адреса, и даже шаблон имени в том же виде, в котором в шелле задаются имена файлов! То есть, можно написать (http://nuclight.livejournal.com/124348.html):

ipfw add 2 pipe 3 all from any to any in recv ng[23]?*

и это будет ловить интерфейсы с именами с ng200 по ng299 и c ng300 по 399, а также с ng20 по ng29 и c ng30 по 39 (на самом деле с любыми символами в названии после, но мы же знаем, что mpd сделает названия только с циферками).

– pf

pass ... on tun ...

– iptables

iptables ... -i tun+ ...

Примечание.

К сожалению конструкция pf’a не всегда работает. Как вариант можно использовать такую конструкцию:

vpn_if="{ ng0, ng1 }"
pass on vpn_if ...

Заметьте, без ‘$’ вначале.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

Домашняя страничка Andy
Записки молодого админа
Самостоятельная подготовка к Cisco CCNA
Самостоятельная подготовка к Cisco CCNP
Powered by Muff