このチュートリアルでは、匿名の安全なSamba共有を使用してCentOS7でSambaサーバーを構成する方法について説明します。 Sambaは、WindowsなどのSMB/CIFSクライアントにシームレスなファイルおよび印刷サービスを提供するオープンソース/フリーソフトウェアスイートです。 Sambaは、他のSMB / CIFS実装とは異なり、無料で利用でき、Linux/UnixサーバーとWindowsベースのクライアント間の相互運用性を可能にします。
1予備メモ
新しくインストールしたCentOS7サーバーがあり、その上にSambaサーバーをインストールします。もちろん、CentOS7サーバーで到達可能でなければならないSambaサーバーをチェックするために1台のWindowsマシンが必要です。私のCentos7サーバーのホスト名server1.example.comとIPは192.168.0.100
注:
- Windowsマシンは同じワークグループ上にある必要があります。 Windowsマシンで値を確認するには、cmdプロンプトでコマンドを実行します
net config workstation
次のようになります:
Windowsマシンは、CentOS 7.0サーバーと同じワークステーションドメイン、つまり私の場合はWORKGROUPである必要があります。
- WindowsでWindowsマシンに到達できるようにするには、次のように進めます。実行端末で、サーバーのIPアドレスのエントリを追加します。
notepad C:\Windows\System32\drivers\etc\hosts
私の場合はこのようで、値を保存するだけです。
[...]
192.168.0.100 server1.example.com centos
2匿名のSamba共有
まず、匿名共有でSambaをインストールする方法について説明します。 Sambaソフトウェアをインストールするには、次のコマンドを実行します。
yum install samba samba-client samba-common
CentOSソフトウェアリポジトリから現在のSambaバージョンがインストールされます。
ここでsambaを構成するには、ファイル/etc/samba/smb.confを編集します。変更を加える前に、元のファイルのバックアップを/etc/samba/smb.conf.bak
として作成します。cp -pf /etc/samba/smb.conf /etc/samba/smb.conf.bak
空のファイルから始めたいので、catコマンドを使用してsmb.confを空にします。これは、viのすべての行を削除するよりも高速です。
cat /dev/null > /etc/samba/smb.conf
さらに、このようなエントリを入力してください
vi /etc/samba/smb.conf
[global] workgroup = WORKGROUP server string = Samba Server %v netbios name = centos security = user map to guest = bad user dns proxy = no #============================ Share Definitions ============================== [Anonymous] path = /samba/anonymous browsable =yes writable = yes guest ok = yes read only = no
mkdir -p /samba/anonymous
systemctl enable smb.service
systemctl enable nmb.service
systemctl restart smb.service
systemctl restart nmb.service
さらにCentOS7Firewall-cmdは、sambaアクセスをブロックし、実行するアクセスを取り除きます。
firewall-cmd --permanent --zone=public --add-service=samba
[[email protected] ~]# firewall-cmd --permanent --zone=public --add-service=samba success [[email protected] ~]#
最後に、ファイアウォールをリロードして変更を適用します。
firewall-cmd --reload
[[email protected] ~]# firewall-cmd --reload success [[email protected] ~]#
これで、次のようにWindowsでCentos7共有にアクセスできます。実行プロンプトに移動し、\\ centos:
と入力します\\centos
Windowsマシンから、フォルダを参照してテキストファイルを作成しようとすると、許可が拒否されたというエラーが表示されます。
共有フォルダの権限を確認してください。
ls -l </ P>
drwxr-xr-x. 2 root root 6 Jul 17 13:41 anonymous
[[email protected] samba]#
匿名ユーザーによるアクセスを許可するには、次のように権限を設定します。
cd /samba
chmod -R 0755 anonymous/
chown -R nobody:nobody anonymous/
ls -l anonymous/
total 0
drwxr-xr-x. 2 nobody nobody 6 Jul 17 13:41 anonymous
[[email protected] samba]#
さらに、次のようにSamba構成でSELinuxを許可する必要があります。
chcon -t samba_share_t anonymous/
これで、匿名ユーザーはフォルダの内容を参照および作成できます。
サーバーでコンテンツをクロスチェックすることもできます。
ls -l anonymous/
total 0
-rwxr--r--. 1 nobody nobody 0 Jul 17 16:05 anonymous.txt
[[email protected] samba]#
3。安全なSambaサーバー
したがって、適切な認証でSambaサーバーにアクセスするためのグループsmbgrpとユーザーsrijanを作成します。
groupadd smbgrp
useradd srijan -G smbgrp
smbpasswd -a srijan
[[email protected] samba]# smbpasswd -a srijan New SMB password:<--yoursambapassword Retype new SMB password:<--yoursambapassword Added user srijan. [[email protected] samba]#
次に、/ sambaフォルダに保護された名前のフォルダを作成し、次のような権限を付与します。
mkdir -p / samba / secure
ここでも、SELinuxを介してリッスンできるようにする必要があります:
cd / samba
chmod-R0777セキュア/
chcon-tsamba_share_tセキュア/
構成ファイルを次のように編集します:
vi /etc/samba/smb.conf
[...]
[secured] path = /samba/secured valid users = @smbgrp guest ok = no writable = yes browsable = yes
systemctl restart smb.service
systemctl restart nmb.service
さらに、次のように設定を確認します。
testparm
[[email protected] samba]# testparm Load smb config files from /etc/samba/smb.conf rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384) Processing section "[Anonymous]" Processing section "[secured]" Loaded services file OK. Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions <--ENTER [global] netbios name = CENTOS server string = Samba Server %v map to guest = Bad User dns proxy = No idmap config * : backend = tdb [Anonymous] path = /samba/anonymous read only = No guest ok = Yes [secured] path = /samba/secured valid users = @smbgrp read only = No [[email protected] samba]#
Windowsマシンで、適切な資格情報を使用してフォルダを確認します
srijandoのユーザーに書き込み権限を与える権限の問題に再び直面します。
cd /samba
chown -R srijan:smbgrp secured/
これで、sambaユーザーはフォルダに書き込む権限を持ちます。乾杯、CentOS7のsambaサーバーで完了しました:)