僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。
インラインコンテンツが別画面に混入する脆弱性を確認できた。
風博士でも再現した。
Geckoを使用したブラウザは軒並怪しいようだ。
らしい。topを見ても何もやってない;-)のに、ノートのファンが 唸りっぱなし。
どうせなら送信元/マスクに行き先ポートを見て、大半を パケットフィルタリングした方が手っ取り早い筈だった。 と、↓やってみてから気付く。 少しマシにはなったようだけど。
Jun 6 10:33:59 SERVER sshd[7537]: refused connect from \ 61-30-17-114.static.tfn.net.tw Jun 6 10:44:52 SERVER sshd[7540]: refused connect from \ 61-30-17-114.static.tfn.net.tw Jun 6 12:17:54 SERVER sshd[7661]: refused connect from 220.194.58.76 Jun 6 15:09:56 SERVER sshd[7761]: refused connect from 220.194.58.76
サーバも4.1p1にあげた(zlib も1.2.2)。ついでに、↓の如く、
あまりにもsshdへの攻撃が酷いので、 tcp wrapper により、
他所からの接続制限を強化(というより、殆どを禁止)
することとする。
デフォルトが「通過」で、/24 てな書き方が通らない
あたりに注意。
ひとしきり資料やログとにらめっこ。
しかるのちに /etc/hosts.deny(最終行に
ALL: ALL) をいじりながら、AirHで外からの
アクセス可否を確認。
tcpdmatch(8)なんてのもあった。作者名は注目に値する。
(というか、tcp wrappers 自体が、であった)
plamo-3.3 では、/usr/sbin/real-deamon-dir/ なんて
ディレクトリの下にあった(4.0 では /usr/sbin/)。
残念ながら、手許のバージョンでは(他は未確認)、DNSを引いて
くれないようだ。
久しぶりにSecurityScanに自サイトを叩かせた。 特に想定外な穴はないが、 サービスが随分増えてしまったことを実感。
Jun 5 13:27:48 SERVER sshd[17417]: Invalid user darkman from 210.192.1.173 Jun 5 13:27:48 SERVER sshd[17417]: Address 210.192.1.173 maps to \ 210-192-2-173.adsl.ttn.net, but this does not map back to the address - \ POSSIBLE BREAKIN ATTEMPT! $ host 210.192.1.173 173.1.192.210.in-addr.arpa domain name pointer 210-192-2-173.adsl.ttn.net. $ host 210-192-2-173.adsl.ttn.net 210-192-2-173.adsl.ttn.net has address 210.192.2.173
ぐぐって最もわかりやすかった説明。
301 :DNS未登録さん:2005/05/12(木) 08:58:33 ID:??? BREAKIN ATTEMPTってなんですか。 303 :DNS未登録さん:2005/05/12(木) 11:02:35 ID:??? >>301 不正侵入を試みること。 "POSSIBLE BREAK-IN ATTEMPT" で "不正侵入しようとしてんじゃねーの" という意味。 sshdで上記のメッセージが表示されるのは、主にFQDN(DNSホスト)名とIPアドレスが 適合していない場合。接続元のIPアドレスからホスト名を逆引きしようとした結果 何もホスト名が割り当てられていなかった場合、また逆引きできたホスト名から 再度IPアドレスを引いたら別のIPアドレスになってしまった場合に出力される。
JFの
一発メモとか
透過プロキシとか
を見ながらモゲモゲ。
Plamo-4.2でも、徐々に目星がついてきた。
# cat /usr/local/squid/etc/squid.conf httpd_accel_host virtual httpd_accel_port 80 httpd_accel_with_proxy on httpd_accel_uses_host_header on (ry
# iptables \ -A PREROUTING \ -t nat \ -p tcp \ -s $LOCAL_AD/$SUB \ -d 0.0.0.0/0 \ --dport 80 \ -j REDIRECT \ --to-port $PROXY_HTTP_PORT
ACLは(一応効いてはいる)後で。
Sargeに入れてみる。ついで sazanami-* も apt-get install すると、 日本語が表示されるようになった。
どういうわけか、自分のサイトを一回見た時以降、
頻繁に「セグメンテーション違反です」 $?が139。
orz。
複数行に連続マッチしても、特定行がその都度出力される わけじゃないらしい。
$ cat -n file.txt 1 mouse 2 dog 3 dog 4 cat $ grep -n -A 1 dog file.txt 2:dog 3:dog 4-cat $ grep -n -B 1 dog file.txt 1-mouse 2:dog 3:dog
Sargeには/usr/lib/i686/cmov というディレクトリがあり、 libcrypto.so.0.9.7 と libssl.so.0.9.7 がそこにあった。
USER@debian:/usr/lib/i686/cmov$ for file in * ; \ > do echo -n $file:" " && \ > objdump -d $file | \ > grep cmov | \ > wc -l ; \ > done libcrypto.so.0.9.7: 519 libssl.so.0.9.7: 100
/usr/libの下にも同名のファイルがあるが、cmovの入ってない 別ファイルだった。
おまけ。
USER@debian:~$ uname -a Linux debian 2.4.27-2-386 #1 Wed Aug 17 09:33:35 \ UTC 2005 i686 GNU/Linux USER@debian:~$ ldd `which ssh` | grep crypto libcrypto.so.0.9.7 => /usr/lib/i686/cmov/libcrypto.so.0.9.7 (0x40044000)
&に飽きてきたので"¡"
一応効いたらしい。何度か検索してみたが、昨日の日記を 除いて(cronに渡すコマンドを間違えていた) ググってできたリンクにはヒットしなくなったから。
検索結果の「日付」が尽く昨日になってるのがいまいち。処理前に
ファイルのタイムスタンプを保存してtouch -t とかするか。
...そのうち。
SargeなSambaサーバから鯖リプレースの試験機にrsyncしたら、
当然日本語ファイル化け化け。
dpkg-reconfigure locales でEUC-JPに逆行
させると、表示は元に戻った。
smb.confのcharsetも同じにする。
しばらく陰干しにしていたLFSにもXの華を咲かすべく、エラーメッセージを追いながら
適当に
パッケージを突っ込みまくる。ソースは
BLFSと
FreeDesktopから
これまた適当に摘み食い。
さて、出口はあるのだろうか。
気がつくと、export PKG_CONFIG_PATH=/lib:/usr/local/lib/pkgconfig となっていた。
当然ツールやユーティリティ、ドキュメントのパスもばらばら。
それでも、libX11、libXtとかまでは入ったようだ。
一旦ここまで。
host:/dir/xorg-server-1.4$ make ; ワーニング時々 make[4]: ディレクトリ `/extra/xorg-server-1.4/hw/xfree86/dri' に入ります ; この後に大量のエラー make[4]: ディレクトリ `/extra/xorg-server-1.4/hw/xfree86/dri' から出ます make[3]: *** [all-recursive] エラー 1 make[3]: ディレクトリ `/extra/xorg-server-1.4/hw/xfree86' から出ます make[2]: *** [all] エラー 2 make[2]: ディレクトリ `/extra/xorg-server-1.4/hw/xfree86' から出ます make[1]: *** [all-recursive] エラー 1 make[1]: ディレクトリ `/extra/xorg-server-1.4/hw' から出ます make: *** [all-recursive] エラー 1
squueze をいくつか dist-upgrade してみた。
大抵そのまま通ったが、ひっかかったのが、
$ sudo visudo sudo: visudo: コマンドが見つかりません
これまで sudo ではスーパーユーザの PATH で動かせたはずである。
squueze(sudo-1.7.4p4-2.squeeze.3) の /etc/sudoers では、
wheezy(sudo-1.8.5p2-1+nmu1) ではそれができなくなった。
思い切って(というか、後で一行追加するだけだけど) /etc/sudoers
も新しいのにすげかえると、今度はうまくいった。
新旧のsudoers のコメント行を除いて diff すると、
$ diff old.txt new.txt 2c2,5 < root ALL=(ALL) ALL --- > Defaults mail_badpass > Defaults secure_path="/usr/local/sbin:/usr/local/bin:\ /usr/sbin:/usr/bin:/sbin:/bin" > root ALL=(ALL:ALL) ALL > %sudo ALL=(ALL:ALL) ALL
当初、 ALL の指定が変ったせいかと思った が、secure_path の 指定を古いsudoers に追記すると動くようになった。
数日前に
スーパーメロディICを組み立てた。ICソケットを
使ったはいいが、肝心のICを逆に差し込んで通電してしまう有様。
はんだづけを一箇所忘れていたことも手伝って、最終的には
無事に動作確認。
動作音は、もちろん
前のサイレンより趣のあるもので、11の曲とLEDの点滅を
ジャンパスイッチで制御でき、ボリュームと
演奏時間と音程を、半固定抵抗を回して調整できた。
でも、それだけではやはり、一時間も遊ぶと飽きる。
とりあえずはRasPI A の
PIN5を利用する。
3.3V電源とGND、そしてGPIO30,31。
色々試行錯誤して、なんとか演奏開始と停止をコマンドでできるようにした。
GPIO 30をPLAYに、31をSTOPに接続。GPIO 30,31はgpio(1)で19 , 20になった。
$ gpio read 19; gpio read 20
で返る値を gpio mode {19, 20} {out, in}で変えると、 鳴るときがあった。
通電直後は、当然(?)鳴っていない。
$ gpio read 19; gpio read 20 1 1
これを、
$ gpio mode 20 out $ gpio mode 19 out
すれば鳴り始め、あとは gpio mode 19 {in,out} すれば
止まったり鳴ったりする。
鳴っている時に gpio read は19,20とも0を返し、
止まってる時に 19のみ1を返す、ようになればよい。
さて次のターゲットはどこか。ボリュームなどを調整したいが。
前にどこか( かも)でインストールしたgpio(1)は、
$ gpio -v gpio version: 2.13 Copyright (c) 2012-2013 Gordon Henderson This is free software with ABSOLUTELY NO WARRANTY. For details type: gpio -warranty This Raspberry Pi is a revision 2 board.
A+への対応がよくわからないので、
配布サイトを辿って、
新しいのをgit cloneする。
INSTALL.txt 通りに buildして、
難なくインストールできた。
$ gpio -v gpio version: 2.26 Copyright (c) 2012-2015 Gordon Henderson This is free software with ABSOLUTELY NO WARRANTY. For details type: gpio -warranty Raspberry Pi Details: Type: Model A+, Revision: 1.2, Memory: 256MB, Maker: Sony
$ gpio readall +-----+-----+---------+------+---+--A Plus--+---+------+---------+-----+-----+ | BCM | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | BCM | +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+ | | | 3.3v | | | 1 || 2 | | | 5v | | | | 2 | 8 | SDA.1 | IN | 1 | 3 || 4 | | | 5V | | | | 3 | 9 | SCL.1 | IN | 1 | 5 || 6 | | | 0v | | | | 4 | 7 | GPIO. 7 | IN | 1 | 7 || 8 | 1 | ALT0 | TxD | 15 | 14 | | | | 0v | | | 9 || 10 | 1 | ALT0 | RxD | 16 | 15 | | 17 | 0 | GPIO. 0 | IN | 0 | 11 || 12 | 0 | IN | GPIO. 1 | 1 | 18 | | 27 | 2 | GPIO. 2 | IN | 0 | 13 || 14 | | | 0v | | | | 22 | 3 | GPIO. 3 | IN | 0 | 15 || 16 | 0 | IN | GPIO. 4 | 4 | 23 | | | | 3.3v | | | 17 || 18 | 0 | IN | GPIO. 5 | 5 | 24 | | 10 | 12 | MOSI | IN | 0 | 19 || 20 | | | 0v | | | | 9 | 13 | MISO | IN | 0 | 21 || 22 | 0 | IN | GPIO. 6 | 6 | 25 | | 11 | 14 | SCLK | IN | 0 | 23 || 24 | 1 | IN | CE0 | 10 | 8 | | | | 0v | | | 25 || 26 | 1 | IN | CE1 | 11 | 7 | | 0 | 30 | SDA.0 | IN | 1 | 27 || 28 | 1 | IN | SCL.0 | 31 | 1 | | 5 | 21 | GPIO.21 | IN | 1 | 29 || 30 | | | 0v | | | | 6 | 22 | GPIO.22 | IN | 1 | 31 || 32 | 0 | IN | GPIO.26 | 26 | 12 | | 13 | 23 | GPIO.23 | IN | 0 | 33 || 34 | | | 0v | | | | 19 | 24 | GPIO.24 | IN | 0 | 35 || 36 | 0 | IN | GPIO.27 | 27 | 16 | | 26 | 25 | GPIO.25 | IN | 0 | 37 || 38 | 0 | IN | GPIO.28 | 28 | 20 | | | | 0v | | | 39 || 40 | 0 | IN | GPIO.29 | 29 | 21 | +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+ | BCM | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | BCM | +-----+-----+---------+------+---+--A Plus--+---+------+---------+-----+-----+
あと、RasPI A にもインストールしておいた。
$ gpio readall +-----+-----+---------+------+---+-Model A-+---+------+---------+-----+-----+ | BCM | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | BCM | +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+ | | | 3.3v | | | 1 || 2 | | | 5v | | | | 2 | 8 | SDA.1 | IN | 1 | 3 || 4 | | | 5V | | | | 3 | 9 | SCL.1 | IN | 1 | 5 || 6 | | | 0v | | | | 4 | 7 | GPIO. 7 | IN | 1 | 7 || 8 | 1 | ALT0 | TxD | 15 | 14 | | | | 0v | | | 9 || 10 | 1 | ALT0 | RxD | 16 | 15 | | 17 | 0 | GPIO. 0 | IN | 0 | 11 || 12 | 0 | IN | GPIO. 1 | 1 | 18 | | 27 | 2 | GPIO. 2 | IN | 0 | 13 || 14 | | | 0v | | | | 22 | 3 | GPIO. 3 | IN | 0 | 15 || 16 | 0 | IN | GPIO. 4 | 4 | 23 | | | | 3.3v | | | 17 || 18 | 0 | IN | GPIO. 5 | 5 | 24 | | 10 | 12 | MOSI | IN | 0 | 19 || 20 | | | 0v | | | | 9 | 13 | MISO | IN | 0 | 21 || 22 | 0 | IN | GPIO. 6 | 6 | 25 | | 11 | 14 | SCLK | IN | 0 | 23 || 24 | 1 | IN | CE0 | 10 | 8 | | | | 0v | | | 25 || 26 | 1 | IN | CE1 | 11 | 7 | +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+ | 28 | 17 | GPIO.17 | OUT | 1 | 51 || 52 | 0 | OUT | GPIO.18 | 18 | 29 | | 30 | 19 | GPIO.19 | OUT | 0 | 53 || 54 | 0 | OUT | GPIO.20 | 20 | 31 | +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+ | BCM | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | BCM | +-----+-----+---------+------+---+-Model A-+---+------+---------+-----+-----+
例によって 手習い本風に。
; まず剰余がゼロか否か (define mod0 (lambda (n m) (cond ((zero? n) #t) ((> n m) #f) (#t (mod0 (- n m) m))))) ;関数本体 (define fb (lambda (n) (cond ((mod0 n 15) 'fizzbuzz) ((mod0 n 5) 'buzz) ((mod0 n 3) 'fizz) (#t n)))) ;どこからどこまでfizzbuzzする (define fizzbuzz (lambda (first last) (cond ((> first last) '()) (#t (cons (fb first) (fizzbuzz (+ first 1) last))))))
(fizzbuzz 8 20) gosh> (8 fizz buzz 11 fizz 13 14 fizzbuzz 16 17 fizz 19 buzz)
かなりありがたい。
画面キャプチャ動画作成が、幾分楽になりそうだ。
凝ったことをやろうとすると、動画データの再加工も
やらなければ。記録形式とか音声合成とかも色々...
もう一発。
を、LVMで一つにしてみた。
LVM2の手順などろくに覚えてないので、
11年前のメモを毎回読み直している。
そろそろ技量をアップデートさせねばと思いながら。
双方から1GBずつパーティションを切って、 同じボリュームグループに飲み込ませ、 全部を一つの論理パーティションにする。
$ sudo pvdisplay --- Physical volume --- PV Name /dev/sdb1 VG Name my_2gb PV Size 1.00 GiB / not usable 4.00 MiB Allocatable yes (but full) PE Size 4.00 MiB Total PE 255 Free PE 0 Allocated PE 255 PV UUID 23n0d6-4THM-2uyU-x0CI-Ooum-DU8Z-deucgf --- Physical volume --- PV Name /dev/sdc1 VG Name my_2gb PV Size 1.00 GiB / not usable 4.00 MiB Allocatable yes (but full) PE Size 4.00 MiB Total PE 255 Free PE 0 Allocated PE 255 PV UUID Glftb4-J79n-N6c6-SSyB-SeZT-ykND-iKho87
$ sudo vgdisplay --- Volume group --- VG Name my_2gb System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 2 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 1 Max PV 0 Cur PV 2 Act PV 2 VG Size 1.99 GiB PE Size 4.00 MiB Total PE 510 Alloc PE / Size 510 / 1.99 GiB Free PE / Size 0 / 0 VG UUID Xi3G27-1dZ2-Gu1y-bDrt-pDP9-RWe5-70XKPJ
$ sudo lvdisplay --- Logical volume --- LV Path /dev/my_2gb/new LV Name new VG Name my_2gb LV UUID NjclGE-G9nB-w73Q-Tx7K-34dL-8Rri-2KsNs4 LV Write Access read/write LV Creation host, time macmini, 2020-06-06 08:44:28 +0900 LV Status available # open 1 LV Size 1.99 GiB Current LE 510 Segments 2 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 254:0
f2fsでフォーマットし、マウントして、ddで埋め尽くす。
$ time sudo dd if=/dev/zero of=/media/temp/all.img bs=1M oflag=direct dd: '/media/temp/all.img' の書き込みエラー: デバイスに空き領域がありません 2003+0 レコード入力 2002+0 レコード出力 2099249152 bytes (2.1 GB, 2.0 GiB) copied, 234.322 s, 9.0 MB/s real 3m54.337s user 0m0.018s sys 0m4.134s
sar(1)での
iowaitを、そしてiostat(少し遅れた)で
それぞれのデバイスの
wkB/sを、グラフにしてみた。
USBメモリはClass4、MicroSDはClass10のはず。
USB3 SATAアダプタを介して、HDDとSSDで
ddrescueによるデータコピーを試してみた。
$ du -h $IMAGE 71G $IMAGE
まずHDD。
nvme_usb3_hdd$ time sudo ddrescue -f $IMAGE $HDD/$IMAGE log GNU ddrescue 1.26 Press Ctrl-C to interrupt ipos: 75161 MB, non-trimmed: 0 B, current rate: 94175 kB/s opos: 75161 MB, non-scraped: 0 B, average rate: 182 MB/s non-tried: 0 B, bad-sector: 0 B, error rate: 0 B/s rescued: 75161 MB, bad areas: 0, run time: 6m 51s pct rescued: 100.00%, read errors: 0, remaining time: n/a time since last successful read: n/a Copying non-tried blocks... Pass 1 (forwards) Finished real 7m5.350s user 0m1.641s sys 2m28.170s
次いでSSD。
nvme_usb3_ssd$ time sudo ddrescue -f $IMAGE $SSD/$IMAGE log GNU ddrescue 1.26 Press Ctrl-C to interrupt ipos: 75161 MB, non-trimmed: 0 B, current rate: 365 MB/s opos: 75161 MB, non-scraped: 0 B, average rate: 49513 kB/s non-tried: 0 B, bad-sector: 0 B, error rate: 0 B/s rescued: 75161 MB, bad areas: 0, run time: 25m 17s pct rescued: 100.00%, read errors: 0, remaining time: n/a time since last successful read: n/a Copying non-tried blocks... Pass 1 (forwards) Finished real 25m52.719s user 0m1.756s sys 2m37.629s
例によってiostatとかのログをグラフにしてみた。
最初の約200秒を見ていると、
HDDの方が
SSDより
読み込みの間隔が狭いようだ。
読み込みデバイスは同じだから、書き込みのスピード
に合わせるとそうなってしまう、のかも。
また、awaitも
HDDの方が
SSDより短かったりする。
リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。