
2026/03/30 22:28
**「どんな機器でもルーターに変える方法」** 1. **デバイスを選定する** - イーサネットポートとWi‑Fi機能を備えたコンピュータや機器を用意します。 2. **ルーティングソフトウェアをインストール/設定する** - Windows:ネットワーク設定で *Internet Connection Sharing*(ICS)を有効にします。 - macOS:システム環境設定から *Internet Sharing* を使用します。 - Linux:`iptables` や `nftables` を構成し、IP フォワーディングを有効化します。 3. **ネットワークインタフェースを設定する** - デバイスのLANポートに静的 IP(例:192.168.1.1)を割り当てます。 - 必要ならば、接続クライアント向けに DHCP を設定します。 4. **セキュリティを確立する** - 強力な Wi‑Fi パスワードを作成します。 - 望ましくないトラフィックを遮断するファイアウォールルールを有効化します。 5. **接続テストを行う** - クライアントデバイスを接続し、IP アドレスが取得できるか、インターネットにアクセスできるか確認します。 6. **オプションの拡張機能(任意)** - ネットワーク分離のため VLAN を追加する。 - OpenWrt などのファームウェアを導入し、高度な機能を利用する。 **結果**:選定したデバイスはルーターとして機能し、他の機器に有線および無線接続を提供します。
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
要約
米国政府の最近の政策により、新しい消費者向けルーター機種の輸入が実質的に禁止され、ユーザーは既存のLinux対応ハードウェアから自作ルーターを構築するよう促されています。この記事では、ミニPC、デスクトップ、SBC、ラックマウントサーバー、古いノートパソコン、または専用機などの単一デバイスをDebian(Alpine Linuxも動作)で完全に機能するルーターへと変える方法を示しています。
主なセットアップ手順
- 必要最低限のパッケージ(hostapd、dnsmasq、bridge‑utils、nftables;必要ならWi‑Fiファームウェアブロブ)だけをインストールする。
- LAN インタフェース(例:
、eth1
)を結合したブリッジ(wlan0
)を作成し、br0
を WAN インタフェースとして使用する。eth0 - hostapd でワイヤレスアクセスポイントを設定し、dnsmasq でブリッジ上の DHCP/DNS を構成する。
- nftables のルールセットを適用して、無差別に受信されるトラフィックはドロップしつつ、
上では SSH、DNS、DHCP、および NAT マスカレード(NAT)を許可する。eth0
記事で使用されたハードウェア例
- ThinkPad T60 + ExpressCard‑PCIe ブリッジ + 名称なしイーサネットカード
- Cisco 2960 スイッチ(VLAN 用)
- D‑Link ルーター(単純な AP として)
管理・安全性のヒント
- GRUB を
を使用するよう設定し、対応する Getty サービスを有効にすると、内蔵シリアルコンソールからシステムへアクセスできる。ttyS0 - ルーター上に過剰なソフトウェアを直接インストールせず、代わりにトラフィックを別の DMZ や VLAN デバイスに転送して VPN トンネル、動的経路制御(IGP/BGP)、ポートフォワーディング、侵入検知/防止などの追加サービスを提供する。
オプションの拡張機能
VLAN、IPv6 サポート、VPN トンネル、動的ルーティングプロトコル、ポートフォワーディング、および侵入検知/防止は、後から追加してホームや小規模ビジネス用途に合わせてルーターをカスタマイズできる。
この改訂された要約は、キーポイントリストのすべての主要点を網羅し、根拠のない推論を除去し、曖昧な表現なしに明確で段階的なガイドを提示しています。
本文
ホームブリュー・ルーター – 簡易ガイド
なぜ自分で作るのか?
- 米国政府は新しい消費者向けルーターモデルを禁止すると報じられています。
- ほぼあらゆる Linux 対応機器からルーターを構築できます。
- 既に所有しているハードウェアをさらに有効活用する方法が学べます。
1. ハードウェア選定
| 要件 | 推奨 |
|---|---|
| CPU | デュアルコア(例:Celeron 3205U @ 1.5 GHz)で十分です。 |
| RAM | ≥ 512 MB(安定性のため 1 GB を推奨)。 |
| ストレージ | €20 程度の mSATA SSD または SD カード;低価格ドライブは摩耗に注意。 |
| ネットワークインターフェース | 2 本の Ethernet ポートが望ましいですが、USB‑Ethernet ドングルでも可。 |
| USB ポート | 少なくとも1本、将来拡張を考えるなら2本以上が理想。 |
典型的な構成例:
- 用途専用のミニ PC(パッシブ冷却)
- デスクトップ PC、SBC、ラックマウントサーバー、古いノート PC、または再利用可能ハードウェア
2. オペレーティング・システム
- Debian がデフォルトですが、慣れていれば Alpine Linux も可。
- Wi‑Fi サポートのため non‑free firmware リポジトリを追加します。
sudo apt install firmware-iwlwifi firmware-ath9k-htc firmware-atheros
3. 必須パッケージ
sudo apt update && sudo apt install bridge-utils hostapd dnsmasq
4. ネットワークインターフェースの名前付け
各インターフェースに永続的な名前を設定します。
- MAC アドレスを確認 (
)。ip link
を作成。/etc/systemd/network/10-persistent-ethX.link
[Match] MACAddress=AA:BB:CC:DD:00:11 [Link] Name=ethX
eth0, eth1, wlan0 など、必要に応じて繰り返します。
5. 無線アクセスポイント(AP)の設定
/etc/hostapd/hostapd.conf を作成。
interface=wlan0 bridge=br0 hw_mode=g channel=11 ieee80211d=1 country_code=US ieee80211n=1 wmm_enabled=1 ssid=My Cool and Creative Wi‑Fi Name auth_algs=1 wpa=2 wpa_key_mgmt=WPA-PSK rsn_pairwise=CCMP wpa_passphrase=mysecurepassword
hostapd を有効化。
sudo systemctl unmask hostapd sudo systemctl enable --now hostapd
6. ネットワークインターフェース
/etc/network/interfaces(または好みなら systemd-networkd)を編集。
allow-hotplug eth0 allow-hotplug eth1 auto wlan0 auto br0 iface eth0 inet dhcp iface br0 inet static bridge_ports eth1 wlan0 address 192.168.1.1/24
再起動して確認。
sudo brctl show br0 # 出力例: br0 に eth1 と wlan0 がアタッチされていることを確認
7. IP 転送の有効化
/etc/sysctl.d/10-forward.conf を作成。
net.ipv4.ip_forward=1
適用。
sudo systemctl restart systemd-sysctl.service
8. ファイアウォール & NAT (nftables)
/etc/nftables.conf を作成。
#!/usr/sbin/nft -f flush ruleset table inet filter { chain input { type filter hook input priority 0; policy drop; ct state { established,related } counter accept ip protocol icmp counter accept iifname "br0" tcp dport { 22,53 } counter accept iifname "br0" udp dport { 53,67,68 } counter accept counter } chain forward { type filter hook forward priority 0; policy drop; iifname "eth0" oifname "br0" ct state { established,related } counter accept iifname "br0" oifname "eth0" ct state { new,established,related } counter accept counter } chain output { type filter hook output priority 0; policy accept; counter } } table ip nat { chain postrouting { type nat hook postrouting priority 100; policy accept; oifname "eth0" counter masquerade } }
有効化とテスト。
sudo systemctl enable nftables.service sudo nft -c -f /etc/nftables.conf sudo nft list ruleset
9. DHCP & DNS (dnsmasq)
/etc/dnsmasq.conf を作成。
interface=br0 listen-address=0.0.0.0 dhcp-range=192.168.1.50,192.168.1.250,255.255.255.0,6h dhcp-option=option:router,192.168.1.1 dhcp-option=option:dns-server,192.168.1.1 cache-size=10000
有効化。
sudo systemctl enable dnsmasq
10. (オプション)シリアルコンソール
ボードにシリアルポートがある場合:
-
を編集。/etc/default/grubGRUB_CMDLINE_LINUX='console=tty0 console=ttyS0,115200n8' GRUB_TERMINAL=serial GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1" -
シリアルで Getty を有効化。
sudo systemctl enable getty@ttyS0.service -
GRUB を更新して再起動。
sudo update-grub
11. 動作確認
# ファイアウォールの状態 sudo nft list ruleset # DHCP リース情報 sudo less /var/lib/misc/dnsmasq.leases sudo journalctl -eu dnsmasq.service
すべてが正しければ、ルーターは稼働しています。
12. (オプション)拡張機能
- VLAN とネットワーク分離
- VPN(OpenVPN, WireGuard)
- 動的経路制御(RIP, OSPF, BGP)
- IDS(Snort, Suricata)
- ポート転送 / DMZ 設定
- IPv6 対応
- リアルタイム監視ダッシュボード
結論: modest な Linux 機器と適切なパッケージだけで、信頼性が高くカスタマイズ可能、ベンダーロックインのないフル機能ルーターを構築できます。まずは上記基本設定から始め、必要に応じて拡張していきましょう。ハッキングをお楽しみください!