Я использую маршрутизатор с фильтрацией на основе pf на OpenBSD 4.3 около года. Моя текущая задача - создать новый сетевой сегмент для размещения наших внешних сайтов.
Моя цель состоит в том, чтобы машины, установленные в этом сегменте сети, не имели большего доступа к остальной части нашей сети, чем машина в Интернете.
В целом это довольно близко. У нас есть DNS-сервер, возвращающий внешний вид этого сегмента сети. Pf не направляет трафик из этого сегмента в какой-либо сегмент, кроме интернет-интерфейса. Однако я не могу предотвратить маршрутизацию пакетов на маршрутизатор, если им также разрешено выходить в Интернет.
например
block in ... # tag dmz traffic as only allowed to internet pass in on $dmz_if inet all tag INTERNET_ONLY ... # Ensure only traffic allowed to Internet is passed block out on $internet_if block out on $internet_if tagged INTERNET_ONLY tag ROUTE_INTERNET pass out on $internet_if tagged ROUTE_INTERNET
Я хотел бы иметь возможность добавить
block out on $local_if from $(dmz_if:network)
для блокировки любых пакетов, идущих через маршрутизатор, но оказывается, что пакеты для локального хоста не выходят на lo0. Как я могу их заблокировать?
Я неправильно понял, как все это работает? есть ли вариант, который я пропустил, чтобы разрешить это?
какие-либо предложения?
lo0 - это локальный трафик от вашего маршрутизатора к вашему маршрутизатору. Например, когда вы используете IP 127.0.0.1 для подключения.
Если вы хотите, чтобы ваша DMZ не разговаривала для подключения к маршрутизатору, вам необходимо block in on $dmz_if
на IP-адреса вашего маршрутизатора
Теперь это решило мою проблему и протестировано.
# record your internal IP addresses internal_ip_addr="{" $dmz_if:0 "," $office_if:0 "," $pms-servers_if:0 "}" block in ... # tag dmz traffic as only allowed to internet pass in on $dmz_if inet all tag INTERNET_ONLY ... # Ensure only traffic allowed to Internet is passed block out on $internet_if block out on $internet_if tagged INTERNET_ONLY tag ROUTE_INTERNET pass out on $internet_if tagged ROUTE_INTERNET ... # block traffic directed at my internal ip addresses. block in on $dmz_if from any to $internal_ip_addr
«Пользовательская модель» для этого состоит в том, чтобы рассматривать компьютер с рядом интерфейсов для каждого сетевого подключения (включая локальные, зашифрованные и т. Д.), И фильтр пакетов применяется каждый раз, когда пакет проходит через интерфейс. Если вы помечаете пакет, этот тег остается с пакетом, когда он фильтруется на интерфейсе вывода.