{
    "version": "https:\/\/jsonfeed.org\/version\/1.1",
    "title": "Аникин: заметки с тегом ipfw",
    "_rss_description": "Блог об администрировании Linux, BSD и не только",
    "_rss_language": "ru",
    "_itunes_email": "",
    "_itunes_categories_xml": "",
    "_itunes_image": "",
    "_itunes_explicit": "",
    "home_page_url": "https:\/\/anikin.pw\/tags\/ipfw\/",
    "feed_url": "https:\/\/anikin.pw\/tags\/ipfw\/json\/",
    "icon": "https:\/\/anikin.pw\/pictures\/userpic\/userpic@2x.jpg?1478690884",
    "authors": [
        {
            "name": "Петр Аникин",
            "url": "https:\/\/anikin.pw\/",
            "avatar": "https:\/\/anikin.pw\/pictures\/userpic\/userpic@2x.jpg?1478690884"
        }
    ],
    "items": [
        {
            "id": "105",
            "url": "https:\/\/anikin.pw\/all\/prozrachny-nat-na-shlyuze-freebsd-cherez-setfib\/",
            "title": "Прозрачный nat нескольких сетей на шлюзе FreeBSD через setfib",
            "content_html": "<p>Скрипт создания таблицы с адресами<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">#!\/bin\/sh\n\nrm \/tmp\/reestr.txt\nrm \/tmp\/reestrbsd.txt\n\/usr\/local\/bin\/wget -O - https:\/\/reestr.rublacklist.net\/api\/v2\/ips\/json|tr ',' '\\n'|tr -d '&quot;'|tr -d ']'|tr -d '[' &gt; \/tmp\/reestr.txt\ngrep -E -o &quot;([0-9]{1,3}[\\.]){3}[0-9]{1,3}&quot; \/tmp\/reestr.txt &gt; \/tmp\/reestrbsd.txt\n\nfile=&quot;\/tmp\/reestrbsd.txt&quot;\nipfw table 1 flush\nwhile read line\ndo\nipfw table 1 add $line\ndone &lt; $file<\/code><\/pre><p>Фаервол:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">#!\/bin\/sh -\n\n# прописываем роут для setfib 1\nsetfib 1 route del default\nsetfib 1 route add default -interface tun1\n\nfwcmd=&quot;\/sbin\/ipfw&quot;\n${fwcmd} -f flush\n${fwcmd} -f pipe flush\n${fwcmd} nat 1 delete\n${fwcmd} nat 2 delete\n\nif_local1=&quot;re0&quot; # локалка\nif_inet1=&quot;ng0&quot; # интерфейс интернета\nif_rkn=&quot;tun1&quot;  # интерфейс openvpn\n\n       # заруливаем все обращения к ip из таблицы в setfib 1\n       ${fwcmd} add setfib 1 ip from any to table\\(1\\) recv ${if_local1}\n\n       # основной нат\n       ${fwcmd} nat 1 config if ${if_inet1} same_ports\n       ${fwcmd} add nat 1 ip from any to any via ${if_inet1}\n\n       # нат для ip из таблицы\n       ${fwcmd} nat 2 config if ${if_rkn} same_ports\n       ${fwcmd} add nat 2 ip from any to any via ${if_rkn}\n\n       ${fwcmd} add allow all from any to any<\/code><\/pre>",
            "date_published": "2021-07-03T17:46:27+03:00",
            "date_modified": "2024-03-01T11:26:45+03:00",
            "tags": [
                "Freebsd",
                "ipfw",
                "setfib"
            ],
            "_date_published_rfc2822": "Sat, 03 Jul 2021 17:46:27 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "105",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "highlight\/highlight.js",
                    "highlight\/highlight.css"
                ],
                "og_images": []
            }
        },
        {
            "id": "90",
            "url": "https:\/\/anikin.pw\/all\/prozrachny-nat-na-shlyuze-freebsd\/",
            "title": "Прозрачный nat нескольких сетей FreeBSD",
            "content_html": "<p><b>Этот способ устарел. Лучше делать <a href=\"https:\/\/anikin.pw\/all\/prozrachny-obhod-blokirovok-na-shlyuze-freebsd-cherez-setfib\/\">вот так<\/a><\/b><\/p>\n<p>В первую очередь нужно поднять OpenVPN клиента через который мы будем пускать адреса в обход. В конфиге клиента следует закомментировать диррективу redirect-gateway, чтобы основной траффик у нас шел через провайдера.<br \/>\nСоздаем скрипт который загрузит заблокированные ip в таблицу ipfw<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">#!\/bin\/sh\n\nrm \/root\/bin\/reestr.txt\n\/usr\/local\/bin\/wget -O - https:\/\/api.reserve-rbl.ru\/api\/v2\/ips\/json|tr ',' '\\n'|tr -d '&quot;'|tr -d ']'|tr -d '['  &gt; \/root\/bin\/reestr.txt\nfile=&quot;\/root\/bin\/reestr.txt&quot;\n\nipfw table 1 flush\nwhile read line\ndo\nipfw table 1 add $line\ndone &lt; $file\n\nfile=&quot;\/root\/bin\/useriplist&quot; # В этот файл можно вписать свои ip которые тоже нужно пустить через VPN\nwhile read line\ndo\nipfw table 1 add $line\ndone &lt; $file<\/code><\/pre><p>Запустим natd на порту 8673<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">\/sbin\/natd -a 10.8.1.6 -p 8673<\/code><\/pre><p>Зарулим все ip из таблицы 1 в VPN<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">lan=&quot;192.168.0.0\/24&quot; #локалка\nvpnip=&quot;10.8.1.6&quot; #ip vpn интерфейса\nvpngw=&quot;10.8.1.7&quot; #vpn шлюз\nipfw add divert 8673  ip from ${lan},${vpnip} to table\\(1\\)\nipfw add fwd ${vpngw}  ip from ${vpnip} to table\\(1\\)\nipfw add divert 8673  ip from table\\(1\\) to ${vpnip}<\/code><\/pre>",
            "date_published": "2019-01-15T13:07:12+03:00",
            "date_modified": "2024-03-01T11:26:22+03:00",
            "tags": [
                "Freebsd",
                "ipfw",
                "nat",
                "table"
            ],
            "_date_published_rfc2822": "Tue, 15 Jan 2019 13:07:12 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "90",
            "_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)"
}