Monthly Archives: 11月 2013

Hadoopのインプット指定にワイルドカードが使える件について

Pocket

 

Hadoopへのインプットはふつう、ディレクトリかファイルの指定で行う。

しかし以下のような場合にどうするか。

  • 複数のディレクトリの下にあるファイルをhadoopに処理させたいとき。
  • 特定拡張子のファイルのみをhadoopに処理させたいとき。

実はワイルドカードが使えるので、それで解決。
以下、hadoop-1.0.0で確認。

ケース1:複数ディレクトリの下に処理対象ファイルがある場合。

 

以上のような状態でhadoopへのinputにtopを指定すると、hadoopはdir1をファイルとして処理しようとし、失敗する。
たとえばこのように。

このような場合には、top/*と指定してあげればよい。
たとえばこのように。

 

ケース2:特定のファイルのみ処理したい場合

たとえば以下のdir3で.txtのみを処理したい場合。

-input dir3/*.txtとすればよい。

 

ケース3:ケース1/2の複合ケース

 

 

合わせ技でtop/*/*.txtと指定すればよい。

No tags for this post.

[FreeBSD][メモ] svnliteで/usr/portsの管理

Pocket

 

/usr/portsをportsnapではなく、svnliteで管理してみた。
一般ユーザとしては、portsnapの管理が望ましいのだが、svnだとportsの個別更新が出来たりする。
このためだけにsvnlite管理にした。
Handbookどおりにしただけ。

以下のようなマシンで実施。

 

ミラーサイトを選ぶ

以下のページでミラーサイトを選ぶ。
http://www.freebsd.org/doc/ja/books/handbook/svn-mirrors.html

日本からならsvn0.us-west.FreeBSD.orgでしょうなあ。
このとき、SSLフィンガープリントも見ておくこと。
2013/11/12現在、us-westミラーのフィンガープリントは以下の通り

 

初回チェックアウト

/usr/portsの中身が何もないことを確認してからsvnlite checkout。
SSLフィンガープリントが表示されて、これでよいか訊かれる。
handbookの値と同じなので大丈夫ですな。

 

二回目以降のcheckout

svnlite update /usr/portsとすればよい。

リビジョンが上がってますな。

 

portsの個別checkout

portsの個別checkoutができる。
つまり、/usr/ports全部をアップデートするのではなくて、特定のportsだけ更新する。

 

以上

 

No tags for this post.

Gnome2インストール FreeBSD 10.0-BETA3

Pocket

 

久しぶりにFreeBSDにGNOME2をインストールしたのでメモ。
前回のまとめはこちら

FreeBSD 10.0-BETA3, pkgngでGnome2まで設定。
入れたマシンはDELL Vostro 1500。GPUはNvdia 8600M GTである。
bash, sudoくらいは入っている。

Xorgのインストール

pkg installにxorgを指定するだけ。

 

hald, dbusを、rc.confに設定してから起動。
以下の例で使っているsysrcについてはこちら

起動

 

Xorgの設定の前に、nvidiaのドライバをインストール

pkg searchでnvidia driverを確認。
319と304がある。

ここでドライバのバージョンを確認して319と304のどちらかを選ぶ。
8600M GT,FreeBSD x64だと319。

driverのほかにsetting, xconfigもセットでインストールする。
なお、ドライバはカーネルモジュールとして提供される。
インストール後にロードすることを忘れずに。

 

kldloadでドライバをロード、kldstatで確認。

 

もちろん、ドライバがシステムブート時に読み込まれるよう、/boot/loader.confに書き込んでおく。

 

Xorgの設定。

rootでXorg -configure。

 

同じディレクトリにxorg.conf.newというファイルが出来るはず。
デフォルトだとNvidiaのドライバにnvが選ばれてしまうので、nvidiaに書き換える。
以下の部分。

以下のように。

以下のようにしてテスト。

 

細かい市松模様にXのマウスカーソルが出ていれば成功。

Ctrl+Alt+F1を押し、Ctrl+Cで戻る。
このときコンソールに(EE)が出ていないかチェック。
(EE)が出ているとすると、haldやdbusが立ち上がってないとか、かな。

