前の10件 | -

Samba 3.x お勉強 [samba]

Samba お勉強メモ
 ◆CentOS 5.x Samba 3.0.33-3.39.el5_8

・samba の共有はデフォルトで、Guestアクセスは無効
 パラメータ map to guest = Never

識別できないユーザによる認証をゲスト認証とみなす。(らしいが、認証を求められない。参考にしている本が間違っている?)
map to guest = Bad User

writeable = yes
   ⇒ readonly = no と同じ。(testparmコマンドでは変換されて表示される)

valid users = %S user01 @users +users

create mask = 744
⇒デフォルトから644変えたほうがよい? なぜオーナーに実行権限がつくのか。。

◆共有を確認するコマンド
  ■ Dos コマンド
   net view
net view /domain
net view /domain:WORKGROUP_NAME
net view \\HOSTNAME

■ samba-client コマンド
   net -S [ ip | HOSTNAME ] rpc share
net rpc share  
smbclient -L NetBIOS_NAME
※ smbclient コマンドのほうが、認証できなくても共有を表示できる?
    ※ -L  ⇒ samba変数 の %Lと同じ意味だと思われる。(NetBIOS名を指定)
      なぜ 『 L 』がNetBIOS名なのか。何の略、頭文字なのか。。。

    findsmb
smbtree [-N] -N ⇒ no-passの略らしい。実行時に認証パスワードを聞かれない。

  ■Direct Hosting SMB
   名前解決にNetBIOSを使わない。じゃあ何を使うか。DNS。
   ※後日検証
     \\コンピュータ名
       ⇒ NetBIOSが使われる。 port 137, 138 -> 139 で共有通信
     \\IPアドレス
       ⇒ DirectHosting SMBが使われる? (port 445)


◆ Sambaをドメイン参加 (認証の統合)
  securyty = domain
(password server = xxx.xxx.xxx.xxx)

・ドメイン参加
   Sambaのプロセスを止める。(smbだけでもOK? テストの時は一応nmbも止めて実施)

# net rpc join -U Administrator (-S PDC_NAME or IP)
※※ ドメインからの抜け方がわからない。


 ■ winbind を使ったユーザの統合
  ※ /etc/resolv.conf に指定するDNSを ADにする。(しないとユーザ情報が取得できない)
  


RHEL5.x (CentOS5.x) iptablesの初期設定 [iptables]

RHEL5.x ではRHEL6の様に最初は必ずiptablesが有効になるわけではないので、インストールのタイミングでiptablesを無効にしていると有効にしようと思ってもデフォルトポリシーファイルが無いためサービスが起動出来ません。

一からポリシーを書くのも難しいので、てっとり早くデフォルトポリシーを作る場合のメモ。

system-config-securitylevel コマンドでCUI環境でもGUIチックに設定が出来ますね。

system-config-securitylevel コマンドを実行し「セキュリティレベル」を有効に設定。
開けるポートを変更する場合は「カスタマイズ」を選択し任意のポートを設定。

※当然ですが、サービスは即時有効になる。

Windows 7  キャッシュされたログオンの無効方法 [Windows 7]

ドメインに参加しているPCはドメインコントローラがダウンしていても過去にログイン成功したキャッシュでログインしデスクトップにアクセス出来てしまう。
場合によっては、このキャッシュが良くない場合があるので無効にする手順のメモ。

ファイル名を指定して実行 (ウインドウズキー + R)
   ↓
「control admintools」を実行。 [管理ツール]が起動する。

[ローカルセキュリティ ポリシー] を起動。

[セキュリティの設定]

[ローカルポリシー] 

[セキュリティ オプション]

[対話型ログオン:キャッシュする過去のログオン数(ドメインコントローラが仕様できない場合)]
とたどる。

値を 0 にし、キャッシュを無効にする。

参考URL http://www.atmarkit.co.jp/fwin2k/win2ktips/473clogin/clogin.html


openssl コマンド 備忘録 (その1) [openssl]

SSL通信用に証明書とプライベートキーを作成するのだけど、Webで検索した結果をそのまま実行していて自分ではよく理解していないままだったので少しまとめました。
(自信が無いので間違っているかも)

■コマンド書式
 # openssl サブコマンド オプション


