PF: Пример 1: брандмауэр для домашней сети или небольшого офиса

  1. Содержание
  2. Предположения
  3. опции
  4. пересылка
  5. Пакет фильтра регуки
  6. Полный набор правил

[ Back: Authpf: оболочка для шлюзов аутентификации ] [ Содержание ]

Содержание

введение

В этом разделе часто задаваемых вопросов объясняется, как использовать компьютер с OpenBSD и PF для создания межсетевого экрана и шлюза NAT для небольшой сети в вашем доме или офисе. Основная цель - предоставить доступ в Интернет компьютерам во внутренней сети, а также разрешить ограниченный доступ в Интернет к машине, поддерживающей роль брандмауэра. Полный пример можно найти в конце этого документа.

август

Топология сети выглядит следующим образом: [KOMP1] [KOMP3] | | ADSL --- + ------ + ----- + ------- fxp0 [OpenBSD] ep0 -------- (Интернет) | [KOMP2]

Несколько машин подключены к внутренней сети, хотя на диаграмме их три, но в этом случае их количество не имеет значения. Эти компьютеры используются для повседневных задач, таких как просмотр веб-страниц, отправка электронной почты, разговоров и т. Д. Адресное пространство внутренней сети содержится в блоке 192.168.0.0 / 255.255.255.0.

Маршрутизатор на базе OpenBSD представляет собой компьютер с процессором Pentium 100 и двумя сетевыми картами: 3Com 3c509B (ep0) и Intel EtherExpress Pro / 100 (fxp0). Пользователь подключен к Интернету с помощью ADSL, а NAT используется для обмена данными с другими компьютерами. IP-адрес для внешнего интерфейса динамически получен от интернет-провайдера.

Предположения

Предположения, которыми следует руководствоваться при построении правил фильтрации:
  • Предоставление неограниченного доступа в интернет компьютерам из внутренней сети.
  • Применение правил фильтрации, которые обеспечивают «блокировку по умолчанию» входящего трафика.
  • Проходящий трафик из Интернета направляется на следующие порты:
    • SSH (TCP-порт 22): используется для удаленного администрирования брандмауэра.
    • Auth / Ident (TCP-порт 113): используется некоторыми службами, такими как SMTP или IRC.
    • ICMP Echo Requests: этот тип ICMP-пакетов используется программой пинг (8) ,
  • Регистрация статистики фильтра пакетов для внешнего сетевого интерфейса.
  • Отправка стандартного TCP RST или ICMP недоступного ответа на заблокированные пакеты.
  • Создание набора правил, который будет простым и понятным.

потребности

При написании этого FAQ предполагалось, что OpenBSD был правильно настроен для работы в качестве маршрутизатора, включая правильную подготовку сети, подключение к Интернету и настройку переменной sysctl net.inet.ip.forwarding равной «1».

Создание набора правил

Выполнение команд, содержащихся в следующих подразделах, приведет к получению полного набора правил, удовлетворяющих всем перечисленным выше условиям.

макрос

Следующие макросы предназначены для облегчения понимания и оптимизации управления набором правил: int_if = "fxp0"
ext_if = "ep0"
tcp_services = "{22, 113}"
icmp_types = "echoreq"
priv_nets = "{127.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8}"

Первые две строки указывают, по каким интерфейсам будет выполняться фильтрация. Третья строка содержит список портов TCP (SSH и идент / аутентификация), на которые должен передаваться трафик из Интернета. В четвертой строке указываются типы сообщений ICMP, которые не будут блокироваться. В последней строке возвращаются адреса plti и зарезервированные сетевые блоки, описанные в RFC 1918 ,

Примечание : если соединение ADSL происходит через PPPoE тогда фильтрация и трансляция пакетов будут выполняться на интерфейсе tun0, а не на ep0.

опции

Приведенные ниже два параметра предоставляют ответы по умолчанию на заблокированные пакеты для блока reguy, а также сбор различных типов статистики для интерфейса внешней сети. установить возврат политики блока
установить логинтерфейс $ ext_if

Нормализация пакетов

Не существует веской причины, по которой входящие пакеты не нужно было бы нормализовать. Нормализация пакета выполняется путем добавления одной прямой линии: scrub in all

Перевод адреса

Включить трансляцию адресов (NAT) для хостов во внутренней сети можно, добавив regatch nat: nat в $ ext_if из $ int_if: network к любому -> ($ ext_if)

Поскольку IP-адрес для интерфейса внешней сети получается динамически, имя интерфейса, на котором происходит сопоставление адресов, было заключено в квадратные скобки, таким образом, PF будет уведомляться о каждом изменении адреса.

