• Samba3で一般的なファイルサーバー構築完全版 – その他設定 p.3

    << | 1 | 2 | 3 |

    前回でSambaサーバー自体の設定は完了しました。

    今回は、iptables設定や自動起動スクリプトの設置等、まわりの設定を行っていきます。

    (CentOS / Fedora / RH*の方のみ)
    まずは、使用するポートを開けましょう。

    使用するポートは、次の4つです。

    nmbd : 137/UDP、138/UDP
    smbd : 139/TCP、445/TCP

    nmbdは、マイネットワークでマシンをブラウジングする機能を提供します。
    smbdは、本来のファイル転送の機能を提供します。
    ファイル転送のみであれば、139/TCP(もしくは445/TCP)のみを開けば機能します。

    私は普段NetBIOS over TCP/IPしか使わないので139/TCPのみしか開放していませんが、4つ全てのポートを開けておけば確実でしょう。今回は紹介しませんが、SWATを利用される場合は 901/TCP も開いておきましょう。

    ■ iptablesの設定 (CentOS / Fedora / RH*)

    # vi /etc/sysconfig/iptables
    

    この行を追加
    ・ /etc/sysconfig/iptables

    -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 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
    

    SWAT利用の場合は901/TCPも

    -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 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 -m state --state NEW -m tcp -p tcp --dport 901 -j ACCEPT
    -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
    
    
    # service iptables restart
    
    

    ■ ライブラリのパスを通す (CentOS / Fedora / RH*)

    ここまで来たら後はsambaを起動するだけですが、configure オプションに –prefixを設定したのでライブラリのパスが通っていない可能性があります。

    試しに nmbd を起動してみて次のようなエラーが出たらパスを通しましょう。

    # /usr/local/samba3/sbin/nmbd
    /usr/local/samba3/sbin/nmbd: error while loading shared libraries: libtalloc.so.1: cannot open shared object file: No such file or directory
    

    ライブラリのパスを通す。

    (CentOS / Fedora / RH*)
    # echo "/usr/local/samba3/lib" > /etc/ld.so.conf.d/samba.conf # ライブラリのパスを設定
    # ldconfig # パスをキャッシュ化する。 # 設定したパスを通す
    

    パスを通したら起動できるかを確認。
    無事にライブラリが読み込まれると起動します。

    
    # /usr/local/samba3/sbin/nmbd
    
    

    何も表示されなければ起動してます。
    起動したら止めておいてください。

    
    # killall nmbd
    
    

    ■ 動作確認

    nmbd、smbd を起動します。

    # /usr/local/samba3/sbin/nmbd
    # /usr/local/samba3/sbin/smbd
    

    起動したらWindowsからアクセスしてみます。
    マイコンピュータかIEを開いてアドレスバーのところに次のように入力します。

    \\[sambaサーバーのIPアドレス]\

    既にファイルサーバーとして機能するはずです。

    プロセスは一度落としておきます。

    
    # killall nmbd smbd
    
    

    ■ 自動起動スクリプト

    ■ OS起動時に起動してくれさえすればいい場合 (RHクローン/*Linux/*BSD)

    ・ vi /etc/rc.local

    # nmbd
    if [ -x /usr/local/samba3/sbin/nmbd ]; then
      /usr/local/samba3/sbin/nmbd -D
    fi
    # smbd
    if [ -x /usr/local/samba3/sbin/smbd ]; then
      /usr/local/samba3/sbin/smbd -D
    fi
    

    ■ RHのクローンをお使いでchkconfigでプロセスを管理したい場合。

    chkconfig用の起動スクリプト作成。

    ・ vi /etc/rc.d/init.d/samba

    
    #!/bin/sh
    #
    # Startup script for samba
    #
    # chkconfig: 345 85 15
    # description: samba
    
    # Source function library.
    . /etc/rc.d/init.d/functions
    
    SMBD='/usr/local/samba3/sbin/smbd'
    NMBD='/usr/local/samba3/sbin/nmbd'
    
    SMBPID='/usr/local/samba3/var/locks/smbd.pid'
    NMBPID='/usr/local/samba3/var/locks/nmbd.pid'
    
    case "$1" in
    start)
      echo -n "Starting samba"
      $SMBD -D
      $NMBD -D
      echo
      ;;
    stop)
      echo -n "Shutting down samba"
      PIDS=`cat $SMBPID`
      PIDS="${PIDS} `cat $NMBPID`"
      kill $PIDS
      echo
      ;;
    restart)
      $0 stop
      $0 start
      ;;
    *)
      echo "Usage: $0 {start|stop|restart}"
    
    exit 1
      esac
    
    exit 0
    
    # chmod +x /etc/rc.d/init.d/samba
    # chkconfig --add samba # chkconfigに追加
    # service samba start # 起動してみる
    # ps ax | grep samba # 起動できてる?
    1737 ? Ss 0:00 /usr/local/samba3/sbin/smbd -D
    1739 ? Ss 0:00 /usr/local/samba3/sbin/nmbd -D
    1740 ? S 0:00 /usr/local/samba3/sbin/smbd -D
    1742 pts/0 S+ 0:00 grep samba
    
    # chkconfig samba on  # OS 起動時に service samba start を実行
    

    これで一通り作業は終了です。

    # service samba start
    # service samba stop
    

    でプロセスを管理できます。

    << | 1 | 2 | 3 |