xorg.conf.newを/usr/local/etc/X11/xorg.confにコピー。

ではGNOME。

GNOME

installでgnome2を指定するだけ。

 

フォント、インプットメソッドのインストール

ja-uim-anthy, uim-gnomeを。

 

フォントは、ja-fontで検索して好きなものを。

以下を選んだ。

インストールは以上。

GNOME2向けにいくつかファイルを修正

ほとんどは一行追加。

/boot/loader.conf

/etc/fstab

 

/etc/sysctl.conf

/etc/devfs.conf

 

/usr/local/etc/PolicyKit/PolicyKit.confは以下のように修正。

以上で一通り終わり。

GNOME起動の設定

gnome_enable, gdm_enableを/etc/rc.confに追加

 

gdmが嫌なら、gdm_enableはNOにしておいて、以下を設定。
この場合はログインしてstartxで起動。

 

 

文字コード設定

bashの場合。

 

以上。
あとは再起動で。

No tags for this post.

[FreeBSD]rc.confの変更を少しだけ助けてくれるsysrc

Pocket

 

たとえばApacheをインストールして、マシン起動時にApacheも起動してくれるよう、rc.confに「apache22_enable=”YES”」とタイプしているとき、たまに情けなくなったりしませんかね。
シンプルなのはいいけど、なんかこう、もうちょっとスマートにできないかとか。
(こわごわ言うけど、Linuxだったらchkconfig httpd onとかで済むよね。)

9.2-RELEASEから入ったsysrcというユーティリティがある。
rc.confの変更を少しだけ助けてくれるものだ。
serviceコマンドと併せて使えば、rc.conf周りの設定は少しだけ楽になる。

以下に使用例を示す。

rc.conf設定の表示

まずはrc.confで設定している変数を、sysrcに続けてタイプしてみる。

というように、現状の値を教えてくれる。

sysrc -aでrc.confの設定を一覧できる。

 

お気づきの通り、sysrc -aで表示されるのは、デフォルト設定から変更したものだけである。
デフォルト設定も含めて全部表示するには-Aを与える。

 

設定書き換え

sysrcに変数設定を与えると、rc.confを書き換えてくれる。
例えばsysrc sshd_enable=”NO”というようにすると、/etc/rc.confの該当行が書き換わる。

/etc/rc.confになく、/etc/defaults/rc.confにあるものでもOK。
zfs_enableを指定すると新しく/etc/rc.confに行が追加される。

 

設定書き換え(rc.confからの削除)

zfs_enableをNOに戻すが、/etc/rc.confに記載が残ってしまった。

このままでも、とうぜん害はないが、-xで指定すれば削除できる。

 

設定書き換え(新規ソフトウェア)

では/etc/rc.conf, /etc/defaults/rc.confの双方にない変数は?
これも追加できる。
以下はlighttpdの場合。

 

もちろん削除も可能。

以上

No tags for this post.

セキュリティ監査ツールLynis

Pocket

 

Lynisとは

Linux向けのセキュリティ監査ツール。
http://www.rootkit.nl/projects/lynis.html

Linux向けではあるが、Linux以外でも使える。
FreeBSD, Solarisに加えてなんとOS Xまで。
このツールを実行すると、OSだけでなく、そこにインストールされているソフトウェアのセキュリティチェックもしてくれる。

Lynisのいいところ

Lynisのポイントは、問題のある設定、状態を指摘してくれるところにある。
具体的には、期限切れになっているSSLや、パスワード設定のないユーザアカウントや、不適切なパーミッションとか、そういったものを指摘してくれる。
指摘のしかたも、「Warnings」で危険性を挙げることのほかに、「Suggestions」で推奨対応方法も教えてくれる。

たとえばこれが「インストールされているソフトウェアに脆弱性があるよ」というレベルであれば大したことない。
FreeBSDの場合、portauditとかpkg auditで十分。
しかしLynisは、上述の通りソフトウェアやOSの設定にまで踏み込んでチェックしてくれるんである。

なじみのないソフトウェアをインストールするとき、初めてのOSをセットアップするときはもちろん、普段から使っているOS、ソフトウェアに対しても、「あ、これ危なかったんだ」と気づきを与えてくれる。