пересылка

Единственное перенаправление, необходимое в этом наборе правил, предназначено для FTP-прокси (8) так что FTP-клиент в локальной сети MG может легко получить доступ к FTP-серверам в Интернете. rdr на $ int_if proto tcp с любого на любой порт 21 -> 127.0.0.1 порт 8021

Обратите внимание, что этот маршрут поддерживает только FTP-соединения через порт 21. Если вам нужно разрешить другие номера портов, вам нужно будет предоставить их в виде списка, например: от любого к любому порту {21, 2121}

Пакет фильтра регуки

После настройки NAT и перенаправления вы можете перейти к настройке фильтра пакетов. Фильтр будет работать в соответствии с правилами «блокировки по умолчанию»: заблокировать все

В этом месте через межсетевой экран не проходит трафик, даже тот, который идет из внутренней сети. Следующие правила позволят вам получить доступ к дейтаграмме в соответствии с указаниями, приведенными заранее.

Каждая система UNIX имеет интерфейс с обратной связью, называемый «обратной связью». Это виртуальный сетевой интерфейс, используемый процессами для связи с другими приложениями, работающими в локальной системе. Cay-трафик на этом интерфейсе должен проходить без каких-либо ограничений. В OpenBSD интерфейс «loopback» называется: л (4) ,

быстро пройти на lo0 все

Пакеты, имеющие в качестве адреса назначения или источника один из адресов, описанных в RFC 1918 , идущий в любом направлении через внешний интерфейс будет заблокирован - эти адреса никогда не должны появляться в Интернете. Введение этих правил гарантирует, что ни один из зарезервированных адресов не попадет в Интернет, и будет препятствовать принятию пакетов из мира, в качестве адреса которых указан один из адресов из RFC 1918.

быстрое падение блока на $ ext_if от $ priv_nets до любого
быстрое выпадение блока из $ ext_if из любого в $ priv_nets

Обратите внимание, что удаление блока указывает, что фильтр PF не отправляет TCP RST или ICMP Unreachable в ответ на заблокированные пакеты. Адреса из RFC 1918 не существуют в Интернете, ни один пакет, отправленный на этот адрес, не достигнет пункта назначения. Быстрый вариант говорит, что PF имеет пробел для проверки следующей части набора, если пакет находится в этом диапазоне. Пакеты, исходящие из или направленные в сеть $ priv_nets, будут немедленно отклонены.

Следующая регука открывает порты для служб, которые должны использоваться в Интернете:

передать $ ext_if inet proto tcp из любого в ($ ext_if) \
флаги порта $ tcp_services S / SA сохраняют состояние

Указание портов в форме макроса $ tcp_services позволяет легко добавлять последующие службы, которые будут доступны. Просто отредактируйте макрос и заново установите правило. Точно так же, в случае служб на основе UDP, необходимо только создать макрос $ udp_services и добавить очень похожий регук, как показано выше, с опцией proto udp.

Передача ICMP-пакетов:

передать в inet proto icmp все состояния icmp типа $ icmp_types

Как и макрос $ tcp_services, макрос $ icmp_types можно легко изменить, чтобы другие типы пакетов ICMP могли проходить через брандмауэр. Обратите внимание, что этот домен применяется ко всем сетевым интерфейсам.

Последующие полки передают трафик из или во внутреннюю сеть. В этом примере предполагается, что пользователи внутреннего интерфейса точно знают, что они делают, и не будут вызывать проблем. Это не обязательно верное предположение, в некоторых случаях может быть уместнее использовать меньше свободы.

передать $ int_if из $ int_if: сеть - это любое состояние хранения

Вышеуказанная регука позволяет хостам из локальной сети отправлять пакеты через брандмауэр, но не позволяет подключить маршрутизатор к компьютеру из внутренней сети. Это хорошее решение? Ответ зависит от нескольких элементов конфигурации сети. Если брандмауэр одновременно является сервером DHCP, может потребоваться проверить, назначен ли он другому хосту, прежде чем назначать адрес. Если брандмауэр имеет возможность подключения с компьютеров в локальной сети, любой, кто входит в систему на маршрутизаторе, будет иметь доступ к компьютерам в локальной сети. Однако следует помнить, что это не является значительным улучшением безопасности - если кому-то не будет предоставлен доступ к шлюзу, скорее всего, это будет туманом изменения правил фильтра пакетов. Добавление следующего правила гарантирует, что брандмауэр сможет без проблем взаимодействовать с машинами во внутренней сети:

