openbsd を wifi router かつ監視カメラにする


1)wifi router

32ビットCPU かつ メモリも380 MB ぐらいしかない XP 時代の 古いパソコンの 最後のお勤めです。 この能力だと X自体は動いたとしても その上でブラウザまでは重たすぎます。 

知盛「するべき程の事はしつ、見るべき程の事は見つ」はいいですね。 世界の全種類の魚を食してはいないけど 「喰う価値のある魚は賞味した」 ってことだよね。 鯛はこの中に入るが メダカは入らないだろう 

まず 気をつけなければいけないのは
openbsd で wifi client になるもののうち 一部しかこれができません

これは すごく古い機種ですが これはOKです。
他の2個の made in china は あかんかった

つかってる機材は
i386 380MB の XP地代の ふるーい 機種です

uname -ar

OpenBSD i386.my.domain 6.4 GENERIC#926 i386

i386# ./comment-out.bat /etc/rc.local                                                              
/root/wifi-router.bat-rum0
/etc/rc.d/dhcpd -f restart 



i386# cat /root/wifi-router.bat-rum0
ifconfig rum0 inet 192.168.17.1 netmask 255.255.255.0 \
media autoselect mediaopt hostap nwid abc \
wpakey 123456789 chan 1 up


i386# ./comment-out.bat /etc/dhcpd.interfaces                                                      
rum0



i386# ./comment-out.bat /etc/dhcpd.conf                                                            
option  domain-name "my.domain";
option  domain-name-servers 8.8.8.8;
subnet 192.168.17.0 netmask 255.255.255.0 {
        option routers 192.168.17.1;
        range 192.168.17.10 192.168.17.19;
}



i386# ./comment-out.bat /etc/hostname.fxp0                                                         
dhcp



i386# ./comment-out.bat /etc/sysctl.conf                                                           
machdep.allowaperture=2 # See xf86(4)
net.inet.ip.forwarding=1    # 1=Permit forwarding (routing) of IPv4 packets



i386# ./comment-out.bat /etc/pf.conf                                                               
ext=fxp0
icmp_types = "{echoreq, unreach}"
set block-policy return
set loginterface $ext
set skip on lo0
match in all scrub (no-df max-mss 1440)
match out on $ext inet from !($ext:network) to any nat-to ($ext:0)
block log all
pass out quick
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


./comment-out.bat /etc/hostname.rum0                                                         
awk: can't open file /etc/hostname.rum0
 source line number 1
と /etc/hostname.rum0 はありません


i386# ps ax| grep hostap
12839 p0  S+p     0:00.01 grep hostap
でわかるようの hostapd は走ってません

以上にて


とabcでスマホがつながってます


アドレスも17系ですね

pf.conf ちょっとだけ変えました。

i386# ./comment-out.bat /etc/pf.conf                                                                  
ext=fxp0
table <martians> { 0.0.0.0/8 10.0.0.0/8 127.0.0.0/8 192.168.17.0/24 }
table <spammers> persist file "/etc/spammers"
icmp_types = "{echoreq, unreach}"
set block-policy return
set loginterface $ext
set skip on lo0
match in all scrub (no-df max-mss 1440)
block in quick on $ext from <martians> to any
block return out quick on $ext from any to <martians>
block in quick on $ext from <spammers> to any
block return out quick on $ext from any to <spammers>
match out on $ext inet from !($ext:network) to any nat-to ($ext:0)
block log all
pass out quick
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


これにて i386# pfctl -sr は                                                                                       
match in all scrub (no-df max-mss 1440)
block return in quick on fxp0 from <martians> to any
block return in quick on fxp0 from <spammers> to any
block return out quick on fxp0 from any to <martians>
block return out quick on fxp0 from any to <spammers>
match out on fxp0 inet from ! (fxp0:network) to any nat-to (fxp0:0)
block return log all
pass in quick inet proto icmp all icmp-type echoreq
pass in quick inet proto icmp all icmp-type unreach
pass in quick inet proto tcp all flags S/SA
pass in quick inet proto udp all
pass in quick inet proto gre all
pass out quick all flags S/SA

となってます。

2) 監視カメラ

mount.nfs 192.168.188.9:/nfs /NFS
にて
openbsd(192.168.188.9)の/nfsを
linuxマシンの/NFSにマウントしてから
linuxの geeqie で見ます。

i386# ./comment-out.bat /etc/exports                                                               
/nfs -maproot=bin: -network=192.168.188 -mask=255.255.255.0
/nfs -maproot=bin: -network=192.168.17  -mask=255.255.255.0


i386# ./comment-out.bat /etc/rc.conf.local                                                         
portmap_flags=""
mountd_flags=""
nfsd_flags="-tun 4"



i386# ./comment-out.bat kansi.bat  

# pfctl -f /etc/pf.conf-original                                                                
while true
do
x=`date +%m%d-%H:%M:%S`
y=`date +%m%d-%H`
fswebcam -r 432x240 -S 2 /nfs/$x.jpg
mkdir -p /nfs/$y
mv /nfs/$x.jpg /nfs/$y
sleep 10 
done

なお
fswebcam -S 5 -F 5 -d v4l2:/dev/video -r 1280x1024 -p MJPEG /home/peter/Desktop/philips.jpg
いう意見がhttps://www.lounge.se/wiki2/show/WebcamOpenBSD にある。