アクセスポイント化:scpup64、upupbb/cc

もっと簡単な方法があったわ。
パッケージマネージャから「dnsmasq」「hostapd」をインストール。
# git clone https://github.com/oblique/create_ap
# cd create_ap
# make install
# create_ap -c4 -w2 --hidden wlp〜 enp〜 好きなSSID 好きなpasswd
-c:channnel
-w:2は WAP2
--hidden:ステレス
--daemon:デーモン

 

 

入手するもの
1) Puppyパッケージマネージャで「hostapd_2.6」
2)「タロ兵○」さんの「dhcp-4.1-ESV-R1-i486.pet」を使わせて頂いた。
#最初 isc-dhcp-serverで Tryしたが…orz…自分には無理でした。
上記 2つをインストール。

 

設定
1) /etc/hostapd/hostapd.conf
--------------------------------------------------------------------------
#アクセス・ポイントとして利用する無線LANインタフェース名(ifconfigで確認可能)
interface=wlp4s0

#無線LANアダプタのドライバ(大抵これでokらしい)
driver=nl80211

#SSID
ssid=UPUPBB
#SSIDをステルス
#ignore_broadcast_ssid=1

#無線規格、チャンネル
hw_mode=g
channel=4

#セキュリティ
wpa=2 # WPA2
wpa_key_mgmt=WPA-PSK
#認証パスワード
wpa_passphrase=woofwoof

#暗号化方式
wpa_pairwise=CCMP TKIP
rsn_pairwise=CCMP
---------------------------------------------------------------------------
・「interface=wlp4s0」は ifconfigで見れるが、有線LANしか使ってなかったりするとでない。
コマンドあるのかもしれないけど、タスクトレイの「Setup networking」→有線あるいは無線LAN →[Network Wizard]とかで確認できる。
・「driver=nl80211」は、ちゃんと調べるなら $ lsmod | grep athらしい…
# ttp://netbuffalo.doorblog.jp/archives/3895783.html

2) /etc/default/hostapd
DAEMON_CONF="/etc/hostapd/hostapd.conf" の 1行を追加。

3) /etc/dhcpd.conf ※ "dhcpcd.conf" じゃない
------------------------------------------------------------
default-lease-time 600;
max-lease-time 7200;
INTERFACES="wlp4s0";
option domain-name "";
max-lease-time 7200;
log-facility local7;

subnet 10.0.0.0 netmask 255.255.255.0 {
range 10.0.0.10 10.0.0.20;
option routers 10.0.0.1;
option domain-name-servers 8.8.8.8;
}
------------------------------------------------------------
・上記で 自分の wlp4s0の IPが 10.0.0.1で 10.0.0.10 - 10.0.0.20の IPを割付する設定らしい。

 

起動
1) IPフォワーディング
$ sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
2) NAPTチェイン追加
$ iptables -t nat -A POSTROUTING -s 10.0.0.0/255.255.255.0 -o enp0s25 -j MASQUERADE
3) 無線LAN起動
$ ifconfig wlp4s0 10.0.0.1 netmask 255.255.255.0 up
4) デーモン起動
$ /usr/local/sbin/dhcpd
#初回「/var/db/dhcpd.leasesが作れん」とか言われた気がする。空ファイルを作った様な・・・
$ hostapd -dd /etc/hostapd/hostapd.conf
動作ログがガンガン出るがエラってはなさそう。
この状態でスマホWifiで「ssid=UPUPBB」に接続してみて、外につながれば成功。

毎回↑を手打ちではたまらんので、スクリプト化する。
かなりザツいが…↓のスクリプトで start/stop
--- access_point.sh ------------------------------------------------------
#!/bin/bash

INET_IF=enp0s25
SUBNET=10.0.0.0
NETMASK=255.255.255.0
AP_ADDR=10.0.0.1
WIFI_IF=wlp4s0

NAT_CHAIN="-s ${SUBNET}/${NETMASK} -o ${INET_IF} -j MASQUERADE"

start() {
/etc/init.d/hostapd stop #puppy起動時に動いちゃってるから
sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
iptables -t nat -A POSTROUTING $NAT_CHAIN
ifconfig ${WIFI_IF} ${AP_ADDR} netmask ${NETMASK} up
/etc/init.d/hostapd start
/usr/local/sbin/dhcpd
echo "start access-point."
return 0
}

stop() {
ps aux | grep dhcp | grep -v grep | awk '{ print "kill -9", $2 }' | sh
/etc/init.d/hostapd stop
# ps aux | grep hostapd | grep -v grep | awk '{ print "kill -9", $2 }' | sh
ifconfig ${WIFI_IF} down
iptables -t nat -D POSTROUTING $NAT_CHAIN
echo "stop access-point."
return 0
}

case $1 in
"start" )
start
;;

"stop" )
stop
;;

*)
echo "usage: $0 start|stop"
exit 1
esac
------------------------------------------------------------
wi-fi出っ放しで構わなければ「hostapd start/stop」は不要かも(?)