ファイル共有サーバー構築

サーバー構築

インフラエンジニアのしずくです<(_ _)>

今回はCentOS8上にファイル共有サーバーを構築し、Windows10からアクセスする手順を説明させていただきます♪

【利用環境】

  • ファイル共有先へアクセスするのはWindows10
  • ADは利用していない環境(WORDKGROUP環境)
  • プリンタサーバーは使用しない
  • Sambaサーバー上で作成したユーザーのみでアクセス可能

【前提条件】

CentOS8の構築とssh接続が完了していることです。
自分はこちらのCUI構築ssh接続設定の手順を実施した状態で作業しました。

【仕組み】

今回はSambaとnmbを使用してファイル共有サーバーを構築します♪
Sambaとは、ファイル共有のサービスです。
nmbとは、NetBIOSでの名前解決を行うサービスです。
NetBIOSでの名前解決とは、Sambaのconfigファイルで指定したホスト名でクライアントから接続できるようにする仕組みです。
これによりファイルサーバーのIPアドレスによる接続ではなく、ホスト名による接続が可能になります。

【SELinuxの無効化】

SELinuxとは?

SELinuxとはLinuxOSでデフォルトで使用されている複雑なセキュリティ対策の仕組みです。
こちらが有効になっていると予期しないエラーによりサービスを正常に利用できないことがありますので、
SElinuxの停止と無効化を行います♪

SELinuxの無効化手順

SELinuxの設定を無効にします。
※サーバーの再起動が必要となります。

getenforce
cp -pr /etc/selinux/config /etc/selinux/config_org
sed -ie "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
shutdown -r now
getenforce

【ホスト名変更】

ホスト名(Linuxサーバーの名称)の変更を行います♪
※ ここでは「fs」という名称に変更しています

hostname
nmcli general hostname fs
hostname

【パッケージのインストール】

ファイルサーバーに必要なパッケージがをインストールします♪

dnf list installed samba*
dnf -y install samba
dnf list installed samba*

【Sambaの起動】

下記のコマンドにてsmbサービスを起動します。

systemctl status smb nmb
systemctl start smb nmb
systemctl status smb nmb

下記のコマンドにてsmbサービスの自動起動設定を行います。

systemctl is-enabled smb nmb
systemctl enable smb nmb
systemctl is-enabled smb nmb

【FireWall設定】

下記のコマンドにてFireWallの設定を変更します。
※smbプロトコルの通信許可の設定を行います。

firewall-cmd --list-all
firewall-cmd --add-service=samba --permanent
firewall-cmd --reload
firewall-cmd --list-all

【Sambaの設定】

設定編集方法

下記のコマンドにてSambaの設定ファイルのバックアップを取得します♪

ls -la /etc/samba/smb.conf*
cp -p /etc/samba/smb.conf /etc/samba/smb.conf_org
ls -la /etc/samba/smb.conf*

こちらのコマンドで設定ファイルの編集を行います♪
※ファイルの編集モードに入るには「i」キー、編集モードから抜ける場合は「esc」キー、ファイルを保存して閉じる場合は編集モードから抜けた状態で「:wq」、ファイルを保存せず閉じる場合は編集モードから抜けた状態で「:q!」を押してください♪(編集モード中は画面下部に「INSERT」の文字が見えます)

vi /etc/samba/smb.conf

設定変更内容(ご自身にあった設定に置き換えていただく必要はあります)

今回の条件では下記のような設定ファイルへ内容を変更します。
※各行の先頭に「#」が存在する行はコメントアウト行となり、設定は読み込まれません。

[global]
workgroup = WORKGROUP
server string = SAMBA SERVER Version %v
netbios name = fs
security = user
 
passdb backend = tdbsam
 
dos charset = CP932
wins support = yes
load printers = no
disable spoolss = yes
#------------------
[Share]
comment = Share Folder for All Users
path = /home/share/
browsable = yes
read only = no
#------------------
#[printers]
# comment = All Printers
# path = /var/tmp
# printable = Yes
# create mask = 0600
# browseable = No
#------------------
#[print$]
# comment = Printer Drivers
# path = /var/lib/samba/drivers
# write list = @printadmin root
# force group = @printadmin
# create mask = 0664
# directory mask = 0775
===================

下記の表でそれぞれの設定項目についてどのような値なのかを示します。

設定項目説明
workgroupWindowsで利用するワークグループ名
server stringネットワークコンピュータ一に表示される情報
netbios nameファイルサーバー名の設定
security認証方法の設定
passdb backendSambaの認証時に使用するパスワードのデータベースの設定
dos charsetWINDOWS側の文字コード設定
wins supportWINSサポート用パラメータ、WINS利用時に有効
load printersプリンタ共有機能の設定パラメータ、noで無効
disable spoolssプリンタ共有機能の設定パラメータ、yesで無効
comment共有フォルダに設定する任意のコメント
path共有フォルダとして設定するディレクトリのパス
browsable共有フォルダを見えるようにする
read only共有フォルダを読み取り専用にしない

【Sambaの設定確認】

こちらのコマンドで先ほど設定した設定ファイルが正しく動作できるかを確認します。
※コマンド実行後「Loaded services file OK.」が表示されれば問題なしです。

testparm

【共有フォルダ作成】

下記のコマンドにて共有フォルダの作成や権限付与などを行います。

ls -ld /home/share
mkdir /home/share
ls -ld /home/share
chmod -R 0777 /home/share
chown -R nobody:nobody /home/share

【共有フォルダへのアクセスユーザー作成】

下記のコマンドで共有フォルダへアクセスするためのユーザを作成します。

cat /etc/passwd | grep rem-test01
useradd rem-test01
cat /etc/passwd | grep rem-test01
passwd rem-test01
※任意のパスワードを指定

下記のコマンドで上記で作成したユーザがSambaで使用できるようにします♪

pdbedit -L
pdbedit -a -u rem-test01 -f "test user01"
pdbedit -L

【Samba再起動】

Sambaの設定ファイルなどを編集したため、Sambaのサービスを再起動しましょう♪

systemctl restart smb nmb
systemctl status smb nmb

【接続確認】

Windows10から接続を実施します♪
Windows10にてエクスプローラーを起動し、アドレスバーに「\\fs」と入力し「Enter」を押しましょう!

認証情報入力のポップアップが出力されるので、作成したユーザー・パスワードを使用します♪

無事ファイルサーバーにアクセスできるとこのような画面になります♪

【接続できない場合】

接続できない場合は、下記を参考にしてみてください。

  • SELinuxが無効になっているか
  • FireWallの設定は正しく行われているか
  • ファイルサーバーと接続する端末のネットワークは同じネットワークにいるか
  • 異なるネットワークで利用する場合は、それぞれの機器でルーティングされているか
  • 異なるネットワークで利用する場合は、それぞれの機器でポートの開放が行われているか

おわりに

今回は、簡単なファイルサーバーの構築について触れさせていただきました♪
これからもOSSで使用できるサービスなどについて実際に構築した結果などを記事にさせていただきたいと思います♪

Posted by shizuku-LH