のとおりですが 解説します。
Linuxとちがって hostapd のような ツールはつかいません。
( http://netbuffalo.doorblog.jp/archives/3895783.html)
原理がシンプルです。
まず概要です
インターネット
|
ルーター
192.168.100.254
|
|有線
|
fxp0 (DHCP client) :ありきたりのNIC
OpenBSD
rum0 (DHCPD server):ありきたりのwifi無線子機
|
|無線
|
wifiで通信できるPC達
つまり、OpenBSDマシンが PC達にアドレスを出し 、そして natでインターネットにつれだして くれます。
まず natをする pf の firewall です。
cat /etc/pf.conf
###################
ext=fxp0
icmp_types = "{echoreq, unreach}"
set block-policy return
set loginterface $ext
set skip on lo0
# to some packet scrubbing
match in all scrub (no-df max-mss 1440)
# Handles NAT for the wireless clients
match out on $ext inet from !($ext:network) to any nat-to ($ext:0)
# Block everything by default
block log all
# Let all traffic out
pass out quick
# Let all traffic in
# allowing 'gre' is useful to allow PPTP VPN traffic
pass in quick inet proto { tcp udp gre } from any to any
pass in quick inet proto icmp all icmp-type $icmp_types keep state
これで PC達が firewallを とおりぬけられるようになります。
アドレスを配るために
# cat /etc/hostname.rum0
cat: /etc/hostname.rum0: No such file or directory
/etc/hostname.rum0はつまり ないのです。
これは あと でのべるシェルスクリプトで SSIDをあてていきます。
お楽しみに
cat /etc/dhcpd.interfaces
rum0
cat /etc/dhcpd.conf
option domain-name "my.domain";
option domain-name-servers 192.168.100.254;
subnet 192.168.12.0 netmask 255.255.255.0 {
option routers 192.168.12.1;
range 192.168.12.2 192.168.12.7;
}
# cat /etc/hostname.fxp0
dhcp
で問題のシェルスクリプトです。
# cat free-accesspoint.bat
これは SSIDが emi で パスワードなしです。
ifconfig rum0 inet 192.168.12.1 netmask 255.255.255.0 \
media autoselect mediaopt hostap nwid emi \
chan 1 up
# cat id-accesspoint.bat
これは SSIDが aaでパスワードが 123456789で保護されてます。
ifconfig rum0 \
inet 192.168.12.1 netmask 255.255.255.0 \
media autoselect mediaopt hostap nwid aa \
wpakey 123456789 chan 1 up
以上です。
http://archive09.linux.com/feature/49990のように、
Configuring a wireless adapter to act as an access point in OpenBSD is a simple matter of creating /etc/hostname.ral0 (replace ral0 with your adapter's interface):
# /etc/hostname.ral0
inet 192.168.2.254 255.255.255.0 NONE ¥
media autoselect mediaopt hostap mode 11g nwid my_secure ¥
chan 11
and issuing the command
sh /etc/netstart ral0
as root.を参考にして試みてください。
openbsdは 厳密なので
I-O DATA IEEE802.11n/g/b準拠 300Mbps(規格値) 無線LANアダプター WN-G300UA は、最初はあきまへん。
なお GW-US54Mini2W rum0はいけてます。 安いバファローのwli-uc-gnmは run0でなにもせずに動きますが熱い。
ただし、 PCIのurtwnは
lftp firmware.openbsd.org:/firmware> cd 5.5
cd: received redirection to `http://firmware.openbsd.org/firmware/5.5/'
cd ok, cwd=/firmware/5.5
lftp firmware.openbsd.org:/firmware/5.5> ls
drwxr-xr-x -- ..
-rw-r--r-- -- acx-firmware-1.4p4.tgz
-rw-r--r-- -- athn-firmware-1.1p1.tgz
-rw-r--r-- -- bwi-firmware-1.4p3.tgz
-rw-r--r-- -- ipw-firmware-1.3p2.tgz
-rw-r--r-- -- iwi-firmware-3.1p2.tgz
-rw-r--r-- -- iwn-firmware-5.10p0.tgz
-rw-r--r-- -- malo-firmware-1.4p3.tgz
-rw-r--r-- -- otus-firmware-1.0p1.tgz
-rw-r--r-- -- pgt-firmware-1.2p3.tgz
-rw-r--r-- -- radeondrm-firmware-20131002p0.tgz
-rw-r--r-- -- rsu-firmware-1.2p0.tgz
-rw-r--r-- -- uath-firmware-2.0p1.tgz
-rw-r--r-- -- ulpt-firmware-1.0p0.tgz
-rw-r--r-- -- upgt-firmware-1.1p3.tgz
-rw-r--r-- -- urtwn-firmware-1.1p2.tgz
-rw-r--r-- -- uvideo-firmware-1.2p1.tgz
-rw-r--r-- -- wpi-firmware-3.2p1.tgz
して urtwn-firmware-1.1p2.tgz を解凍したものを
/etc/firmwareにコピーするとできると 識者は書いてます。
確かに認識してくれるようになりました。
なお wifi子機については/usr/share/man/man4/rum.4
/usr/share/man/man4/run.4
なあたりにいろいろ書かれてます。
ここからは 話が混み合ってきます。
少しだけ 創造性を付与します。
上の 0penBSDが 有線と無線のDHCPDサーバーになる場合です。
2つのinterfaceにそれぞれ dhcpdを回す必要があります。
それで
有線の方は openbsd本来のDHCPDにまかせて、
無線の方は isc-dhcp-serverに任せましょう。
そうなると 上の方で有線は
internet
|
|
rouer
|
|
sis0 (dhcp client)
opensd rum0(dhcpd server)-----wireless-----
ne3(dhcpd server)
|
|
|wirred
有線は
cat /etc/hostname.ne3
inet 192.168.11.1 255.255.255.0
cat /etc/dhcpd.interfaces
ne3
cat /etc/dhcpd.conf
option domain-name "my.domain";
option domain-name-servers 192.168.1.1;
subnet 192.168.11.0 netmask 255.255.255.0 {
option routers 192.168.11.1;
range 192.168.11.2 192.168.11.7;
}
と 既存のものにまったく手をつけません。
ーーー
無線は
# cat /etc/hostname.rum0
cat: /etc/hostname.rum0: No such file or directoryつまりなし。
で 無線へのDHCPDは、
isc-dhcpdを利用します。
cat /usr/local/share/examples/isc-dhcp/dhcpd.conf
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
# A slightly different configuration for an internal subnet.
subnet 192.168.100.0 netmask 255.255.255.0 {
range 192.168.100.101 192.168.100.109 ;
option domain-name-servers 192.168.1.1;
#option domain-name "internal.example.org";
option routers 192.168.100.1 ;
#option broadcast-address 10.5.5.31;
default-lease-time 600;
max-lease-time 7200;
}
そうしておいて
/usr/local/sbin/dhcpd rum0 -cf /usr/local/share/examples/isc-dhcp/dhcpd.conf
でアドレスを割り当てれる体勢にしておいて
つづいて次のコマンドをうてばいいのではないかと 予想されます。
# cat free-accesspoint.bat
これは SSIDが emi で パスワードなしです。
ifconfig rum0 inet 192.168.100.1 netmask 255.255.255.0 \
media autoselect mediaopt hostap nwid emi \
chan 1 up
# cat id-accesspoint.bat
これは SSIDが aaでパスワードが 123456789で保護されてます。
ifconfig rum0 inet 192.168.100.1 netmask 255.255.255.0 \
media autoselect mediaopt hostap nwid aa \
wpakey 123456789 chan 1 up
ここまで進むと OpenBSDのTheoの元で統制のとれた すっきりとしたOSの整然としたシンプルで美しい姿が見えてきます。
おそらく 進んでいくと linuxを openbsdが抜いてしまうかもしれません。
足元の安定度合いの差です。
砂上の楼閣。
コンパイルしておもったのは 腕のいい良い大工の親方をたくさん連れていなければ家がたつのが遅いと思いました。
CPUが親方で メモリがその弟子 ってかんじでしょうか
これからは今までかいてたものの証明にあたります。
全体はつぎです
internet
|
|wireless
|
Uroad-aero
192.168.100.254
|
|wireless
|
run0
OpenBSD (live USB 2GB) bge0(192.168.11.1)----wired LAN----PC
rum0 (WIFI free access point)
|
|woreless
|
PC
つまりOpenBSD (live USB 2GB) は
2つのdhcpdをまわします。
1つは openbsd本来のdhcpdと もう一つは上に述べた iscのdhcpdです・
openbsd本来のdhcpdほうは
cat /etc/dhcpd.interfaces
run0
cat /etc/dhcpd.conf
option domain-name "my.domain";
option domain-name-servers 192.168.100.254;
#.3, 192.168.1.5;
subnet 192.168.11.0 netmask 255.255.255.0 {
option routers 192.168.11.1;
range 192.168.11.2 192.168.11.7;
}
iscのdhcpdはスクリプトで後でまわします。
で これは後述します。
他の設定ファイルは
cat /etc/hostname.run0
nwid URoad-662EA0
wpakey 0271
dhcp
cat /etc/hostname.bge0
inet 192.168.11.1 255.255.255.0
cat /etc/hostname.rum0
inet 192.168.200.1 255.255.255.0 NONE \
media autoselect mediaopt hostap mode 11g nwid myFreeAP \
chan 1
それから cat /etc/pf.conf
ext=run0
icmp_types = "{echoreq, unreach}"
set block-policy return
set loginterface $ext
set skip on lo0
# to some packet scrubbing
match in all scrub (no-df max-mss 1440)
# Handles NAT for the wireless clients
match out on $ext inet from !($ext:network) to any nat-to ($ext:0)
# Block everything by default
block log all
# Let all traffic out
pass out quick
# Let all traffic in
# allowing 'gre' is useful to allow PPTP VPN traffic
pass in quick inet proto { tcp udp gre } from any to any
pass in quick inet proto icmp all icmp-type $icmp_types keep state
こうしてから
cat /root/free-ISC.batB
/usr/local/sbin/dhcpd rum0 -cf /usr/local/share/examples/isc-dhcp/dhcpd.conf
のスクリプトをまわすと free wifi acsess pointができます。
なお
cat /usr/local/share/examples/isc-dhcp/dhcpd.conf
#option domain-name "example.org";
option domain-name-servers 192.168.100.254;
#ns1.example.org, ns2.example.org;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
# This is a very basic subnet declaration.
subnet 192.168.200.0 netmask 255.255.255.0 {
range 192.168.200.10 192.168.200.20;
option routers 192.168.200.1;
}
です。
/usr/local/sbin/dhcpd rum0 -cf /usr/local/share/examples/isc-dhcp/dhcpd.conf
する前は
ifconfig -a
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33192
priority: 0
groups: lo
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
inet 127.0.0.1 netmask 0xff000000
bge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
lladdr 00:1e:c9:05:78:fc
priority: 0
media: Ethernet autoselect (100baseTX full-duplex,rxpause,txpause)
status: active
inet 192.168.11.1 netmask 0xffffff00 broadcast 192.168.11.255
inet6 fe80::21e:c9ff:fe05:78fc%bge0 prefixlen 64 scopeid 0x1
enc0: flags=0<>
priority: 0
groups: enc
status: active
urtwn0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
lladdr 00:22:cf:ec:c8:05 <ー以前はrun0でした
priority: 4
groups: wlan egress
media: IEEE802.11 autoselect (OFDM54 mode 11g)
status: active
ieee80211: nwid URoad-662EA0 chan 2 bssid 00:1d:93:66:2e:a0 178dB wpakey 0x80d48807c087a4cacbbc320ae43060ea4968c557eb3617f79938b64814467a82 wpaprotos wpa1,wpa2 wpaakms psk wpaciphers tkip,ccmp wpagroupcipher tkip
inet6 fe80::222:cfff:feec:c805%urtwn0 prefixlen 64 scopeid 0x4
inet 192.168.100.104 netmask 0xffffff00 broadcast 192.168.100.255
rum0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
lladdr 00:22:cf:01:22:6f
priority: 4
groups: wlan
media: IEEE802.11 autoselect mode 11g hostap
status: active
ieee80211: nwid my_FreeAP chan 1 bssid 00:22:cf:01:22:6f 100dBm
inet 192.168.200.1 netmask 0xffffff00 broadcast 192.168.200.255
inet6 fe80::222:cfff:fe01:226f%rum0 prefixlen 64 scopeid 0x5
pflog0: flags=141<UP,RUNNING,PROMISC> mtu 33192
priority: 0
groups: pflog
/usr/local/sbin/dhcpd rum0 -cf /usr/local/share/examples/isc-dhcp/dhcpd.conf
すると
Internet Systems Consortium DHCP Server 4.2.5-P1
Copyright 2004-2013 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
/var/db/dhcpd.leases line 2: Time zone offset or semicolon expected.
starts 6 2014/07/19 05:16:10 UTC;
^
/var/db/dhcpd.leases line 3: Time zone offset or semicolon expected.
ends 6 2014/07/19 17:16:10 UTC;
^
lease 192.168.11.2: no subnet.
/var/db/dhcpd.leases line 9: Time zone offset or semicolon expected.
starts 6 2014/07/19 05:25:35 UTC;
^
/var/db/dhcpd.leases line 10: Time zone offset or semicolon expected.
ends 6 2014/07/19 17:25:35 UTC;
^
lease 192.168.11.2: no subnet.
Wrote 0 leases to leases file.
Listening on BPF/rum0/00:22:cf:01:22:6f/192.168.200.0/24
Sending on BPF/rum0/00:22:cf:01:22:6f/192.168.200.0/24
Sending on Socket/fallback/fallback-net
なメッセージがでて
ifconfig -a
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33192
priority: 0
groups: lo
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
inet 127.0.0.1 netmask 0xff000000
bge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
lladdr 00:1e:c9:05:78:fc
priority: 0
media: Ethernet autoselect (100baseTX full-duplex,rxpause,txpause)
status: active
inet 192.168.11.1 netmask 0xffffff00 broadcast 192.168.11.255
inet6 fe80::21e:c9ff:fe05:78fc%bge0 prefixlen 64 scopeid 0x1
enc0: flags=0<>
priority: 0
groups: enc
status: active
urtwn0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
lladdr 00:22:cf:ec:c8:05
priority: 4
groups: wlan egress
media: IEEE802.11 autoselect (OFDM54 mode 11g)
status: active
ieee80211: nwid URoad-662EA0 chan 2 bssid 00:1d:93:66:2e:a0 178dB wpakey 0x80d48807c087a4cacbbc320ae43060ea4968c557eb3617f79938b64814467a82 wpaprotos wpa1,wpa2 wpaakms psk wpaciphers tkip,ccmp wpagroupcipher tkip
inet6 fe80::222:cfff:feec:c805%urtwn0 prefixlen 64 scopeid 0x4
inet 192.168.100.104 netmask 0xffffff00 broadcast 192.168.100.255
rum0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
lladdr 00:22:cf:01:22:6f
priority: 4
groups: wlan
media: IEEE802.11 autoselect mode 11g hostap
status: active
ieee80211: nwid my_FreeAP chan 1 bssid 00:22:cf:01:22:6f 100dBm
inet 192.168.200.1 netmask 0xffffff00 broadcast 192.168.200.255
inet6 fe80::222:cfff:fe01:226f%rum0 prefixlen 64 scopeid 0x5
pflog0: flags=141<UP,RUNNING,PROMISC> mtu 33192
priority: 0
groups: pflog
になります。
一応xdmは動かしてます。
pkg_infoは
bzip2-1.0.6p0 block-sorting file compressor, unencumbered
gettext-0.18.2p4 GNU gettext
isc-dhcp-server-4.2.5.1p0 ISC DHCP Server
lftp-4.4.10 shell-like command line ftp and sftp client
libiconv-1.14p1 character set conversion library
libidn-1.28p0 internationalized string handling
nano-2.2.6 Pico editor clone with enhancements
pcre-8.33 perl-compatible regular expression library
quirks-1.113 exceptions to pkg_add rules
readline-6.2pl4 library to edit command lines as they are typed in
wget-1.15 retrieve files from the web via HTTP, HTTPS and FTP
ですが、2GのUSBメモリで
xterm -fn 10x20
で動かせば、文字がおおきくなり ktermは不要です。
ついでに seamonkey anthy ibus ibus-anthyもいれました。
rootだけでログインするつもりなので
cat /root/.xsession
cat: /root/.xsession: No such file or directory
ないのです。
でも
terminalで
/usr/local/bin/ibus-daemon -d -x -r
したら 日本語入力可能です。
これで 2Gのメモリで
df
Filesystem 512-blocks Used Avail Capacity Mounted on
/dev/sd1a 3571580 2350500 1042504 69% /
load averages: 0.12, 0.31, 0.49 hoo.my.domain 06:53:07
50 processes: 49 idle, 1 on processor
CPU states: 0.0% user, 0.0% nice, 0.0% system, 32.9% interrupt, 67.1% idle
Memory: Real: 163M/326M act/tot Free: 157M Cache: 96M Swap: 0K/133M
の負荷です。
わずか 2GBのUSBメモリで openBSDがうごき
有線の nat箱と
無線の wifiアクセスポイントをかねてくれてます。
ちょっと OpenBSD凄いです。
0 件のコメント:
コメントを投稿