{
    "version": "https:\/\/jsonfeed.org\/version\/1.1",
    "title": "Копытов Иван: заметки с тегом локальная сеть",
    "_rss_description": "Блог ленивого сисадмина",
    "_rss_language": "ru",
    "_itunes_email": "",
    "_itunes_categories_xml": "",
    "_itunes_image": "",
    "_itunes_explicit": "",
    "home_page_url": "https:\/\/kini24.ru\/tags\/lokalnaya-set\/",
    "feed_url": "https:\/\/kini24.ru\/tags\/lokalnaya-set\/json\/",
    "icon": false,
    "authors": [
        {
            "name": "Копытов Иван",
            "url": "https:\/\/kini24.ru\/",
            "avatar": false
        }
    ],
    "items": [
        {
            "id": "259",
            "url": "https:\/\/kini24.ru\/all\/probros-portov-v-openwrt\/",
            "title": "Проброс портов в OpenWrt",
            "content_html": "<p>Мне никогда не нравилось, что в интерфейсе OpenWrt нельзя указать несколько портов при пробросе, можно указать только диапазон. А если мне нужно несколько, объединенных одним сервисом? Например, почта. Если указывать все порты, то получается, что на каждый из них нужно создавать свое правило. В итоге получается такая простыня правил, что ориентироваться в ней становится затруднительно.<br \/>\nПо сути, эта заметка — напоминание себе как нужно правильно прокинуть порты во внутреннюю сеть, используя iptables. И, заодно, там же сделаем так, чтобы из локальной сети можно было обращаться к своим серверам по доменному имени.<br \/>\nИдем  в раздел <i>Network<\/i> — <i>Firewall<\/i> и открываем вкладку <i>Custom rules<\/i>. Добавляем туда строку такого вида:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">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<\/code><\/pre><p>Здесь мы помещает в цепочку <i>zone_wan_prerouting<\/i> таблицы <i>nat<\/i> правило, указывающее, что сервисы, обращающиеся из внешней сети на перечисленные порты, должны перенаправляться на сервер с адресом 192.168.1.100. Параметр -р указывает протокол tcp, а параметр -m multiports позволяет указать не один порт, а несколько. Это правило позволит открыть порты для доступна извне, но при обращении к ним из локальной сети придется указывать «прямой» адрес 192.168.1.100. Если вписать свой внешний адрес (IP или DNS), то ничего не выйдет. Чтобы это стало возможным, нужно дописать еще две строки:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">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\niptables -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<\/code><\/pre><p>В первой строке мы говорим, что все обращения к внешнему адресу на указанные порты должны перенаправляться на локальный адрес 192.168.1.100. Во второй строке мы, если так можно выразиться, прячем, что обращаемся из локальной сети.<br \/>\nПосле нажатия кнопки <i>Save<\/i> содержимое поля <i>Custom Rules<\/i> будет сохранено на роутере в файле \/etc\/firewall.user. Для применения эти необходимо перезапустить файрволл:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">\/etc\/init.d\/firewall restart<\/code><\/pre><p>После этого почта станет доступной из внешней сети и из локальной, причем по доменному имени или внешнему IP-адресу.<\/p>\n<p><b>Обновление<\/b> Если оставить последнее правило в таком виде, то исходящий IP-адрес (адрес клиента) будет отображаться как адрес самого роутера в локальной сети: 192.168.1.1. Поэтому следует немного изменить правило, чтобы оно выглядело следующим образом:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">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<\/code><\/pre><p>В этом случае внешние адреса останутся «настоящими», а все запросы из локальной сети будут отображаться как 192.168.1.1. На мой взгляд, это приемлемо.<\/p>\n",
            "date_published": "2022-12-25T12:48:29+07:00",
            "date_modified": "2023-01-18T12:11:20+07:00",
            "tags": [
                "firewall",
                "iptables",
                "openwrt",
                "внешний",
                "доступ",
                "локальная сеть",
                "перенаправление",
                "порт",
                "проброс",
                "роутер"
            ],
            "_date_published_rfc2822": "Sun, 25 Dec 2022 12:48:29 +0700",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "259",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "highlight\/highlight.js",
                    "highlight\/highlight.css"
                ],
                "og_images": []
            }
        }
    ],
    "_e2_version": 4134,
    "_e2_ua_string": "Aegea 11.3 (v4134)"
}