2014年12月26日金曜日

nginx で  vitualhost かつ BASIC認証

結構 openbsdのnginxはデリケートだ。
丁寧に扱わないといけない。


archlinxのデフォルトのnginxは chrootされてなくあぶない。
かといって それをきちんとchrootするのはとても大変である。
あやうい wwwサーバーではなんともならない。

また apacheは 古くなったとのこと。
だから nginxに移行した。


/etc/nginx/nginx.conf は結局以下。



--------------------

worker_processes  1;
worker_rlimit_nofile 1024;

events {
    worker_connections  800;
}

#h>
http {

    include       mime.types;
    default_type  application/octet-stream;
    index         index.html index.htm;
    keepalive_timeout  65;
    server_tokens off;


server {
        listen       80;
        listen       [::]:80;
        server_name  localhost;    #<-for test
        root         /var/www/d1;
auth_basic "Restricted";
auth_basic_user_file /var/www/1/.htpasswd; #所有者はwwwにすること。
                      
          }


#0 ほら、basic 認証してるでしょう
    server {
        listen       80;
        listen       [::]:80;
        server_name  a.mydns.jp;
        root         /var/www/d0;
auth_basic "Restricted";
auth_basic_user_file /var/www/1/.htpasswd;
          }

#1
server {
        listen       80;
        listen       [::]:80;
        server_name  s.sun.ddns.vc;
        root         /var/www/d1;
auth_basic "Restricted";
auth_basic_user_file /var/www/1/.htpasswd;
          }

#2
server {
        listen       80;
        listen       [::]:80;
        server_name  k.sun.ddns.vc;
        root         /var/www/d2;
auth_basic "Restricted";
auth_basic_user_file /var/www/2/.htpasswd;
          }

#11
server {
        listen       80;
        listen       [::]:80;
        server_name  member.planex.ddns.vc;
        root         /var/www/d11;
auth_basic "Restricted";
auth_basic_user_file /var/www/11/.htpasswd;
          }

#12
server {
        listen       80;
        listen       [::]:80;
        server_name  n.luna.ddns.vc;
        root         /var/www/d12;
auth_basic "Restricted";
auth_basic_user_file /var/www/12/.htpasswd;
          }
#h>
    } 
 
 
 
自分は openbsdを USBでうごかしている。
それで 4Gしかとれない。
だから データは HDDにいれる必要がある。
しかも LINUXからもアクセスできるように ext2にしている。
 

