僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。
システムを全部一遍にアップグレード、は諦めた。
とりあえず別PCのFreeBSD(98)-4.11のソースを、nfsサーバから
exportしたディレクトリにftpでgetする。
実は当初クライアント側にputしたが、遅いのを我慢したのは失敗だった。
まずはGENERICカーネルの構築から。現在要らなそうなデーモン達は適当に
休ませた。sshdまでkillしたので、しばらくは/dev/ttyd0だけ
が生命線。という形で実行。
13:22:25 JST make depend begin 14:15:25 JST make depend end ; make dependに約53分。 15:08:09 JST make begin 19:38:22 JST make end ; make に約4時間30分。 22:46:17 JST make install begin 22:50:50 JST make install end ; make installに約4分。 FreeBSD $host.domain.tld 4.11-RELEASE FreeBSD 4.11-RELEASE #0:\ Fri Feb 11 16:51:17 JST 2005 root@$host.domain.tld: \ /usr/mnt/src/sys/compile/GENERIC i386
それはいいけど、ps(1)とかtop(1)とかが動作しない。やっぱり 全部4.11でないと駄目?
かな漢字変換サーバと通信できません。になった。 とりあえずEmacs+anthyで続行。
$ kill -9 `cat ~/.kinput2.PID && rm ~/.kinput2.PID # cannakill # /etc/rc.d/init.d/canna.r start $ kinput2 &
アップグレードの始まり。
FreeBSD(98)-4.8 → 4.11。初めて買ったPC(じゃないが)。
CPU:PentiumODP 83MHz、Mem:20MB。
"国民機"という造語の発祥元による"国民機"である。HDDは4台目、メモリは
3本挿し、ビデオカードも1Mから2Mに増設はしたが、多分使われていない(筈)。
CPUはバグつきのODPだ(元486DX-66MHz)。
FreeBSD-5.3からnfsマウントして、まずportsのtarボールを展開(packageは
もう無いみたい)。cvsupをmake install しようとすると、(portsの
設定ファイルをどこか書き換えた、筈)
始めたのは午前10時位から。が、芋づる式に入れたlibiconvのmakeがerrでStop.
さてどうしようか。クリーンインストールが一番手っ取り早いのは百も承知
で、もう少し悪あがき。
操作はnoteからsshしたPC(NFS鯖とは別)からkermitでttyd0より入り、 そこでrootになった。 どうせnoteを消せないなら素直にsshで入るか、でなければ別PCに モニタとキーボードをつけてそっちからsshした方がよかったかも。
idn(Internationalized Domain Name)機能は
(アドレスロケーションバーが騙されるので)結局無効にした。
~/.mozilla/firefox/default.jcn/compreg.datの
@mozilla.org/network/idn-service;1,{62b778a6-bce3-456b-8c31-2865fbb68c91}
を、
@mozilla.org/network/idn-service;0,{62b778a6-bce3-456b-8c31-2865fbb68c91}
に修正。
ついでに(こっちが先だが)Firefoxからabout:configにアクセスすると
出てきたメニューをスクロールしてnetwork.enableIDNをtrue(デフォルト)から
falseに変えても同様。
参考にしたサイトは セキュリティホールmemoと、その リンク先。
目立たなくなったが、tcpwrappersで撥ねてるだけで、
毎日数件のアタックが続いていた。
これからそっちを晒す事にする。ようにスクリプトを書き換えた。
NetBSD Guideには載ってなかったが、
こっちに構築例があった(↓抜粋)ので、
ナナメに目を通し、早速FreeBSD上のqemuで試す。
まあ今日中には終らないだろうな。
EXAMPLES 1.% ./build.sh tools kernel=GENERIC 2.% ./build.sh -U distribution 3.# ./build.sh -U install=/ 4.% ./build.sh -U -u release
早くもエラー。# mkdir /usr/obj ; chown USER:GROUP /usr/obj。
にて対処。
以下続行!?
bind9のセキュリティホール、らしい。patchをfetchして パッチを当てて make。終わったら/etc/rc.d/named restartにて bind9を再起動。
/var/log/messagesを確認。適当なホストからwebやmail。異常無し。
久し振りに2.4系を。HDDが死にかけているホスト(2.4.29)に入れてみる。
ついでにiptablesも1.3.7に取り換えた。
それでは思い切って。
# uptime && shutdown -r now 1:56pm up 243 days, 6:34, 1 user, load average: 0.16, 0.47, 0.67 # Connection to SERVER closed by remote host. connection to SERVER closed.
あれ、uname -a が全然変わらない。
grub.confのミスだった。しからばもう一度リブート。
$uname -a Linux SERVER 2.4.34.1 #1 Sun Feb 11 12:16:20 JST 2007 i686 unknown
VirtualBox上のetchで追試。
検証コードと
ライブパッチは特にオプションをつけなくても
gcc-4.1.2でビルドできた。
$ uname -a Linux etch 2.6.18-5-686 #1 SMP Mon Dec 24 16:41:07 \ UTC 2007 i686 GNU/Linux user@etch:~/src/vulnerability$ ./exploit ----------------------------------- Linux vmsplice Local Root Exploit By qaaz ----------------------------------- [+] mmap: 0x0 .. 0x1000 [+] page: 0x0 [+] page: 0x20 [+] mmap: 0x4000 .. 0x5000 [+] page: 0x4000 [+] page: 0x4020 [+] mmap: 0x1000 .. 0x2000 [+] page: 0x1000 [+] mmap: 0xb7dec000 .. 0xb7e1e000 [+] root root@etch:~/src/vulnerability#
やりたい放題になった。
で、ログアウトしてからライブパッチ。
user@etch:~/src/vulnerability$ sudo ./livepatch ----------------------------------- Linux vmsplice Local Root Exploit By qaaz ----------------------------------- [+] mmap: 0x0 .. 0x1000 [+] page: 0x0 [+] page: 0x20 [+] mmap: 0x4000 .. 0x5000 [+] page: 0x4000 [+] page: 0x4020 [+] mmap: 0x1000 .. 0x2000 [+] page: 0x1000 [+] mmap: 0xb7e00000 .. 0xb7e32000 [+] root Exploit gone
少なくともexploitだけは効かなくなったようだ。
Plamo-4.22(Linux darkstar 2.6.22.9-plamoSMP #1 SMP PREEMPT Thu Sep 27 11:31:42 JST 2007 i686 unknown unknown GNU/Linux) で追試したが、同様。
gcc-4.2.3をビルドしている真っ最中(24時間過ぎても終わらない)のPlamoを
一旦、 VBoxManage controlvm Plamo savestateする。
さて etchでの追試が済んだので、再度startvm しようとしたが、
起動に失敗。破棄するしかなかった。
まだまだ詰めないと。
早速ビルドして、exploitだけ追試。
$ uname -a Linux $HOST 2.6.24.2 #1 PREEMPT Mon Feb 11 19:40:48 \ JST 2008 i686 unknown unknown GNU/Linux $ ./exploit ----------------------------------- Linux vmsplice Local Root Exploit By qaaz ----------------------------------- [+] mmap: 0x0 .. 0x1000 [+] page: 0x0 [+] page: 0x20 [+] mmap: 0x4000 .. 0x5000 [+] page: 0x4000 [+] page: 0x4020 [+] mmap: 0x1000 .. 0x2000 [+] page: 0x1000 [+] mmap: 0xb7df8000 .. 0xb7e2a000 [-] vmsplice: Bad address
実用入門に載っていた。
少し手を入れて試す。
点滅頻度を変えても、特に遅くはならないようだった。
#!/usr/bin/env python # -*- coding: utf-8 -*- from sys import argv import time import RPi.GPIO as GPIO repeat_time = int(argv[1]) sleeptime = 10.0/repeat_time port = 27 print \ '{} times by {} seconds.'\ .format(repeat_time, sleeptime) GPIO.setmode(GPIO.BCM) GPIO.setup(port, GPIO.OUT) for i in range(repeat_time): GPIO.output(port,GPIO.HIGH) time.sleep(sleeptime) GPIO.output(port,GPIO.LOW) time.sleep(sleeptime) GPIO.cleanup()
$ time sudo python led.py 10 10 times by 1.0 seconds. real 0m20.305s user 0m0.250s sys 0m0.010s $ time sudo python led.py 50 50 times by 0.2 seconds. real 0m20.361s user 0m0.270s sys 0m0.050s $ time sudo python led.py 100 100 times by 0.1 seconds. real 0m20.321s user 0m0.210s sys 0m0.080s
のソースをもらってきて、こないだRaspberryPiのイメージを作ってみた。
あまり意味なかったかも。
$ uname -a FreeBSD raspberry-pi 10.0-STABLE FreeBSD 10.0-STABLE #0: \ Sat Feb 8 15:52:51 JST 2014 \ root@freebsd:/usr/src/raspberrypi/obj/arm.armv6/usr/\ src/stable/raspberrypi/head/sys/RPI-B arm
これ以外は。
RaspberryPI B+でFreeBSDを追っかけてみた。
svnlite update しても、ビルドする数日の間には
既に最新からずっと後と。
/usr/src $ svnlite info Path: . Working Copy Root Path: /usr/src URL: https://svn0.us-west.freebsd.org/base/head Relative URL: ^/head Repository Root: https://svn0.us-west.freebsd.org/base Repository UUID: ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f Revision: 278358 Node Kind: directory Schedule: normal Last Changed Author: mav Last Changed Rev: 278354 Last Changed Date: 2015-02-07 22:19:04 +0900 (土, 07 2月 2015)
$ time sudo make buildworld -------------------------------------------------------------- >>> World build completed on Wed Feb 11 07:10:37 JST 2015 -------------------------------------------------------------- real 4788m48.214s user 4073m27.461s sys 440m23.070s
$ time sudo make buildkernel KERNCONF=RPI-B -------------------------------------------------------------- >>> Kernel build for RPI-B completed on Wed Feb 11 13:55:50 JST 2015 -------------------------------------------------------------- real 390m4.308s user 305m26.176s sys 56m31.942s
make installkernel に8分28秒、make installworldに、えーと。
あ、今終わった。42分55秒であった。
sudo reboot すると db> に落ちたが、その後で
reboot <Enter> すると無事に再起動を終えて、
ログインプロンプトが出た。
$ uname -a FreeBSD $HOST 11.0-CURRENT FreeBSD 11.0-CURRENT #0 r278358: \ Wed Feb 11 10:09:08 JST 2015 \ root@$OLDHOST:/usr/obj/usr/src/sys/RPI-B arm
見たことなかった気がする。
$ exif -m a.jpg 画像幅 640 画像長 480 製造 RaspberryPi モデル RP_OV5647 X 解像度 72 Y 解像度 72 解像度の単位 インチ 日時 2016:02:11 11:37:14 YCbCr Positioning 中央 画像幅 64 画像長 48 圧縮 JPEG 圧縮 X 解像度 72 Y 解像度 72 解像度の単位 インチ 露出時間 1/200 秒 F 番号 f/2.9 露出プログラム 開口優先 ISO 速度評価 100 EXIF バージョン EXIF バージョン 2.2 日時 (オリジナル) 2016:02:11 11:37:14 Date and Time (Digitized) 2016:02:11 11:37:14 コンポーネント設定 Y Cb Cr - シャッター スピード 7.65 EV (1/200 秒) 開口 3.07 EV (f/2.9) ブライトネス 13.17 EV (31578.05 cd/m^2) Maximum Aperture Value 3.07 EV (f/2.9) Metering Mode 中央に重みのある平均 フラッシュ フラッシュを焚いていません フォーカス長 3.6 mm メーカーの注釈 300 バイトの未定義データ FlashPixVersion FlashPix バージョン 1.0 色空間 sRGB Pixel X Dimension 640 Pixel Y Dimension 480 露出のモード 自動露出 ホワイトバランス 自動ホワイト バランス Interoperability Index R98 ThumbnailSize 24576
リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。