The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Настройка PF"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"Настройка PF"  
Сообщение от Azureus email(ok) on 06-Апр-06, 00:59 
Подскажите где почитать про настройку PF, желательно на русском. Имеется в виду создание правил и все такое.
Если не сложно, то приведите пример правила, которое разрешает только определенному удаленному адресу зайти на 22 порт.
Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "Настройка PF"  
Сообщение от Myers on 06-Апр-06, 09:15 
>Подскажите где почитать про настройку PF, желательно на русском. Имеется в виду
>создание правил и все такое.
>Если не сложно, то приведите пример правила, которое разрешает только определенному удаленному
>адресу зайти на 22 порт.

по русски читать запрещается, я серьезно, там на английском на сайте openbsd.org есть pf faq лучше него никогда небыло и скорее всего не будет, вообще у опенка очень хорошая дока.

про 22 порт

pass in on $EXT proto есз from XXX.XXX.XXX.XXX to $EXT port 22 keep state

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

2. "Настройка PF"  
Сообщение от Myers on 06-Апр-06, 09:17 
ftp://ftp.openbsd.org/pub/OpenBSD/doc/pf-faq.txt

поправка опечаток
pass in(out) on INTERFACE proto tcp from XXX.XXX.XXX.XXX to INTERFACE port 22

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

3. "Настройка PF"  
Сообщение от Myers on 06-Апр-06, 09:23 
вот из доки, только про запрет портов с адресов

запрещает исходящие пакеты на интерфейсе fxp0 по tcp и udp с адресов указанных на любые адреса по портам ssh telnet

block out on fxp0 proto { tcp udp } from { 192.168.0.1, 10.5.32.6 } to any port { ssh telnet }

block out on fxp0 proto tcp from 192.168.0.1 to any port 22

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

4. "Настройка PF"  
Сообщение от Myers on 06-Апр-06, 09:26 
не пускать никого кроме 10.1.2.3

block in on fxp0 from !10.1.2.3 порт траляля

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

5. "Настройка PF"  
Сообщение от idle (ok) on 06-Апр-06, 10:11 
>Подскажите где почитать про настройку PF, желательно на русском. Имеется в виду
>создание правил и все такое.
>Если не сложно, то приведите пример правила, которое разрешает только определенному удаленному
>адресу зайти на 22 порт.
http://dreamcatcher.ru/docs/pf.html

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

6. "Настройка PF"  
Сообщение от Azureus email(ok) on 06-Апр-06, 16:07 
Ну вот почитал немного, пытаюсь настроить, но не получается.
Помогите решить такую задачу.

Значит необходимо поставить файервол в режим что неразрешено, то запрещено, как это сделать незнаю, но начал рыть в сторону block in all.

После того, как отсекается всё, что не разрешено, пытаюсь все-таки разрешить все по порядку.

1. Для удаленного администрирования пишу правило:
pass in on sk0 proto tcp from {1.1.1.1, 1.1.1.2} to any port 22
С этим все вроде понятно.

2. Для использования ftp пишу следущее правило:

pass in on sk0 proto tcp from any to any port {21, 3000-3010} - где 3000-3100 - это диапазон TCP портов прописанных в proftpd для работы в пассив режиме.
А теперь мне нужно дать правило, которое разрешить любое соединение с моего компьютера на удаленный 20TCP порт. Вот этого то я и не могу осилить. Помогите с синтаксисом.

3. Для работы http пишу правило:

pass in on sk0 proto tcp from any to any port 80
pass in on sk0 proto tcp from 127.0.0.1 to any port 3306

С доступом к апачу проблем нет, а дальше как я понимаю к базе данных апач подключается из под 127.0.0.1 или из под моего сетевого IP ?

4. Есть такой непоняток. В Win фаеры имели привязку к приложениям, то есть я мог спокойно выставить диапазон портов для пассива на ftp с 1024 по 65535 и знать, что это правило работает только для ftp демона. Если я напишу тут правило разрешающее такой диапапзон на входящее, то весь смысл правил пропадет. Можно ли в PF привязать правило к демону?

5. Как итог получаю следущий синтаксис:

block in all
pass in on sk0 proto tcp from {1.1.1.1, 1.1.1.2} to any port 22
pass in on sk0 proto tcp from any to any port {21, 3000-3010}
pass in on sk0 proto tcp from any to any port 80
pass in on sk0 proto tcp from 127.0.0.1 to any port 3306

Из за которого подключение к ftp и ssh с ОГРОМНЫМИ тормозами. Подсказали, что мешает block in all так как блокирует dns и от этого тормоза. Хотя в настройках proftpd у меня стоит отключение dns. Может я пошел не по правильному пути? Как еще можно расписать правилами мою ситуацию?

Повторю задачу.
Удаленное администрирование привязаное к определенным удаленным IP. (по 22TCP)
Раздача по ftp для всех в активном и пассивном режиме. (пассив 3000-3010, активный на любой адаленный 20TCP)
Доступ к веб серверу, который на php+mysql+apache
И полная блокировка того, что явно не разрешено.


Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

