公開:2019.11.16 02:40:00 更新:2019.11.30 18:44:49 Slackware

SlackwareをインストールしたノートパソコンをWifiのアクセスポイントにする

先日、Amazonから知らない方の差出人で無線ルータがギフトとして贈られてきたんですが、いきなりこんなものもらっても困ると思い、放置しつつ、でもあると便利だよな、自分で買おうかな、と考えていました。
しかしよく考えたらスマホではテザリングという機能があってルータ代わりに使えるので、デスクトップLinuxでもできるんじゃないかと思い、調べてやってみたところできましたので記録として公開しておきます。

と言いましても、ググりまくった結果、あるサイトの解決方法が効いたというだけなので、そのサイトのほぼ丸写しになってしまいますが。

目的

  • デスクトップLinuxをスマホのテザリングのようにWifiアクセスポイントにする。

私の使っている環境はSlackware 14.2 64ビットです。

hostapdのインストール

SlackBuilds.orgに行き、「hostapd」をダウンロード、インストールする。

設定をする

ネットを色々探しましたが、比較的時間がかからずにこのサイトにあるソリューション (解決法) を見付けることができました。
Setting up a Slackware WiFi hotspot | Googleグループ
このページのS.K.R. de Jongという方のコメントの通りにやるとSlackwareのWifiスポット化に成功しました。

一応、いきなり消えるかもしれないので日本語訳をコピーしておきます。
以下引用

少し前に自分でこれを調べて、いくつかのメモをまとめました
プロセスで。彼らはこれに従います。うまくいけば、彼らはあなたに役立つでしょう、
そして他の人々。
 
2つのNICを備えたPC(ラップトップ)を使用します。1つは有線、もう1つはWiFiです。
 
1)WiFiを機能させます。私はwicdデーモンを使用する必要がありました。
ネットワークマネージャーアプリ。その理由を以下で説明します。
ネットワークマネージャーアプリで動作させる方法。
 
2)有線接続を機能させます。これは通常のものです。
 
3)hostapdおよびdnsmasqパッケージを入手します(存在しない場合)。
 
4)WiFi NICをホットスポットに変えます。これには、次の手順が必要です。

interface=wlan0
driver=nl80211
hw_mode=g
ssid=MyHotSpot
channel=1
wpa=3
wpa_psk_file=/etc/hostapd/hostapd.wpa_psk
wpa_key_mgmt=WPA-PSK WPA-PSK-SHA256
wpa_pairwise=TKIP
rsn_pairwise=CCMP
wpa_group_rekey=600
wpa_gmk_rekey=86400
wpa_ptk_rekey=600

(ドライバーの詳細は、あなたによって異なる場合があります。)
 
このホットスポットにアクセスするために必要な資格情報は/etc/にあります

# WPA PSKのリスト。空の行と行を除く各行
# は3で始まり、MACアドレスとPSKを区切る必要があります
# スペースあり。特別なMACアドレス00:00:00:00:00:00を使用できます
# 誰でも使用できるPSKを構成します。 PSKは次のように構成できます。
# 8..63文字のASCIIパスフレーズまたは256ビットの16進PSK
# (64桁の16進数)。

00:00:00:00:00:00 安全なパスフレーズ
#00:11:22:33:44:55 別のパスフレーズ
#00:22:33:44:55:66 0123456789abcdef0123456789abcdef

/etc/dnsmasq.confの設定

interface=wlan0
dhcp-range=10.0.0.3,10.0.0.20,12h

c)次の内容のmakeHotspotというファイルを作成します。

#! /bin/sh

EXTIF="eth0"
INTIF="wlan0"

ifconfig $INTIF up 10.0.0.1 netmask 255.255.255.0

dnsmasq

echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/tcp_syncookies

iptables -P INPUT ACCEPT
iptables -F INPUT
iptables -P OUTPUT ACCEPT
iptables -F OUTPUT
iptables -P FORWARD DROP
iptables -F FORWARD
iptables -t nat -F

iptables -A FORWARD -i $EXTIF -o $INTIF -m state --state
                        ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $INTIF -o $EXTIF -j ACCEPT
iptables -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE

hostapd /etc/hostapd/hostapd.conf

(これは、WiFi NICがwlan0であり、有線NICがeth0であると仮定しています。)
 
実行されると、makeHotspotはwlan0 NICを起動し、指示します
IPv4転送を行うカーネル、IPTablesルールを導入して、
正しく転送し、最後にhostapdデーモンを呼び出して、
ホットスポット行きます。
 
これが完了すると、WiFiデバイスは新しいWiFiネットワークを検出します
MyHotSpotと呼ばれる、/etc/の資格情報を使用して接続できる
hostapd/hostapd.wpa_psk。
 
警告:
 
1)wicdデーモンを使用している場合にのみ、これが最初に機能するようになりました。の
ネットワークマネージャーアプリは、hostapdデーモンが
起動。これを回避するには、ネットワークマネージャーアプリに
ホットスポットになるデバイスを無視します。これは以下によって達成されます
/etc/NetworkManager/NetworkManager.confに次の行を追加します。

[keyfile]
unmanaged-devices=mac:98:fc:11:ca:01:3f

この例のMACアドレスは、WiFiデバイスのMACアドレスです。
 
2)WiFiドライバーはAPモードをサポートする必要があります。これはチェックアウトすることができます

iw list

 
適切なエントリの「サポートされているインターフェイスモード」(
とにかく1つだけである必要があります。)サポートされているモードの中で、「AP」
または「AP/VLAN」またはその両方。
 
3)dnsmasqデーモンが実行されていないことを確認することが重要です
makeHotspotスクリプトを呼び出す前に。
 
4)ホットスポットがオンのとき、それが実行されているコンピューターは
もちろん、インターネットアクセスに別のNICを使用します。私の設定ではこれは
有線接続またはビルトインWiFiデバイスのいずれか。
 
5)2つを使用する場合、上記のすべてが明らかな変更とともに機能します。
ワイヤレスおよび有線接続ではなく、ワイヤレス接続。

ここまで引用

その他の対処としてはNetworkManagerをオフにするなどの作業がありました。

bash$ su
bash# chmod -x /etc/rc.d/rc.networkmanager

感想

先月までは光回線がなかったのでスマホでネットをしていて、料金が大変なことになっていました。
でも、今月からは光回線を家に引いてきたので家にいる時は使い放題できるようになります。
もっと早くこれに気付いていれば、先月のスマホ料金2万円とか支払わなくて済んだのが悔しいですが、とりあえず良かったです。
あとやはりWifiルータは買う必要なくなって良かったですし、ギフトのやつも適当に処分しようと思います。

と思ったんですがこれはこのLinuxを常に起動していないといけないので、やはり無線ルータは要るかもと思いました。
できるだけ小さいのが欲しいです。