cat .fetchmailrc
defaults
no rewrite
no mimedecode
poll mail.mydns.jp
protocol pop3
username mydns123
password p123
成功すると
cat /var/mail/tuyosi
で
Date: Wed, 7 Jan 2015 03:00:05 +0900 (JST)
Message-Id: <7577654972758818552.enqueue@y.my.domain>
From: root (Cron Daemon)@y.my.domain
To: t@y.my.domain
Subject: Cron <t@y> /usr/local/bin/fetchmail
Auto-Submitted: auto-generated
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/home/t>
X-Cron-Env: <LOGNAME=t>
X-Cron-Env: <USER=t>
fetchmail: No mail for mydns123 at mail.mydns.jp
になる。
2015年1月7日水曜日
2014年12月26日金曜日
nginx で vitualhost かつ BASIC認証
結構 openbsdのnginxはデリケートだ。
丁寧に扱わないといけない。
archlinxのデフォルトのnginxは chrootされてなくあぶない。
かといって それをきちんとchrootするのはとても大変である。
あやうい wwwサーバーではなんともならない。
また apacheは 古くなったとのこと。
だから nginxに移行した。
/etc/nginx/nginx.conf は結局以下。
記憶では
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では
になってる。
後は
http://www.bsdnow.tv/tutorials/nginx
とか
http://apis.jpn.ph/fswiki/wiki.cgi?page=OpenBSD%2Fhttpd#p13
はありますが、
HTTPSは、メッセージを平文のままで送受信する標準のHTTPと異なり
WebブラウザとWebサーバの間の通信を暗号化して、盗聴や改竄を防いでいる。
実現は難しい。
丁寧に扱わないといけない。
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
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 なくなりました。
ここから後は新規インストールの場合です
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 によると
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
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
正しくは 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 によると
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.
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 }
# 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
#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
でも可
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):
and issuing the command
を参考にして試みてください。
openbsdは 厳密なので
I-O DATA IEEE802.11n/g/b準拠 300Mbps(規格値) 無線LANアダプター WN-G300UA は、最初はあきまへん。
ただし、 PCIのurtwnは
して urtwn-firmware-1.1p2.tgz を解凍したものを
なお wifi子機については
/usr/share/man/man4/rum.4
/usr/share/man/man4/run.4
なあたりにいろいろ書かれてます。
ここからは 話が混み合ってきます。
internet
cat /etc/hostname.ne3
cat /etc/dhcpd.interfaces
cat /etc/dhcpd.conf
つまりなし。
で 無線への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凄いです。
のとおりですが 解説します。
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凄いです。
登録:
投稿 (Atom)