これはありがたい。
さっそく試してみる。

インストール

適当にどうぞ。
FreeBSDならportsにもpkgにもあるよ。
Linuxならapt-getでもyumでもどうぞ。

使いかた

まず最初に、lynisの実行にはroot権限が必要。
使い方はlynis –helpでズラズラと出てくる。

 

フルチェック

-cオプションを与えて実行すればよい、。

 

まず基本的な情報が表示される。
チェック対象ホストの情報と、profile、ログとレポートの場所である。
profileとは、いわばチェック方法の設定のようなもの。指定なしだとdefault.prfが選択される。
lynis.logにはlynisの動作ログが、lynis-report.datにはチェック結果が書き込まれる。

ENTERキーで先に進む。

とまあこんな感じで、1ステップごとにキー入力を求められる。
ウンザリしてきたなら一度Ctrl+Cで止めて、-Qオプションで実行すればユーザ入力を待たずに一気にやってくれる。

 

サマリのみかた

システム強度
実行結果の一番最後の部分は下記のようになる。

lynisの動作に関わるログが/var/log/lynis.logに、レポート結果が/var/log/lynis-report.datに書き込まれているよ、と。

Hardening indexとは、監査対象ホストのセキュリティ強度を示す。
上記の例だと28。28がどんなもんかは公式のドキュメントを見てもよく分からない。
別マシンでやったら33だった。

Warning/Suggestions

上記のさらに上にはWarningsとSuggestionsが表示される。

Warningsから以下の一行を見てみよう。

「UID 0(要するにスーパーユーザ)権限を持つユーザが複数いる」との指摘である。
FreeBSDをお使いの方ならお分かりだろうが、これは“toor”ユーザのことである。

Lynisの監査項目にはすべてIDが与えられており、[test:AUTH-9204]のAUTH-9204がそれ。
[impact:H]で、impactがHigh、つまり危ないぞと教えてくれている。

Suggestionsでは、同じ[test:AUTH-9204]に対して、”toor”ユーザを使ってないならvipwで消してしまえと提案がある。

なおSuggestionはWarningと必ずペア、というわけではない。
危険とまでは言わないけれども、やった方がよい対策も提案してくれる。
以下の例だと、/etc/profileのumaskをもっと厳しくしたら?との提案。

 

対策と再チェック

lynisの結果を受けて、何らかの対策をしたら再チェックをする。
充分なセキュリティを確保できたと判断できるまで、この繰り返しである。

しかしその都度、あんなに長い結果を見せられるのは苦痛だろう。
そういう場合には、-qオプションを与えればWarningだけを表示してくれる。

このあと、vipwでユーザtoorの行をコメントアウトし、もう一回実行すると、変化が現れる。
administrator accountsとUIDsのWarningが無くなっているのである。

また、-qにしてもレポートはしっかり記録されるので、grepを使いながら対策をしていけばいい。

まずレポートからWarningを探す。

監査項目SHLL-6202に注目し、今度はこのIDでgrep。

言われたとおりに/etc/ttysの設定を変えてまたlynis -qで確認。
というように繰り返す。
なお、以下のようにしてSHLL-6202だけ確認することも出来るが、出力が長いままなのであまり勧めない。

指摘されてもどうしようもない項目の対処について

例えば以下のWarning。

UFSマウントポイントが一つもないとの仰せであるが、監査対象マシンのファイルシステムは、実際のところすべてZFSであってUFSは一つもない。
なので、これは筋違い。

こういう場合は、監査項目を無効にする。
具体的には、監視対象マシン向けに専用のプロファイルを作って対応する。

 

Profileの設定。

FreeBSDだと、profileは以下の場所にある。
/usr/local/etc/lynis
デフォルトの状態では、default.prfというprofileがインストールされるはず。

これをたとえばthisHost.prfとしてコピーし、修正する。

 

ここに以下の一行を加えればよい。

 

文字通り、監査項目FILE-6329をスキップする、という指定。
もし複数の監査項目をスキップしたい場合には、スペースで区切って書く。

あとはlynis実行時に、作成したprofileを–profileに続けて指定すればよい。

