sambaでNAS-6

その6回目。OS起動後の設定

CentOS7が無事起動したら、いよいよsambaの設定になる。

まずはそれに向けて、地ならしの設定。せっかくCentOS(Linux-UNIX)が使えるので、普段使っているWindowsのPCからアクセスしてみる。
CentOS7のインストール直後にはSSHでの接続は出来るようになっているので、それで接続してみる。

SSH接続にはTera Termを使っている。Tera Termはここ(https://ja.osdn.net/projects/ttssh2/)からダウンできる。その他「窓の杜」(https://forest.watch.impress.co.jp/library/software/utf8teraterm/)などからもできる。

 

Tera Termを起動して、NASに設定した固定IPアドレスにアクセスする。作成したユーザーIDとパスワードでログイン。

初回起動時のみキーの保存を聞かれるので「続行」をクリック。

うまくは入れたら、suコマンドで、root権限にログインする。

うまくログインできればOKだが、接続できないとなると、まずはNASのIPアドレスが違うのかもしれない。もう一度NASに戻って、IPアドレスを設定し直したりしないといけない。このIPアドレスはsamba稼働後も、WindowsPCからアクセスするときにも使うので、きちんとしておかないといけない。IPアドレスはあっているとなると、さらに話が複雑になる。もう一度CentOSをインストールし直したがいいかもしれない。

次は、セキュリティの1つ目の設定、ファイアウォールの設定を行う。SSHの接続はファイアウォールではすでに外部からの接続ができるよう設定されているので、問題なくアクセスできたが、今後sambaの接続などを許可するにはファイアウォールの設定が必要。

ここからは、CentOS7のデスクトップに戻って、ファイアウォールの設定を行う。

まず、「アプリケーション」メニューから「諸ツール」、「ファイアウォール」と選択、

すると、「ファイアウォール」の設定用アプリが起動する。その昔、iptablesというコマンドで設定していたが、最近は便利な「ファイアウォールの設定」アプリがあるので、これでやっている。結構色々な設定を体系的に出来て便利。しかしその分なんだかややこしいが、設定するのは一部のみなので、その部分だけ触ればよい。

ファイアウォールの設定、「ゾーン」は表示されている「public」を使用する、そして右に出ている「サービス」で許可するもの(例samba)を設定してゆく。今回設定するのはsambaの他にvncやhttpdなども許可するようにした。vncはリモートからGUIでアクセスできるサーバー。そしてhttpdはホームページを表示するサーバーだ。ホームページは使わないが、sambaで接続できないときに、ネットワークがきちんと動いているか確認するのに便利なので使っている。

以下、ファイアウォールでの許可リスト

  • samba
  • vnc
  • httpd

まずは、samba。サービスを下へスクロールしてsambaをみつけ、チェックを入れる。

次に、VNC

そして、httpd

さらに、上の方の「実行時」というメニューを切り替え「永続」にして、同じ設定を繰り返す。これは、「実行時」というのは、今回設定している時だけという意味で、再起動などすると消えてしまう。「永続」にしておくと、再起動後もこの設定がずっと残るという意味。

続いて、セキュリティ2つ目の設定、「SELinux」の設定になる。SELinuxはguiツールは通常入っていないので、コマンドで設定することになる。

まず、「アプリケーション」メニューから「お気に入り」か「システムツール」メニューから「端末」を起動する。

端末が表示されたら、getenforceコマンドを入力する。

Enforcingと出たら、SELinuxが動いており、セキュリティ保護が働いている。これを止める。SELinuxはセキュリティとしては大変いいのだが、sambaを動かす上では設定が結構ややこしくなる。また、LAN内のプライベートなNASでしか使わず、外部に公開しないので、残念だがSElinuxは切ってしまう。

使うコマンドは、setenforce 0。入力したらgetenforceで確認してみる。

Permissiveとなっていれば、警告は出るが、各種ファイルの読み書きなどは可能となる。ただ、これだと再起動したり、電源を切ってしまって、後日起動したりすると、もう一度setenforce 0を入力しないといけない。次回リモートでgui操作できるVNCサーバーを入れるのだが、それも起動時にコマンドを入力しなくてはいけない。なのでついでにやればいいのだが、もしSElinuxを完全に止めたい場合は、SElinuxの設定ファイルをいじることとなる。viなどのエディタで/etc/selinux/configという設定ファイルをいじる。

vi /etc/selinux/config

ファイル内の、SELINUX=enforcingという所を、

SELINUX=disabled

にする。

実際の、設定ファイル全体の様子。

 

つづく

 

AX/57Aのルータでsamba

■sambaの稼働 AX/57Aのルータ化も一段落、一応順調に稼働している。AX/57AのHDDは320GBの容量なので、200GB程度余っている。このまま稼働させても、特にそのままの容量が余ったままなので、ちょっともっ … “AX/57Aのルータでsamba” の続きを読む

■sambaの稼働

AX/57Aのルータ化も一段落、一応順調に稼働している。AX/57AのHDDは320GBの容量なので、200GB程度余っている。このまま稼働させても、特にそのままの容量が余ったままなので、ちょっともったいないので、sambaを稼働させた。NASと両方の保存で重要ファイルの完璧保護。あまりでかいファイルは置けないが、ちょっとした小物の置き場には便利かと。100GB程度はつかっても問題ないだろう。最近はクラウドも課金が普通になってきたので、100GBと言えども、クラウドを借りると100~200円/月位はかかるので馬鹿にできない。

まずは、yumでインストール

# yum install samba

そして、つぎにsamba用ディレクトリを作成する。チェンジオーナーでディレクトリのオーナーをノーボディにしておく。

# mkdir /home/samba
# chown nobody:nobody /home/samba

次は、sambaの設定ファイル、smb.confをいじる。

# vi /etc/samba/smb.conf
[global]

# Linux側日本語文字コードとWindows側日本語文字コードの設定
unix charset = UTF-8
dos charset = CP932

# Windowsのワークグループの設定と、Windows側からの表示名の設定
workgroup = xxxx
server string = Samba Server Version %v

netbios name = LinuxSamba

# LAN内部からのみアクセスできるように
hosts allow = 192.168.1. 127.

# Public公開の設定

[public]
comment = Public Stuff
path = /home/samba
public = yes
writable = yes
only guest = yes

終わったら、起動テスト。問題ないようだったら、起動時に自動起動するようchkconfigで設定。smbとnmbの2つあるので、注意!!

# /etc/rc.d/init.d/smb start
SMB サービスを起動中:     [ OK ]
# /etc/rc.d/init.d/nmb start
NMB サービスを起動中:     [ OK ]
# chkconfig smb on
# chkconfig nmb on
# chkconfig –list smb
smb 0:off 1:off 2:on 3:on 4:on 5:on 6:off
# chkconfig –list nmb
nmb 0:off 1:off 2:on 3:on 4:on 5:on 6:off

SELinuxが動いていると、sambaの共有領域へWindows側からアクセスできないので、SELinuxは切っておくか、SELinuxで共有領域へのアクセスを許可しておく。

SELinuxを止めるには、

selinuxの状態を見る
# getenforce
Enforcing

稼働中なので、
selinuxの稼働停止
# setenforce 0

selinuxの状態を見る
# getenforce
Permissive

警告のみ表示のモードになった。

selinuxの設定をいじって、今後動かないようにする
# vi /etc/sysconfig/selinux

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing ? SELinux security policy is enforced.
# permissive ? SELinux prints warnings instead of enforcing.
# disabled ? No SELinux policy is loaded.
#SELINUX=enforcing
#selinux稼働停止
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
# targeted ? Targeted processes are protected,
# minimum ? Modification of targeted policy. Only selected processes are protected.
# mls ? Multi Level Security protection.
SELINUXTYPE=targeted

それか、SELinuxの管理でsamba設定をいじる。

GUIツールが入っていな場合は、
コマンドでもできる、yumではパッケージ名が違うのでちょっと注意が必要。

# yum install policycoreutils-gui

GUIを使いたくない場合、またはそもそもGUI(GNOME)が動いていない場合、boolの変更などはコマンドでもできる。サンバにユーザのホームディレクトリにアクセスできるようにするには、

# setsebool -P samba_enable_home_dirs 1

という具合にする。

SELinux

東芝Dynabook AX57/Aで始めたルーティングだが、SELinuxは走っているか心配になった。SELinuxはLinuxマシン用のセキュリティシステムだ。sestatusコマンドで確認してみると。 一応動いている … “SELinux” の続きを読む

東芝Dynabook AX57/Aで始めたルーティングだが、SELinuxは走っているか心配になった。SELinuxはLinuxマシン用のセキュリティシステムだ。sestatusコマンドで確認してみると。

一応動いているようだった。GUIツールは入っていなかったので、さっそく入れておいた。「システム」メニューの中の「管理」の中の「ソフトウエア追加/削除」から入れる。パーッケージ名は、「SELinux configuration GUI」だ。

コマンドでもできる、yumで入れる。パッケージ名が違うのでちょっと注意が必要。

[root@localhost centos]# yum install policycoreutils-gui

インストールが終わると、「システム」メニューの中の「管理」の中に見えるようになる。

起動すると、SELinuxの管理というGUIが出てくる。

これで、GUIでもSELinuxの管理ができる。

boolの変更などはコマンドでもできる。サンバにユーザのホームディレクトリにアクセスできるようにするには、

[root@localhost centos]# setsebool -P samba_enable_home_dirs 1

という具合にする。
そうだ、今度はサンバも動かしてみるかな。しかしHDDの容量が100GB程度の空きしかないので、そう有用にはならないかも...。

SELinux のオンオフ

コマンドラインからのSELinuxのオンオフ SELinuxの現在の動作状況を調べる。 # getenforce 帰ってくる文字列の意味 enforcing SELinux機能、アクセス制御が有効 permissive … “SELinux のオンオフ” の続きを読む

コマンドラインからのSELinuxのオンオフ
SELinuxの現在の動作状況を調べる。
# getenforce
帰ってくる文字列の意味

enforcing
SELinux機能、アクセス制御が有効

permissive
SElinuxは警告を出力するが、アクセス制限は無効

disabled
SElinux機能、アクセス制御が無効

sestatusでより詳しい情報を表示させることができる。
# sestatus
SELinux status: enabled
SELinuxfs mount: /selinux
Current mode: enforcing
Mode from config file: enforcing
Policy version: 21
Policy from config file: targeted

SELinuxを一時的に有効・無効化
一時的に無効化 - setenforceコマンドで0を指定
# setenforce 0

一時的に有効化 - setenforceコマンドで1を指定
# setenforce 1

SELinuxの設定
再起動の際もSELinuxの状態を保持したい場合は、/etc/selinux/configを直接編集。
# vi /etc/selinux/config

SELinuxを有効にする。
SELINUX=enforcing

SELinuxを無効にする。
SELINUX=disabled

configファイルに説明もある。
サーバを再起動すると設定が反映されます。