<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  xmlns:atom="http://www.w3.org/2005/Atom">

<channel>

<title>Копытов Иван: заметки с тегом локальная сеть</title>
<link>https://kini24.ru/tags/lokalnaya-set/</link>
<description>Блог ленивого сисадмина</description>
<author></author>
<language>ru</language>
<generator>Aegea 11.3 (v4134)</generator>

<itunes:subtitle>Блог ленивого сисадмина</itunes:subtitle>
<itunes:image href="" />
<itunes:explicit></itunes:explicit>

<item>
<title>Проброс портов в OpenWrt</title>
<guid isPermaLink="false">259</guid>
<link>https://kini24.ru/all/probros-portov-v-openwrt/</link>
<pubDate>Sun, 25 Dec 2022 12:48:29 +0700</pubDate>
<author></author>
<comments>https://kini24.ru/all/probros-portov-v-openwrt/</comments>
<description>
&lt;p&gt;Мне никогда не нравилось, что в интерфейсе OpenWrt нельзя указать несколько портов при пробросе, можно указать только диапазон. А если мне нужно несколько, объединенных одним сервисом? Например, почта. Если указывать все порты, то получается, что на каждый из них нужно создавать свое правило. В итоге получается такая простыня правил, что ориентироваться в ней становится затруднительно.&lt;br /&gt;
По сути, эта заметка — напоминание себе как нужно правильно прокинуть порты во внутреннюю сеть, используя iptables. И, заодно, там же сделаем так, чтобы из локальной сети можно было обращаться к своим серверам по доменному имени.&lt;br /&gt;
Идем  в раздел &lt;i&gt;Network&lt;/i&gt; — &lt;i&gt;Firewall&lt;/i&gt; и открываем вкладку &lt;i&gt;Custom rules&lt;/i&gt;. Добавляем туда строку такого вида:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;iptables -t nat -A zone_wan_prerouting -p tcp -m multiport --dports 25,110,143,465,587,993,995,4190 -j DNAT --to-destination 192.168.1.100&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Здесь мы помещает в цепочку &lt;i&gt;zone_wan_prerouting&lt;/i&gt; таблицы &lt;i&gt;nat&lt;/i&gt; правило, указывающее, что сервисы, обращающиеся из внешней сети на перечисленные порты, должны перенаправляться на сервер с адресом 192.168.1.100. Параметр -р указывает протокол tcp, а параметр -m multiports позволяет указать не один порт, а несколько. Это правило позволит открыть порты для доступна извне, но при обращении к ним из локальной сети придется указывать «прямой» адрес 192.168.1.100. Если вписать свой внешний адрес (IP или DNS), то ничего не выйдет. Чтобы это стало возможным, нужно дописать еще две строки:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;iptables -t nat -A zone_lan_prerouting -d 95.170.188.45 -p tcp -m multiport --dports 25,110,143,465,587,993,995,4190 -j DNAT --to-destination 192.168.1.100
iptables -t nat -A zone_lan_postrouting -d 192.168.1.100 -p tcp -m multiport --dports 25,110,143,465,587,993,995,4190 -j MASQUERADE&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;В первой строке мы говорим, что все обращения к внешнему адресу на указанные порты должны перенаправляться на локальный адрес 192.168.1.100. Во второй строке мы, если так можно выразиться, прячем, что обращаемся из локальной сети.&lt;br /&gt;
После нажатия кнопки &lt;i&gt;Save&lt;/i&gt; содержимое поля &lt;i&gt;Custom Rules&lt;/i&gt; будет сохранено на роутере в файле /etc/firewall.user. Для применения эти необходимо перезапустить файрволл:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;/etc/init.d/firewall restart&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;После этого почта станет доступной из внешней сети и из локальной, причем по доменному имени или внешнему IP-адресу.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Обновление&lt;/b&gt; Если оставить последнее правило в таком виде, то исходящий IP-адрес (адрес клиента) будет отображаться как адрес самого роутера в локальной сети: 192.168.1.1. Поэтому следует немного изменить правило, чтобы оно выглядело следующим образом:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;iptables -t nat -A zone_lan_postrouting -s 192.168.1.0/24 -d 192.168.1.100 -p tcp -m multiport --dports 25,110,143,465,587,993,995,4190 -j MASQUERADE&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;В этом случае внешние адреса останутся «настоящими», а все запросы из локальной сети будут отображаться как 192.168.1.1. На мой взгляд, это приемлемо.&lt;/p&gt;
</description>
</item>


</channel>
</rss>