Querying UFS mount points (fstab)という出力が消えている。

レポートの中身を見ても、以下のようにきれいさっぱり。

 

cronに設定したいとき。

以上の手順を繰り返し、満足な結果が得られたら、あとはcronにlynisを登録し、定期的にチェックしてもらおう。
cronからlynisを呼ぶときは–cronjobを付けるよろし。

 

以上

No tags for this post.

MicrosoftもWindiff.exeを作ってた件について

Pocket

 

Windowsでファイルのdiffを取りたければ、けっこうな数の選択肢がある。
実際のところ、私もDF.exeなどを使っている。
ただ改めて調べてみたところ、Windows向けにMicrosoft自らdiffツール作ってたらしい。
その名もWindiff.exe。(Vectorあたりにあるツールと名前かぶってるような)
使ってみたので顛末を示す。

とはいえ。
結論としては、Microsoft製に価値を見出さないならサードパーティのdiffツールの方がいいかな。

Windiff.exeにはxp用と7用がある・・・ようだ。

xp用Windiff.exe

xp用Windiff.exeは、microsoft.comに以下の記載が。

Windiff.exe ユーティリティの使用方法
http://support.microsoft.com/kb/159214/ja

Windiff.exe は、Microsoft Windows 2000 以降のオリジナルの CD-ROM の Support\Tools フォルダーに収められています。サポート ツールをインストールするには、Support\Tools フォルダーの Setup.exe を実行します。Windiff.exe は、Support.cab ファイルにも収められています。Support.cab は、各 Service Pack に含まれています。

ただ、上記のページをWindows 7で開くと、「この技術情報は、お客様がご利用の Windows とは異なるバージョン向けの情報です」とのこと。

Windows 7向けのWindiff.exe

technetで以下を発見。2003用のものを流用すればよさそう。

Windiff for Windows 7
http://social.technet.microsoft.com/Forums/exchange/en-US/0d51abcd-3b76-495b-84a4-45e188f6d9f6/windiff-for-windows-7

Windows 7(32bit)でのインストールのしかた

※おそらくMicrosoftは公式には認めない方法です。
自己責任でどうぞ。

さっそく以下のページからWindowsServer2003-KB892777-SupportTools-x86-ENU.exe をダウンロード。

Windows Server 2003 Service Pack 1 32-bit Support Tools
http://www.microsoft.com/en-us/download/details.aspx?id=7911

コマンドラインから実行する。
オプションを二つ指定する。
/Cで「展開のみインストールせず」、 /Tで展開先をフルパスで指定する。

以上の例だとc:\download\supporttoolに内容物が展開される。
そのうちのsupport.cabをダブルクリックすると、中にwindiff.exeがあるのでそれを取り出す。
あとはパスの通ったところに置くとか、ランチャーに登録すればよい。

初期設定

そのままだと日本語を表示できないので、Edit → Set Font でフォントを変える。
メイリオとかにしとけ。

使い方

個別ファイルの差分を調べる場合には、File → Compare Files でファイルを二つ選んでOKをクリック。
ディレクトリごと差分を調べる場合には、File → Compare Directoriesで出てきた画面に二つのディレクトリパスを貼りつけてOKをクリックする。

調べたファイルが一覧で表示される。
差分のあるファイルが赤く表示されるので、選択してExpandでファイルの中身を見られる。
Outlineでファイル一覧に戻る。

F7, F8で差分のある個所を順番に選んで行ける。
Pictureは左端に差分箇所を表してくれる。

制限

シフトJISのファイルは読めるけど、UTF-8の日本語は読めないようだ。

感想

使ってみたら分かるけど、ちょっと使いにくいかな…。

No tags for this post.

pkgngが復活したと言ったな。(proxy越しの奴にとって)あれは嘘だ。(SRVレコードの罠)

Pocket

pkgngの公式サイトがやっと復活した。
http://lists.freebsd.org/pipermail/freebsd-current/2013-October/046055.html

したのだが、proxy越しだと動かない事があって、俺含む一部のユーザはとてもガッカリしている。

