🦇

ArchLinuxをWi-Fiアクセスポイントとして使う方法

2024/03/22に公開

ArchWikiを参考にソフトウェアアクセスポイントを構築したので備忘録です。

環境

OS: Arch Linux
Kernel: 6.8.1
Package Manager: paru

Hostapdのインストール

WiFiを吹かすためのデーモンとして、Hostapdをインストールします。

paru -S hostapd

設定ファイルを書きます。
参考: https://www.itmedia.co.jp/news/articles/2008/14/news042.html

/etc/default/hostapd.conf
DAEMON_CONF="/etc/hostapd/hostapd.conf"

Passphraseやssidは各自設定してください。

/etc/hostapd/hostapd.conf
interface=wlo1
driver=nl80211
logger_syslog=-1
logger_syslog_level=2
logger_stdout=-1
logger_stdout_level=2
ctrl_interface=/run/hostapd
ctrl_interface_group=0
ssid=
hw_mode=g
channel=1
beacon_int=100
dtim_period=2
max_num_sta=255
rts_threshold=-1
fragm_threshold=-1
macaddr_acl=0
auth_algs=3
ignore_broadcast_ssid=0
wmm_enabled=1
wmm_ac_bk_cwmin=4
wmm_ac_bk_cwmax=10
wmm_ac_bk_aifs=7
wmm_ac_bk_txop_limit=0
wmm_ac_bk_acm=0
wmm_ac_be_aifs=3
wmm_ac_be_cwmin=4
wmm_ac_be_cwmax=10
wmm_ac_be_txop_limit=0
wmm_ac_be_acm=0
wmm_ac_vi_aifs=2
wmm_ac_vi_cwmin=3
wmm_ac_vi_cwmax=4
wmm_ac_vi_txop_limit=94
wmm_ac_vi_acm=0
wmm_ac_vo_aifs=2
wmm_ac_vo_cwmin=2
wmm_ac_vo_cwmax=3
wmm_ac_vo_txop_limit=47
wmm_ac_vo_acm=0
eapol_key_index_workaround=0
eap_server=0
wpa=2
wpa_passphrase=
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP

keaのインストール

DHCPサーバーとしてkeaを用意します。

paru -S kea
/etc/kea/kea-dhcp4.conf
{
  "Dhcp4": {
    "interfaces-config": {
      "interfaces": [ "wlo1/192.168.8.1" ],
      "dhcp-socket-type": "raw"
    },

    "subnet4": [
      {
        "id": 1,
        "subnet": "192.168.8.0/24",
        "pools": [ { "pool": "192.168.8.2 - 192.168.8.254" } ],
        "option-data": [
          {
            "name": "routers",
            "data": "192.168.8.1"
          },
          {
            "name": "domain-name-servers",
            "data": "1.1.1.1"
          }
        ]
      }
    ]
  }
}

起動

NetworkManagerは競合するので止めます。 firewalldは適切なルートを設定するべきですが面倒なので止めています。

sudo sysctl net.ipv4.ip_forward=1
sudo systemctl start iptables
sudo iptables -t nat -A POSTROUTING -s 192.168.8.0/24 -o eno2 -j MASQUERADE
sudo systemctl stop firewalld
sudo systemctl stop NetworkManager
sudo systemctl start hostapd
sudo systemctl start kea-dhcp4

(これらを毎回やるのは面倒なのでスクリプト化しました。gistに置いてあります)
https://gist.github.com/rqdaA/9fea933cc1512b881cf98a45eb0d3166

終わりに

ルーターを買った方がよい

Discussion