7. "Настройка PF"  
Сообщение от tester (??) on 06-Апр-06, 17:12 
>5. Как итог получаю следущий синтаксис:
>
>block in all
>pass in on sk0 proto tcp from {1.1.1.1, 1.1.1.2} to any port
>22
>pass in on sk0 proto tcp from any to any port {21,
>3000-3010}
>pass in on sk0 proto tcp from any to any port 80
>
>pass in on sk0 proto tcp from 127.0.0.1 to any port 3306
>


table <ssh_allow> { 1.1.1.1 1.1.1.2 }
1.block in on sk0 all
pass quick on lo0 all #- вместо (pass in on sk0 proto tcp from 127.0.0.1 to any port 3306) #- если mysql на этой же машине запущен иначе
pass out quick on sk0 proto tcp from sk0 to $mysqld_host port 3306 flags S/SA keep state

pass in quick on sk0 proto tcp from <ssh_allow> to $sshd_listen_on_sk0 port 22 flags S/SA keep state
pass in quick on sk0 proto tcp from any to $proftpd_listen_on_sk0 port { 21, 3000:3010 } flags S/SA keep state
pass in quick on sk0 proto tcp from any to $httpd_listen_on_sk0 port 80 flags S/SA synproxy state
#для запросов к внешним дns
pass out quick on sk0 proto udp from sk0 to any port 53 keep state


quick - используется для того чтобы по всем правилам не бегал если уже нашел удовлетворяющее правило то прекращал дальнейшую обработку для соответствующего пакета
keep state - благодаря этому не надо писать обратное правило(в pf даже для udp и icmp сделали)

в pf чем ниже правило тем выше у него приоритет (после ipfw по началу крышу сносит с такой обработкой)


>
>Из за которого подключение к ftp и ssh с ОГРОМНЫМИ тормозами. Подсказали,
>что мешает block in all так как блокирует dns и от
>этого тормоза. Хотя в настройках proftpd у меня стоит отключение dns.
>Может я пошел не по правильному пути? Как еще можно расписать
>правилами мою ситуацию?
>
>Повторю задачу.
>Удаленное администрирование привязаное к определенным удаленным IP. (по 22TCP)
>Раздача по ftp для всех в активном и пассивном режиме. (пассив 3000-3010,
>активный на любой адаленный 20TCP)
>Доступ к веб серверу, который на php+mysql+apache
>И полная блокировка того, что явно не разрешено.


Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

8. "Настройка PF"  
Сообщение от tester (??) on 06-Апр-06, 17:16 
>5. Как итог получаю следущий синтаксис:
>
>block in all
>pass in on sk0 proto tcp from {1.1.1.1, 1.1.1.2} to any port
>22
>pass in on sk0 proto tcp from any to any port {21,
>3000-3010}
>pass in on sk0 proto tcp from any to any port 80
>
>pass in on sk0 proto tcp from 127.0.0.1 to any port 3306
>


table <ssh_allow> { 1.1.1.1 1.1.1.2 }
1. block in on sk0 all
2. pass quick on lo0 all #- вместо (pass in on sk0 proto tcp from 127.0.0.1 to any port 3306) #- если mysql на этой же машине запущен иначе 2.1
2.1 pass out quick on sk0 proto tcp from sk0 to $mysqld_host port 3306 flags S/SA keep state

3. pass in quick on sk0 proto tcp from <ssh_allow> to $sshd_listen_on_sk0 port 22 flags S/SA keep state
4. pass in quick on sk0 proto tcp from any to $proftpd_listen_on_sk0 port { 21, 3000:3010 } flags S/SA keep state
5. pass in quick on sk0 proto tcp from any to $httpd_listen_on_sk0 port 80 flags S/SA synproxy state
# для запросов к внешним дns
6. pass out quick on sk0 proto udp from sk0 to any port 53 keep state
# для active ftp
7. pass out quick on proto tcp from sk0 port 20 to any flags S/SA keep state

quick - используется для того чтобы по всем правилам не бегал если уже нашел удовлетворяющее правило то прекращал дальнейшую обработку для соответствующего пакета
keep state - благодаря этому не надо писать обратное правило(в pf даже для udp и icmp сделали)

в pf чем ниже правило тем выше у него приоритет (после ipfw по началу крышу сносит с такой обработкой)


>
>Из за которого подключение к ftp и ssh с ОГРОМНЫМИ тормозами. Подсказали,
>что мешает block in all так как блокирует dns и от
>этого тормоза. Хотя в настройках proftpd у меня стоит отключение dns.
>Может я пошел не по правильному пути? Как еще можно расписать
>правилами мою ситуацию?
>
>Повторю задачу.
>Удаленное администрирование привязаное к определенным удаленным IP. (по 22TCP)
>Раздача по ftp для всех в активном и пассивном режиме. (пассив 3000-3010,
>активный на любой адаленный 20TCP)
>Доступ к веб серверу, который на php+mysql+apache
>И полная блокировка того, что явно не разрешено.


Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

