Skip to content

samba 3でNTドメイン

samba 3でNTドメイン published on samba 3でNTドメイン へのコメントはまだありません

結構面倒だけど何とかできた。
○環境
samba 3.0.x (細かいバージョンは今分からないけど、同じ3系なら大きく違わないと思う)
LDAPは使わずtdbsamを使用
クライアントPCはWindows XP Pro
○作業
・UNIXのユーザーアカウントが必要なので作成

useradd username

・sambaにもアカウントを作成

pdbedit -a -u username
pdbedit -a -u root

試してないけど、ユーザーアカウントを作らなくてもOKっぽい。

Samba 3.0からはLinuxアカウントに登録されていないユーザーでもSambaユーザーとして登録できるようになった。Samba独自のユーザーを追加した際には,LinuxシステムでのユーザーIDとグループIDを自動的に割り当てるが,そのためにsmb.confファイルでは「idmap uid」と「idmap gid」の2つのパラメータで割り当て可能なIDの範囲を指定しておく必要がある。

・マシンアカウントの作成

useradd -s /bin/false pcname$
pdbedit -m -a -u pcname

これ、add machine scriptを設定すれば要らない。
・最低限のsmb.conf

#基本的な設定
workgroup = DOMAIN
netbios name = PDC
passdb backend = tdbsam
security = user
# PDCになる為の設定、os levelは33以上
domain logons = Yes
os level = 33
preferred master = Yes
domain master = Yes
# 移動プロファイルの設定など
logon path = \%LProfiles%U
logon drive = H:
logon home = \%L%U
#以下、profilesとnetlogonという共有を定義する必要がある

これでとりあえずPDCとして最低限の動作はするはず。
○さらに
・パスワードの変更の同期
WindowsでCtrl-Alt-Delを押してパスワード変更をすると、samba、Linuxの両方のアカウントのパスワードが変更されるようにする。

unix password sync = yes

passwd program = /usr/bin/passwd %u

#この行は要らないかも(今度確認してみる)

pam password change = yes

passwd chat = *New*password* %nn *Re-enter*new*password* %nn *Password*changed*

passwd chatに関してはちょっと分かりにくい。これは、Linuxのpasswdコマンドを入力した時に返される文字列を入力する。これってディストリビューションによって異なる。@ITのこの記事の説明が分かりやすかった。
sambaは内部的にroot権限でpasswdコマンドを実行し、その結果の文字列を見て成功か失敗かを判断する。上の設定例で言えば、passwdコマンドの実行結果が”*Password*changed*”に一致すればsambaはパスワード変更が成功したと判断する。
root権限でのpasswdコマンドの場合、(短すぎる等の)悪いパスワードでも警告は出るがパスワード変更が可能。ただ、その場合passwdコマンドの実行結果が上の文字列と一致しないので、samba的にはパスワード変更失敗、となる。
・smbpasswdからの移行

# pdbedit -i smbpasswd:/etc/smbpasswd -e tdbsam:/etc/samba/passdb.tdb

○その他
・参考サイト
miracle linuxのページ(←リンク切れ…こっちのページも分かりやすい)
日経IT Proのページ
RHELリファレンスガイドのsambaのページ
sambaのオンラインドキュメントは一通り目を通したつもりだけど、ちょっと分かりにくい様な気がする。

sshdパスワードアタック

sshdパスワードアタック published on sshdパスワードアタック への2件のコメント

ここ最近ずーっとログ見てなくて、久しぶりにログを見たらsshdにブルートフォースアタックが来てた。多い時は1日に数千回。ユーザー名の辞書を使った単純なヤツだけど、気分は良くない。
iptablesとかで制限してもキリないし、/etc/hosts.allowでsshdに接続するIPを制限しようかなぁとも思うけどイマイチ踏み切れずに放置中。パスワード認証を禁止してみるべきか、、、
linux-users MLに同じ話題があった。
こんな解決策を取ってる人もいる。sshdで認証に失敗したらそのIPアドレスからのアクセスをiptablesで一定期間閉じるそうだ。
ちなみにログはこんな感じ

Nov 1 07:38:31 hostname sshd[11459]: Illegal user gerencia from 217.19.28.186
Nov 1 07:38:33 hostname sshd[11459]: Failed password for illegal user gerencia
from 217.19.28.186 port 45017 ssh2

自宅ネットワークの耐障害性・冗長化

自宅ネットワークの耐障害性・冗長化 published on 自宅ネットワークの耐障害性・冗長化 へのコメントはまだありません

ちょっぴりメモ書き
長期不在中にWindowsサーバーの電源ユニットが壊れていた。家にいるなら1〜2日で復旧できるけど、長期不在の場合はそうもいかない。今後も家を空けることが多いので自宅のサーバーやネットワークの冗長化を考える必要性がある。

○自宅で運用しているサービスと重要度
・外向けDNS(kazu.tv)★★★
・内向けDNS(kazu.tvのサブドメイン)★☆☆
・DNSキャッシュサーバー(dnscache)★★★
・メールサーバー★★★
・外向けWebサーバー(www.kazu.tv)★★☆
・ファイルサーバー★★☆
・ADドメインコントローラー★☆☆
・DHCPサーバー★★★

重要度の基準
・自分以外にも使うか
・なくても何とかなるか

○各サービスの詳細と冗長化対応状況(○△×)
・外向けDNS(kazu.tv)★★★,○
tinydnsを使用。友人宅にセカンダリDNSがあるので問題なし。
・内向けDNS(kazu.tvのサブドメイン)★☆☆,×
SBS 2003のDNSを使用(AD統合)。名前が引けなくてもそれほど問題はない。セカンダリDNSは置いていない。
・DNSキャッシュサーバー(dnscache)★★★,○
dnscacheとSBS 2003のDNSを使用。
・メールサーバー★★★,×
qmailを使用。メールサーバーは1台だけ。
・外向けWebサーバー(www.kazu.tv)★★☆,×
apache。サーバーは1台だけ。
・ファイルサーバー★★☆,△
SBS 2003。ファイルのバックアップは取っているけど。
・ADドメインコントローラー★☆☆,×
SBS 2003。通常は自分しかドメインにログインしないのであまり重要ではない。DCは1台だけ(Windows Serverは高いし)
・DHCPサーバー★★★,×
SBS 2003。サーバーは1台だけ。家族のPC等はDHCPでアドレス取得。これが落ちるとアドレス取得ができず→Web&メールができず
○今後
重要度★★★かつ冗長化対応状況×のもの(メールサーバーとDHCPサーバー)の対策をしようと思うけど、IPアドレス一つだからメールサーバーの対策は難しそう。人のサーバーを間借りする訳にもいかないし。DHCPは@ITにあるこの方法でいこうと思う。

○2005/07/24 追記
Windows Server 2003の場合、同一セグメントにDHCPサーバーがあるとWindowsのDHCPサーバーは停止してしまうので、上記方法は使えなかった!

qmailのエラーは分かりづらい

qmailのエラーは分かりづらい published on qmailのエラーは分かりづらい へのコメントはまだありません

知り合いの会社のサーバーリニューアルの仕事をしている(現在進行形、、、)。久しぶりにqmailを触ったけど、いろいろはまった。
・POP3でメールを取ろうとすると”ERR unable to write pipe “というエラーメッセージ
→ 起動スクリプトの間違い(必要なファイルのパスが違ってた)
下のような起動スクリプトだが、checkpasswordのパスが違っていただけだった。qmail-popupがpipeを使ってcheckpasswordにデータを流すが、checkpasswordへのpipeが開けない、という意味なんだと思う。

#!/bin/sh
#PASSPROG=”/bin/checkpassword”
PASSPROG=”/usr/bin/checkpassword”
HOSTNAME=`hostname –fqdn`
exec /usr/bin/softlimit -m 3200000
/usr/bin/envdir /etc/relay-ctrl /usr/bin/relay-ctrl-chdir
/usr/bin/tcpserver -v -R -c 200 0 pop3
/var/qmail/bin/qmail-popup $HOSTNAME
$PASSPROG /usr/bin/relay-ctrl-allow /var/qmail/bin/qmail-pop3d Maildir 2>&1

参考サイトはなし
・tcpserverのエラー

error while loading shared libraries: libc.so.6: failed to map segment from shared object: Cannot allocate memory

→エラーメッセージの通り、単に割り当てるメモリが不足しているだけだった、、、softlimitの制限値を大きくすればよい。最近のglibcの場合は、以前のより多めにする必要がある。
参考サイト
・_no_mailbox_here_by_that_name._(#5.1.1)
→”no mailbox here by that name”といいつつも、/home/foo/Maildir/は存在する。そんな時は大体権限の設定がおかしい。所有者が正しいか?600か?を確認。
なんかその他にもこの1日でたくさんエラーが出たけど、結構忘れた。以下、記憶の断片。
・/var/spool/relay-ctrl/allowは700にしないとダメだった。(POP before SMTPを使ってる)
・qmail-smtpdの起動スクリプトはこんな感じ

exec /usr/bin/softlimit -m 5000000
/usr/bin/envdir /etc/relay-ctrl /usr/bin/relay-ctrl-chdir
/usr/bin/tcpserver -v -R -p
-c “$MAXSMTPD” -u $QMAILDUID -g $NOFILESGID 0 smtp
/usr/bin/relay-ctrl-check $SMTPD 2>&1

relay-ctrl-chdirを挟んでいないとき、わかりにくいエラーが出てダメだった。

FA? Virtual PC 2004

FA? Virtual PC 2004 published on FA? Virtual PC 2004 へのコメントはまだありません

以前の記事で、VPC 2004を使って2日くらいすると無線LANが使えなくなる、と報告したが、VMWareだとどうなるか試してみた。環境は殆ど一緒。
host側
OS:Windows XP Professional SP2 (firewall オフ)
LAN1: WLI-CB-G54 (192.168.0.x)
LAN2: カニチップだったはず(192.168.2.x)
VMware 4.5.2 (build 8848)

guest側
OS: Fedora Core 3
LAN1:192.168.0.y
LAN2:192.168.2.y
iptablesでNAT
hostとguestのLAN1、LAN2それぞれがブリッジってのもVPCの時と変わらず。

結果

VPCと同じ処理をさせたが、VPCの時は2日くらいでLANが使えなくなったけど、VMwareは5日くらいは大丈夫だった。安定性を求めるならVMwareに一日の長があるかな、と思った。

VPCはMicrosoftが提唱しているように過去の資産の利用、とかの使い方の方が賢いんだろうね。現在仕事している会社もクライアントをNT->XPにしたいんだけど、Win3.1時代に作ったアプリがWin95までしか動かないなんて事も結構あるみたいで、そういう時にはVPCは安いしMS製品だしピッタリのような気がする。

ってのが自分の中のFinal Answer。新しいバージョンが出たりしたらまた試してみるけど。

さて、これを書いている途中に「そういえばVMwareのバージョンっていくつだっけ?」と思い確認しに行ったところ、VMware上のLinuxがext-3のエラーでファイルシステムがRead-onlyになっているよ、、、これがVMwareの問題なのかFedora Core 3の問題なのかは不明。あるいは単にHWの問題かもしれない(中古PCだし、HDDの音も壊れそうな音に聞こえなくもない)

tinydns 内と外で応答を変える

tinydns 内と外で応答を変える published on tinydns 内と外で応答を変える へのコメントはまだありません

www.kazu.tv -> 43.244.202.178 なんだけど、NATなのでサーバーの実際のIPアドレスは 192.168.0.x となっている。

LAN内から www.kazu.tv という名前でアクセスしたい事がある(このblogとか、VirtualHostを使っている時など)。その時に 43.244.202.178 を返されると困る。今までは何も考えずに hosts ファイルに書いていたんだけど(c:windossystem32driversetchosts)、tinydnsの設定で実現できる事が分かった。

こんな感じ(関係するところだけ抜粋)。

%in:192.168
%ex
+www.kazu.tv:43.244.202.178:86400::ex
+www.kazu.tv:192.168.0.x:86400::in

この設定により、192.168.z.z からアクセスされた場合は 192.168.0.x を返す(実際には dnscacheが192.168.0.? で動いているので、www.kazu.tv の名前解決は クライアント->dnscache->tinydns という感じ)。