передать $ int_if из любого в $ int_if: состояние сети

Важно, что если две вышеупомянутые строки помещены в файл конфигурации, директива keep state не требуется - все пакеты смогут выходить через внешний интерфейс без необходимости отслеживать состояние. Однако, если строка, начинающаяся с passout, не добавляется, необходимо поместить состояние keep на строку, которая начинается с pass in. Используя отслеживание состояния, вы можете добиться некоторого улучшения производительности - таблицы состояния проверяются до того, как дейтаграмма будет проверяться правилами, но повышение эффективности будет главным образом благодаря очень широкой фильтрации, и этот пример системы очень прост, вероятно, вряд ли будет замечен.

Последние регаты позволяют пропускать исходящий трафик через интерфейс внешней сети.

раздать на $ ext_if proto tcp все модулированные состояния флагов S / SA
раздать на $ ext_if proto {udp, icmp} все сохранить состояние

Трафик по протоколам TCP, UDP и ICMP передается в Интернет, а отслеживание состояния позволяет переопределять пакеты, которые отвечают на отправленные дейтаграммы.

Полный набор правил

# macros int_if = "fxp0" ext_if = "ep0" tcp_services = "{22, 113}" icmp_types = "echoreq" priv_nets = "{127.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, 10.0. 0.0 / 8} "# options set block-policy return set set loginterface $ ext_if # нормализация дейтаграмм во всех # nat / rdr nat на $ ext_if из $ int_if: сеть в любое -> ($ ext_if) rdr на $ int_if proto tcp из любой на любой порт 21 -> 127.0.0.1 \ port 8021 # фильтр пакетов regku блокирует все быстрые передачи на lo0 быстрое падение всех блоков на $ ext_if из $ priv_nets в любой выпадающий блок на $ ext_if из любого в $ priv_nets передачи в на $ ext_if inet proto tcp от any до ($ ext_if) \ port $ tcp_services Флаги S / SA хранят проход состояния в proto icmp все переходы состояния icmp-типа $ icmp_type на $ int_if из $ int_if: network в любое состояние хранения передать в $ int_if из любого значения в $ int_if: состояние сохранения сети передать в $ ext_if proto tcp все флаги состояния модуляции S / SA передать в $ ext_if proto {udp, icmp} все состояния хранения

[ Back: Authpf: оболочка для шлюзов аутентификации ] [ Содержание ]

[email protected]
Первоначально [OpenBSD: example1.html, v 1.12]
$ Translation: example1.html, версия 1.7 2004/01/12 17:37:45 pl-team Exp $
$ OpenBSD: example1.html, версия 1.6 2004/01/16 21:01:34 jufi Exp $

Похожие

