Веб сервер і поштовий сервер всередині – випадок NAT

            Давайте трохи повернемося і почнемо знову з базовим сценарієм, де приклад клієнтів з глави 3 отримують трьох нових сусідів: поштовий сервер, веб-сервер і файловий сервер Цього разу адреси зовні видимі або відсутні, або занадто дорогі і запускати ряд інших служб на машині, яка в першу чергу є брандмауером небажано Це означає, що ми повернулися назад, до ситуації де ми робимо наш NAT шлюзом На щастя, механізми перенаправлення в PF делют його відносно простим у підтримці на внутрішній строне шлюзу, який виконує роль NAT

Характеристики мережі такі ж, як для установки examplecom: ми повинні запустити веб-сервер, який подає дані у відкритому вигляді (http) і зашифрованому (https), а також поштовий сервер, який посилає і отримує пошту поки резрешено клієнтам всередині і поза локальної мережі використовувати ряд добре відомих протоколів Коротше кажучи, нам потрібні такі ж функції, що і в установці з попереднього розділу, але тільки з одним Маршрутизовані адресою

3 Дивіться сторінку man для OpenSSL для подальшого пояснення параметрів повязаних з шифром

З трьох серверів, тільки веб-сервер і поштовий сервер повинні бути видимими із зовнішнього світу, так ми додамо макроси для їх IP адрес і сервісів в набір правил з глави 3:

webserver = &quot19216827&quot webports = &quot{ http, https }&quot emailserver = &quot19216825&quot

email = &quot{ smtp, pop3, imap, imap3, imaps, pop3s }&quot

З одним єдиним Маршрутизовані адресою і серверами прихованими за NAT адресним простором, нам потрібно встановити правила на шлюзі, які перенаправляють трафік, який нам потрібен на наші сервера Ми могли б визначити набір правил відповідності, щоб налаштувати перенаправлення, а потім адресу блокувати або пропустити винести в окремий набір правил приблизно так:

match in on $ext_if proto tcp to $ext_if port $webports rdr-to $webserver match in on $ext_if proto tcp to $ext_if port $email rdr-to $emailserver pass proto tcp to $webserver port $webports

pass proto tcp to $emailserver port $email pass proto tcp from $emailserver to port smtp

Ця комбінація правил match і pass дуже схожим шляхом всі ці речі можуть бути зроблені в pre-OpenBSD 47 PF версіях, і якщо ви модернізіруете з попередніх версій, цей тип швидкої правки міг би бути мостом через невеликий розрив в синтаксисі Але ви також можете вибрати новий стиль, і написати це більш копактность:

pass in on $ext_if inet proto tcp to $ext_if port $webports rdr-to $webserver pass in on $ext_if inet proto tcp to $ext_if port $email rdr-to $mailserver pass on $int_if inet proto tcp to $webserver port $webports

pass on $int_if inet proto tcp to $mailserver port $email

Зверніть увагу на дозвільні правила з rdr-to Ця комбінація фільтрації та перенаправлення допоможе зробити речі легше і менше поки, так як у цій комбінації У pre-OpenBSD 47 PF, набір правил буде абсолютно схожим, виключаючи те, що ми зробили з перенаправленням

webserver = &quot19216827&quot webports = &quot{ http, https }&quot emailserver = &quot19216825&quot

email = &quot{ smtp, pop3, imap, imap3, imaps, pop3s }&quot

rdr on $ext_if proto tcp to $ext_if port $webports -&gt $webserver rdr on $ext_if proto tcp to $ext_if port $email -&gt $emailserver pass proto tcp to $webserver port $webports

pass proto tcp to $emailserver port $email

pass proto tcp from $emailserver to any port smtp

Джерело: Книга про PF, by Peter NM Hansteen, Переклад виконав Михайлов Олексій aka iboxjo

Схожі статті:


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

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*