記憶では
mv  /var/www  /var/www1
mkdir  /var/www
mount_ext2fs /dev/sd0a /var/www
cp -ar /var/www1/*   /var/www 
したと思う。
とにかく USBの /var/wwwを HDDに移した。



 # cat /etc/rc.local 
umount /var/www 

mount_ext2fs /dev/sd0a /var/www # <-----ext2fs

 if [ -x /usr/local/sbin/nginx ]; then echo ' ----- Starting nginx ----- '; /etc/rc.d/nginx -f start fi 



 because 
cat /etc/rc.d/nginx 
#!/bin/sh 
# # $OpenBSD: nginx,v 1.1 2012/02/19 11:34:36 robert Exp $ daemon="/usr/local/sbin/nginx" #<------   いろいろつついているうちに 
                                                                /usr/sbin/nginxが変化した。







 # 2>&1 nginx -V | tr -- - '\n' | grep _module
http_gzip_static_module
http_ssl_module
http_stub_status_module
mail_pop3_module
mail_imap_module
mail_smtp_module



archでは
 2>&1 nginx -V | tr -- - '\n' | grep _module is next
--------------------
imap_ssl_module
http_dav_module
http_gunzip_module
http_gzip_static_module
http_realip_module
http_spdy_module
http_ssl_module
http_stub_status_module
http_addition_module
http_degradation_module
http_flv_module
http_mp4_module
http_secure_link_module
http_sub_module

になってる。




後は
http://www.bsdnow.tv/tutorials/nginx
とか
http://apis.jpn.ph/fswiki/wiki.cgi?page=OpenBSD%2Fhttpd#p13

はありますが、
HTTPSは、メッセージを平文のままで送受信する標準のHTTPと異なり
WebブラウザとWebサーバの間の通信を暗号化して、盗聴改竄を防いでいる。

実現は難しい。

2014年12月13日土曜日

apache2 basic 認証 ; openbsd の grub

OpenBSD httpd does not support authentication.
ということで 
apache-httpd-2.2.27p4.tgzをいれます。

openbsdは usb HDD で動いてるので、 usbを圧迫しないように
公開ファイルを hard disk sd0 におきます。
ln -s ではうまくいかないので、

/etc/rc.local  を
umount /var/apache2/
mount_ext2fs /dev/sd0a  /var/apache2/

if [  -x /usr/local/sbin/apachectl2 ]; then
        echo ' ----- Re  Starting apache -----  ';  /usr/local/sbin/apachectl2 restart
fi

とします。見てのとおり ext2です。
というのは linux からも openbsdからも利用するためです。



やっと  'Basic Auth' ができました。 

www root は /var/apache2/htdocs/ .


conf file iは /etc/apache2/httpd2.conf .


cd /etc/apache2/
htpasswd .htpasswd  XXX
chmod 644  .htpasswd <- correct ?
として ID XXXに対するパスワードをつくります。


# head /etc/apache2/httpd2.conf
<Directory "/var/apache2/htdocs/YYY">
    AuthType Basic
    AuthName "Secret Zone"
    AuthUserFile /etc/apache2/.htpasswd
    Require user XXX
</Directory> 

 
なので 非公開フォルダは /var/apache2/htdocs/YYY で
 
     公開フォルダは /var/apache2/htdocs/ です。
 
 
  
こういった 公開フォルダの中に basic認証フォルダを
つくるという器用なことは
nginx
hiawatha
ではちょっと難しい。 
??   http://qiita.com/minodisk/items/90c6d6cd8f16c34ac10b  ??







 
 
 
  










































4.6 - Soft Updates ext4みたいなジャーナルらしい

Soft Updates is based on an idea proposed by Greg Ganger and Yale Patt 
and developed for FreeBSD by Kirk McKusick. 
SoftUpdates imposes a partial ordering on the buffer cache operations 
which permits the requirement 
for synchronous writing of directory entries to be removed
 from the FFS code. 
Thus, a large performance increase is seen in disk writing performance.

Enabling soft updates must be done with a mount-time option.
 When mounting a partition with the mount(8) utility, you can specify
 that you wish to have soft updates enabled on that partition. 
Below is a sample /etc/fstab(5) entry that has one partition sd0a 
that we wish to have mounted with soft updates.

/dev/sd0a / ffs rw,softdep 1 1
Note to sparc users: Do not enable soft updates on sun4 or sun4c machines. These architectures support only a very limited amount of kernel memory and cannot use this feature. However, sun4m machines are fine.



USBから立ち上げたOpenBSDに
pkg_add grub で grubをいれます。
openbsdにもgrubがなんとあるのです。 

そして   cat /grub/menu.lst     
  default 0
  timeout 10

 
title OpenBSD in USB
 
root (hd0,3)
 
chainloader +1

 

 
 
title slacko in USB
 
root (hd0,0)
 
kernel /slc/vmlinuz
 
initrd /slc/initrd.gz
 boot

と hd0 に気をつけてください。理由は4行先です。

 そして 
grub-instal  /dev/sd1c
をして 完成です。

つまり USBは  openbsdでは sd1 ですが、BIOSでUSBブートするので、
    (HDDは sd0 ) grub では hd0に入れ替わってますねえ~

 
 
-------------------------------------
その後本格的にこれを運用します。
porteus関係ですが 
 
bash-4.2$ ls /mnt/sda1/boot/
grub         initramfs-linux.img  vmlinuz-linux
initramfs-linux-fallback.img  syslinux
 
 
bash-4.2$ ls /mnt/sda1/porteus
base  changes  make_iso.sh  modules  optional 
porteus-v3.1-i486.sgn  rootcopy



bash-4.2$ cat /mnt/sda1/boot/syslinux/porteus.cfg LABEL --->lxqt_gui
前略 
MENU  --->LABEL Graphics mode (LXQT)
KERNEL vmlinuz
APPEND initrd=initrd.xz changes=/porteus load=003-lxqt;locales-ja
後略


です。




 
 


2014年11月13日木曜日

opebsd upgrade

5.5  -> 5.6へ あげます。
 正しくは http://www.openbsd.org/faq/upgrade56.html です。
 以下 sd1となってるのは install しているのが、 usb  HDD のためです。
  



cd56.iso でネットワークupgrade して

1)  
export   PKG_PATH=http://ftp.jaist.ac.jp/pub/OpenBSD/5.6/packages/i386/

pkg_add -iu

今関係はないですが
boot  -s
もfsckの関係で頭の隅においときます。


2)
after 5.7

The etc and xetc sets are now 
part of base and xbase and are not distributed separately anymore. 
They are extracted from base and xbase during installation and upgrades.
Note that this includes the rc and rc.conf files!


以下は不要になりました。
etc56.tgz   xetc56.tgzをダウンロードしてから
 sysmerge  -s etc56.tgz   -x xetc48.tgz -S




3) icedtea-web をいれると javaws cgoban.jnlp ができます。


4) aumix なくなりました。
xfce4-mixer 入れましょう。


ここから後は新規インストールの場合です


5)disklabel -e sd1 すると
  a:          8431488          2056320  4.2BSD   2048 16384    1 # /
  b:          2054272             2048    swap                   # none
  c:        976773168                0  unused
  i:         58130432         10487808  ext2fs
  j:        387069952         70668288   MSDOS ほんとうはntfs
  k:        519030784        457740288  ext2fs
  l:          2043904         68622336 unknown
  m:          2045952        974725120   MSDOS ほんとうはvfat
なので



mount_ntfs   /dev/sd1j   /mnt-NTFS/

mount_msdos  /dev/sd1m  /mnt-MSDOS/



6) cat /etc/sysctl.conf     
なんと新規インストールの時#行がなくなってます、驚きました。不便です。
/etc/examples をみたらよいと、 
 misc openbsd で Jeremy さんに教えていただきました。
                                                

net.inet.ip.forwarding=1      
machdep.lidsuspend=1    # Try to suspend on lid close



http://www.openbsd.org/faq/faq6.html によると


  /etc/sysctl.conf  を
net.inet.ip.forwarding=1 とします。なお以下です。

To make this change without rebooting you would use the sysctl(8) utility directly.
Remember though that this change will no longer exist after a reboot, and needs to be run as root.
# sysctl net.inet.ip.forwarding=1


7) cat /etc/pf.conf  
# macros
int_if="bge0"
ext="run0"

tcp_services="{ 22, 113 }"
#tcp_services="{ 80, 113 }"
icmp_types="echoreq"

# comp3="192.168.11.1"
# options
set block-policy return
set loginterface $ext
set skip on lo

# FTP Proxy rules
anchor "ftp-proxy/*"
pass in quick on $int_if inet proto tcp to any port ftp divert-to 127.0.0.1 port 8021

# match rules
match out on $ext inet from !($ext:network) to any nat-to ($ext:0)

# filter rules
block in log
pass out quick
antispoof quick for { lo $int_if }

#pass in on $ext inet proto tcp   from any to ($ext)    port $tcp_services
pass in on $ext    inet proto tcp    from any to ($ext)    port $tcp_services
#pass in on $int_if inet proto tcp    from any to ($int_if) port 22
# pass in on $ext inet proto tcp to ($ext) port 80 rdr-to $comp3
pass in inet proto icmp all icmp-type $icmp_types
pass in on $int_if




別のマシンでは cat /etc/pf.conf

# macros
int_if="fxp0"

tcp_services="{ 22, 113 }"
icmp_types="echoreq"

        #comp3="192.168.0.3"

# options

set block-policy return
set loginterface egress
set skip on lo

# FTP Proxy rules

anchor "ftp-proxy/*"

pass in quick on $int_if inet proto tcp to any port ftp   divert-to 127.0.0.1 port 8021

# match rules

match out on egress  inet from !(egress:network) to any nat-to  (egress:0)
# filter rules

block in log
pass out quick

antispoof quick for { lo $int_if }
pass in on egress inet proto tcp from any to (egress)  port $tcp_services
        #pass in on egress inet proto tcp to (egress) port 80 rdr-to $comp3

pass in inet proto icmp all icmp-type $icmp_types
pass in on $int_if



8)
cat /etc/dhcpd.interfaces
bge0



cat /etc/dhcpd.conf      
option  domain-name-servers 192.168.100.254  ;
subnet 192.168.11.0 netmask 255.255.255.0 {
        option routers 192.168.11.222;
        range 192.168.11.10 192.168.11.11;

#               filename "pxeboot";
#               next-server 192.168.11.222;

}



9) /etc/exports                                                                                                      
 

/RW     -alldirs    -maproot=tuyosi    -network=192.168.11   -mask=255.255.255.0





2014年8月18日月曜日

grub4dos 簡単インスト linuxマウント

 boot openbsd by puppy's grub4dos


HDDにまずopenbsdをいれます。
それからpuppyをいれました。

puppyで fdiskをすると

# fdisk /dev/sda
Command (m for help): p

Disk /dev/sda: 40.0 GB, 40007761920 bytes
255 heads, 63 sectors/track, 4864 cylinders, total 78140160 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0008579c

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048    10487807     5242880   83  Linux
/dev/sda2        10487808    55830527    22671360   83  Linux
/dev/sda3        55830528    78140159    11154816   a6  OpenBSD

となってます。

/dev/sda1 に puppyがいて
/dev/sda2 は ext2 ファイルシステムで ここはpuppyからもopenbsdからも読み書きをできるようにしていきます。


puppy はgrub4dosで openbsdを起動するのですが、
そのファイルは
sda1にある menu.lst で以下で

title OpenBSD
      chainloader (hd0,2)+1
      rootnoverify (hd0,2)
        boot


難所はopenbsdで /dev/sda2 (ext2)を読み書きできるようにすることです。
まず普通に
すると

# disklabel wd0
 #                size           offset  fstype [fsize bsize  cpg]
  a:         19426368         56886176  4.2BSD   2048 16384    1 # /
  b:          1055637         55830528    swap                   # none
  c:         78140160                0  unused                   

だけで、 ext2 がでてきません。

つまり openbsdは後からいれた ext2を認識してません。
それには disklabel -e
で編集する作業が必要になります。

まず fdisk wd0      をして
            
Disk: wd0       geometry: 4864/255/63 [78140160 Sectors]
Offset: 0       Signature: 0xAA55
            Starting         Ending         LBA Info:
 #: id      C   H   S -      C   H   S [       start:        size ]
-------------------------------------------------------------------------------
*0: 83      0  32  33 -    652 213   9 [        2048:    10485760    ]   Linux files*
 1: 83    652 213  10 -   3475  73  54 [    10487808:    45342720  ] Linux files*
 2: A6   3475  73  55 -   4863 254  63 [    55830528:    22309632  ] OpenBSD   
 3: 00      0   0   0 -      0   0   0 [           0:           0 ] unused  
なので 

10487808:    45342720 
とを覚えておきます。

それから
disklabel -e wd0 すると viによる編集モードに入ります。

そこで
# /dev/rwd0c:
type: ESDI
disk: ESDI/IDE disk
label: TOSHIBA MK4032GA
duid: 4ad4d11d7894f655
flags:
bytes/sector: 512
sectors/track: 63
tracks/cylinder: 255
sectors/cylinder: 16065
cylinders: 4864
total sectors: 78140160
boundstart: 55830528
boundend: 78140160
drivedata: 0

16 partitions:
#                size           offset  fstype [fsize bsize  cpg]
  a:         19426368         56886176  4.2BSD   2048 16384    1 # /
  b:          1055637         55830528    swap                   # none
  c:         78140160                0  unused
  o:         45342720         10487808  ext2fs



とします。
すると

 mount_ext2fs /dev/wd0o /EXT2
でマウントできます。

 あるいは
 cat /etc/fstab                                                              
4ad4d11d7894f655.b none swap sw
4ad4d11d7894f655.a /           ffs       rw 1 1
/dev/wd0o                 /EXT2/  ext2fs rw 1 1

でも可




2014年8月4日月曜日

openbsd,debianで PXE、Openbsdの NFS, isoのマウント


まず debianでのPXEを書きます

internet
|
|
wifi (Uroad-aero)
192.168.100.254
|
|
dhcp
debian
192.168.11.1
|
|
dhcp
PC



インストールするのものは
tftpd-hpa
isc-dhcp-server
です・

ところで  cat /etc/default/tftpd-hpa
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure"
なので、


/srv/tftp
にファイルをおきます。

そして、
service isc-dhcp-server restart
/etc/init.d/tftpd-hpa restart
で起動します。

cat /etc/default/isc-dhcp-server
INTERFACES="eth0"



 cat /etc/dhcp/dhcpd.conf
#ddns-update-style none;
 option domain-name-servers 192.168.100.254;

default-lease-time 600;
max-lease-time 7200;

subnet 192.168.11.0 netmask 255.255.255.0 {
  range 192.168.11.10 192.168.11.19;
  option subnet-mask 255.255.255.0;
  option broadcast-address 192.168.11.255;
  option routers 192.168.11.1;
  next-server 192.168.11.1;
  filename "pxelinux.0";

}





cd    /srv/tftp

lftp -c "open  ftp.debian.org:/debian/dists/squeeze/main/installer-i386/current/images/netboot ; mirror"


 lftp -c "open  http://ftp.jaist.ac.jp/pub/Linux/ubuntu/dists/trusty-updates/main/installer-i386/current/images/netboot/    ; mirror "



これにて
root@debian7:/srv/tftp# ls -ltr
合計 33272
-rw-r--r-- 1 root root 13051253  4月 24 16:46 netboot.tar.gz
-rw-r--r-- 1 root root 20971520  4月 24 16:46 mini.iso
drwxr-xr-x 2 root root     4096  4月 25 01:46 pxelinux.cfg
drwxr-xr-x 3 root root     4096  4月 25 01:46 debian-installer
drwxr-xr-x 4 root root     4096  4月 25 01:50 gtk
drwxr-xr-x 2 root root     4096  4月 27 09:22 xen
-rw-r--r-- 1 root root    26474  7月  8 18:44 pxelinux.0


# du ./
8    ./pxelinux.cfg
8    ./gtk/pxelinux.cfg
8    ./gtk/debian-installer/i386/pxelinux.cfg
32    ./gtk/debian-installer/i386/boot-screens/kde
32    ./gtk/debian-installer/i386/boot-screens/lxde
32    ./gtk/debian-installer/i386/boot-screens/xfce
416    ./gtk/debian-installer/i386/boot-screens
30836    ./gtk/debian-installer/i386
30840    ./gtk/debian-installer
99116    ./gtk
8    ./debian-installer/i386/pxelinux.cfg
32    ./debian-installer/i386/boot-screens/kde
32    ./debian-installer/i386/boot-screens/lxde
32    ./debian-installer/i386/boot-screens/xfce
416    ./debian-installer/i386/boot-screens
23372    ./debian-installer/i386
23376    ./debian-installer
30660    ./xen
186420    ./
な感じです。







それではopenbsd はというと
cd /srv/tftp

 wget http://ftp.openbsd.org/pub/OpenBSD/5.5/i386/pxeboot
 wget http://ftp.openbsd.org/pub/OpenBSD/5.5/i386/bsd.rd


cd /srv/tftp mkdir etc/

cat etc/boot.conf                                                                               
boot tftp:/bsd.rd



ln -s pxeboot pxelinux.0





つまり
/srv/tftp# ls -l
合計 6436
-rw-r--r-- 1 root root 6501415  3月  6 02:19 bsd.rd
drwxr-xr-x 2 root root    4096  8月  9 08:25 etc
-rw-r--r-- 1 root root   80544  3月  6 01:47 pxeboot
lrwxrwxrwx 1 root root       7  8月  9 08:25 pxelinux.0 -> pxeboot

だけです。





openbsd をdebin の PXEサーバーとするは でが、




openbsdでは
すでに
dhcpdも
tftpdもインストールされてます。

状況は

internet
|
|
|
rooter
192.168.1.1
|
|
sis0
openbsd(PXE server)
ne3  192.168.11.1  ---PCMCIA card
|
|
PC *debian

 
cat 
ne3
 


cat 
/etc/dhcpd.conf                                                                             

 

 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.32 192.168.11.33;
        filename        "pxelinux.0";
        next-server 192.168.11.1;
}



cat /etc/rc.conf.local                                                                          
dhcpd_flags=""          #NO  # for normal use: ""


これでdhcpdが動きます。




tftpdを動かす準備です。
mkdir   /tftpboot
cd      /tftpboot
そして
lftp -c "open  ftp.debian.org:/debian/dists/squeeze/main/installer-i386/current/images/netboot ; mirror"




if firemware is needed , look   
     http://qiita.com/harukasan/items/98db5f4639433e5e40d4 .

# paxコマンドがなければインストールしておく
sudo aptitude install pax

mkdir -p /tmp/initrd_firmware
cd /tmp/initrd_firmware

mkdir firmware
wget http://cdimage.debian.org/cdimage/unofficial/non-free/firmware/squeeze/current/firmware.tar.gz
tar -C firmware -zxf firmware.tar.gz
pax -x sv4cpio -s'%firmware%/firmware%' -w firmware | gzip -c >firmware.cpio.gz

# initrd.gzに結合する
cat initrd.gz firmware.cpio.gz > initrd_nonfree.gz



pf.cpnfをすごく一時的に甘くしますが、ここまでへりくだらなくてもよいと思いますが、

  cat /etc/pf.conf                                                                               







ext=sis0

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





 




もちろん
more /etc/sysctl.conf  
net.inet.ip.forwarding=1        # 1=Permit forwarding (routing) of IPv4 packets
#net.inet.ip.mforwarding=1      # 1=Permit forwarding (routing) of IPv4 multicast packets



最後に
tftpd  /tftpboot/
をして tftpdを動かせばもうこれでOKです、
 libretto L2では N+電源 で ネットワークインストーラーが たちあがってきます.









OpenBSDのNFSです。

NFSは大変神経質です。
5.5をsnapshotsにあげるとうまくいかなくなります。

まず状況です。

internet
|
sis0
openbsd NFSサーバー
ne3
|
debian

そして openbsdの設定ファイルは
 

 # cat /etc/dhcpd.interfaces                                                  
ne3




# cat /etc/dhcpd.conf      
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.3 192.168.11.7;
}




# cat /etc/pf.conf                                                            

# macros
int_if="ne3"
ext_if="sis0"tcp_services="{ 22, 113 }"
icmp_types="echoreq"

# options
set block-policy return
set loginterface egress
set skip on lo


# match rules
match out on $ext_if inet from !($ext_if:network) to any nat-to ($ext_if:0)


 # filter rules
block in log
pass out quick
antispoof quick for { lo $int_if }
pass in on egress inet proto tcp from any to (ext_if) port $tcp_servicespass in inet proto icmp all icmp-type $icmp_types
pass in on $int_if




http://unix.stackexchange.com/questions/7503/nfs-permissions-and-slow-copy
を参考にして、

openbsdで 
/etc/rc.conf.local を                                                                              portmap_flags=""
mountd_flags=""
nfsd_flags="-tun 4"





そして最大の問題は
http://www.ozzu.com/unix-linux-forum/openbsd-nfs-cannot-export-t56956.html
にならって

 # cat /etc/exports                                                           
 /RW  -alldirs -maproot=tuyosi -network=192.168.11 -mask=255.255.255.0

 /EXT2 -maproot=tuyosi:wheel -network=192.168 -mask=255.255.0.0

/EXT2  -alldirs -maproot=tuyosi -network=192.168 mask=255.255.0.0




昔は
cat /etc/exports
/RW     -mapall=tuyosi:tuyosi  -network=192.168.11 -mask=255.255.255.0
読み書きできる


# /etc/rc.d/mountd reload  <-忘れないために
 


openbsdで
mkdir /EXT2
chown tuyosi  /EXT2
chmod -r 777 /EXT2


そうして
debianから
mount  -t  nfs  192.168.11.1:/EXT2    /mnt
でいけます。



だめ  mount -t nfs -o udp 192.168.1.202:/EXT2 /EXT2
mount.nfs: an incorrect mount option was specified




イメージのマウントは
# vnconfig /dev/vnd1c lupu-528JP.iso
# mount /dev/vnd1c k/

# ls k/
AUTORUN.INF               READMEJA.HTM              initrd.gz                 seamonkey-2.11-ja-1.sfs
PUPPY.ICO                 boot.cat                  lupu_528.sfs              splash.xpm
PUPPYJP.ICO               goffice-lupu-528JP.sfs    menu-advanced.lst         vmlinuz
README.HTM                grldr                     menu.lst




puppy's smb.conf
[global]
message command = /usr/local/bin/LinPopUp "%f" "%m" %s; rm %s
workgroup = puppy-wg
server string = puppy-samba
; hosts allow = 192.168.1. 192.168.2.0./24 192.168.3.0/255.255.255.0 127.0.0.1
log file = /var/log.%m
; log level = 1
max log size = 50
security = user
map to guest = Never
dns proxy = no
[-root-SAMBA-]

path = /root/SAMBA
available = yes
browsable = yes
public = yes
writable = yes
guest ok = no

2014年7月13日日曜日

フリーアクセスポイント firmware

http://www.bsdguides.org/2012/a-wireless-access-point-hotspot-using-openbsd/
のとおりですが 解説します。
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凄いです。