原因ははっきりしていて、DNS上、SRVレコードを使っているからだ。
SRVレコードにしたのはしかし理由があってのものなので、単にAレコードに追加すればよいという話でもない。
公式MLでもえらく議論が続いているが、SRVレコードを使うというのは変わりそうにないようだ(2013/11/3現在)。

(2013/12/19追記)
pkg-1.2.3で問題が解消された
(2013/12/19追記ここまで)

というわけで、公式に沿ったpkgサイトの設定のしかたと、proxy越し等で公式pkgサイトのアドレス解決が出来ない場合の回避方法を示す。

公式の設定方法

 

事前準備

pkg-1.1.4_8にする。
インストール済みの場合、公式などはpkg -vで確認しろというが、pkg -vで表示されるのは以下の通りで1.1.4_8かどうかはわからない。

なので、pkg infoで調べよう。

インストールしていなければ以下のように。
※freebsd:10:x86:64はOSに合わせて変更する。

何らかの理由でpkgが死んでてpkgそのものが使えない場合。
pkg.txzをダウンロードして、手動で展開する。
ルート(/)にゴミが残るから後で掃除しとけ。

 

設定ファイルの書き換え

/usr/local/etc/pkg.confは捨てて/usr/local/etc/pkg/reposの下に設定ファイルを入れることになる。

/usr/local/etc/pkg.confは捨てるかリネームする。
ディレクトリ/usr/local/etc/pkg/reposを作る。
そこにFreeBSD.confというファイルを作る。
ただ末尾が.confであれば名前はなんでもよい。

以下がファイル例。
コメント部分は、まあお好きに。

準備完了

実行

問題なければ、pkg update, pkg upgradeでファイルを取得できるはず。

下記の通りであれば、毎週末~月曜くらいにpkg repositoryが更新されるようだ。

(水曜01:00(UTC)にportsのスナップショットから”a few days”かけてパッケージ作成)
Packages are built weekly from a snapshot of the Ports Collection every
Wednesday morning 01:00 UTC. They typically will be available in the
repository after a few days.

 

“Service Unavailable”

さて。
以下のようになったら、あなたのproxyサーバかDNSはSRVレコードに対応していないということ。

 

対策(mirrorサイトを直接指定)

対策っても大したことはなくて、mirrorサイトを直接指定するだけ。
これで問題なく動くが、もちろん制限はある。
mirrorサイトがダウンしたときには、手動で接続先を変える必要がある。
今のところmirrorサイトは米国東西海岸、欧にしかない。
ゆくゆくは日本にもmirrorサーバが立つといいな。

さて手順。
以下に沿う。
ただ間違いがあって、そのままコピペすると失敗するので注意。
http://lists.freebsd.org/pipermail/freebsd-current/2013-November/046122.html

流れとしては、最初に作ったFreeBSD.confを無効にし、mirrorサイトを直接指定する設定ファイルを作る。

/usr/local/etc/pkg/repos/FreeBSD.confをリネームする。
(消してもいいけど、将来使うかもしれないし。)

以下からmirrorサイトを選ぶ。
日本からだったらUS Westですかね。

 

設定ファイルを作る。
例によって名前はなんでもよい。末尾が.confであれば。

 

ファイルの例。
コメントはまあ適当に。

 

あとはpkg update, pkg upgradeでよいでしょう。

No tags for this post.

vimでまさかのタブ表示

Pocket

 

結論

vim -pで複数ファイルをタブ表示できる。
.profileにaliasを書いとけ。
以上。

-pオプション

vimのmanを眺めていたらこんな記載が。

なんですと。
さっそく試そう!

vim -p に続けて複数ファイルを指定

こんな感じ。
もちろん*.confなんて指定のしかたもできるよ。

すると開くファイルをズラッと表示してくれる。
しかもreadonlyのファイルがあればそれもご丁寧に。

こんな感じ。
一番上の行に指定したファイルが並んでいる。
長いファイル名は表示できていないが。

vimp00

編集を終えて:qで抜けると次のファイルに移る。
:qを使わなくとも”gt”, “gT”でファイルを映ることができる。
“gt”で右へ、”gT”で左へ。

alilasの設定

気に入ったらaliasを設定しておく。
bashなら.profileに書き込んでおく。

 

 

No tags for this post.