Различия между версиями 3 и 4
Версия 3 от 2014-03-21 21:34:51
Размер: 1861
Редактор: FrBrGeorge
Комментарий:
Версия 4 от 2014-03-22 15:17:05
Размер: 2968
Редактор: FrBrGeorge
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 19: Строка 19:
---- == Синтетическое понятие «состояние в PF» ==
Состояние — это набор информации, необходимый для преобразования/перенаправления/допуска потока данных. См., например, два состояния, сохранённых для `ping` из внутренней сети
Строка 34: Строка 35:
all udp 10.30.50.1:53 <- 10.30.50.3:44181 SINGLE:MULTIPLE
all udp 10.0.2.15:15999 -> 192.168.11.1:53 MULTIPLE:SINGLE
Строка 38: Строка 37:
== Таблицы и макросы ==
Строка 39: Строка 39:

== Д/З ==
Поработать со стендом:
Строка 40: Строка 43:
 * `FW-PFBSD`: сервер, доступ по ssh localhost:2212, доступ на 80-прот http;//lcoalhost:8012
 * `FC-client`: клиенит с единственной сетью (intnet), адрес 10.30.50.3 (можно попасть из консоли virtualbox или ssh с срвера
 1. `FW-PFBSD`: сервер, доступ по ssh localhost -p2212, доступ на 80-прот http;//localhost:8012
 1. `FC-client`: клиент с единственной сетью (intnet), адрес 10.30.50.3 (можно попасть из консоли virtualbox или ssh с сервера

Что можно сделать:
 * Посмотреть правила в `/etc/pf.conf`
 * Посмотреть, во что они превращаются: `pfctl -sa`
 * Обратить внимание на якорь (подробнее о якорях — на одной из следующих лекций)
 * Подключиться к `http://localhost:8012` (проброс на сервер → проброс средствами PF на клиент)
  * Посмотреть таблицу состояний `pfctl -ss`
 * Подключиться с клиента куда-нибудь по какому-нибудь протоколу :)
  * Посмотреть таблицу состояний `pfctl -ss`

Особенности FreeBSD/OpenBSD PF

OpenBSD: отказ от разделения преобразующих (nat, rdr) и фильтрующих (bass, block) команд.

pass out on ext_interface from src_addr to dst_addr nat-to ext_addr

    или

match out on ext_interface from src_addr to dst_addr nat-to ext_addr
pass out on ext_interface from src_addr to dst_addr
 
    и

pass in on ext_interface other_filters port ext_port rdr-to int_server [int_port]

см. в PF FAQ

Синтетическое понятие «состояние в PF»

Состояние — это набор информации, необходимый для преобразования/перенаправления/допуска потока данных. См., например, два состояния, сохранённых для ping из внутренней сети

fw-bsd# pfctl -ss
No ALTQ support in kernel
ALTQ related functions disabled
all tcp 10.0.2.15:22 <- 10.0.2.2:38548       ESTABLISHED:ESTABLISHED
all tcp 10.0.2.15:22 <- 10.0.2.2:38559       ESTABLISHED:ESTABLISHED
all tcp 10.30.50.1:18550 -> 10.30.50.3:22       ESTABLISHED:ESTABLISHED
all tcp 10.30.50.3:80 (10.0.2.15:80) <- 10.0.2.2:35520       FIN_WAIT_2:FIN_WAIT_2
all tcp 10.0.2.2:35520 -> 10.30.50.3:80       FIN_WAIT_2:FIN_WAIT_2
all udp 10.30.50.1:53 <- 10.30.50.3:59363       SINGLE:MULTIPLE
all udp 10.0.2.15:55546 -> 192.168.11.1:53       MULTIPLE:SINGLE
all icmp 144.76.222.201:3782 <- 10.30.50.3:3782       0:0
all icmp 10.0.2.15:25608 (10.30.50.3:3782) -> 144.76.222.201:25608       0:0

Таблицы и макросы

Д/З

Поработать со стендом: Образы клиента и сервера:

  1. FW-PFBSD: сервер, доступ по ssh localhost -p2212, доступ на 80-прот http;//localhost:8012

  2. FC-client: клиент с единственной сетью (intnet), адрес 10.30.50.3 (можно попасть из консоли virtualbox или ssh с сервера

Что можно сделать:

  • Посмотреть правила в /etc/pf.conf

  • Посмотреть, во что они превращаются: pfctl -sa

  • Обратить внимание на якорь (подробнее о якорях — на одной из следующих лекций)
  • Подключиться к http://localhost:8012 (проброс на сервер → проброс средствами PF на клиент)

    • Посмотреть таблицу состояний pfctl -ss

  • Подключиться с клиента куда-нибудь по какому-нибудь протоколу :)

    • Посмотреть таблицу состояний pfctl -ss

LecturesCMC/UnixFirewalls2014/05_OpenbsdPF (последним исправлял пользователь FrBrGeorge 2014-04-28 13:56:12)