Инструменты пользователя

Инструменты сайта


notes:pf

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
notes:pf [2019/03/18 19:02]
alex создано
notes:pf [2021/11/13 14:08] (текущий)
alex
Строка 1: Строка 1:
-PF+==== Команды управления пакетным фильтром pf ====
  
-A SAMPLE FREEBSD / OPENBSD / NETBSD PF FIREWALL RULE ( /​ETC/​PF.CONF) +  pfctl -d выключить пакетный фильтр 
-Use the following to open port # 3306 on a BSD based systems:+  pfctl -e включить пакетный фильтр 
 +   
 +  pfctl -f /​etc/​pf.conf загрузить конфиг из /​etc/​pf.conf 
 +  pfctl -n -f /​etc/​pf.conf проверить на ошибки /​etc/​pf.conf,​ но не загружать его 
 +  pfctl -R -f /​etc/​pf.conf загрузить только правила фитрации из /​etc/​pf.conf 
 +  pfctl -N -f /​etc/​pf.conf загрузить только правила NAT из /​etc/​pf.conf 
 +  pfctl -O -f /​etc/​pf.conf загрузить только опции из /​etc/​pf.conf 
 +   
 +  pfctl -F all сбросить всё 
 +  pfctl -F rules сбросить только правила фильтрации 
 +  pfctl -F queue сбросить только очереди 
 +  pfctl -F nat сбросить правила NAT 
 +  pfctl -F info сбросить всю статистику 
 +  pfctl -z clear очистить все счётчики 
 +   
 +  pfctl -s rules показать текущие правила фильтрации 
 +  pfctl -sn посмотреть список загруженных правил 
 +  pfctl -v -s rules show показать информацию по каждому правилу фильтрации 
 +  pfctl -vvsr показать текущие правила фильтрации с добавлением номера правила 
 +  pfctl -v -s nat показать текущие правила NAT отдельно по каждому правилу 
 +  pfctl -s nat -i xl1 показать правила NAT для интерфейса xl1 
 +  pfctl -s queue показать очереди 
 +  pfctl -s state показать текущее состояние таблиц 
 +  pfctl -s info показать статистику правил и состояние счётчиков 
 +  pfctl -s all показать все что можно 
 +    
 +  pfctl -t testtable -T show просмотр содержимого таблицы testtable 
 +  pfctl -t testtable -T show -v просмотр более подробной статистики по каждому адресу таблицы testtable 
 +  pfctl -t testtable -T add 192.168.1.1 добавление адреса 192.168.1.1 в таблицу testtable 
 +  pfctl -t testtable -T delete 192.168.1.1 удаление адреса 192.168.1.1 из таблицы testtable 
 +  pfctl -t testtable -T flush очистить таблицу testtable 
 + 
 +A SAMPLE FREEBSD / OPENBSD / NETBSD PF FIREWALL RULE ( /​ETC/​PF.CONF)\\ 
 +ПРИМЕР ПРАВИЛА МЕЖСЕТЕВОГО ЭКРАНА FREEBSD / OPENBSD / NETBSD PF (/​ETC/​PF.CONF)\\ 
 +Use the following to open port # 3306 on a BSD based systems:\\ 
 +Используйте следующее,​ чтобы открыть порт # 3306 в системах на основе BSD:
  
   pass in on $ext_if proto tcp from any to any port 3306   pass in on $ext_if proto tcp from any to any port 3306
-OR allow only access from your web server located at 10.5.1.3:+OR allow only access from your web server located at 10.5.1.3:​\\ 
 +ИЛИ разрешить доступ только с вашего веб-сервера,​ расположенного по адресу ​10.5.1.3:
  
   pass in on $ext_if proto tcp from 10.5.1.3 to any port 3306  flags S/SA synproxy state   pass in on $ext_if proto tcp from 10.5.1.3 to any port 3306  flags S/SA synproxy state
 +
 +=== Редирект на PF ===
 +осуществляется очень просто,​ допустим внутри сети у вас есть вебсервер на который надо пробросить весь трафик идущий на ip внешнего маршрутизатора (89.252.34.110,​ сетевай карта em0) на внутренний адрес (192.168.10.10),​ правило для pf будет таким:
 +
 +  rdr on em0 proto { tcp, udp } from any to 89.252.34.110 -> 192.168.10.10
 +  nat on em0 proto { tcp, udp } from 192.168.10.10 to any -> 89.252.34.110
 +Для того что бы пробросить один порт, например 80 c ip 89.252.34.110 на 192.168.10.10 80 порт, конструкция будет такая:
 +
 +  rdr on em0 proto { tcp, udp } from any to 89.252.34.110 port 80 -> 192.168.10.10
 +  nat on em0 proto { tcp, udp } from 192.168.10.10 to any -> 89.252.34.110
 +Или допустим нужно порт 8080 ip 89.252.34.110 пробросить на 192.168.10.10,​ 80 порт то прописать надо такие настройки:​
 +
 +  rdr on em0 proto { tcp, udp } from any to 89.252.34.110 port 8080 -> 192.168.10.10 port 80
 +  nat on em0 proto { tcp, udp } from 192.168.10.10 to any -> 89.252.34.110
 +Во всех предыдущих примерах использовалась строка:​
 +
 +  nat on em0 proto { tcp, udp } from 192.168.10.10 to any -> 89.252.34.110
 +Это пример настройки ната отдельного ip.
 +Для того что бы задействовать нат целой подсети достаточно прописать такие настройки:​
 +
 +  nat on em0 from 192.168.10.0/​24 to any -> 89.252.34.107
 +Мы занатим всю сеть 192.168.10.0/​24 в адрес 89.252.34.107.
 +
 +Перезапуск PF без потери соединений
 +  pfctl -f /​etc/​pf.conf
 +
 +https://​www.cyberciti.biz/​tips/​how-do-i-enable-remote-access-to-mysql-database-server.html\\
 +https://​romantelychko.com/​blog/​928\\
 +http://​www.hilik.org.ua/​%D1%80%D0%B5%D0%B4%D0%B8%D1%80%D0%B5%D0%BA%D1%82-%D0%BF%D1%80%D0%BE%D0%B1%D1%80%D0%BE%D1%81-%D0%BF%D0%BE%D1%80%D1%82%D0%BE%D0%B2-%D0%B8-nat-%D1%81-%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E-pf\\
 +https://​forums.freebsd.org/​threads/​pf-start-restart-without-loosing-connections.59723/​
notes/pf.1552935776.txt.gz · Последние изменения: 2019/03/18 19:02 (внешнее изменение)