○作成系
 CSR の作成
 $ openssl req -new -key mykey.pem -out mycsr.pem    # 鍵を指定
 $ openssl req -new -keyout mykey.pem -out mycsr.pem    # 鍵も一緒に作成

 
 自己署名証明書の作成
 $ openssl req -new -x509 -key mykey.pem -out mycert.pem # 鍵を指定
 $ openssl req -new -x509 -keyout mykey.pem -out mycert.pem # 鍵も一緒に作成


 サブコマンド
 ・req
  証明書の署名要求(CSR)の作成。

 オプション
 ・-x509
  X509証明書を作成。(CSRに自己署名してX509証明書を作成するといういみなのかな)

 ・-keyout
  作成する秘密キーのファイル名を指定。
  指定しないと、デフォルトで「privkey.pem」になる。
 
 ・-nodes
  -keyoutと併用する事で、秘密キーのパスフレーズを省略し、秘密キーを暗号化しない。

 ・-days
  証明書の有効期限(日数)を指定する。
  省略すると有効期限は1ヶ月になる。

と言う事で、よく使う自己署名証明書の作成コマンドは下記の様にしている。
 # openssl req -new -x509 –keyout server.key -days 3650 –nodes -out server.crt

○表示系
$ openssl req -text -in mycsr.pem          # CSR の内容表示
$ openssl x509 -text -in mycert.pem        # X.509 証明書の内容表示


参考URL
  http://linux2.g.hatena.ne.jp/lnznt/20101107/1289139258

BIND check-spf の動作を検証してみた [BIND]

BIND 9.9.3、9.8.5、BIND 9.6-ESV-R9 から、check-spf ステートメントが追加されたとの事で動作検証をしてみました。

検証をしたBINDのバージョン  :  9.9.3-P2

●SenderID
  対応してない(と思われる)

●spf
  書式のチェックをしているのはTXTレコードのみ。

検証したレコード
★★ SPFレコード ★★
◆正しく記載したSenderID
 home.nerima.jp. IN SPF "spf2.0/pra,mfrom +ip4:10.0.0.10 +ip4:10.0.0.11 ~all"
 
◆正しく記載したspf
 home.nerima.jp. IN SPF "v=spf1 +ip4:10.0.0.10 +ip4:10.0.0.11 ~all"

◆誤記のSenderID
 home.nerima.jp. IN SPF "spf5.9/pra,mfrom +ip4:10.0.0.10 +ip4:10.0.0.11 ~all"

◆誤記のspf
 home.nerima.jp. IN SPF "v=spf1.0 +ip4:10.0.0.10 +ip4:10.0.0.11 ~all"


★★ TXTレコード ★★
◆正しく記載したSenderID
 home.nerima.jp. IN TXT "spf2.0/pra,mfrom +ip4:10.0.0.10 +ip4:10.0.0.11 ~all"

◆正しく記載したspf
 home.nerima.jp. IN TXT "v=spf1 +ip4:10.0.0.10 +ip4:10.0.0.11 ~all"

◆誤記のSenderID
 home.nerima.jp. IN TXT "spf5.9/pra,mfrom +ip9:10.0.0.10 +ip4:10.0.0.11 ~all"

◆誤記のspf
 home.nerima.jp. IN TXT "v=spf1.0 +ip9:10.0.0.10 +ip4:10.0.0.11 ~all" 

下図は検証結果。
bind check-spf 検証結果.png

※1 SPFレコードを検知したが、対応するTXTレコードが無い。
  named[28330]: [ID 873579 daemon.warning] zone home.nerima.jp/IN: 'home.nerima.jp' found SPF/SPF record but no SPF/TXT record found, add matching type TXT record

※2 TXTレコードを検知したが、対応するSPFレコードが無い。
  named[28486]: [ID 873579 daemon.warning] zone home.nerima.jp/IN: 'home.nerima.jp.' found SPF/TXT record but no SPF/SPF record found, add matching type SPF record

どちらか一方を記載した場合
■ SPFレコードのみ記載している場合。
  ※いずれも、対応するTXTレコードが無い!とのWanningが表示される。(SPFレコードに反応している)

■ TXTレコードのみ記載している場合。
  ※ TXTレコードの書式が正しい時はWarnningが出力。
    と言う事は、TXTレコードの書式が正しいかを確認出来ている。
    書式が正しくないTXTレコードはWarnningが出ない。
    今までの汎用的な使いかたとして判断していると思われる。

正しいペアを記載した場合
■ spf
  正しいSPFレコードとTXTレコードを記載している場合。
  ログは出ない。正しく記載出来ているから。

■ SenderID
  正しいSPFレコードとTXTレコードを記載している場合。
  Warnningが出る。(SenderID対応していないのでは?と疑い始める)

正しい記載と誤記のペアを記載した場合
■ spf :正しいSPFレコードと誤記のTXTレコードを記載している場合。
  ※1のwarnningが出る

■ spf :誤記のSPFレコードと正しいTXTレコードを記載している場合。
  ※3 ログが出ない(チェックが出来てないのでは?と疑い始める)

