pf table что не так?

FreeBSD, NetBSD, OpenBSD, DragonFly и т. д.

Модератор: arachnid

Аватара пользователя
ttys8
Сообщения: 26
ОС: FreeBSD OpenBSD Solaris 11

pf table что не так?

Сообщение ttys8 »

пытаюсь разобраться с PF
дошёл до таблиц и тут ........
/etc/pf.conf:

Код: Выделить всё

ext_if="nfe0" #Внешний интерфейс
int_if="rl0" #Внутренний интерфейс
internal_net="192.168.0.0/24" #Наша сеть
external_addr="192.168.1.9" #Внешний IP
table <table_ip> file /etc/pf/table_ip
set skip on lo0
set skip on $int_if
scrub in all
nat on $ext_if from $internal_net to any -> ($ext_if)
pass in all
pass out all

pfctl -nf /etc/pf.conf выдаёт номер строчки и syntax error
ип адреса записывал и в столбик и в строчку не пойму где ошибся?

P.S. так PF работает натит 192.168.0.1
Спасибо сказали:
Аватара пользователя
ttys8
Сообщения: 26
ОС: FreeBSD OpenBSD Solaris 11

Re: pf table что не так?

Сообщение ttys8 »

сам допёр
на примере http://www.openbsd.ru/files/etc/pf.conf

надо
table <table_ip> file "/etc/pf/table_ip"
вместо
table <table_ip> file /etc/pf/table_ip

:rolleyes:
Спасибо сказали:
pimlab
Сообщения: 24
ОС: freebsd7.1

Re: pf table что не так?

Сообщение pimlab »

Copy-paste отсюда

В конфигуационном файле pf.conf(5) таблицы создаются при помощи директивы table. У таблицы могут быть следующие атрибуты:

Код: Выделить всё

const, persist
Содержимое таблицы не может быть изменено после того, как таблица создана. Если этот атрибут отсутствует, содержимым таблицы можно манипулровать при помощи pfctl(8). Указывает ядру, что данную таблицу нельзя удалять из памяти даже если на она не упоминается ни в одном правиле. Ели этот атрибут не указан, ядро автоматически удалит таблицу из памяти, когда последнее правило использующее таблицу будет сброшено.
Пример (имя таблицы указывается в угловых скобках <...>):

Код: Выделить всё

table <goodguys> { 192.0.2.0/24 }
table <rfc1918> const { 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8 }
table <spammers> persistblock in on fxp0 from { <rfc1918>, <spammers> } to any
pass  in on fxp0 from <goodguys> to any


Адреса так же можно употреблять с отрицательным знаком (!), или с ключевым словом not:

Код: Выделить всё

table <goodguys> { 192.0.2.0/24, !192.0.2.5 }


Таблица <goodguys>, таким образом, включает в себя всю сеть 192.0.2.0/24 кроме адреса 192.0.2.5.

Содержимое таблицы можно брать из файла:

Код: Выделить всё

table <spammers> persist file "/etc/spammers"
block in on fxp0 from <spammers> to any


Файл /etc/spammers должен содержать IP-адреса и/или блоки сетей в формате CIDR по одному на строку. Строки начинающиеся с # считаются комментарием и игнорируются.
Спасибо сказали:
Аватара пользователя
ttys8
Сообщения: 26
ОС: FreeBSD OpenBSD Solaris 11

Re: pf table что не так?

Сообщение ttys8 »

спс.
виновата моя невнимательность :blush:
здесь тоже есть что почитать и здесь
вот ещё интересная штука:
Сервис SSH является любимой мишенью злоумышленников, поэтому следует принять некоторые меры безопасности. Одна из них - ограничение количества подключений, чтобы избежать DoS-атаки и перебора паролей.

Код: Выделить всё

# vi /etc/pf.conf
table <sshbf> persist
block in log quick on $ext_if inet from <sshbf>
pass in log on $ext_if inet proto tcp to $ext_if port ssh keep state \
    (max-src-conn-rate 5/60, overload <sshbf> flush global)

Данный набор правил инструктирует фильтр пакетов не допускать более 5 одновременных соединений к 22 порту за 60 секунд.
Спасибо сказали:
Аватара пользователя
Shura
Сообщения: 1537
Статус: Оказывается и без KDE есть жизнь
ОС: FreeBSD 8.0-RC2

Re: pf table что не так?

Сообщение Shura »

Это палка о двух концах. При таких настройках, если к твоей машине кто-то действительно подбирает пароль, ты сам уже не подключишься. Ты просто не влезешь в этот лимит, он будет исчерпан злоумышленником.
Rock'n'roll мертв © БГ
Спасибо сказали:
Аватара пользователя
Shad0w
Сообщения: 31
ОС: Win7, FreeBSD, Ubuntu

Re: pf table что не так?

Сообщение Shad0w »

Shura писал(а):
21.12.2009 17:51
Это палка о двух концах. При таких настройках, если к твоей машине кто-то действительно подбирает пароль, ты сам уже не подключишься. Ты просто не влезешь в этот лимит, он будет исчерпан злоумышленником.

Все тут нормально будет работать. Шикарный метод. В таблицу <sshbf> улетит айпишник человека превысившего лимит и с ним порвутся все активные соединения. Топикстартер не подключится если только сам попадет под свой же лимит.

Добавлено:
Таким образом можно не только ssh защищать. Да и с перегрузками сервисов бороться можно, только несколько иначе, чем приведено выше. Единственное я бы добавил к этому в крон что-то вроде

Код: Выделить всё

/sbin/pfctl -t sshbf -T expire время_в_секундах
от рута раз в сутки например, чтобы чистить айпишники сидящие в таблице больше время_в_секундах, ибо большинство сидит на динамике. Да и мало ли что может с пьяну произойти. :)
Спасибо сказали: