NASセットアップ、ふたたび

CentOS7.2にアップデートしてから起動しなくなったNAS
とりあえず古いカーネルだと起動するのでごまかして使い続けていました。

システム用のHDDが古いこともあり、このたびUSBメモリを購入してOSを入れなおしました。

カーネルパニック対策

NASにしているHP MicroserverのCPUだと起動時にカーネルパニックになります。
どうやら3.10.0-327に出ているバグらしいので、インストーラ起動時のパラメータに以下のパラメータを追加します。

initcall_blacklist=clocksource_done_booting


OSインストール直後の再起動でも同様の現象が出るので、Grubの起動オプションにも「linux16 (略」のあとに先ほどのオプションを追加します。
ひととおりパッケージをアップデート後、grubの設定ファイルにもパラメータを追加。これで大丈夫なはずです。

# vim /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="initcall_blacklist=clocksource_done_booting rhgb quiet"
GRUB_DISABLE_RECOVERY="true"

# grub2-mkconfig -o /boot/grub2/grub.cfg
セットアップ

前と同じ。
RAIDアレイは前回からそのまま引き継ぎました。
ファイルサーバHDD換装 + CentOS 7導入めも - i_aose(旧polaroidoon)の日記

参考

というより、上記エントリはそのまま転載したようなものですね。Thx!!
Kernel 3.10.0-327 issue on AMD Neo processor | Arrfab's Blog

2015 ===> 2016

あっという間の一年でした。

よかったこと
  • PCの台数が減らせた
    • PC環境省スペース化計画がようやく形になり始めています
  • 書ける言語が増やせた
    • hello,worldに毛が生えた程度かもしれないけど、ワンライナーで書ける言語が増えるのはいいことです
  • 昨年度の目標が若干達成できた?
    • インプットのS/N比は調整できました。未読フィードの山にうんざりすることはなくなったはず(※Pocketは別腹)
    • 手を動かしてそれなりに自分で試せた(アウトプットがなかったけど
わるかったこと
  • 結局アウトプットが出てない
    • このダイアリーの今年のエントリ、これが2本目なんですよね…
  • 体力の低下
    • 運動不足でした。はい。
来年したいこと
  • アウトプットを作る
    • 今年でもESXi上に録画環境組んだとかdockerで遊んでたとかオーディオ沼とか小ネタはあるはずなので、何か書く
  • 体力をつける
    • 力こそパワー!(※元ネタ知りません)


今年お世話になったみなさま、ありがとうございました。
来年もどうぞよろしくお願いいたします。

CTF for beginners 2015 広島 Write-up

CTF for beginners 2015 広島 に参加してきました。


CTFは初挑戦でしたが、非常にアツいものでした。
(妨害コンテンツがおっさんホイホイに感じた気のせいでしょうかw)


結果としては1200点。
※スタッフなので前に名前は出ていません。

write-up

うろ覚え多数。違うこと書いてたらゴメンナサイ。

1. 確認

画面に出てる文字がそのままflag。

2. ログイン画面

admin/'OR'A'='A

3. xssさせる問題
4. SQLi
5. 数当てゲーム
6. Mailer

まずは解けそうなものから取りかかるため、後まわしにしました。ごめんなさい。

7. Follow Streeeeeam!!

pcapファイルをtcpでフィルタかけて、TCP Follow Streamでみると1文字ずつ文字を投げてるのが確認できる。
あとは :%s/\n//g で改行を落としてflagだけを切り出した。

8. insecure protocol

最初SSHかと思ったけど、タイトルがinsecureなのでtelnetとアタリをつけて挑んだ。
pcapをWiresharkで開いてtelnetでフィルタかける。
Follow TCP streamをみるとtelnetのログイン画面なので送信側のデータからログイン情報を取得。
あとはサーバにtelnetで入ればflagがとれる。
※ちなみにWiresharkでExportObjects > HTTPで、hint.pngなる画像も手に入る。
 画像にはtelnetでサーバ接続してるのが映ってる。

9. dual-stack

タイトル見た時点でIPv6と判断。逃げました。

10. Message for you

Wiresharkでキャプチャしつつ配布されたexeを実行。
あんまり覚えてないんだけど、サーバとHTTPでやりとりするので、Basic認証かかった先からflagを取得する。
Basic認証のユーザ名とパスワードは、Wiresharkで確認。

11. Packet Quest 2.1

悔しい!もう一度やりたい問題。
エストの文字で何段階かの設問になってると予想。
最初のpcapファイルでExportObjects > HTTPで大量のzipが保存できる。
大量のzipファイルをfileコマンドにかけると実際に中身がzipなの23.zipのみ。
23.zipを解凍すると次のpcapファイル。
HTTPでBasic認証解いて接続すればよかったんだけど・・・
焦っていたようで、認証に失敗した方のGET見て「え?認証どこ!?」ってパニックになってた。
帰って落ち着いて見てみると普通に次のGETにユーザ名とパスワードが。。。

12. 今日のひととき

fileコマンドでtxtファイルと分かった。
catたたくと文字が化けてて悩んだけど、素直にサクラエディタに投げたら日本語だったという・・・

13. もみじ

fileコマンドたたくとdocxだと分かる。
リネームしてワードパッドで開くともみじ饅頭の画像が出てくる。
ここで「もみじ饅頭」関連のワードをflagを入れても・・・ダメだった。
ふと画像を削除してみると極小のイメージがあって、そいつにflagが書かれてた
※あとから気づいたけど、docxはzipなので解凍すればもみじ饅頭とflagの画像ファイルが見れた。

14. 読めるかな?

flag取れたのに記憶にありません。
ファイルも残ってないし・・・どうやったんだ>俺

15. 気長に待ちましょう

実行すると裏でpingを始める実行ファイルがお題。
IDA demoでデバッグしてみるも、IDA demoが毎回固まったので断念。

16. 読経

アセンブラ。読むのが時間かかりそうでパスした。

17. 保存できるかな?

zip.exe、IDA demoが固まって絶望したのでパスした
帰宅後、再度挑戦。
IDA demoで再度確認すると同名のzip.exeを作ろうとしてた。
zip.exeを別名にリネームして実行するとzip.exeを吐いた。
このzip.exeはBase64な値だったんだけど、文字列よりうしろにデータがあったのでエディタで削除。
削除後、base64 -d zip.exe > out
このoutをfileで見るとgzipだったので、拡張子を.gzにリネームして
gzip -d out.gz
outをfileでみるとzipだったので、さらにzip解凍
中にはflag.txt。

18. 入力を当てよう

IDA demoでデバッグを試みたが、IDA demoが毎回固まったのでパス。

19. QR普及委員会特別問題

QRコードが貼り付けてあるだけなんだけど、なぜか読み取れない。
あとから隅のマーカー部分?を塗りつぶせばよかったと聞きへこむ。

20. 小学生でも解ける問題

"素直に"解けばよかったのに、ひねくれて数字をこねくり回してた。
まさかペイントで塗りつぶすだけだったとは・・・

次回のCTFへの対策

解けなかった悔しさがあるので、また挑みます。
今回の失敗を踏まえて、次回への対策を考えてみました。

  • うろ覚えをなくす
    • 解き方や途中のファイルはあとで見返すので必ず残す
  • 問題(とそのファイル)は必ず保存する
    • 帰ってから解きたいのに解けないもどかしい思いをすることに
  • 時間をかければできる問題には取り組めばよかった
    • 16の問題は解き方の資料が手元にあるのにパス・・・結果として貴重な100点を逃した
  • 道具は手になじんだものを使う
    • 普段ろくに使ってないツールは手間取って時間をロスした
    • Gvimは毎日使ってるけどいつものと違うvimrcで別ソフトに感じた
    • ムダに焦る要素を取り除いて冷静に挑みたい
  • 道具(物理)も手になじんだものを使う
    • 端末にあわせて小さい不慣れなBluetoothキーボード持って行ったらtypo連発した
    • FキーがFn + マルチメディアキーで耐えられなかった
    • ※でも、メカニカルキーボードを会場に持って行く勇気はないので考える必要あり

まとめ

問題へのアプローチを学んだ直後に実践の場があったおかげで、問題を解く楽しさを感じることができました。
このイベントの企画や講師、場所の提供などをしてくださった皆様のおかげです。ありがとうございました。
※次回もイベントがあればスタッフとして参加したいです。呼んでください!!!11

2014 ===> 2015

ふりかえると、今年はなにかと高負荷の一年でした。

よかったこと
  • インプットを絶やさずにいられた
  • 中国地方を全県走った@バイク
    • すべて下道で日帰りツーリングなのがミソ
  • ロドスタにそれなりに乗れた
    • 細かいところに手を入れ始めて、ようやく自分の車になってきた気がします
わるかったこと
  • 負荷に負けて複数の(個人的)プロジェクトが止まってしまった
  • アウトプットが出せなかった
    • やったのに書いてないことがいろいろと・・・
来年したいこと
  • インプットのS/N比の調整と取得方法の増設
  • もっと手を動かす
  • アウトプットを充実させる
  • F1鈴鹿GPに自分のロドスタで行く


みなさま、来年もよろしくお願いいたします。

ファイルサーバHDD換装 + CentOS 7導入めも

4年目を迎えるファイルサーバのHDDがヘタったので思い切って4発すべて入れ替えました。
ついでにOSをScientific Linux 6.5からCentOS 7へ変更。


今回使ったHDDはWestern Digital WD40EZRX。
4台でRAID-5にするので大体12TBですね。


ということで、以下作業メモです。

IntelliPark無効化

今回購入したHDDはWD GreenシリーズなのでIntelliParkなるヘッド待避機能がついています。
一定時間アクセスがないとヘッドを待避してくれるらしいのですが、不要なので止めます。


先代の時はwdidle3を使ったけど、今回はOS上から作業ができるidle3-toolsを使ってみました。
http://idle3-tools.sourceforge.net/
ビルドに必要なパッケージを先に入れて、ダウンロードして、makeするだけ。


現状を確認すると、80との値。デフォルトが8秒だそうな。

# ./idle3ctl -g /dev/sda
Idle3 timer set to 80 (0x50)


無効にしたあとシステムを再起動します。

# ./idle3ctl -d /dev/sd[a-d]
Idle3 timer disabled
Please power cycle your drive off and on for the new setting to be taken into account. A reboot will not be enough!
Idle3 timer disabled
Please power cycle your drive off and on for the new setting to be taken into account. A reboot will not be enough!
Idle3 timer disabled
Please power cycle your drive off and on for the new setting to be taken into account. A reboot will not be enough!
Idle3 timer disabled
Please power cycle your drive off and on for the new setting to be taken into account. A reboot will not be enough!
# ./idle3ctl -g /dev/sda
Idle3 timer is disabled
RAIDアレイ作成

mdadmでソフトウェアRAIDにするので、partedでパーティションを作成します。

# parted /dev/sdb
GNU Parted 3.1
/dev/sdb を使用
GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。
(parted) unit kib                                                         
(parted) mklabel gpt
(parted) mkpart                                                           
パーティションの名前?  []?                                                
ファイルシステムの種類?  [ext2]?                                          
開始? 2048                                                                
終了? -1                                                                  
警告: 2048kiB から 3907018583kiB (4096 から 7814037165 セクタ)までのパーティションを指定されました。
可能な中で最も近いものは 2048kiB から 3907018567kiB (4096 から 7814037134 セクタ)になります。
それでもかまいませんか?
はい(Y)/Yes/いいえ(N)/No? y                                              
(parted) set 1 raid on
(parted) print
モデル: ATA WDC WD40EZRX-00S (scsi)
ディスク /dev/sdb: 4001GB
セクタサイズ (論理/物理): 512B/4096B
パーティションテーブル: gpt
ディスクフラグ:

番号  開始    終了    サイズ  ファイルシステム  名前  フラグ
 1    2097kB  4001GB  4001GB                          raid
 
(parted) quit                                                             
通知: 必要であれば /etc/fstab を更新するのを忘れないようにしてください。


あとはRAIDアレイを作ってフォーマットしてfstabに書いてできあがり。

# mdadm --create /dev/md0 -n4 -l5 /dev/sd[a-d]1
# mdadm --detail --scan >> /etc/mdadm.conf
# mkfs.xfs /dev/md0
# vim /etc/fstab
/dev/md0        /storage        xfs     defaults        0 0
samba構築

smb.confで前と変わったところはSMB2に対応したこと。
以下の内容を追記します。

max protocol = SMB2


サービスの設定方法がsystemdになって変わっていました。

# systemctl enable smb
ln -s '/usr/lib/systemd/system/smb.service' '/etc/systemd/system/multi-user.target.wants/smb.service'
# systemctl enable nmb
ln -s '/usr/lib/systemd/system/nmb.service' '/etc/systemd/system/multi-user.target.wants/nmb.service'
ファイアウォール設定

ここもCentOS 7で変更になりました。
smbを追加します。

# firewall-cmd --get-default-zone
public
# firewall-cmd --get-services
amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns ftp high-availability http https imaps ipp ipp-client ipsec kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mountd ms-wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3s postgresql proxy-dhcp radius rpc-bind samba samba-client smtp ssh telnet tftp tftp-client transmission-client vnc-server wbem-https
# firewall-cmd --list-services --zone=public
dhcpv6-client ssh
# firewall-cmd --add-service=samba --zone=public --permanent
success
# firewall-cmd --list-services --zone=public
dhcpv6-client samba ssh
# firewall-cmd --reload
success
SELinux

今回は"ごめんなさい"しません!

# ls -Z
drwxr-xr-x. aose aose unconfined_u:object_r:file_t:s0  nas
# chcon -R -t samba_share_t nas/
# ls -Z
drwxr-xr-x. aose aose unconfined_u:object_r:samba_share_t:s0 nas
データ移行

もう一台端末を用意してUSBメモリからUbuntuを起動、rsyncで一気に移行しました。
rsyncで気にするところはsshを使わないことと、データを圧縮しないことです。
ただでさえハッシュ計算とかでCPUがボトルネックになるので、圧縮したりすると速度が落ちましたす。

おまけ

ネットワークドライブとしてメインPCにマウントしてCrystal Disk Markでベンチとってみました。


ファイルサーバは初代Microserver、やはりパワー不足ですね。
期待したほどの速度は出ませんでしたが、容量アップとディスク交換が目的だったのでよしとします。

-----------------------------------------------------------------------
CrystalDiskMark 3.0.3 x64 (C) 2007-2013 hiyohiyo
                           Crystal Dew World : http://crystalmark.info/
-----------------------------------------------------------------------
* MB/s = 1,000,000 byte/s [SATA/300 = 300,000,000 byte/s]

           Sequential Read :    90.107 MB/s
          Sequential Write :    89.783 MB/s
         Random Read 512KB :    82.796 MB/s
        Random Write 512KB :    65.434 MB/s
    Random Read 4KB (QD=1) :     7.345 MB/s [  1793.3 IOPS]
   Random Write 4KB (QD=1) :     0.055 MB/s [    13.5 IOPS]
   Random Read 4KB (QD=32) :     8.298 MB/s [  2025.8 IOPS]
  Random Write 4KB (QD=32) :     0.054 MB/s [    13.2 IOPS]

  Test : 1000 MB [M: 1.1% (119.2/11175.7 GB)] (x5)
  Date : 2014/10/11 0:52:14
    OS : Windows 8.1  [6.3 Build 9600] (x64)
追記(2015/01/24)

/tmpをRAMディスクにするには今までfstabを編集していましたが、systemdでは違う方法がありました。
(※SoftwareDesign 2015/2月号で知りました。)

# systemctl enable tmp.mount
ln -s '/usr/lib/systemd/system/tmp.mount' '/etc/systemd/system/local-fs.target.wants/tmp.mount'


便利!

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2        98G  3.9G   95G   4% /
devtmpfs        1.8G     0  1.8G   0% /dev
tmpfs           1.8G   80K  1.8G   1% /dev/shm
tmpfs           1.8G  8.8M  1.8G   1% /run
tmpfs           1.8G     0  1.8G   0% /sys/fs/cgroup
tmpfs           1.8G   16K  1.8G   1% /tmp
/dev/md0         11T  4.8T  6.2T  44% /storage
/dev/sda5       127G   55M  127G   1% /home
/dev/sda1       197M  145M   53M  74% /boot

Majestouchのキースイッチ交換

2009年に購入したメカニカルキーボードがついにチャタリングを起こすようになりました。
FILCO Majestouch Tenkeyless
http://www.diatec.co.jp/products/det.php?prod_c=568


ついに買い換えかと薄っぺらい財布片手に震えていましたが、売ってるんですね。キースイッチ。
ということで、先人の作ってくれた道しるべを元にキースイッチを交換したのでメモ。

スイッチ購入

キースイッチはJW-Systemで扱っていました。
キースイッチ10個+キートップ(予備のつもり)+送料+振込手数料で約2,500円を安いと感じるか高いと感じるか。。。
http://www.jw-shop.com/P-keyboard-mswitch10/page45/detail.htm

作業

まず、裏釜の封印シールの中のネジを外します。
テンキーレスモデルでは裏釜はこのネジ1本だけでした。

表のカバーは爪で固定されているので小さいマイナスドライバーでこじ開けながら外しました。
爪、多いよ。。。


カバーを外すと鉄板と裏釜を固定するネジがあるのでこれを外します(2本)。
裏釜に使ったドライバーだと合わなかったのでプラスドライバーは複数必要ですね。

これで鉄板+基板になります。
基板はシルクプリントでキーが書いてあります。何度もひっくり返さなくて済みました。


はんだ吸い取り線を使ってハンダを除去し、鉄板側からキースイッチを引き抜きます。
キースイッチの爪で固定されているのでラジオペンチがあるといいかも。

あとは新しいキースイッチを鉄板に固定、はんだづけして動作確認、ケースを組み直して完成です。
同じ茶軸なのにちょっと色が違うのが5年の歳月を感じさせます。ロット変わったから?

まとめ

慎重に作業しても所要時間30分。ラクです。
テンキーレスモデルの分解写真とかがなかったのでとりあえずエントリにまとめてみました。



参考:
http://tomocha.net/diary/?20130328
http://www.youtube.com/watch?v=IAFICiOrIR0

XBA-30についてそろそろ感想を書こうと思う

2014年、最初のIYHがイヤホンでした。
今までのイヤホンは7年目に突入していて、既に生産の終了しているXBA-30はかなり価格も下がっていたのでいいタイミングだったと思います。


てきとーに1ヶ月ちょっと使ったので軽く感想でも書きますかね。。。
まず、再生環境がFLAC音源+iPod touchスマホなので、正直もったいないレベルの製品です。
ヘッドホンアンプに繋いだ時の音がポータブルにならないのは残念ですが、使用頻度と予算を考えると再生環境へのてこ入れは考えられません。


ソースのジャンルを選ばず、聴き疲れしない音の鳴るイヤホンはいいものです。
(モニターほどではないけど艶っぽいとか低音とかは一切ないので、逆に苦手な人もいるかも)