纏め
○ SPFレコードがある場合は、TXTレコードも無いとダメ!と怒られる
○ TXTレコードがspf ドだったら、対応するレコードのSPFレコードが無いとダメ!と怒られる。
   が、SPFレコードの書式が正しいかどうかはチェックしていないので、
   SPFレコードが誤記でも怒られない!
○ SenderIDは対応していない。
○ 正しいspf のSPFレコードとTXTのペアと、正しいSenderIDのSPFレコードとTXTレコードの
  ペアが存在した場合Warnnigは出ない。
  正しいspfレコードのペアが有れば1つあれば、他の記載が間違っていても
  良いと言う事になる。
試しにspfのSPFレコードとTXTレコードのペアを2つ記載して試してみたが、warnningは出なかった。

おまけ
 check-spf ステートメントの処理をフロー図にしてみました。
 (sourceを読んだわけではありません。検証した内容を整理したものですので必ずしも正確ではありません)
BIND spf-check フロー.png
タグ:BIND check-spf

Postfix transport の優先順位 [postfix]

Postfix のtransportは、sendmailで言えば、mailertableにあたる。
特定の宛先に対してメールの転送先を指定するスタティック配送テーブルです。

ただ、メールを処理する時にsendmailのmailertableとは参照される順番が
違うようです。

Postrix : transport > mydestination
sendmail : wマクロ、wクラス > maileertable

例えば、メールサーバ自身へlocal配送すべきメールを受信した場合、
スタティック配送テーブルにマッチする条件が書かれていると
Postfixの場合は、transportに記載されている内容のとおりメールを
転送しようとする。
sendmailの場合は、まず自身(Local)宛てか確認。自身宛てで無い場合
転送先を検索(mailertabke ⇒ SMART HOST ⇒ MX配送)するので
mailertableを検索する前にLocal配送の処理を行う。

Postfixのtransportの設定変更の際、下記の様な内容を追加したりする場合は
注意が必要(と自分に言い聞かせる)

・サブドメイン宛ての転送ルールを追加する。(.domain   transport:nexthop)
・その他すべてを表すアスタリスクを追加する。(*  transport:nexthop)

上記を追加する必要がある場合は、transport へLocal配送したいドメインを記載し、
nexthopにLocalと記載する。(localhost.domain   local:)

そして、main.cfのmydestinationには記載しても意味が無いから消す。

※ちなみに、 *  transport:nexthop  は relayhostより優先される。(当然か)

メールサーバのメールExchangeの基本は下記の様に覚えていた。
  1.自身あてか。
  2.自身宛てで無い場合、リレーが許可されているか。
  3.リレーが許可されている場合、スタティック配送が設定されているか。
  4.スタティック配送に該当しない場合、デフォルト配送が設定されているか。
  5.デフォルト配送に該当しない場合直接配送(MX配送)

昔の考え方なのかな。。

Postfixの処理を自分なりに整理すると、
  1.リレーが許可されているか。     1-1.許可されている場合、スタティック配送が設定されているか。(transport)⇒2へ     1-2.許可されていないばあい、自身(Local)宛てか。       1-2-1.自身宛ての場合、Local配送。       1-2-2.自身あてで無い場合、クライアントへリレー拒否を応答する。        2.スタティック配送で無い場合、自身(Local)宛てか。   3.自身(Local)宛てで無い場合、デフォルト配送が設定されているか。(relayhost)   4.デフォルト配送に該当しない場合直接配送(MX配送)

やっぱり慣れないな。。


Postfix 保留queue の配送先変更 (transport) [postfix]

記憶があいまいだったので検証してみました。

# mailq
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
B9A2CE3958 2936 Tue Aug 6 21:23:53 user@ak.fujimi.hoge.jp
(connect to 172.16.xxx.229[172.16.xxx.229]:25: No route to host)
root@yahoo.co.jp

-- 3 Kbytes in 1 Request.

/etc/postfix/transportに記載してある転送先IPを変更。
172.16.xxx.229 ⇒ 172.16.xxx.223

# postmap /etc/postfix/transport
# mailq
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
B9A2CE3958 2936 Tue Aug 6 21:23:53 user@ak.fujimi.hoge.jp
(connect to 172.16.xxx.229[172.16.xxx.229]:25: No route to host)
root@yahoo.co.jp

変更されない。。。

Postfixを reloadしてみる。
# service postfix reload

# mailq
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
B9A2CE3958 2936 Tue Aug 6 21:23:53 user@ak.fujimi.hoge.jp
(connect to 172.16.xxx.229[172.16.xxx.229]:25: No route to host)
root@yahoo.co.jp

変更されない。。。

postqueue で強制配送してみる。

# postqueue -f
[root@mxpf postfix]# mailq
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
B9A2CE3958 2936 Tue Aug 6 21:23:53 user@ak.fujimi.hoge.jp
(connect to 172.16.xxx.223[172.16.xxx.223]:25: Connection refused)
root@yahoo.co.jp

-- 3 Kbytes in 1 Request.

反映されているのが確認できた。問題無いようだ。

postfix と sendmail の配送テストコマンド [メールサーバー]

メールサーバを構築すると、送信したメールがどの配信エージェントでどこへ配送されるかをテストする必要が出てくる。
sendmailの場合、sendmail -bt コマンドでテストは可能だがPostfixの場合は少しやり方が変わってくる。
sendmail -bv または、sendmail -v コマンドなどで確認が可能。
その動作について簡単にまとめてみた。


■MTA が sendmailの場合 
# sendmail -bv sysadm@ex.home.xx
sysadm@ex.home.xx ... deliverable: mailer local, user sysadm

という具合に、sendmail -bt コマンドの結果をよりわかりやすく表示してくれる。
※実際には配送されない


■MTA が Postfixの場合 その1
# sendmail -bv sysadm@ex.home.xx
Mail Delivery Status Report will be mailed to .

※実際には配送されないが、実際にサーバに接続に行く。
※送信元アドレスにレポートが配送される。

結果はメールで通知したから確認してね、って事。
rootでメール送信をしているので、root宛にレポートが送信される。

実際にサーバーに接続に行くので、DNSの設定や、特に設定を変えていない限り、25/tcpで外部へ出れる環境でないと、エラーのレポートが届く。
local配送であったり、transport_mapなどで内部へのstatic配送確認であれば特に困らない。

■MTA が Postfixの場合 その2
# sendmail -v sysadm@ex.home.xx
Subject:test mail . Mail Delivery Status Report will be mailed to .

※実際に配送される。
※送信元アドレスにレポートが配送される。


多機能でsendmailに出来ないことも出来るPostfixだが、この辺はsendmailの方が便利だ。


sendmail の癖で SMTP通信の詳細を表示させるために、ついついsendmail -v を使ってしまう。^^;


メールサーバーの負荷テスト [メールサーバー]

とりあえずメモ。

Postfix  付属の 負荷試験ツール

受信側:smtp-sink  
送信側:smtp-source

smtp-sink は受信したものをすべて破棄。ブラックホールサーバ。

smtp-sourceのオプション
   -c
     配送件数を表示

   -r
     配送回数の指定

   -M
     HELO(EHLO?) コマンドのホスト名を指定

   -f
     MAIL FROM アドレス

   -t
     RCPT TO アドレス

   -S
     Subject ヘッダの指定

   -F
    メッセージ本文用のファイル指定(必須ではない)

こんな感じで実行

# smtp-source -c -f kaka@fujimi.home.jp -t kaka@yahoo.co.jp -r 10 -M mail.fujimi.home.jp -S "Test Mail" -F MessageBody.txt 10.0.1.x

ちなみにvisual C#で同じようなものを作る予定。


CentOS Samba3x パッケージのエラーメッセージ [samba]

CentOS 5 のSamba3x パッケージ導入で遭遇したエラーメッセージ

Could not find child ?・・・ -- ignoring
3.5.10のバグで 3.5.11で改修されるらしいのですが、CentOS 5の最新パッケージは3.5.10のまま上がってません。
/etc/samba/smb.conf に printcap cache time の時間設定を追記することで暫定対処。
詳細は CentOS Bug Tracker にのています。(CentOS 6 ですが)  
http://bugs.centos.org/view.php?id=5455

/etc/samba/smb.conf の [global] セクション下に追記
printcap cache time = 0

smbd_open_once_socket: open_socket_in: アドレスは既に使用中です
/etc/samba/smb.conf の [global] セクション下に追記
socket address = ”SambaサーバーIPアドレス”

getpeername failed. Error was 通信端点が接続されていません Mar 21 20:43:05 (サーバー名) smbd[18385]: read_fd_with_timeout: client 0.0.0.0 read error = 接続が相手からリセットされました.
/etc/samba/smb.conf の [global] セクション下に追記
smb ports = 139

よくわからんが、こういう対処法らしい。

それと、Sambaセットアップ完了後にIPアドレスを変更すると、NetBIOS名とIPアドレスの変換テーブルに以前のIPアドレスが載ったまま消ずエラーログを吐くので、ひと手間必要。 wins.datを削除する。
    
# rm /var/lib/samba/wins.dat



前の10件 | -

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。