Это мой 12-й день в Gengwen Challenge, ознакомьтесь с подробностями мероприятия: больше текстового задания
Вечный ученик, практик и активный собеседник, приверженный пути развития технологий, оригинальный блогер, занятый и иногда ленивый, и подросток, которому иногда скучно, а иногда и смешно.
Поиск в WeChat 【ИТ-путешествие Джейка】Ответить после следующего:【wx】Вы можете присоединиться к группе обмена сотнями читателей;
Оригинальная ссылка: брандмауэр iptables (2) - стратегия и применение SNAT / DNAT | (с картой системы)
Обзор политик SNAT
Полное название SNAT:Source Network Address Translation 源地址转换
SNAT — операция преобразования адресов брандмауэра Linux, тип управления пакетами в команде iptables;
SNAT作用
: изменить исходный IP-адрес пакета в соответствии с указанными условиями.
С постепенным сокращением ресурсов IP-адресов предприятиям становится трудно подавать заявки на IP-адреса в общедоступных сетях или они могут позволить себе только расходы на один или несколько IP-адресов в общедоступных сетях. Используя сеть малого предприятия, применяя политику SNAT в шлюзе, можно решить проблему совместного использования Интернета в локальной сети.
Сервер шлюза Linux должен подключаться к Интернету и локальной сети соответственно через две сетевые карты eth1 и eth2 для анализа доступа узла локальной сети к Интернету.
Правильно установите IP-адрес/маску подсети/адрес шлюза по умолчанию для каждого хоста в локальной сети.
Eth1: 192.168.3.111/24 Gw : 192.168.3.1
Eth2: 192.168.1.7/24 (подключение к внутренней сетевой карте без настройки шлюза)
# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:f9:55:5b brd ff:ff:ff:ff:ff:ff
inet 192.168.1.7/24 brd 192.168.1.255 scope global eth2
inet6 2409:8a00:30f8:4d70:20c:29ff:fef9:555b/64 scope global dynamic
valid_lft 259010sec preferred_lft 172610sec
inet6 fe80::20c:29ff:fef9:555b/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:f9:55:65 brd ff:ff:ff:ff:ff:ff
inet 192.168.3.111/24 brd 192.168.3.255 scope global eth1
inet6 fe80::20c:29ff:fef9:5565/64 scope link
valid_lft forever preferred_lft forever
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.3.0 0.0.0.0 255.255.255.0 U 1 0 0 eth1
192.168.1.0 0.0.0.0 255.255.255.0 U 1 0 0 eth2
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth2
Отключить брандмауэр и selinux
# service iptables stop
iptables:将链设置为政策 ACCEPT:filter [确定]
iptables:清除防火墙规则: [确定]
iptables:正在卸载模块: [确定]
# setenforce 0
Когда включена только переадресация маршрутизации, а преобразование адресов не задано
На сервере Linux, выступающем в качестве шлюза, должна быть включена переадресация маршрутов для подключения к нескольким сетям.
Когда стратегия трансляции адресов не используется, исходный IP-адрес пакета данных из ПК локальной сети 192.168.1.123 в Интернет останется неизменным после переадресации шлюзом.Когда хост в Интернете получает такой пакет данных запроса , ответный пакет данных не сможет вернуться правильно, что приведет к сбою доступа.(私网地址不能在 Internet 中正常路由)
Включите переадресацию маршрута и установите ситуацию трансляции SNAT.
Когда политика SNAT правильно применяется на сервере шлюза, ситуация с пересылкой пакетов отличается.
Когда пакет данных от ПК локальной сети, выходящего в Интернет, достигает шлюзового сервера, он сначала выполняет выбор маршрута.Если обнаруживается, что пакет данных необходимо переслать с внешнего сетевого интерфейса eth1, его исходный IP-адрес 192.168.1.123 изменяется. на адрес внешнего сетевого интерфейса шлюза 192.168 .3.111 перед отправкой на целевой хост 192.168.3.112.
Запрос на доступ к данным отправляется с общедоступного IP-адреса сервера шлюза, и целевой хост может правильно вернуть ответный пакет данных, чтобы компьютеры в локальной сети могли использовать один и тот же общедоступный IP-адрес для доступа в Интернет.
Во время процесса преобразования адреса SNAT сервер шлюза правильно вернет ответный пакет данных исходному узлу в локальной сети в соответствии с ранее установленным сопоставлением SNAT. Пока первый пакет соединения является SNAT, соединение и другие пакеты соответствующего потока данных будут автоматически SNAT. Фактически сервер в Интернете не знает IP-адрес ПК в локальной сети, а промежуточное преобразование полностью выполняется хостом-шлюзом, который может играть роль защиты интрасети.
Применение политики SNAT
SNAT 策略应用
: Обеспечивает стратегию доступа для общего доступа к Интернету в локальной сети.Время включения для обработки пакетов данных наступает после выбора маршрута.Это изменение исходного IP-адреса исходящих пакетов данных из локальной сети. на IP-адрес внешнего сетевого интерфейса сервера шлюза.
Политика SNAT используется в цепочке постмаршрутизации таблицы nat.
При написании политики SNAT необходимо использовать команду iptables совместно с--to-source IP 地址
возможность указать измененный исходный IP-адрес.
Общий фиксированный IP-адрес для работы в Интернете
- Сервер шлюза Linux подключен к Интернету и локальной сети через две сетевые карты eth1 и eth2 соответственно.
- Шлюз по умолчанию для всех ПК в локальной сети установлен на: 192.168.1.7, а также установлен DNS-сервер.
- Требуется, чтобы ПК в сегменте сети 192.168.3.0/24 мог нормально выходить в Интернет через общий доступ.
Включите переадресацию маршрута шлюза
Переадресация IP — это ключ к реализации функции маршрутизации, соответствующей настройке ip_forward в файловой системе /proc.
Значение 1 означает включено, значение 0 означает выключено.
Использование хоста Linux в качестве шлюза, модифицируемогоsysctl.conf 配置文件
, функция переадресации маршрутизации должна быть включена постоянно.
# vi /etc/sysctl.conf
7 net.ipv4.ip_forward = 1 # 将第 7 行的配置由原来的 0 改为 1
# sysctl -p # 读取修改后的配置
Во время теста можно временно включить переадресацию маршрута.
# echo 1 > /proc/sys/net/ipv4/ip_forward
# sysctl -w net.ipv4.ip_forward=1
net.ipv4.ip_forward = 1
Правильно настроить политику SNAT
Политика SNAT применяется для пакетов данных ПК в локальной сети, получающих доступ к Интернету, и исходный адрес изменяется на общедоступный IP-адрес шлюза, устанавливаются правила брандмауэра, политика SNAT сохраняется в силе в течение длительного времени, и соответствующие команды записываются вrc.local
Конфигурационный файл удобен для автоматической настройки после загрузки.
`# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j SNAT--to-source 192.168.3.111`
Проверка результатов общего доступа политики SNAT
Используя ПК в локальной сети, можно нормально получить доступ к веб-сайту в Интернете.
Сервер веб-сайта, к которому осуществляется доступ, будет думать, что узел шлюза 192.168.3.111 обращается к веб-журналу, но он не знает, является ли это ПК-адресом 192.168.3.123 фактической интрасети предприятия.
Запустите устройство Windows, настройте IP-адрес в соответствии с реальной ситуацией и проверьте подключение;
Установите службу IIS в операционной системе Windows и выберите опцию Internet Information Services;
После завершения установки откройте браузер и введите IP-адрес машины для доступа;
Общий динамический IP-адрес для работы в Интернете
iptables предоставляет тип управления пакетами, называемый masquerade, который может использоваться для изменения исходного IP-адреса пакета и может автоматически получать IP-адрес внешнего сетевого интерфейса без использования--to-source
Укажите фиксированный IP-адрес.
Чтобы использовать политику маскировки MASQUERADE, просто удалите IP-адрес --to-source из политики SNAT, а затем используйте -j MASQUERADE, чтобы указать тип управления пакетами.
Широкополосный канал ADSL, обычно имя соединения: ppp0, ppp1 и т. д.;
# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ppp0 -j MASQUERADE
Если шлюз использует фиксированный общедоступный IP-адрес, лучше выбрать стратегию SNAT вместо стратегии маскарада, чтобы уменьшить ненужную системную нагрузку.
Стратегия и применение DNAT
DNAT 全称为:Destination Network Address Translation (目标地址转换)
ДНКТ этоLinux 防火墙
Другая операция преобразования адресов , этоiptables
Тип управления пакетами в команде;
Функция: изменить IP-адрес назначения и порт назначения пакета в соответствии с указанными условиями.
Обзор стратегии DNAT
DNAT: используется для изменения целевого IP-адреса и целевого порта, используемых в цепочке PREROUTING и цепочке OUTPUT таблицы nat.
Подобно SNAT, SNAT используется для изменения исходного IP-адреса, используемого в цепочке POSTROUTING таблицы nat.
В среде Интернет зарегистрированное доменное имя веб-сайта должно соответствовать официальному общедоступному IP-адресу, и ПК, подключенный к Интернету, не сможет получить доступ к серверу внутренней сети компании, если на сервере шлюза не будет правильно настроена политика DNAT.
Когда HTTP-запрос, отправленный Интернет-ПК, отправляется на сервер шлюза предприятия, сервер шлюза сначала определяет адрес назначения и порт назначения пакета данных и обнаруживает, что пакет данных должен получить доступ к порту 80 машины, а затем изменяет IP-адрес назначения на веб-сайт в интрасети. Затем IP-адрес сервера отправляется на внутренний веб-сервер.
Сервер шлюза изменит исходный IP-адрес возвращенного пакета HTTP-ответа в соответствии с ранее установленным сопоставлением DNAT, а затем вернет его на Интернет-ПК.
Интернет-ПК фактически не знает адрес локальной сети сервера веб-сайта предприятия, и промежуточное преобразование выполняется хостом шлюза.Благодаря установленной политике DNAT внутренний сервер предприятия может предоставлять услуги в Интернете.
Применение стратегии DNAT
Приложение DNAT: предназначено для публикации внутреннего сервера предприятия в Интернете, а время включения для обработки пакета данных выполняется до выбора маршрута. Измените адрес назначения пакета данных, обращающегося к IP-адресу внешнего сетевого интерфейса шлюза, на IP-адрес внутреннего сервера, который фактически предоставляет услуги.
При использовании команды iptables для установки политики DNAT необходимо объединить--to-destination IP 地址
возможность указать IP-адрес внутреннего сервера.
Опубликовать внутренний веб-сервер предприятия
- Компании необходимо зарегистрировать доменное имя веб-сайта с IP-адресом 192.168.3.111.
- Сервер сайта компании находится в локальной сети с IP-адресом 192.168.3.112.
- Требуется возможность просматривать содержимое веб-сайта компании из Интернета, посетив доменное имя веб-сайта.
Включите переадресацию маршрута шлюза
# vi /etc/sysctl.conf
7 net.ipv4.ip_forward = 1 # 将第 7 行的配置由原来的 0 改为 1
# sysctl -p # 读取修改后的配置
Правильно настроить политики DNAT
Измените адрес назначения на IP-адрес сервера веб-сайта, расположенного во внутренней сети, для пакетов данных любого хоста в Интернете, обращающегося к порту 80 шлюза.
# iptables -t nat -A PREROUTING -i eth2 -d 192.168.1.7 -p tcp --dport 80 -j DNAT --to-destination 192.168.3.112
# iptables -t nat -L -n -v
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 DNAT tcp -- eth2 * 0.0.0.0/0 192.168.1.7 tcp dpt:80 to:192.168.3.112
Chain POSTROUTING (policy ACCEPT 1 packets, 136 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 1 packets, 136 bytes)
pkts bytes target prot opt in out source destination
Тест DNAT публикует результаты
Установите его правильно на сервере веб-сайта 192.168.3.112, запустите веб-службу, протестируйте веб-страницу и измените файл домашней страницы, настроив его, а затем получите доступ к веб-сайту через клиентский компьютер в Интернете без разрешения DNS, вы также можете посетить напрямую.
Опубликуйте сервер OpenSSH на предприятии
Политика DNAT: используется для изменения IP-адреса назначения пакета, а также номера порта назначения, если это необходимо.
Настроить службу OpenSSH
Откройте службу OpenSSH на шлюзе и сервере веб-сайта и используйте порты 2345 и 22 соответственно.
Служба sshd шлюза не использует порт по умолчанию, так как она выходит прямо в Интернет.
Включите переадресацию маршрута шлюза
# vi /etc/sysctl.conf
7 net.ipv4.ip_forward = 1 # 将第 7 行的配置由原来的 0 改为 1
# sysctl -p # 读取修改后的配置
Правильно настроить политики DNAT
Служба sshd шлюза обращена прямо в Интернет и не требует трансляции адресов, а вот сервер веб-сайта находится в интранете и его необходимо опубликовать через политику DNAT.
Шлюз устанавливает правила брандмауэра, изменяет пакеты данных порта 2346 IP-адреса, которые обращаются к внешней сети, и изменяет адрес назначения и порт для облегчения пересылки на сервер веб-сайта.
# iptables -t nat -A PREROUTING -i eth2 -d 192.168.1.7 -p tcp --dport 2346 -j DNAT --to-destination 192.168.3.112:22
Тест DNAT публикует результаты
использоватьssh -p 2345 / 2346 用户名@eth2 IP 地址
Вы можете войти на сервер шлюза
Рекомендуемое чтение
Суммировать
В этой статье в основном представлен обзор политики SNAT, применения политики SNAT, политики и приложения DNAT и т. д.;
Оригинальность непростая.Если вы считаете, что эта статья полезна для вас, ставьте лайк, комментируйте или пересылайте эту статью, потому что это будет моей мотивацией выпускать больше качественных статей, спасибо!
Увидимся в следующий раз!