Hatena::ブログ(Diary)

labunix の ラボゆにっくす このページをアンテナに追加 RSSフィード Twitter

 
labunix の ラボゆにっくす
labunix の ラボUnix(はてなブログ)
 | 

2012/10/13 debianのsambaを「tcp/445」のみに制限する このエントリーを含むブックマーク このエントリーのブックマークコメント


■sambaのリッスンポートを「tcp/445」のみに制限する(for Squeeze)。
 注意点は以下の通り。タイトルは紛らわしいが読めば分かるので、ここでは触れない。

 ポート445(ダイレクト・ホスティングSMBサービス)に注意
 http://www.atmarkit.co.jp/fwin2k/win2ktips/088directhostedsmb/088directhostedsmb.html

■現状の設定の確認。
 これを使わないようにする。

$ sudo testparm -s -v 2>&1 | grep "smb ports\|netbios"
        netbios name = VMAMDDEBIAN
        netbios aliases =
        netbios scope =
        smb ports = 445 139
        disable netbios = No

■「smb.conf」には無い設定項目。つまりデフォルト。

$ sudo grep -v "^#\|\\$" /etc/samba/smb.conf | grep -i "ports\|netbios"

■netbios関連のポート。

$ grep '13[789]/' /etc/services
netbios-ns      137/tcp                         # NETBIOS Name Service
netbios-ns      137/udp
netbios-dgm     138/tcp                         # NETBIOS Datagram Service
netbios-dgm     138/udp
netbios-ssn     139/tcp                         # NETBIOS session service
netbios-ssn     139/udp

■「global」に設定。

$ sudo grep -v "^#\|\\$" /etc/samba/smb.conf | grep "ports\|netbios"
smb ports = 445
disable netbios = yes

■broadcastも止めたい。

$ sudo testparm -v -s 2>&1 | grep "broad\|multi\|cast"
        nmbd bind explicit broadcast = Yes

■リッスンポートを確認。

$ netstat -an | grep "13[789]\|445"
tcp        0      0 192.168.188.188:445        0.0.0.0:*               LISTEN

■「hosts allow」と「hosts deny」
 後述するが、「LAN Manager」によるSambaバージョンの隠蔽は
 オプションの変更が推奨されていない。

 パスワード制限でゲストは許可していないにしても、IP制限は必須。
 デフォルトでは「smb.conf」内に設定項目すら無いので注意する。

$ sudo testparm -s -v 2>&1 | grep hosts
        name resolve order = lmhosts host
        init logon delayed hosts =
        hosts allow = 192.168., 172.16.
        hosts deny = ALL

□以下、確認方法。

■「smbstatus」にデバッグオプションをつけると、「testparm」と同様の結果が見れる。
 ※今回行った変更すべてを検索。

$ sudo smbstatus -d 10 2>&1 | grep "ports\|netbios\|broad\|hosts [ad]" | sort -u
doing parameter disable netbios = yes
doing parameter hosts allow = 192.168.,172.16.
doing parameter hosts deny = ALL
doing parameter nmbd bind explicit broadcast = no
doing parameter smb ports = 445

■以下で示した警告は「smbstatus」でも出る。

 samba3のtestparmで出る「rlimit_max」を無視する理由
 http://d.hatena.ne.jp/labunix/20121012

$ sudo smbstatus -d 10 2>&1 | grep rlimit | sort -u
rlimit_max: rlimit_max (1024) below minimum Windows limit (16384)

■「445/tcp」は「net view」出来ます。
 「server string = %h server」が表示される。「%v」(バージョン情報)は含まない。

> net view \\192.168.188.188
\\192.168.188.188 の共有リソース

vmamddebian server

共有名   タイプ  使用  コメント

-------------------------------------------------------------------------------
labunix  Disk          Home Directories
コマンドは正常に終了しました。

■「netbios」が使えないことを確認(debian)。

$ nmblookup -S `hostname`
querying vmamddebian on 192.168.188.255
name_query failed to find name vmamddebian

■「netbios」が使えないことを確認(WinXP)> nbtstat -a 192.168.188.188

ローカル エリア接続:
Node IpAddress: [192.168.188.155] Scope Id: []

    Host not found.

■WinXP自身による「netbios」問い合わせは可能(WinXP)
 ※「ぼっち」なので、ワークグループ「MSHOME」のマスターブラウザ。

> nbtstat -a 192.168.188.155

ローカル エリア接続:
Node IpAddress: [192.168.188.155] Scope Id: []

           NetBIOS Remote Machine Name Table

       Name               Type         Status
    ---------------------------------------------
    DUMMY-WINXP    <00>  UNIQUE      Registered
    MSHOME         <00>  GROUP       Registered
    DUMMY-WINXP    <20>  UNIQUE      Registered
    MSHOME         <1E>  GROUP       Registered
    MSHOME         <1D>  UNIQUE      Registered
    ..__MSBROWSE__.<01>  GROUP       Registered

    MAC Address = XX-XX-XX-XX-XX-XX

■WinXPへの「netbios」問い合わせは可能(debian)。

$ nmblookup -S -W MSHOME -A 192.168.188.155
Looking up status of 192.168.188.155
        DUMMY-WINXP     <00> -         B <ACTIVE>
        MSHOME          <00> - <GROUP> B <ACTIVE>
        DUMMY-WINXP     <20> -         B <ACTIVE>
        MSHOME          <1e> - <GROUP> B <ACTIVE>
        MSHOME          <1d> -         B <ACTIVE>
        ..__MSBROWSE__. <01> - <GROUP> B <ACTIVE>

        MAC Address = XX-XX-XX-XX-XX-XX

■脆弱性チェックを行う。

$ w3m -dump https://raw.github.com/labunix/penetration/master/penetration.sh > penetration.sh
$ chmod +x penetration.sh
$ sudo ./penetration.sh 192.168.188.188
...
Host script results:
|_ nbstat: ERROR: Name query failed: ERROR
|  smb-os-discovery: Unix
|  LAN Manager: Samba 3.5.6
|  Name: WORKGROUP\Unknown
|_ System time: 2012-10-13 20:54:37 UTC+9
...

■「smbstatus」で誰も参照していない場合の応答。

$ sudo smbstatus

Samba version 3.5.6
PID     Username      Group         Machine
-------------------------------------------------------------------

Service      pid     machine       Connected at
-------------------------------------------------------

No locked files

■「smbstatus」でWinXPからdebianのファイル共有を行ったところ。

$ sudo smbstatus
[sudo] password for labunix:

Samba version 3.5.6
PID     Username      Group         Machine
-------------------------------------------------------------------
10850     labunix       labunix       dummy-winxp   (192.168.188.155)

Service      pid     machine       Connected at
-------------------------------------------------------
IPC$         10850   dummy-winxp    Sat Oct 13 22:04:55 2012

No locked files

■該当箇所の確認。
 「lm announce」行がそれのようだ。

$ sudo testparm -s -v 2>&1 | grep announce
        announce version = 4.9
        announce as = NT
        lm announce = Auto
        remote announce =

■「lm announce」は受信のみ行い、受け取った情報を以降送信するようになる。
 この値の変更は行わない。

$ man smb.conf | grep -A 12 "lm announce .*G"
       lm announce (G)

           This parameter determines if nmbd(8) will produce Lanman announce
           broadcasts that are needed by OS/2 clients in order for them to see
           the Samba server in their browse list. This parameter can have
           three values, yes, no, or auto. The default is auto. If set to no
           Samba will never produce these broadcasts. If set to yes Samba will
           produce Lanman announce broadcasts at a frequency set by the
           parameter lm interval. If set to auto Samba will not send Lanman
           announce broadcasts by default but will listen for them. If it
           hears such a broadcast on the wire it will then start sending them
           at a frequency set by the parameter lm interval.

■「lm interval = 0」にすれば実質停止するのだが、上記脆弱性チェックには影響が無いので、設定はしない。

$ man smb.conf | grep -A 10 "lm interval .*G"
       lm interval (G)

           If Samba is set to produce Lanman announce broadcasts needed by
           OS/2 clients (see the lm announce parameter) then this parameter
           defines the frequency in seconds with which they will be made. If
           this is set to zero then no Lanman announcements will be made
           despite the setting of the lm announce parameter.

           Default: lm interval = 60

           Example: lm interval = 120

■ところでnetbios名が使えなくなったので、「hosts」かDNSで名前解決を行う。
 Windowsで「hosts」の設定は例えば以下のようになる。
 Windowsはnetbios名が使えるので、最後の行は実際には不要。
 管理場所をバラバラにしないようにする以外の意味は無い。

> type c:\WINDOWS\system32\drivers\etc\hosts | find /V "#" | findstr "[0-9]"
127.0.0.1       localhost
192.168.188.188 vmamddebian
192.168.188.155 demmy-winxp

 | 
labunix のラボゆにっくす <過去記事一覧> 閲覧回数:1401553
プロフィール

labunix

labunix

labunix の ラボゆにっくす

labunix のブックマーク

1. JPCERT コーディネーションセンター Weekly Report
2. ランサムウエア被害に遭っても慌てない、全自動のデータ保護ソリューション:日経 xTECH Active
3. ヤフーの米国法人Actapio、クラウドインフラの統合制御技術「Gimbal」をOSSとして公開 - クラウド Watch
4. トレンドロジック変更・ミュート機能についてお知らせ - Qiita Blog
5. ITベンダー34社によるサイバーセキュリティ技術協定、「Cyber Security Tech Accord」とは? (1/3):EnterpriseZine(エンタープライズジン)
6. 「実装のスピード感に驚いた」 NewsPicks、SPEEDAの開発を支えるユーザベースのカルチャーとは - Qiita:Zine
7. 邪魔な物体を塗りつぶすだけでAIが画像を違和感ないレベルに自動修正する技術「Image Inpainting」をNVIDIAが公開 - GIGAZINE
8. 2017年は全36機種を発売 IIJが「格安SIMで端末数ナンバー1」を目指す理由|BIGLOBEニュース
9. HTML5ゲームプラットフォーム「enza」がサービス開始--「シャニマス」を配信 - CNET Japan
10. Kotlinにおける継承、オーバーライド、抽象クラス、インタフェースとスマートキャスト (1/3):Android Studioで始めるKotlin入門(5) - @IT
11. 日立、嵐出演のCM新シリーズを発表、第1弾は相葉雅紀さんが「ハピネス」役に - 家電 Watch
12. SQL Server 2008ユーザーが2017にアップグレードすることで得られるメリット (1/3):EnterpriseZine(エンタープライズジン)
13. 【連載】にわか管理者のためのLinux運用入門 [123] Windows 10でLinuxを使う (その23) - WSLコンソールにタブとコピペ機能|サーバ/ストレージ|IT製品の事例・解説記事
14. MSがIoTセキュリティソリューション「Azure Sphere」にLinuxを採用!? - 阿久津良和のWindows Weekly Report | マイナビニュース
15. ALSI InterSafe Gateway Connectionで実現する「多層防御のクラウド化」 - TechRepublic Japan
16. クラウドブリック、「IP評価サービス・ウェブ脆弱性情報データベース・WAF性能評価ツール」3種のサービスを提供開始:時事ドットコム
17. エリア指定で自動離陸・飛行・撮影・着陸、ドローン向け商用クラウドサービス - ソフトバンク C&S | マイナビニュース
18. 中小企業団体向けサイバー対策支援 | NEWS & TOPICS | リスク対策.com(リスク対策ドットコム) | 新建新聞社
19. サンコー、ノンフライ調理もできるドーム型の「塊肉回転コンベクションオーブン」を発売 | 理美容・家電 | マイライフニュース
20. 三菱総研DCSエンタープライズマネージドクラウドサービス「FINEQloud」に仮想セキュリティ・ゲートウェイ/UTM | ニコニコニュース