{"id":1294,"date":"2025-01-30T11:39:08","date_gmt":"2025-01-30T02:39:08","guid":{"rendered":"https:\/\/bokumin45.server-on.net\/blog\/?p=1294"},"modified":"2025-11-17T09:57:31","modified_gmt":"2025-11-17T00:57:31","slug":"%e3%83%95%e3%82%a1%e3%82%a4%e3%82%a2%e3%82%a6%e3%82%a9%e3%83%bc%e3%83%ab%e3%82%b5%e3%83%bc%e3%83%90%e3%83%bc%e3%82%92%e8%87%aa%e5%ae%85%e3%81%a7%e4%bd%9c%e6%88%90%e3%81%99%e3%82%8bfreebsd14-2","status":"publish","type":"post","link":"https:\/\/www.bokumin.org\/blog\/2025\/01\/30\/%e3%83%95%e3%82%a1%e3%82%a4%e3%82%a2%e3%82%a6%e3%82%a9%e3%83%bc%e3%83%ab%e3%82%b5%e3%83%bc%e3%83%90%e3%83%bc%e3%82%92%e8%87%aa%e5%ae%85%e3%81%a7%e4%bd%9c%e6%88%90%e3%81%99%e3%82%8bfreebsd14-2\/","title":{"rendered":"\u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb\u30b5\u30fc\u30d0\u30fc\u3092\u81ea\u5b85\u3067\u4f5c\u6210\u3059\u308b\uff08FreeBSD14.2\uff09"},"content":{"rendered":"\n<p>How to Set Up a Firewall Server on FreeBSD 14.2<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-large-font-size\"><strong>\u306f\u3058\u3081\u306b<\/strong><\/p>\n\n\n\n<p>\u79c1\u306e\u81ea\u5b85\u306b\u306f\u30b5\u30fc\u30d0\u30fc\u304c\u3044\u304f\u3064\u304b\u3042\u308a\u307e\u3059\uff08\u3053\u306e\u30a6\u30a7\u30d6\u30b5\u30fc\u30d0\u30fc\u3082\u542b\u3081\uff09\u3002\u30b7\u30f3\u30d7\u30eb\u306a\u30a6\u30a7\u30d6\u30b5\u30fc\u30d0\u30fc\u3068\u3057\u3066\u52d5\u3044\u3066\u3044\u308b\u3060\u3051\u3067\u306f\u5c11\u3057\u7269\u8db3\u308a\u306a\u304f\u611f\u3058\u3066\u3044\u305f\u6642\u3001\u30b9\u30a4\u30c3\u30c1\u30f3\u30b0\u30cf\u30d6\u3092\u3082\u3089\u3044\u307e\u3057\u305f\u3002\u3053\u306e\u307e\u307e\u4f7f\u3063\u3066\u3082\u826f\u304b\u3063\u305f\u306e\u3067\u3059\u304c\u3001\u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb\u30b5\u30fc\u30d0\u30fc\u3092\u4f5c\u3063\u3066\u4e00\u5c64\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u3092\u8ffd\u52a0\u3057\u305f\u3089\u9762\u767d\u3044\u3093\u3058\u3083\u306a\u3044\u304b\u3068\u601d\u3044\u3001\u4f5c\u6210\u3057\u3066\u307f\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<p>\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u56f3\u306f\u5927\u4f53\u3053\u3093\u306a\u611f\u3058\u306b\u306a\u308b\u60f3\u5b9a\u3067\u3059\u3002\u30e2\u30c7\u30e0\u3068\u30eb\u30fc\u30bf\u306e\u9593\u306bFW\u3092\u631f\u3093\u3067\u3082\u826f\u304b\u3063\u305f\u306e\u3067\u3059\u304c\u3001\u4eca\u307e\u3067\u306e\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u69cb\u6210\u306b\u4ed8\u3051\u8db3\u3059\u3068\u3044\u3046\u5f62\u3067\u4eca\u56de\u306f\u884c\u3063\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"215\" src=\"https:\/\/bokumin45.server-on.net\/blog\/wp-content\/uploads\/2025\/01\/network_diagram_horizontal-600x215.png\" alt=\"\" class=\"wp-image-1307\" srcset=\"https:\/\/www.bokumin.org\/blog\/wp-content\/uploads\/2025\/01\/network_diagram_horizontal-600x215.png 600w, https:\/\/www.bokumin.org\/blog\/wp-content\/uploads\/2025\/01\/network_diagram_horizontal-300x108.png 300w, https:\/\/www.bokumin.org\/blog\/wp-content\/uploads\/2025\/01\/network_diagram_horizontal-768x276.png 768w, https:\/\/www.bokumin.org\/blog\/wp-content\/uploads\/2025\/01\/network_diagram_horizontal.png 969w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/figure>\n\n\n\n<p>\u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb\u306b\u306f\u69d8\u3005\u306a\u9078\u629e\u80a2\u304c\u3042\u308a\u307e\u3059\u304c\u3001\u4eca\u56de\u306f<strong>FreeBSD\u306ePF\uff08Packet Filter\uff09<\/strong>\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u306b\u3057\u307e\u3057\u305f\u3002\u4ed6\u306e\u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb\u5c02\u7528\u306e\u30c7\u30a3\u30b9\u30c8\u30ea\u30d3\u30e5\u30fc\u30b7\u30e7\u30f3\u3082\u691c\u8a0e\u3057\u307e\u3057\u305f\u304c\u3001\u591a\u304f\u304cWebUI\u3067\u306e\u64cd\u4f5c\u3092\u524d\u63d0\u3068\u3057\u3066\u3044\u308b\u3082\u306e\u304c\u591a\u304f\u3001\u79c1\u306e\u597d\u307f\u3067\u3042\u308bSSH\u63a5\u7d9a\u3067\u306e\u30bf\u30fc\u30df\u30ca\u30eb\u64cd\u4f5c\u304c\u3042\u307e\u308a\u8003\u616e\u3055\u308c\u3066\u3044\u306a\u3044\u3088\u3046\u306b\u611f\u3058\u307e\u3057\u305f\u3002<br>\u666e\u6bb5\u304b\u3089\u30bf\u30fc\u30df\u30ca\u30eb\u3067\u306e\u64cd\u4f5c\u3092\u597d\u3093\u3067\u304a\u308a\u3001\u30b3\u30de\u30f3\u30c9\u30e9\u30a4\u30f3\u3067\u306e\u8a2d\u5b9a\u5909\u66f4\u3084\u30ed\u30b0\u78ba\u8a8d\u304c\u81ea\u7136\u306b\u884c\u3048\u308b\u74b0\u5883\u3092\u6c42\u3081\u3066\u3044\u305f\u79c1\u306b\u3068\u3063\u3066\u3001FreeBSD\u3068PF\u306e\u7d44\u307f\u5408\u308f\u305b\u306f\u7406\u60f3\u7684\u3067\u3057\u305f\u3002\u30c6\u30ad\u30b9\u30c8\u30d9\u30fc\u30b9\u306e\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3067\u7ba1\u7406\u3067\u304d\u308b\u3053\u3068\u3067\u3001\u30d0\u30fc\u30b8\u30e7\u30f3\u7ba1\u7406\u30b7\u30b9\u30c6\u30e0\u3068\u306e\u76f8\u6027\u3082\u826f\u304f\u3001\u8a2d\u5b9a\u306e\u5909\u66f4\u5c65\u6b74\u3092\u8ffd\u8de1\u3057\u3084\u3059\u3044\u3068\u3044\u3046\u5229\u70b9\u3082\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"has-large-font-size\"><strong>\u521d\u671f\u8a2d\u5b9a<\/strong><\/p>\n\n\n\n<p>\u4eca\u56de\u3001FreeBSD\u306e\u516c\u5f0f\u30b5\u30a4\u30c8\u304b\u3089ISO\u30d5\u30a1\u30a4\u30eb\u3092USB\u306b\u713c\u3044\u3066\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u307e\u3057\u305f\u3002<br><a href=\"https:\/\/www.freebsd.org\/where\">https:\/\/www.freebsd.org\/where<\/a><br>\u30a4\u30f3\u30b9\u30c8\u30fc\u30e9\u30fc\u3067\u306f\u4ee5\u4e0b\u3092\u9078\u629e\u3057\u307e\u3057\u305f\u3002\u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb\u30b5\u30fc\u30d0\u30fc\u3068\u3057\u3066\u306e\u76ee\u7684\u304b\u3089\u3001\u6700\u5c0f\u69cb\u6210\u3067\u884c\u3044\u307e\u3057\u305f\u3002<br>\u30ad\u30fc\u30de\u30c3\u30d7: Japanese 106<br>\u30db\u30b9\u30c8\u540d:<br>\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8: base-system, kernel, ports<br>\u30d1\u30fc\u30c6\u30a3\u30b7\u30e7\u30f3: Auto (ZFS)<\/p>\n\n\n\n<p>\u4ed6\u306e\u8a2d\u5b9a\u306f\u9069\u5f53\u3067\u3082\u5f8c\u304b\u3089\u5909\u66f4\u304c\u53ef\u80fd\u3067\u3059\u3002<br>\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u5b8c\u4e86\u5f8c\u3001\u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u3092\u5165\u529b\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#babed8;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>pkg update &amp;&amp; pkg upgrade<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-ocean\" style=\"background-color: #0F111A\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #FFCB6B\">pkg<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">update<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&amp;&amp;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #FFCB6B\">pkg<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">upgrade<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>ifconfig\u3092\u884c\u3044\u3001\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u304c\u6b63\u3057\u304f\u8a8d\u8b58\u3055\u308c\u3066\u3044\u308b\u304b\u78ba\u8a8d\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#babed8;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>\n$ ifconfig\nrl0: flags=1008843&lt;UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1500\n        options=2008&lt;VLAN_MTU,WOL_MAGIC>\n        ether 00:a0:b0:a5:c4:11\n        inet 192.168.2.125 netmask 0xffffff00 broadcast 192.168.2.255 \n        media: Ethernet autoselect (100baseTX &lt;full-duplex>)\n        status: active\n        nd6 options=29&lt;PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>\nre0: flags=1008843&lt;UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1500\n        options=8209b&lt;RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC,LINKSTATE>\n        ether 40:8d:5c:46:e7:2d\n        media: Ethernet autoselect (1000baseT &lt;full-duplex>) \n        status: active\n        nd6 options=29&lt;PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>\nlo0: flags=1008049&lt;UP,LOOPBACK,RUNNING,MULTICAST,LOWER_UP> metric 0 mtu 16384\n        options=680003&lt;RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>\n        inet 127.0.0.1 netmask 0xff000000\n        inet6 ::1 prefixlen 128\n        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3\n        groups: lo\n        nd6 options=21&lt;PERFORMNUD,AUTO_LINKLOCAL><\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-ocean\" style=\"background-color: #0F111A\" tabindex=\"0\"><code><span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">$<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">ifconfig<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">rl0:<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">flags=<\/span><span style=\"color: #F78C6C\">1008843<\/span><span style=\"color: #89DDFF\">&lt;<\/span><span style=\"color: #C3E88D\">UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_U<\/span><span style=\"color: #BABED8\">P<\/span><span style=\"color: #89DDFF\">&gt;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">metric<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">0<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">mtu<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">1500<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">        options<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #F78C6C\">2008<\/span><span style=\"color: #89DDFF\">&lt;<\/span><span style=\"color: #C3E88D\">VLAN_MTU,WOL_MAGI<\/span><span style=\"color: #BABED8\">C<\/span><span style=\"color: #89DDFF\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">        <\/span><span style=\"color: #FFCB6B\">ether<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">00<\/span><span style=\"color: #C3E88D\">:a0:b0:a5:c4:11<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">        <\/span><span style=\"color: #FFCB6B\">inet<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">192.168<\/span><span style=\"color: #C3E88D\">.2.125<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">netmask<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">0xffffff00<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">broadcast<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">192.168<\/span><span style=\"color: #C3E88D\">.2.255<\/span><span style=\"color: #BABED8\"> <\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">        <\/span><span style=\"color: #FFCB6B\">media:<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">Ethernet<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">autoselect<\/span><span style=\"color: #BABED8\"> (100baseTX <\/span><span style=\"color: #89DDFF\">&lt;<\/span><span style=\"color: #C3E88D\">full-duple<\/span><span style=\"color: #BABED8\">x<\/span><span style=\"color: #89DDFF\">&gt;<\/span><span style=\"color: #BABED8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">        <\/span><span style=\"color: #FFCB6B\">status:<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">active<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">        <\/span><span style=\"color: #FFCB6B\">nd6<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">options=<\/span><span style=\"color: #F78C6C\">29<\/span><span style=\"color: #89DDFF\">&lt;<\/span><span style=\"color: #C3E88D\">PERFORMNUD,IFDISABLED,AUTO_LINKLOCA<\/span><span style=\"color: #BABED8\">L<\/span><span style=\"color: #89DDFF\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">re0:<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">flags=<\/span><span style=\"color: #F78C6C\">1008843<\/span><span style=\"color: #89DDFF\">&lt;<\/span><span style=\"color: #C3E88D\">UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_U<\/span><span style=\"color: #BABED8\">P<\/span><span style=\"color: #89DDFF\">&gt;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">metric<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">0<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">mtu<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">1500<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">        options<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #F78C6C\">8209<\/span><span style=\"color: #C3E88D\">b<\/span><span style=\"color: #89DDFF\">&lt;<\/span><span style=\"color: #C3E88D\">RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC,LINKSTAT<\/span><span style=\"color: #BABED8\">E<\/span><span style=\"color: #89DDFF\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">        <\/span><span style=\"color: #FFCB6B\">ether<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">40<\/span><span style=\"color: #C3E88D\">:8d:5c:46:e7:2d<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">        <\/span><span style=\"color: #FFCB6B\">media:<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">Ethernet<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">autoselect<\/span><span style=\"color: #BABED8\"> (1000baseT <\/span><span style=\"color: #89DDFF\">&lt;<\/span><span style=\"color: #C3E88D\">full-duple<\/span><span style=\"color: #BABED8\">x<\/span><span style=\"color: #89DDFF\">&gt;<\/span><span style=\"color: #BABED8\">) <\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">        <\/span><span style=\"color: #FFCB6B\">status:<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">active<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">        <\/span><span style=\"color: #FFCB6B\">nd6<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">options=<\/span><span style=\"color: #F78C6C\">29<\/span><span style=\"color: #89DDFF\">&lt;<\/span><span style=\"color: #C3E88D\">PERFORMNUD,IFDISABLED,AUTO_LINKLOCA<\/span><span style=\"color: #BABED8\">L<\/span><span style=\"color: #89DDFF\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">lo0:<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">flags=<\/span><span style=\"color: #F78C6C\">1008049<\/span><span style=\"color: #89DDFF\">&lt;<\/span><span style=\"color: #C3E88D\">UP,LOOPBACK,RUNNING,MULTICAST,LOWER_U<\/span><span style=\"color: #BABED8\">P<\/span><span style=\"color: #89DDFF\">&gt;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">metric<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">0<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">mtu<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">16384<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">        options<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #F78C6C\">680003<\/span><span style=\"color: #89DDFF\">&lt;<\/span><span style=\"color: #C3E88D\">RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV<\/span><span style=\"color: #89DDFF\">6&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">        <\/span><span style=\"color: #FFCB6B\">inet<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">127.0<\/span><span style=\"color: #C3E88D\">.0.1<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">netmask<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">0xff000000<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">        <\/span><span style=\"color: #FFCB6B\">inet6<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">::1<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">prefixlen<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">128<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">        <\/span><span style=\"color: #FFCB6B\">inet6<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">fe80::1%lo0<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">prefixlen<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">64<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">scopeid<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">0x3<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">        <\/span><span style=\"color: #FFCB6B\">groups:<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">lo<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">        <\/span><span style=\"color: #FFCB6B\">nd6<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">options=<\/span><span style=\"color: #F78C6C\">21<\/span><span style=\"color: #89DDFF\">&lt;<\/span><span style=\"color: #C3E88D\">PERFORMNUD,AUTO_LINKLOCA<\/span><span style=\"color: #BABED8\">L<\/span><span style=\"color: #89DDFF\">&gt;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>rl0<\/code>: \u5916\u5074\uff08\u30a4\u30f3\u30bf\u30fc\u30cd\u30c3\u30c8\u5074\uff09\u306e\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u3002DHCP\u3067\u81ea\u52d5\u7684\u306bIP\u304c\u5272\u308a\u5f53\u3066\u3089\u308c\u3066\u3044\u308b<\/li>\n\n\n\n<li><code>re0<\/code>: \u5185\u5074\uff08LAN\u5074\uff09\u306e\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u3002\u307e\u3060IP\u30a2\u30c9\u30ec\u30b9\u304c\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u306a\u3044<\/li>\n\n\n\n<li><code>lo0<\/code>: \u30eb\u30fc\u30d7\u30d0\u30c3\u30af\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\uff08\u30b7\u30b9\u30c6\u30e0\u306e\u5185\u90e8\u901a\u4fe1\u7528\uff09<\/li>\n<\/ul>\n\n\n\n<p>\u7121\u4e8b\u306b\u4e21\u65b9\u306e\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u304c\u307f\u3048\u3066\u3044\u305f\u306e\u3067\u3001\u6b21\u306b\u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb\u30b5\u30fc\u30d0\u30fc\u306e\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u57fa\u672c\u8a2d\u5b9a\u3092\u69cb\u7bc9\u3057\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"has-large-font-size\"><strong>\u57fa\u672c\u8a2d\u5b9a<\/strong><\/p>\n\n\n\n<p>\/etc\/rc.conf\u306e\u8a2d\u5b9a\u3092\u884c\u3063\u3066\u3044\u304d\u307e\u3059\u3002<br>\u203b\u4eca\u56de\u30eb\u30fc\u30bf\u30fc\u5074\u306eIP\u3082\u56fa\u5b9a\u306b\u3057\u307e\u3057\u305f\u304c\u3001\u30eb\u30fc\u30bf\u30fc\u5074\u3067\u306e\u8a2d\u5b9a\u304c\u5fc5\u8981\u306b\u306a\u308b\u5834\u5408\u304c\u3042\u308b\u306e\u3067\u3001\u884c\u3046\u5834\u5408\u306f\u4f7f\u7528\u3057\u3066\u3044\u308b\u6a5f\u5668\u306e\u8aac\u660e\u66f8\u306a\u3069\u3092\u8aad\u307f\u306a\u304c\u3089\u9032\u3081\u307e\u3057\u3087\u3046<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#babed8;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>hostname=\"hogehoge\"\nkeymap=\"jp.kbd\"\nifconfig_re0=\"inet 192.168.3.1 netmask 255.255.255.0\"    # \u5185\u5411\u304d\nifconfig_rl0=\"inet 192.168.2.53 netmask 255.255.255.0\"   # \u5916\u5411\u304d # \u30eb\u30fc\u30bf\ndefaultrouter=\"192.168.2.1\" # \u30eb\u30fc\u30bf\ngateway_enable=\"YES\"\npf_enable=\"YES\"\npflog_enable=\"YES\"\ndhcpd_enable=\"YES\" # DHCP \u5fc5\u8981\u3067\u3042\u308c\u3070\ndhcpd_ifaces=\"re0\" # \u540c\u4e0a<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-ocean\" style=\"background-color: #0F111A\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #BABED8\">hostname<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">hogehoge<\/span><span style=\"color: #89DDFF\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">keymap<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">jp.kbd<\/span><span style=\"color: #89DDFF\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">ifconfig_re0<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">inet 192.168.3.1 netmask 255.255.255.0<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #BABED8\">    <\/span><span style=\"color: #464B5D; font-style: italic\"># \u5185\u5411\u304d<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">ifconfig_rl0<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">inet 192.168.2.53 netmask 255.255.255.0<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #BABED8\">   <\/span><span style=\"color: #464B5D; font-style: italic\"># \u5916\u5411\u304d # \u30eb\u30fc\u30bf<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">defaultrouter<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">192.168.2.1<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #464B5D; font-style: italic\"># \u30eb\u30fc\u30bf<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">gateway_enable<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">YES<\/span><span style=\"color: #89DDFF\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">pf_enable<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">YES<\/span><span style=\"color: #89DDFF\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">pflog_enable<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">YES<\/span><span style=\"color: #89DDFF\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">dhcpd_enable<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">YES<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #464B5D; font-style: italic\"># DHCP \u5fc5\u8981\u3067\u3042\u308c\u3070<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">dhcpd_ifaces<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">re0<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #464B5D; font-style: italic\"># \u540c\u4e0a<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>\u7d9a\u3044\u3066\u3001\/etc\/pf.conf\u3092\u4f5c\u6210\u3057\u3066\u3044\u304d\u307e\u3059\u3002\u307e\u305a\u306f\u57fa\u672c\u7684\u306a\u3001\u554f\u984c\u306a\u304f\u52d5\u304f\uff08\u3060\u308d\u3046\uff09\u3068\u8003\u3048\u3089\u308c\u308bPF\u306e\u8a2d\u5b9a\u3092\u4f5c\u6210\u3057\u3066\u3044\u304d\u307e\u3059\u3002\u30dd\u30fc\u30c8\u306f\u5fc5\u8981\u6700\u5c0f\u9650\u306bSSH\u3060\u3051\u3092\u958b\u3051\u3066\u3044\u307e\u3059\u3002<br>block all\u306f\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u5168\u3066\u3092\u62d2\u5426\u3059\u308b\u306e\u3067\u8ffd\u52a0\u3059\u308b\u3053\u3068\u3092\u304a\u3059\u3059\u3081\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#babed8;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>ext_if=\"rl0\"\nint_if=\"re0\"\ntrusted_net=\"192.168.3.0\/24\"\n\n\nset block-policy drop\nset skip on lo0\n\nblock all\n\nnat on $ext_if from $trusted_net to any -> ($ext_if)\n\npass in on $int_if all\npass out on $int_if all\n\n# \u5916\u90e8\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u30eb\u30fc\u30eb\npass out on $ext_if all\npass in on $ext_if inet proto tcp to $ext_if port 22\npass in on $ext_if inet proto icmp all<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-ocean\" style=\"background-color: #0F111A\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #BABED8\">ext_if<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">rl0<\/span><span style=\"color: #89DDFF\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">int_if<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">re0<\/span><span style=\"color: #89DDFF\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">trusted_net<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">192.168.3.0\/24<\/span><span style=\"color: #89DDFF\">&quot;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #82AAFF\">set<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">block-policy<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">drop<\/span><\/span>\n<span class=\"line\"><span style=\"color: #82AAFF\">set<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">skip<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">on<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">lo0<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">block<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">all<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">nat<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">on<\/span><span style=\"color: #BABED8\"> $ext_if <\/span><span style=\"color: #C3E88D\">from<\/span><span style=\"color: #BABED8\"> $trusted_net <\/span><span style=\"color: #C3E88D\">to<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">any<\/span><span style=\"color: #BABED8\"> -<\/span><span style=\"color: #89DDFF\">&gt;<\/span><span style=\"color: #BABED8\"> ($ext_if)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">pass<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">in<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">on<\/span><span style=\"color: #BABED8\"> $int_if <\/span><span style=\"color: #C3E88D\">all<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">pass<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">out<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">on<\/span><span style=\"color: #BABED8\"> $int_if <\/span><span style=\"color: #C3E88D\">all<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\"># \u5916\u90e8\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u30eb\u30fc\u30eb<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">pass<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">out<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">on<\/span><span style=\"color: #BABED8\"> $ext_if <\/span><span style=\"color: #C3E88D\">all<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">pass<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">in<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">on<\/span><span style=\"color: #BABED8\"> $ext_if <\/span><span style=\"color: #C3E88D\">inet<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">proto<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">tcp<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">to<\/span><span style=\"color: #BABED8\"> $ext_if <\/span><span style=\"color: #C3E88D\">port<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">22<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">pass<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">in<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">on<\/span><span style=\"color: #BABED8\"> $ext_if <\/span><span style=\"color: #C3E88D\">inet<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">proto<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">icmp<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">all<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>\u305d\u306e\u5f8c\u3001PF\u304c\u6b63\u5e38\u306b\u52d5\u4f5c\u3059\u308b\u304b\u78ba\u8a8d\u3057\u3066\u3044\u304d\u307e\u3059<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#babed8;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>pfctl -nf \/etc\/pf.conf\nservice pf start\n\n\npfctl -f \/etc\/pf.conf<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-ocean\" style=\"background-color: #0F111A\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #FFCB6B\">pfctl<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">-nf<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">\/etc\/pf.conf<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">service<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">pf<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">start<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">pfctl<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">-f<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">\/etc\/pf.conf<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<details class=\"wp-block-details has-large-font-size is-layout-flow wp-block-details-is-layout-flow\"><summary><strong>DHCP\u30b5\u30fc\u30d0\u306e\u8a2d\u5b9a\uff08\u5fc5\u8981\u3067\u3042\u308c\u3070\uff09<\/strong><\/summary>\n<p class=\"has-medium-font-size\">FW\u30b5\u30fc\u30d0\u306e\u8a18\u4e8b\u3067\u306f\u3042\u308a\u307e\u3059\u304c\u3001DHCP\u6a5f\u80fd\u3082\u3064\u3051\u305f\u3044\u3088\u3068\u3044\u3046\u65b9\u5411\u3051\u306e\u3082\u306e\u3067\u3059\u3002OS\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u6642\u306bdhcp\u3092\u9078\u3093\u3067\u3044\u306a\u3051\u308c\u3070\u3001\u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u3067\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"\" style=\"font-size:.875rem;--cbp-line-number-color:#babed8;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>pkg install -y isc-dhcp44-server<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-ocean\" style=\"background-color: #0F111A\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #FFCB6B\">pkg<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">install<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">-y<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">isc-dhcp44-server<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"has-medium-font-size\">DHCP\u30b5\u30fc\u30d0\u30fc\u306e\u8a2d\u5b9a\u3092\u884c\u3063\u3066\u3044\u304d\u307e\u3059\u3002\/usr\/local\/etc\/dhcpd.conf\u3092\u4f5c\u6210\u3057\u3066\u3044\u304d\u307e\u3059\u3002<br>\u4e00\u822c\u7684\u306a\u30c7\u30d0\u30a4\u30b9\u306f100~200\u756a\u3001\u30b5\u30fc\u30d0\u30fc\u7528\u306f2~99\u756a\u3068\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#babed8;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>cat \/usr\/local\/etc\/dhcpd.conf\nsubnet 192.168.3.0 netmask 255.255.255.0 {\n# DHCP\u306f100~200\n  range 192.168.3.100 192.168.3.200;\n  option routers 192.168.3.1;\n  option domain-name-servers 8.8.8.8, 8.8.4.4;\n  default-lease-time 600;\n  max-lease-time 7200;\n}\n\n#\u3000\u56fa\u5b9aIP\u3092\u5272\u308a\u632f\u308a\u305f\u3044\u5834\u5408\n#\u3000web-server\u306e\u5834\u5408\nhost web-server {\n  hardware ethernet XX:XX:XX:XX:XX:XX;  # \u30c7\u30d0\u30a4\u30b9\u306eMAC\u30a2\u30c9\u30ec\u30b9\n  fixed-address 192.168.3.10;           # \u5272\u308a\u5f53\u3066\u305f\u3044\u56fa\u5b9aIP\n}<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-ocean\" style=\"background-color: #0F111A\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #FFCB6B\">cat<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">\/usr\/local\/etc\/dhcpd.conf<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">subnet<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">192.168<\/span><span style=\"color: #C3E88D\">.3.0<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">netmask<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">255.255<\/span><span style=\"color: #C3E88D\">.255.0<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\"># DHCP\u306f100~200<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">  <\/span><span style=\"color: #FFCB6B\">range<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">192.168<\/span><span style=\"color: #C3E88D\">.3.100<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">192.168<\/span><span style=\"color: #C3E88D\">.3.200<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">  <\/span><span style=\"color: #FFCB6B\">option<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">routers<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">192.168<\/span><span style=\"color: #C3E88D\">.3.1<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">  <\/span><span style=\"color: #FFCB6B\">option<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">domain-name-servers<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">8.8<\/span><span style=\"color: #C3E88D\">.8.8,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">8.8<\/span><span style=\"color: #C3E88D\">.4.4<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">  <\/span><span style=\"color: #FFCB6B\">default-lease-time<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">600<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">  <\/span><span style=\"color: #FFCB6B\">max-lease-time<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">7200<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\">#\u3000\u56fa\u5b9aIP\u3092\u5272\u308a\u632f\u308a\u305f\u3044\u5834\u5408<\/span><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\">#\u3000web-server\u306e\u5834\u5408<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">host<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">web-server<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">  <\/span><span style=\"color: #FFCB6B\">hardware<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">ethernet<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">XX:XX:XX:XX:XX:XX<\/span><span style=\"color: #89DDFF\">;<\/span><span style=\"color: #BABED8\">  <\/span><span style=\"color: #464B5D; font-style: italic\"># \u30c7\u30d0\u30a4\u30b9\u306eMAC\u30a2\u30c9\u30ec\u30b9<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">  <\/span><span style=\"color: #FFCB6B\">fixed-address<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">192.168<\/span><span style=\"color: #C3E88D\">.3.10<\/span><span style=\"color: #89DDFF\">;<\/span><span style=\"color: #BABED8\">           <\/span><span style=\"color: #464B5D; font-style: italic\"># \u5272\u308a\u5f53\u3066\u305f\u3044\u56fa\u5b9aIP<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"has-medium-font-size\">\u30ea\u30fc\u30b9\u30bf\u30a4\u30e0\u306f\u77ed\u3081\u306b\u8a2d\u5b9a\uff08\u30c7\u30d5\u30a9\u30eb\u30c810\u5206\u3001\u6700\u59272\u6642\u9593\uff09\u3057\u3066\u3044\u307e\u3059\u304c\u3001\u8907\u6570\u63a5\u7d9a\u3092\u3057\u306a\u3044\u306e\u3067\u3042\u308c\u3070\u3082\u3063\u3068\u9577\u304f\u3066\u3082\u554f\u984c\u306a\u3044\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"has-medium-font-size\">\u30c7\u30d0\u30a4\u30b9\u306eMAC\u30a2\u30c9\u30ec\u30b9\u306e\u78ba\u8a8d\u306b\u3064\u3044\u3066\u8272\u3005\u65b9\u6cd5\u304c\u3042\u308a\u307e\u3059\u304c\u3001FreeBSD\u306e\u5834\u5408arp\u30b3\u30de\u30f3\u30c9\u3067\u901a\u4fe1\u3057\u3066\u3044\u308b\u6a5f\u5668\u4e00\u89a7\u306eMAC\u30a2\u30c9\u30ec\u30b9\u304c\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#babed8;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>$ arp -a\nweb-server (192.168.3.10) at 00:11:22:33:44:55 on re0 expires in 1200 seconds<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-ocean\" style=\"background-color: #0F111A\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #FFCB6B\">$<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">arp<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">-a<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">web-server<\/span><span style=\"color: #BABED8\"> (192.168.3.10) at 00:11:22:33:44:55 on re0 expires <\/span><span style=\"color: #89DDFF; font-style: italic\">in<\/span><span style=\"color: #BABED8\"> 1200 seconds<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"has-medium-font-size\">\u5b9f\u969b\u306bDHCP\u30b5\u30fc\u30d0\u30fc\u3092\u8d77\u52d5\u3057\u3066\u3044\u304d\u307e\u3059<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#babed8;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>service isc-dhcpd start<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-ocean\" style=\"background-color: #0F111A\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #FFCB6B\">service<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">isc-dhcpd<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">start<\/span><\/span><\/code><\/pre><\/div>\n<\/details>\n\n\n\n<p class=\"has-large-font-size\"><strong>PF\u3078\u306e\u8a2d\u5b9a\u8ffd\u52a0<\/strong><\/p>\n\n\n\n<p>\u5148\u7a0b\u306e\u57fa\u672c\u7684\u306aPF\u306e\u8a2d\u5b9a\u306b\u8089\u4ed8\u3051\u3092\u3057\u3066\u3044\u304d\u307e\u3059\u3002<br>\u30dd\u30fc\u30c8\u30d5\u30a9\u30ef\u30fc\u30c7\u30a3\u30f3\u30b0\u306e\u8a2d\u5b9a\u3068\u3001\u30ec\u30fc\u30c8\u5236\u9650\u3001ICMP\u306e\u5236\u9650\u306a\u3069\u3092\u884c\u3063\u3066\u3044\u307e\u3059\u3002<br>\u30dd\u30fc\u30c8\u30d5\u30a9\u30ef\u30fc\u30c7\u30a3\u30f3\u30b0\u3067\u306f\u300180\u3068443\u3078\u306f\u30a6\u30a7\u30d6\u30b5\u30fc\u30d0\u3078\u300122\u756a\u306f\u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb\u3092\u901a\u3059\u3088\u3046\u306b\u3057\u3066\u3042\u308a\u307e\u3059\u3002\u30a6\u30a7\u30d6\u30b5\u30fc\u30d0\u306bSSH\u3067\u30ed\u30b0\u30a4\u30f3\u3057\u305f\u3044\u5834\u5408\u306f\u3001\u5185\u5411\u304dIP\u3067\u30ed\u30b0\u30a4\u30f3\u3059\u308b\u304b\u3001FW\u3092\u8e0f\u307f\u53f0\u306b\u3059\u308b\u5f62\u3067\u3059\u306d\u3002<br>\u30ec\u30fc\u30c8\u5236\u9650\u306fWeb\u30b5\u30fc\u30d0\u3078\u306eDoS\u5bfe\u7b56\u3067\u3059\u3002\u30b5\u30fc\u30d0\u306e\u30b9\u30da\u30c3\u30af\u306b\u5fdc\u3058\u3066\u30ec\u30fc\u30c8\u5236\u9650\u3092\u5909\u66f4\u3059\u308b\u3053\u3068\u3092\u304a\u3059\u3059\u3081\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#babed8;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>ext_if=\"rl0\"\nint_if=\"re0\"\ntrusted_net=\"192.168.3.0\/24\"\nweb_server=\"192.168.3.10\"\u3000# Web\u30b5\u30fc\u30d0\nfirewall_host=\"192.168.3.1\" # FW\u30b5\u30fc\u30d0\u81ea\u8eab\n\ntable &lt;ratelimit> persist\n\nset block-policy drop\nset skip on lo0\n\nrdr on $ext_if proto tcp from any to ($ext_if) port 22 -> $firewall_host\nrdr on $ext_if proto tcp from any to ($ext_if) port {80,443} -> $web_server\nnat on $ext_if from $trusted_net to any -> ($ext_if)\n\nblock all\n\nblock in quick from &lt;ratelimit>\n\npass in on $int_if from $trusted_net to any\npass out on $int_if to $trusted_net\n\npass out on $ext_if from ($ext_if) to any keep state\n\npass in on $ext_if proto tcp from any to $firewall_host port 22 keep state\npass in on $ext_if proto tcp from any to $web_server port {80,443} \\\n    flags S\/SA keep state \\\n    (max-src-conn 100, max-src-conn-rate 15\/5, \\\n     overload &lt;ratelimit> flush global)\n\npass in on $ext_if proto icmp from any to any icmp-type echoreq keep state\npass out on $ext_if proto icmp from any to any keep state<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-ocean\" style=\"background-color: #0F111A\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #BABED8\">ext_if<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">rl0<\/span><span style=\"color: #89DDFF\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">int_if<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">re0<\/span><span style=\"color: #89DDFF\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">trusted_net<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">192.168.3.0\/24<\/span><span style=\"color: #89DDFF\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">web_server<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">192.168.3.10<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">\u3000#<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #FFCB6B\">Web\u30b5\u30fc\u30d0<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">firewall_host<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">192.168.3.1<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #464B5D; font-style: italic\"># FW\u30b5\u30fc\u30d0\u81ea\u8eab<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">table<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&lt;<\/span><span style=\"color: #C3E88D\">ratelimi<\/span><span style=\"color: #BABED8\">t<\/span><span style=\"color: #89DDFF\">&gt;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">persist<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #82AAFF\">set<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">block-policy<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">drop<\/span><\/span>\n<span class=\"line\"><span style=\"color: #82AAFF\">set<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">skip<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">on<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">lo0<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">rdr<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">on<\/span><span style=\"color: #BABED8\"> $ext_if <\/span><span style=\"color: #C3E88D\">proto<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">tcp<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">from<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">any<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">to<\/span><span style=\"color: #BABED8\"> ($ext_if) port 22 -<\/span><span style=\"color: #89DDFF\">&gt;<\/span><span style=\"color: #BABED8\"> $firewall_host<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">rdr<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">on<\/span><span style=\"color: #BABED8\"> $ext_if <\/span><span style=\"color: #C3E88D\">proto<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">tcp<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">from<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">any<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">to<\/span><span style=\"color: #BABED8\"> ($ext_if) port <\/span><span style=\"color: #89DDFF\">{<\/span><span style=\"color: #FFCB6B\">80,443}<\/span><span style=\"color: #BABED8\"> -<\/span><span style=\"color: #89DDFF\">&gt;<\/span><span style=\"color: #BABED8\"> $web_server<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">nat<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">on<\/span><span style=\"color: #BABED8\"> $ext_if <\/span><span style=\"color: #C3E88D\">from<\/span><span style=\"color: #BABED8\"> $trusted_net <\/span><span style=\"color: #C3E88D\">to<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">any<\/span><span style=\"color: #BABED8\"> -<\/span><span style=\"color: #89DDFF\">&gt;<\/span><span style=\"color: #BABED8\"> ($ext_if)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">block<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">all<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">block<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">in<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">quick<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">from<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&lt;<\/span><span style=\"color: #C3E88D\">ratelimi<\/span><span style=\"color: #BABED8\">t<\/span><span style=\"color: #89DDFF\">&gt;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">pass<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">in<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">on<\/span><span style=\"color: #BABED8\"> $int_if <\/span><span style=\"color: #C3E88D\">from<\/span><span style=\"color: #BABED8\"> $trusted_net <\/span><span style=\"color: #C3E88D\">to<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">any<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">pass<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">out<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">on<\/span><span style=\"color: #BABED8\"> $int_if <\/span><span style=\"color: #C3E88D\">to<\/span><span style=\"color: #BABED8\"> $trusted_net<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">pass<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">out<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">on<\/span><span style=\"color: #BABED8\"> $ext_if <\/span><span style=\"color: #C3E88D\">from<\/span><span style=\"color: #BABED8\"> ($ext_if) to any keep state<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">pass<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">in<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">on<\/span><span style=\"color: #BABED8\"> $ext_if <\/span><span style=\"color: #C3E88D\">proto<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">tcp<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">from<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">any<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">to<\/span><span style=\"color: #BABED8\"> $firewall_host <\/span><span style=\"color: #C3E88D\">port<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">22<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">keep<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">state<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">pass<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">in<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">on<\/span><span style=\"color: #BABED8\"> $ext_if <\/span><span style=\"color: #C3E88D\">proto<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">tcp<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">from<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">any<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">to<\/span><span style=\"color: #BABED8\"> $web_server <\/span><span style=\"color: #C3E88D\">port<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">{<\/span><span style=\"color: #F78C6C\">80<\/span><span style=\"color: #C3E88D\">,443}<\/span><span style=\"color: #BABED8\"> \\<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">    <\/span><span style=\"color: #C3E88D\">flags<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">S\/SA<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">keep<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">state<\/span><span style=\"color: #BABED8\"> \\<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">    (max-src-conn <\/span><span style=\"color: #F78C6C\">100<\/span><span style=\"color: #C3E88D\">,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">max-src-conn-rate<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">15<\/span><span style=\"color: #C3E88D\">\/5,<\/span><span style=\"color: #BABED8\"> \\<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">     <\/span><span style=\"color: #C3E88D\">overload<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&lt;<\/span><span style=\"color: #C3E88D\">ratelimi<\/span><span style=\"color: #BABED8\">t<\/span><span style=\"color: #89DDFF\">&gt;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">flush<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">global<\/span><span style=\"color: #BABED8\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">pass<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">in<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">on<\/span><span style=\"color: #BABED8\"> $ext_if <\/span><span style=\"color: #C3E88D\">proto<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">icmp<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">from<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">any<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">to<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">any<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">icmp-type<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">echoreq<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">keep<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">state<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">pass<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">out<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">on<\/span><span style=\"color: #BABED8\"> $ext_if <\/span><span style=\"color: #C3E88D\">proto<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">icmp<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">from<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">any<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">to<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">any<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">keep<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">state<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>\u66f4\u306b\u3082\u3046\u5c11\u3057\u8a2d\u5b9a\u3092\u52a0\u3048\u3066\u3044\u304d\u307e\u3059\u3002<br><code>\u8907\u6570\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u30bb\u30b0\u30e1\u30f3\u30c8\u9593\u901a\u4fe1<\/code>\u3001\u30c6\u30fc\u30d6\u30eb\u3067\u306e<code>\u9759\u7684IP\u30d6\u30ed\u30c3\u30af<\/code>\u3084fail2ban\u3068\u306e\u9023\u643a\u306a\u3069\u306a\u3069\u30fb\u30fbDHCP\u306a\u3069\u306e\u5236\u5fa1\u3082\u52a0\u3048\u3066\u3044\u307e\u3059\u304c\u3001\u5fc5\u8981\u306a\u4eba\u3060\u3051\u3067\u5341\u5206\u3060\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#babed8;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>ext_if=\"rl0\"\nint_if=\"re0\"\ntrusted_net=\"192.168.3.0\/24\"\nother_net=\"192.168.2.0\/24\" # \u30eb\u30fc\u30bf\u5074\nweb_server=\"192.168.3.10\" # Web\u30b5\u30fc\u30d0\nfirewall_host=\"192.168.3.1\" # FW\u30b5\u30fc\u30d0\u81ea\u8eab\n\ntable &lt;ratelimit> persist\n# blocklist\u3068fail2ban\u30c6\u30fc\u30d6\u30eb\u306e\u4f5c\u6210\ntable &lt;blocklist> persist file \"\/etc\/pf.blocklist\"\ntable &lt;fail2ban> persist\n\n# \u30b0\u30ed\u30fc\u30d0\u30eb\u8a2d\u5b9a\nset block-policy drop\nset skip on lo0\n\nrdr on $ext_if proto tcp from any to ($ext_if) port 22 -> $firewall_host\nrdr on $ext_if proto tcp from any to ($ext_if) port {80,443} -> $web_server\nnat on $ext_if from $trusted_net to any -> ($ext_if)\n\nblock all\n\nblock in quick from &lt;ratelimit>\nblock in quick from &lt;blocklist>\nblock in quick from &lt;fail2ban>\n\npass quick on lo0 all\n\npass in on $int_if from $trusted_net to any\npass out on $int_if to $trusted_net\n# DHCP\u30d6\u30ed\u30fc\u30c9\u30ad\u30e3\u30b9\u30c8\u8a31\u53ef\npass in quick on $int_if proto udp from any to {255.255.255.255, 192.168.3.255}\n\npass out on $ext_if from ($ext_if) to any keep state\n\npass in on $ext_if inet proto tcp from any to $firewall_host port 22 keep state\npass in on $ext_if inet proto tcp from any to $web_server port {80,443} \\\n    flags S\/SA keep state \\\n    (max-src-conn 100, max-src-conn-rate 15\/5, \\\n     overload &lt;ratelimit> flush global)\n\npass in on $ext_if inet proto icmp from any to any icmp-type {echoreq, unreach} keep state\npass out on $ext_if inet proto icmp from any to any keep state\n\n# 192.168.3.0\/24 &lt;-> 192.168.2.0\/24\npass from $trusted_net to $other_net\npass from $other_net to $trusted_net<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-ocean\" style=\"background-color: #0F111A\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #BABED8\">ext_if<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">rl0<\/span><span style=\"color: #89DDFF\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">int_if<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">re0<\/span><span style=\"color: #89DDFF\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">trusted_net<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">192.168.3.0\/24<\/span><span style=\"color: #89DDFF\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">other_net<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">192.168.2.0\/24<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #464B5D; font-style: italic\"># \u30eb\u30fc\u30bf\u5074<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">web_server<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">192.168.3.10<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #464B5D; font-style: italic\"># Web\u30b5\u30fc\u30d0<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">firewall_host<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">192.168.3.1<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #464B5D; font-style: italic\"># FW\u30b5\u30fc\u30d0\u81ea\u8eab<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">table<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&lt;<\/span><span style=\"color: #C3E88D\">ratelimi<\/span><span style=\"color: #BABED8\">t<\/span><span style=\"color: #89DDFF\">&gt;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">persist<\/span><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\"># blocklist\u3068fail2ban\u30c6\u30fc\u30d6\u30eb\u306e\u4f5c\u6210<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">table<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&lt;<\/span><span style=\"color: #C3E88D\">blocklis<\/span><span style=\"color: #BABED8\">t<\/span><span style=\"color: #89DDFF\">&gt;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">persist<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">file<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">\/etc\/pf.blocklist<\/span><span style=\"color: #89DDFF\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">table<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&lt;<\/span><span style=\"color: #C3E88D\">fail2ba<\/span><span style=\"color: #BABED8\">n<\/span><span style=\"color: #89DDFF\">&gt;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">persist<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\"># \u30b0\u30ed\u30fc\u30d0\u30eb\u8a2d\u5b9a<\/span><\/span>\n<span class=\"line\"><span style=\"color: #82AAFF\">set<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">block-policy<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">drop<\/span><\/span>\n<span class=\"line\"><span style=\"color: #82AAFF\">set<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">skip<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">on<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">lo0<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">rdr<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">on<\/span><span style=\"color: #BABED8\"> $ext_if <\/span><span style=\"color: #C3E88D\">proto<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">tcp<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">from<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">any<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">to<\/span><span style=\"color: #BABED8\"> ($ext_if) port 22 -<\/span><span style=\"color: #89DDFF\">&gt;<\/span><span style=\"color: #BABED8\"> $firewall_host<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">rdr<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">on<\/span><span style=\"color: #BABED8\"> $ext_if <\/span><span style=\"color: #C3E88D\">proto<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">tcp<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">from<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">any<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">to<\/span><span style=\"color: #BABED8\"> ($ext_if) port <\/span><span style=\"color: #89DDFF\">{<\/span><span style=\"color: #FFCB6B\">80,443}<\/span><span style=\"color: #BABED8\"> -<\/span><span style=\"color: #89DDFF\">&gt;<\/span><span style=\"color: #BABED8\"> $web_server<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">nat<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">on<\/span><span style=\"color: #BABED8\"> $ext_if <\/span><span style=\"color: #C3E88D\">from<\/span><span style=\"color: #BABED8\"> $trusted_net <\/span><span style=\"color: #C3E88D\">to<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">any<\/span><span style=\"color: #BABED8\"> -<\/span><span style=\"color: #89DDFF\">&gt;<\/span><span style=\"color: #BABED8\"> ($ext_if)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">block<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">all<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">block<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">in<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">quick<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">from<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&lt;<\/span><span style=\"color: #C3E88D\">ratelimi<\/span><span style=\"color: #BABED8\">t<\/span><span style=\"color: #89DDFF\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">block<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">in<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">quick<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">from<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&lt;<\/span><span style=\"color: #C3E88D\">blocklis<\/span><span style=\"color: #BABED8\">t<\/span><span style=\"color: #89DDFF\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">block<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">in<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">quick<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">from<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&lt;<\/span><span style=\"color: #C3E88D\">fail2ba<\/span><span style=\"color: #BABED8\">n<\/span><span style=\"color: #89DDFF\">&gt;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">pass<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">quick<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">on<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">lo0<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">all<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">pass<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">in<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">on<\/span><span style=\"color: #BABED8\"> $int_if <\/span><span style=\"color: #C3E88D\">from<\/span><span style=\"color: #BABED8\"> $trusted_net <\/span><span style=\"color: #C3E88D\">to<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">any<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">pass<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">out<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">on<\/span><span style=\"color: #BABED8\"> $int_if <\/span><span style=\"color: #C3E88D\">to<\/span><span style=\"color: #BABED8\"> $trusted_net<\/span><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\"># DHCP\u30d6\u30ed\u30fc\u30c9\u30ad\u30e3\u30b9\u30c8\u8a31\u53ef<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">pass<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">in<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">quick<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">on<\/span><span style=\"color: #BABED8\"> $int_if <\/span><span style=\"color: #C3E88D\">proto<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">udp<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">from<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">any<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">to<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">{<\/span><span style=\"color: #F78C6C\">255.255<\/span><span style=\"color: #C3E88D\">.255.255,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">192.168<\/span><span style=\"color: #C3E88D\">.3.255}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">pass<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">out<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">on<\/span><span style=\"color: #BABED8\"> $ext_if <\/span><span style=\"color: #C3E88D\">from<\/span><span style=\"color: #BABED8\"> ($ext_if) to any keep state<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">pass<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">in<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">on<\/span><span style=\"color: #BABED8\"> $ext_if <\/span><span style=\"color: #C3E88D\">inet<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">proto<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">tcp<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">from<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">any<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">to<\/span><span style=\"color: #BABED8\"> $firewall_host <\/span><span style=\"color: #C3E88D\">port<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">22<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">keep<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">state<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">pass<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">in<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">on<\/span><span style=\"color: #BABED8\"> $ext_if <\/span><span style=\"color: #C3E88D\">inet<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">proto<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">tcp<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">from<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">any<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">to<\/span><span style=\"color: #BABED8\"> $web_server <\/span><span style=\"color: #C3E88D\">port<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">{<\/span><span style=\"color: #F78C6C\">80<\/span><span style=\"color: #C3E88D\">,443}<\/span><span style=\"color: #BABED8\"> \\<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">    <\/span><span style=\"color: #C3E88D\">flags<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">S\/SA<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">keep<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">state<\/span><span style=\"color: #BABED8\"> \\<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">    (max-src-conn <\/span><span style=\"color: #F78C6C\">100<\/span><span style=\"color: #C3E88D\">,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">max-src-conn-rate<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">15<\/span><span style=\"color: #C3E88D\">\/5,<\/span><span style=\"color: #BABED8\"> \\<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">     <\/span><span style=\"color: #C3E88D\">overload<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&lt;<\/span><span style=\"color: #C3E88D\">ratelimi<\/span><span style=\"color: #BABED8\">t<\/span><span style=\"color: #89DDFF\">&gt;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">flush<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">global<\/span><span style=\"color: #BABED8\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">pass<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">in<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">on<\/span><span style=\"color: #BABED8\"> $ext_if <\/span><span style=\"color: #C3E88D\">inet<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">proto<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">icmp<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">from<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">any<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">to<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">any<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">icmp-type<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">{echoreq,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">unreach}<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">keep<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">state<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">pass<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">out<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">on<\/span><span style=\"color: #BABED8\"> $ext_if <\/span><span style=\"color: #C3E88D\">inet<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">proto<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">icmp<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">from<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">any<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">to<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">any<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">keep<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">state<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\"># 192.168.3.0\/24 &lt;-&gt; 192.168.2.0\/24<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">pass<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">from<\/span><span style=\"color: #BABED8\"> $trusted_net <\/span><span style=\"color: #C3E88D\">to<\/span><span style=\"color: #BABED8\"> $other_net<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">pass<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">from<\/span><span style=\"color: #BABED8\"> $other_net <\/span><span style=\"color: #C3E88D\">to<\/span><span style=\"color: #BABED8\"> $trusted_net<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p><strong>blocklist<\/strong>: \u6c38\u7d9a\u7684\u306b\u30d6\u30ed\u30c3\u30af\u3057\u305f\u3044IP\u30a2\u30c9\u30ec\u30b9\u306e\u30ea\u30b9\u30c8\u3002\u5916\u90e8\u30d5\u30a1\u30a4\u30eb\u304b\u3089\u306e\u8aad\u8fbc\u307f<br><strong>fail2ban<\/strong>: fail2ban\u3068\u9023\u643a\u3057\u3066\u4e0d\u6b63\u30a2\u30af\u30bb\u30b9\u3092\u884c\u3046IP\u3092\u81ea\u52d5\u3067\u30d6\u30ed\u30c3\u30af\uff08fail2ban\u3092\u8981\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/p>\n\n\n\n<p>\u3053\u308c\u306f\u7279\u5b9a\u306e\u30d5\u30a1\u30a4\u30eb\u5185\u306eIP\u30a2\u30c9\u30ec\u30b9\u3092\u30d6\u30ed\u30c3\u30af\u30fb\u8a31\u53ef\u3059\u308b\u6a5f\u80fd\u306a\u306e\u3067\u3001\u305d\u308c\u305e\u308c\u81ea\u524d\u3067\u4f5c\u6210\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u4ee5\u4e0b\u306e\u8a18\u4e8b\u3067\u306f\u65e5\u672c\u306eIP\u30ec\u30f3\u30b8\u4ee5\u5916\u304b\u3089\u306eSSH\u30a2\u30af\u30bb\u30b9\u3092\u30d6\u30ed\u30c3\u30af\u3059\u308b\u6a5f\u80fd\u306b\u3064\u3044\u3066\u7d39\u4ecb\u3057\u3066\u3044\u307e\u3059\u3002\u53c2\u8003\u306b\u3057\u3066\u307f\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-blog-bokumin-org wp-block-embed-blog-bokumin-org\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"wp-embed-custom-wrapper my-6 bg-white rounded-lg shadow-sm border border-gray-200 overflow-hidden hover:shadow-md transition-shadow duration-300\"><blockquote class=\"wp-embedded-content\" data-secret=\"A6bevPs0DZ\"><a href=\"https:\/\/bokumin.org\/blog\/2025\/08\/29\/freebsdpf%e3%81%a7%e6%97%a5%e6%9c%ac%e4%bb%a5%e5%a4%96%e3%81%8b%e3%82%89%e3%81%aessh%e6%8e%a5%e7%b6%9a%e3%82%92%e3%83%96%e3%83%ad%e3%83%83%e3%82%af%e3%81%99%e3%82%8b\/\">FreeBSD+PF\u3067\u65e5\u672c\u4ee5\u5916\u304b\u3089\u306eSSH\u63a5\u7d9a\u3092\u30d6\u30ed\u30c3\u30af\u3059\u308b<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"&#8220;FreeBSD+PF\u3067\u65e5\u672c\u4ee5\u5916\u304b\u3089\u306eSSH\u63a5\u7d9a\u3092\u30d6\u30ed\u30c3\u30af\u3059\u308b&#8221; &#8212; Blog | bokumin.org\" src=\"https:\/\/bokumin.org\/blog\/2025\/08\/29\/freebsdpf%e3%81%a7%e6%97%a5%e6%9c%ac%e4%bb%a5%e5%a4%96%e3%81%8b%e3%82%89%e3%81%aessh%e6%8e%a5%e7%b6%9a%e3%82%92%e3%83%96%e3%83%ad%e3%83%83%e3%82%af%e3%81%99%e3%82%8b\/embed\/#?secret=8V89EmzibQ#?secret=A6bevPs0DZ\" data-secret=\"A6bevPs0DZ\" width=\"500\" height=\"282\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe><\/div>\n<\/div><\/figure>\n\n\n\n<p>\u30c6\u30fc\u30d6\u30eb\u3078\u306eIP\u30a2\u30c9\u30ec\u30b9\u306e\u8ffd\u52a0\u306f\u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u306f\u4ee5\u4e0b\u3067\u884c\u3046\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#babed8;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>pfctl -t blocklist -T add 192.168.1.100<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-ocean\" style=\"background-color: #0F111A\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #FFCB6B\">pfctl<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">-t<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">blocklist<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">-T<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">add<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">192.168<\/span><span style=\"color: #C3E88D\">.1.100<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>\u3082\u3057\u304f\u306f\u3001\/etc\/pf.blocklist\u306a\u3069\u306b\u76f4\u63a5\u8ffd\u52a0\u3082\u53ef\u80fd\u3067\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#babed8;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>cat \/etc\/pf.blocklist\n192.168.1.100\n192.168.1.101<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-ocean\" style=\"background-color: #0F111A\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #FFCB6B\">cat<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C3E88D\">\/etc\/pf.blocklist<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">192.168.1.100<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FFCB6B\">192.168.1.101<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"has-large-font-size\"><strong>\u304a\u308f\u308a\u306b<\/strong><\/p>\n\n\n\n<p>FreeBSD\u306ePF\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u6bd4\u8f03\u7684\u30b7\u30f3\u30d7\u30eb\u306a\u8a2d\u5b9a\u3067\u3082\u30bb\u30ad\u30e5\u30a2\u306a\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u74b0\u5883\u3092\u69cb\u7bc9\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002Unix\u306b\u6163\u308c\u89aa\u3057\u3093\u3060\u65b9\u306a\u3089\u7d50\u69cb\u7c21\u5358\u306b\u8a2d\u5b9a\u304c\u51fa\u6765\u308b\u3068\u601d\u3044\u307e\u3059\u3002<br><br>\u307e\u305a\u306f\u57fa\u672c\u7684\u306a\u8a2d\u5b9a\u304b\u3089\u59cb\u3081\u3066\u3001\u6bb5\u968e\u7684\u306b\u6a5f\u80fd\u3092\u8ffd\u52a0\u3057\u3066\u3044\u304f\u5f62\u3067\u69cb\u7bc9\u3059\u308b\u3053\u3068\u3092\u304a\u3059\u3059\u3081\u3057\u307e\u3059\u3002\u3044\u304d\u306a\u308a\u8907\u96d1\u306a\u8a2d\u5b9a\u3092\u884c\u3046\u3088\u308a\u3082\u3001\u52d5\u4f5c\u3092\u78ba\u8a8d\u3057\u306a\u304c\u3089\u5c11\u3057\u305a\u3064\u8089\u4ed8\u3051\u3057\u3066\u3044\u304f\u65b9\u304c\u3001\u5404\u30eb\u30fc\u30eb\u306e\u610f\u5473\u3092\u7406\u89e3\u3057\u3084\u3059\u304f\u3001\u554f\u984c\u304c\u3069\u3053\u306a\u306e\u304b\u3082\u5bb9\u6613\u306b\u306a\u308a\u307e\u3059\u3002 <br>\u4eca\u56de\u7d39\u4ecb\u3057\u305f\u8a2d\u5b9a\u3082\u3001\u6700\u521d\u306e\u30b7\u30f3\u30d7\u30eb\u306a\u69cb\u6210\u304b\u3089\u59cb\u307e\u308a\u3001Web\u30b5\u30fc\u30d0\u30fc\u306e\u516c\u958b\u3084\u30ec\u30fc\u30c8\u5236\u9650\u306e\u8ffd\u52a0\u3001\u305d\u3057\u3066\u6700\u7d42\u7684\u306b\u306f\u30d6\u30ed\u30c3\u30af\u30ea\u30b9\u30c8\u3084fail2ban\u9023\u643a\u307e\u3067\u6bb5\u968e\u7684\u306b\u6a5f\u80fd\u3092\u8ffd\u52a0\u3057\u3066\u3044\u304d\u307e\u3057\u305f\u3002PF\u306f\u30eb\u30fc\u30eb\u304c\u4e0a\u304b\u3089\u9806\u756a\u306b\u8a55\u4fa1\u3055\u308c\u3001\u6700\u5f8c\u306b\u30de\u30c3\u30c1\u3057\u305f\u30eb\u30fc\u30eb\u304c\u9069\u7528\u3055\u308c\u307e\u3059\uff08quick\u30ad\u30fc\u30ef\u30fc\u30c9\u304c\u306a\u3044\u5834\u5408\uff09\u3002\u305d\u306e\u305f\u3081\u3001\u30eb\u30fc\u30eb\u306e\u9806\u5e8f\u306b\u306f\u6ce8\u610f\u304c\u5fc5\u8981\u3067\u3059\u3002 FreeBSD\u306e\u516c\u5f0f\u30cf\u30f3\u30c9\u30d6\u30c3\u30af\u3084OpenBSD\u306ePF\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3092\u53c2\u8003\u306b\u3057\u306a\u304c\u3089\u3001\u81ea\u8eab\u306e\u74b0\u5883\u306b\u5408\u3063\u305f\u30eb\u30fc\u30eb\u3092\u4f5c\u6210\u3059\u308b\u3053\u3068\u3092\u304a\u3059\u3059\u3081\u3057\u307e\u3059\u3002<br><br>CLI\u3067\u306e\u64cd\u4f5c\u304c\u597d\u304d\u306a\u65b9\u306f\u3001\u662f\u975eFreeBSD\u3067\u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb\u30b5\u30fc\u30d0\u30fc\u3092\u4f5c\u6210\u3057\u3066\u307f\u3066\u304f\u3060\u3055\u3044\u3002<br><br>\u53c2\u8003\u306b\u3057\u305f\u30b5\u30a4\u30c8\uff1a<a href=\"https:\/\/docs.freebsd.org\/en\/books\/handbook\/firewalls\/\">https:\/\/docs.freebsd.org\/en\/books\/handbook\/firewalls\/<\/a><\/p>\n\n\n\n<p>\u304a\u308f\u308a<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>How to Set Up a Firewall Server on FreeBSD 14.2 \u306f\u3058\u3081\u306b \u79c1\u306e\u81ea\u5b85\u306b\u306f\u30b5\u30fc\u30d0\u30fc\u304c\u3044\u304f\u3064\u304b\u3042\u308a\u307e\u3059\uff08\u3053\u306e\u30a6\u30a7\u30d6\u30b5\u30fc\u30d0\u30fc\u3082\u542b\u3081\uff09\u3002\u30b7\u30f3\u30d7\u30eb\u306a\u30a6\u30a7\u30d6\u30b5\u30fc\u30d0\u30fc\u3068\u3057\u3066\u52d5\u3044\u3066\u3044\u308b\u3060\u3051\u3067 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1329,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"cybocfi_hide_featured_image":"yes","footnotes":""},"categories":[110,108,109],"tags":[112,113,111],"class_list":["post-1294","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-firewall","category-freebsd","category-pf","tag-dhcp","tag-freebsd","tag-pf"],"_links":{"self":[{"href":"https:\/\/www.bokumin.org\/blog\/wp-json\/wp\/v2\/posts\/1294","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bokumin.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bokumin.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bokumin.org\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bokumin.org\/blog\/wp-json\/wp\/v2\/comments?post=1294"}],"version-history":[{"count":50,"href":"https:\/\/www.bokumin.org\/blog\/wp-json\/wp\/v2\/posts\/1294\/revisions"}],"predecessor-version":[{"id":2136,"href":"https:\/\/www.bokumin.org\/blog\/wp-json\/wp\/v2\/posts\/1294\/revisions\/2136"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.bokumin.org\/blog\/wp-json\/wp\/v2\/media\/1329"}],"wp:attachment":[{"href":"https:\/\/www.bokumin.org\/blog\/wp-json\/wp\/v2\/media?parent=1294"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bokumin.org\/blog\/wp-json\/wp\/v2\/categories?post=1294"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bokumin.org\/blog\/wp-json\/wp\/v2\/tags?post=1294"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}