9. "Настройка PF"  
Сообщение от Azureus email(ok) on 06-Апр-06, 17:32 
>quick - используется для того чтобы по всем правилам не бегал если уже нашел удовлетворяющее правило то прекращал дальнейшую обработку для соответствующего пакета.
Это уяснил из русских доков.

>pass quick on lo0 all
Это то, что называют loopback?

>$proftpd_listen_on_sk0 port
Я так понял эта строка привязывает правило к демону?

>keep state - благодаря этому не надо писать обратное правило(в pf даже для udp и icmp сделали)
Не понял, какое обратное правило?

>в pf чем ниже правило тем выше у него приоритет (после ipfw по началу крышу сносит с такой обработкой)
Я пришёл с outpost, долго настраивал методом тыка, в этоге поняв суть, офигел :)

>flags S/SA
Что за зверь?

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

10. "Настройка PF"  
Сообщение от Azureus email(ok) on 07-Апр-06, 04:33 
Вот поправил конфиг, выполнил это pfctl -f /etc/pf.conf -e и вижу:

/etc/pf.conf:84: macro 'sshd_listen_on_sk0' not defined
/etc/pf.conf:84: syntax error
/etc/pf.conf:85: macro 'proftpd_listen_on_sk0' not defined
/etc/pf.conf:86: macro 'httpd_listen_on_sk0' not defined
pfctl: Syntax error in config file: pf rules not loaded

Что неправильно? почему он не принимает синтаксис?

И еще при выполнении pfctl -f /etc/pf.conf -e выпадает это:

No ALTQ support in kernel
ALTQ related functions disabled

Это что?

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

11. "Настройка PF"  
Сообщение от tester (??) on 07-Апр-06, 07:18 
>Вот поправил конфиг, выполнил это pfctl -f /etc/pf.conf -e и вижу:
>
>/etc/pf.conf:84: macro 'sshd_listen_on_sk0' not defined
>/etc/pf.conf:84: syntax error
>/etc/pf.conf:85: macro 'proftpd_listen_on_sk0' not defined
>/etc/pf.conf:86: macro 'httpd_listen_on_sk0' not defined
>pfctl: Syntax error in config file: pf rules not loaded
>
>Что неправильно? почему он не принимает синтаксис?
>
>И еще при выполнении pfctl -f /etc/pf.conf -e выпадает это:
>
>No ALTQ support in kernel
>ALTQ related functions disabled
ALTQ- не скомпилин в ядре поэтому pf выдает сообщение(ALTQ - шейпер в pf)
>
>Это что?


вместо sshd_listen_on_sk0, proftpd_listen_on_sk0, proftpd_listen_on_sk0, - пишы ip адреса

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

12. "Настройка PF"  
Сообщение от Azureus email(ok) on 07-Апр-06, 13:12 
>вместо sshd_listen_on_sk0, proftpd_listen_on_sk0, proftpd_listen_on_sk0, - пишы ip адреса

Это как так? sshd_listen_on_1.1.1.1  или как?

>ALTQ- не скомпилин в ядре поэтому pf выдает сообщение(ALTQ - шейпер в pf)
Ядро компилировал так:

# Suppord packet filter
device pf
device pflog
device pfsync

Какой аргумент добавить для включения ALTQ и наксолько это нужно?

Так как я не понял что имелось ввиду тут:
>вместо sshd_listen_on_sk0, proftpd_listen_on_sk0, proftpd_listen_on_sk0, - пишы ip адреса
Временно стер proftpd_listen_on_sk0 и получил следующий синтаксис:

table <ssh_allow> { 1.1.1.1, 1.1.1.2 }
#block in on sk0 all
pass in quick on sk0 proto tcp from <ssh_allow> port 22
pass in quick on sk0 proto tcp from any port { 21, 3000:3010 }
pass in quick on sk0 proto tcp from any port 80 flags S/SA synproxy state
pass out quick on sk0 proto udp from sk0 to any port 53 keep state
pass quick on lo0 all

Так вот если я раскомментирую #block in on sk0 all не одно разрешающее правило не работает, приходится идти к серверу и через монитор обратно ее комментировать, чтобы зайти удаленно или на ftp.
Опять же, где ошибка?

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

13. "Настройка PF"  
Сообщение от KES on 22-Авг-06, 03:41 
oneNat    = "192.168.0.0/24"
twoNat  = "192.168.1.0/24"
allNat     = "{" $oneNat $twoNat "}"

#в этой строке выдаёт ошибку /etc/pf.conf:ХХ: syntax error
Почему?

Вот цитата с конфига:
Macros can be defined recursively. Since macros are not expanded within quotes the following syntax must be used:

host1 = "192.168.1.1"
host2 = "192.168.1.2"
all_hosts = "{" $host1 $host2 "}"

Так работает:
allNat = "{ 192.168.0.0/24 192.168.1.0/24 }"
и так тоже:
allNat = "{ $oneNat $twoNat }"
Но в это случае выдаёт ошибку 'syntax error'
в следующиз строках
так
pass out quick from $allNat to any
и так
pass out quick from { $allNat } to any
и даже так, если allNat = "$oneNat $twoNat"
pass out quick from "{" $allNat "}" to any

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру