tweeeetyのぶろぐ的めも

アウトプットが少なかったダメな自分をアウトプット<br>\(^o^)/

Mac(OS X)とVMWare Fusion7(CentOS5.3)で開発環境を作る-Samba設定、iptables編集、からの共有フォルダにアクセスする

はじめに

前回は共有フォルダの設定をしました。
しかし前回の共有設定では、好きなようにゲストOSに作った開発環境へのアクセスができないのでsamba経由でアクセスすることにします。

やりたい内容はこちら

ながれ

  1. 注意&環境
  2. sambaインストール
  3. samba設定
  4. iptables設定
  5. つないでみる

1. 注意&環境

注意

この設定は一般的なサーバへのsamba設定ではありません。
あくまでもmac内のVMWare内(共にローカル)に
sambaをインストールして使うだけなのでセキュリティはあんまり考慮してない設定です。

環境

今回はこんな環境で行ってます

2. sambaインストール

sambaとは

そのまま引用ですが、一応sambaとはも載せておきます。

SambaLinuxシステム上でWindowsサーバー相当の機能を実現するソフトウェア。
Sambaを使用することで、Linuxシステムを
Windowsネットワーク内のファイルサーバーに仕立てることが可能。
またLinuxマシンとWindowsマシンとの間でのデータ交換が簡単に行える。
参考→第1回Sambaとは

次からがインストール

インストール

インストールはそのままやるだけですね。

※ yumでインストール
# sudo yum install samba

※ 入ったかどうかバージョンを見てみる
# sudo smbd -V
Version 3.0.33-3.40.el5_10

※ 自動起動の確認
# sudo chkconfig --list | grep smb
smb             0:off 1:off 2:off 3:off 4:off 5:off 6:off

※ 自動起動オプションをON
# sudo chkconfig smb on

※ 再度確認
# sudo chkconfig --list | grep smb
smb             0:off 1:off 2:on  3:on  4:on  5:on  6:off

3. samba設定

設定は主に

  • 設定ファイルの編集
  • ユーザの追加

を行います

設定ファイルの編集
※ 念のため設定ファイルをバックアップ
# sudo cp -ap /etc/samba/smb.conf /etc/samba/smb.conf.org

※ confを編集
# sudo vi /etc/samba/smb.conf
---- vi追記 ----
※ 一番下に追加。hogehogeのところは何でもいい
[hogehoge]
        comment = hogehoge directory
        path = /home/hoge
        public = yes
        browseable = yes
        writable = yes
        hosts allow = 127. 192.168.
--------------- 

※ 再起動
# sudo /etc/init.d/smb restart

設定に関してはこちらを参考にさせて頂きました!
Sambaのユーザー認証とファイルアクセス権の設定

それぞれのパラメータはこんな感じ

パラメータ名 値の例 説明
comment aiueo 共有名の説明
path /var/hoge 共有する対象ディレクトリを指定
browseable yes(no) 「ネットワークコンピュータ」に表示するかどうか。
public yes(no) Sambaサーバにアカウントを持たないユーザーがアクセスした場合に、それを特定のUNIXアカウント(ゲストアカウント)にマッピングしてアクセスを許可する設定
writable yes(no) 書き込み許可の設定。noだと書き込み禁止
hosts allow 127. 特定のIPアドレスからしか接続できないように設定

パラーメタはこちらのサイトが参考になりました
Sambaのユーザー認証とファイルアクセス権の設定

Sambaのユーザー設定

Sambaのユーザ設定をします。
macからアクセスするときに使うユーザのID/PASSですね。

一般的なsambaの設定だとsambaというユーザを作るところからが多いですが、
今回はローカル(vmware)にアクセスするだけなので
既にいるユーザを使ってアクセスすることにします。

※ pdeditコマンドでユーザの追加。hogeはすでにいるユーザ
# sudo pdbedit -a hoge
new password:
retype new password:
Unix username:        hoge
NT username:          
・・・省略・・・

※ 再起動
# sudo /etc/init.d/smb restart

ユーザの設定に関してはこちらを参考にさせていただきました。
Mac OSX LionのVirtualBox 4.1(CentOS 6)上でsambaを試す

補足

pdeditですが、既存ユーザじゃないユーザを指定するとこんな感じになります。

# sudo pdbedit -a fuga
Cannot locate Unix account for fuga

つまり

CentOS上に存在しないユーザーIDは指定できません

4. iptables設定

iptablesを設定します。 iptablesについては割愛しますが、
vmwareいれたてで/etc/sysconfig/iptablesファイルが無い状態なので
新規で作っちゃいます。

こんな感じにしました。

※ vi編集
# vi /etc/sysconfig/iptables
---- vi編集 ----
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]

-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT

-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# SSH, HTTP, HTTPS, SSH(22)
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22    -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80    -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443   -j ACCEPT

# samba
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 137:138 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 139:445 -j ACCEPT

-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited

COMMIT
---------------

※ iptablesを再起動
# sudo /etc/init.d/iptables restart

※ 確認
# sudo /sbin/iptables -L

この中でsambaに関係するのは下記2行。
すでにiptablesや設定がある場合はこの行だけ追加すればOK

# samba
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 137:138 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 139:445 -j ACCEPT

5. つないでみる

ってことでようやくつないでみます。

一応VMWare(Centos)のipを確認
# ifconfig | grep "inet addr"
          inet addr:192.168.239.129  Bcast:192.168.239.255  Mask:255.255.255.0
          inet addr:127.0.0.1  Mask:255.0.0.0

ということでipが192.168.239.129という前提で進めます。

mac側からつないでみる

Finderメニュー > 移動 > サーバへ接続を開きます。 ショートカットはcommand + k f:id:tweeeety:20140922164151p:plain

サーバアドレス欄にsmb://192.168.239.129と入力して接続 f:id:tweeeety:20140922164136p:plain

pdbeditで設定したユーザのID/PASSを入力して接続 f:id:tweeeety:20140922164301p:plain

finderにこんな感じで追加されてアクセスできるようになりました。 f:id:tweeeety:20140922164313p:plain

補足

ここで終わるはずでしたが、実際はまだ2つ問題がありました。

こちららの解決は別途下記の記事で書きました。

共有フォルダ内にシンボリックリンクフォルダがあると
そのシンボリックリンクにはアクセスできないので解決方法をメモ
Mac(OS X)とVMWare Fusion7(CentOS5.3)で開発環境を作る-Sambaの設定(smb.conf)でシンボリックリンクにもアクセスできるように設定する

samba経由でアクセス権がかわってしまう、そんなときに
macからCentOSに入れたSamba経由でファイルを作成・編集すると勝手にパーミッション(permission)が変更されてしまう対応(umask、chmod、create mask、directory maskへんのおさらい)

まとめ

昔やったのに最初の環境設定とかって少し違うだけで戸惑ったり
一回やったきり忘れることが多いですがメモって記憶のインデックスにだけでも残ってくれるこを願います\(^o^)/