Все или ничего
кликните сюда Больше подробностей. Это революционный способ выиграть
Стоит ли устанавливать Windows 7 32-битную или 64-битную?
С Предстоящий выпуск Windows 7 снова возникает вопрос о том, следует ли устанавливать 32-разрядную версию (x86) операционной системы или перейти на 64-разрядную (x64). Это то, о чем спрашивали с момента появления процессоров потребительского уровня с номенклатурой «x64». Кажется, что только вчера фанаты Intel и AMD были в разногласии с Athlon 64. В то время и даже совсем недавно, когда
LinkedIn может похвастаться результатами в Польше. Это правда, что этот сайт социальной сети для профессион...
LinkedIn может похвастаться результатами в Польше. Это правда, что этот сайт социальной сети для профессионалов имеет примерно в пять раз меньше пользователей, чем даже "Умирающий" старый Наш класс Сегодня кратко назвал NK.pl, но даже учитывая природу среды, можно говорить об огромном успехе. Недавно, в рамках темы недели, мы склонились над
Как включить семейные настройки (также называемые родительским контролем) в вашем клиенте Steam
... опции). Примечание. Несмотря на то, что мы используем клиент Steam для этого урока (поскольку он позволяет вам сразу же протестировать свои изменения и увидеть результаты), вы можете войти в свой Аккаунт Steam и с помощью параметров семейства (находится в нижнем правом столбце) внесите те же изменения. После завершения загрузки перейдите через строку меню в Steam -> Настройки. В меню «Настройки» выберите
Красочные смайлики и смайлики в Outlook
Это может быть раздражающей темой для фанатиков или пользователей Outlook бизнес-уровня, но я все равно хотел спросить об этом. Я знаю, что Outlook поддерживает смайлики, как при наборе :-) Outlook преобразует его в и это также делает это для :-( и: - |. Однако, они,
Lenovo Legion Y520 - полный обзор и тесты
Legion Y520 (стартовая цена 849 долл .; тестируемая цена 1249 долл.) - не первый игровой ноутбук Lenovo, но он ознаменует новый старт компании на этом рынке. Y520 - первый представитель новой серии Legion, и он производит сильное первое впечатление. Гладкий конический внешний вид ноутбука и высокая производительность его процессоров Intel Core i7 и GPU Nvidia GTX 1050 Ti позволяют легко рекомендовать эту машину геймерам с ограниченным бюджетом. Тем не менее, пользователям придется преодолеть
Как настроить лицо для анимации
Когда я впервые учился создавать ригги для персонажей в Maya еще в 2002 году, работая над названием Superman: Shadow of Apokolips для Playstation 2, ригги, которые мы использовали, были не самыми эффективными, а Set Driven Keys (SDK) использовались почти для всего , Руки управлялись ими, как и выражения лица, на самом деле почти в каждом контроле был какой-то SDK. Не поймите меня неправильно, Set Driven Key - мощный инструмент в Maya, но вам, возможно, придется пробраться через множество
Приложение DIY Pokemon Go с push-уведомлениями для Android
Во втором посте, посвященном Android, я попытаюсь Pokemon Go и узнайте, как сделать приложение Pokemon Go map с помощью push-уведомлений PubNub Android, используя один из многих неофициальных API Pokemon Go поддерживается на GitHub. Это руководство требует, чтобы вы запустили удаленный сервер, используя Ngrok , и вы должны изменять URL-адрес ngrok в
Справка Trumba: Добавьте ссылки на карту к событиям
Что вы можете узнать в этой теме: Обзор: Добавить ссылки на карту Люди будут чаще посещать мероприятия, которые вы спонсируете, если они точно знают, как к ним добраться. Добавляя ссылку на карту к событию, вы предоставляете потенциальным членам аудитории эскиз карты и ссылку на карту, чтобы они точно знали, где находится место события и как туда добраться. Подсказка. Если вы добавите ссылки на карты в события, вы можете предоставить
Скидки
Продукты - максимальная скидка , Клиенты - общая скидка , Группа скидок - приоритет группы скидок , В панели администрирования выберите Предложение => продукты Изменить продукт,
Лучшее антивирусное программное обеспечение 2019 (Windows)
... пакета были протестированы для пакета Microsoft Windows 7, 8 и новой версии Windows 10. Предыдущий тест антивирусного сканера состоялся в декабре 2018 года. Между тем были выпущены различные новые версии и различные обновления антивирусных сканеров. такие как: антивирус Bitdefender Plus 2019, антивирус Касперского 2019 и антивирус Avira Pro. Мы решили снова протестировать все пакеты на Windows 7, Windows 8 и последней версии Windows 10. Антивирусная программа BullGuard 2019 появилась

Комментарии

Какой подарок подойдет: фотокнига, корзина сладостей или, может быть, традиционные цветы?
Какой подарок подойдет: фотокнига, корзина сладостей или, может быть, традиционные цветы? Спланируйте идеальное спасибо родителям за свадьбу, полную эмоций и восхищения! Какую форму можно принять благодаря родителям? От вас зависит, какую форму
Так да или нет?
Так да или нет? В конце концов, комната для интерпретации отличная. Поэтому разумным решением должно быть разбиение на страницы предисловия (введения), если это было зафиксировано в оглавлении. Если это не было показано в оглавлении, то нет. Заголовок в основной коммерческой печати Заголовок с обычной областью действия (например, в романах) находится в процессе планографической печати (например, офсетная печать) или при больших тиражах при глубокой печати (например, ротационная
Вы ищете уникальные идеи, чтобы собрать больше денег для школы, клуба или церкви?
Вы ищете уникальные идеи, чтобы собрать больше денег для школы, клуба или церкви? В компаниях, где я работал, мои коллеги постоянно беспокоили меня, чтобы они покупали бесполезные вещи, сделанные их детьми, для сбора денег. Это были либо конфеты, либо другие китчевые вещи, которые я никогда не использовал. В то же время я хотел предложить больше практических вещей, которые мне нравятся и которые я мог бы использовать на самом деле! Уникальные продукты, используемые для
Вы заинтересованы в создании сайта или, возможно, вам нужно больше информации?
Вы заинтересованы в создании сайта или, возможно, вам нужно больше информации? КОНТАКТЫ по электронной почте: [email protected] или позвоните нам по адресу: 532 394 875 ВЫ ТАКЖЕ МОЖЕТЕ СДЕЛАТЬ НАМ, ЧТОБЫ ИСПОЛЬЗОВАТЬ ФОРМУ КОНТАКТА часто задаваемые вопросы ... или наиболее часто задаваемые вопросы
Куда их всех поместить, чтобы содержать комнату в порядке, и ребенок мог легко достать любимую игрушку или необходимую научную помощь?
Куда их всех поместить, чтобы содержать комнату в порядке, и ребенок мог легко достать любимую игрушку или необходимую научную помощь? Мы представляем несколько оригинальной мебели, которая поможет приручить беспорядок и не займет много места в детской комнате:
Вы хотите построить дом, замок или ветряную мельницу?
Вы хотите построить дом, замок или ветряную мельницу? Есть также автозаправочная станция в Тейфоке, и, конечно, это не конец - там дюжина установок, каждый найдет проект строительства, который его интересует. Когда вам надоест построенная структура, вы можете восстановить элементы
8. Если бы деньги не были предметом, какой предмет мебели, произведения искусства или предмет роскоши вы всегда хотели?
8. Если бы деньги не были предметом, какой предмет мебели, произведения искусства или предмет роскоши вы всегда хотели? Частная яхта, наполненная экспрессионистским искусством и изготовленной на заказ мебелью. 9. Что дальше для Гранта Пиерруса? Я всегда учусь, и мне очень приятно объявить, что я буду гостить на лекции в Школе дизайна KLC, для меня это такой же учебный процесс, как и для студентов, которых я посещаю.
Компания также хочет привлечь клиентов, которые не покупают в Интернете сегодня - не объявят ли они об открытии розничных магазинов через год или два?
Компания также хочет привлечь клиентов, которые не покупают в Интернете сегодня - не объявят ли они об открытии розничных магазинов через год или два? Конечно, будет понятно, как превратить CDP.pl в современный онлайн-магазин. Компания может также ожидать увеличения интереса в мае, когда в продажу поступит финал трилогии приключений Геральта в форме игры под названием «Ведьмак 3: Дикая охота», для которой в прошлом году были собраны пред-премьерные заказы. Как мы видим
Будет ли моя лицензия действительна в течение всего срока действия лицензии или в течение оставшихся дней, если я приобрету продление лицензии?
Будет ли моя лицензия действительна в течение всего срока действия лицензии или в течение оставшихся дней, если я приобрету продление лицензии? 9. Я купил лицензию в Южной Африке. Я не могу активировать приложение в России. 10. Я купил ноутбук с предустановленным продуктом «Лаборатории Касперского». После переустановки ОС активация приложения завершается с ошибкой «Количество активаций с использованием этого кода превышено».
Что вы ищете в коде, чтобы определить, насколько он хорош или плох?
Что вы ищете в коде, чтобы определить, насколько он хорош или плох? » Самый очевидный способ сказать: сайт выглядит испорченным? Тогда это плохой CSS. Если сайт выглядит отлично, то он проходит первый тест. Следующая вещь, которую я бы искал, не слишком падая и грязная, - это форматирование. Я бы не заботился о тривиальных вещах, таких как табуляция, пробелы или интервалы после селекторов, а вместо этого - общая чистота и последовательность. Похоже, у них есть
06. Управление или пользовательский интерфейс?
06. Управление или пользовательский интерфейс? Используете ли вы элементы управления или отдельный пользовательский интерфейс, зависит от вас Создавать ли вы элементы управления, которые плавают перед лицом персонажа, или использовать отдельный пользовательский интерфейс, решать вам или, скорее, аниматорам, которые будут использовать вашу

Это хорошее решение?
Какой подарок подойдет: фотокнига, корзина сладостей или, может быть, традиционные цветы?
Какую форму можно принять благодаря родителям?
Так да или нет?
Вы ищете уникальные идеи, чтобы собрать больше денег для школы, клуба или церкви?
Вы заинтересованы в создании сайта или, возможно, вам нужно больше информации?
Куда их всех поместить, чтобы содержать комнату в порядке, и ребенок мог легко достать любимую игрушку или необходимую научную помощь?
Вы хотите построить дом, замок или ветряную мельницу?
8. Если бы деньги не были предметом, какой предмет мебели, произведения искусства или предмет роскоши вы всегда хотели?
8. Если бы деньги не были предметом, какой предмет мебели, произведения искусства или предмет роскоши вы всегда хотели?

Комментарии запрещены.