1. LinuxOS(Scientific Linux 6.7)をインストールする。(sshはデフォルトで起動。ファイアウォール、セキュリティはとりあえず無効化する。)
2. vsftpdの設定。
3. sambaの設定。
4. Windows 10側から putty, ffftp, MS-Network等を利用して接続確認を行う。
#1 ローカルホストに適当なurl設定をおこなうために、ローカルdns設定を予め行うこと。
Linux起動時、x/gnome表示あるいは文字端末表示のいずれかは/etc/inittabの設定で選択可能。18行目。
d:5:initdefault: x/gnome表示モードで起動
d:3:initdefault: 文字端末モードで起動。サーバー利用時はこちらを推奨。
CUI画面からgnomeを起動する場合は、startx コマンドでGUIを起動できる。
vsftpdはインストール時点では自動起動されない。chkconfigコマンド等で自動起動設定する必要がある。ただしデフォルトの設定だとanonymous設定で起動されるのでcgi等の転送には不向き。
/etc/vsftpd/vsftpd.conf の11行目、のYES設定をNOに変更するだけでユーザ認証に切り替わる。
anonymous_enable =YES → NO
demon類の起動設定を行う場合はGUIであるgnomeのサーバー設定メニューにある「サービス設定」が超便利。クリックだけで任意のdemonを起動、停止、再起動したり、Boot時のランレベル3(CUI)、ランレベル5(x/gnome)などの自動的起動の設定が行える。
GUIなgnomeは何も操作していなくても結構マシンに負荷がかかる。純然なサーバー利用の場合はCUI起動が望ましい。gnome起動はすなわちランレベルが5なので、サーバー利用時をCUI起動としてvsftpd等を自動起動するのであればこの「サービス設定」でrun-level3のチェックマークにチェックを入れて設定保存すること。
CUIあるいは文字端末からコマンドでデーモンを起動・停止・再起動する場合は以下の様に打ち入れる。
/etc/rc.d/init.d/httpd restart httpdをリスタート /etc/rc.d/init.d/vsftpd start vsftpdをスタート /etc/rc.d/init.d/smb stop sambaを停止
ls /etc/rc.d/init.d でディレクトリ確認すれば、起動・停止・再起動可能なインストール済みのdemonが一覧できる。
linuxのGUI画面からネットワーク接続するとID/passsword入力だけで、win&winms-network同様に接続させて共有利用できる。
ms-network/samba(smbd/nmbd)サーバーの設定はrootログインかsuコマンドでroot権限取得後に行う。
まず、selinuxをとりあえず無効化する。(/etc/selinx/config)
/etc/selinx/config → 。/etc/selinux/config SE = disabled
次に/etc/samba/smb.confを書き換えてsamba設定を行う。
smbpasswdで接続ユーザーとパスワードを設定する。
最後にserviceコマンドでsmbd/nmbdを起動する。
linux起動時から常時利用したければchkconfigで起動設定する。
うまく起動できればwin側から鯖が見えて接続できるはず。
以下はsamba.confの例。
#======================= Global Settings =====================================
[global]
log file = /var/log/samba/log.%m
load printers = yes
cups options = raw
netbios name = MY_SMB_SERVER
server string = Samba Server Version %v
workgroup = WORKGROUP
os level = 20
security = user
passdb backend = tdbsam
max log size = 50
interfaces = eth0 127.0.0.1 192.168.1.0/24
blind interfaces only = yes
hosts allow = 192.168.1.
#======================= Share Definitions ==============================
[httpd]
writable = yes
browseable = yes
path = /var/homepage/html
guest = ok
[home]
writable = yes
browseable = yes
path = /home
guest = ok
1.ルーターのマスカレード設定で、smtp(25), submission(587), imaps(993), pop3(110) を鯖へ転送設定する
2.鯖のファイヤーウォールの設定で上記ポートをtcp/udpともに開けておく。
3.postfixとcyrus-saslをインストールしておく
4.useradd と passwd コマンドでユーザを作成する
5.saslpasswd2 -c -u domain名 user名 でSMTP認証パスワードを設定する
6. postfixとdovecotの設定ファイルを整備する。
7.postfix, dovecot, saslauthd を chkconfig on する。
7.postfix, dovecot, saslauthd を リスタートする。
CentOS5.2など、設定によってはgcc/ccがインストールできない。その場合のyum/RPMは以下のコマンドで。
# yum install gcc* compat-gcc* compat-glibc* compat-lib*
/usr/bin/perlで直接実行、エラー無しにも関わらず、cgiモジュールがapacheでサーバーエラーが生じる場合は、cgiファイルの改行コードがLFだけであるかどうかを確認すること。ftp転送中とかでsjis変換されていると改行コードがCR/LFとなる場合があり、この場合だとエラーが生じる。ソースコードはUTF-8記述が望ましい。
yum install -y bind
yum install -y bind-chroot
CentOS 5.2は、インストール直後の状態でDNSは起動していない。/etc/rc.d/init.d/named startとコマンドすればとりあえずクライアント用のDNSサーバーとして利用可能になるはず。ただしこの場合、ネット設定でゲートウェイ設定を行い、インターネット接続が可能な状態でなければならない。
BIND9は巨大なブログラムなので全てを使い切るのも説明するのも難しい。そういうことは他にお願いするとして、ここでは、あくまで個人の私的な利用に限ったローカルドメインのDNSのメモ書きに留める。
ローカル・ドメインの設定とは、192.168.0.0~192.168.255.255までのローカルネットIPに接続された機器にドメイン名を割り振って利用する場合の設定。たとえば、pilots.eva などというドメインを自分自身で勝手に設定し、以下の様にドメイン名を割り振ることができる。
dns.pilots.eva 192.168.1.10 www.pilots.eva 192.168.1.10 rei.pilots.eva 192.168.1.11 asuka.pilots.eva 192.168.1.12 sinji.pilots.eva 192.168.1.13
上記のような身勝手ドメインといえども、きちんと設定すれば、自宅サーバーもイントラネットサーバーとしてドメイン名を用いて自在にアクセスできる。ただしあくまでイントラネット利用に限るが、ローカルサーバー上のリンクページをクリックして他のリアル・サーバーにアクセスした際、先方のアクセスログのリファラ記録には身勝手なローカルサーバー名が記録として残るようである。
CentOSのBIND9の設定は手動設定が望ましい。というのも、CentOSの設定ではセキュリティ強化の観点からchroot機能を用いられていて、named.conf等の設定ファイルが/etc/から/var/named/chroot/etc/ 他に蜃気楼的に移動しているからである。
/var/named/chroot/以下はサーバーのルートディレクトリの配置イメージであるが、root権限者でなければ見ることが許されない。そうしたセキュリティがかけられている。よってBIND9/DNSの設定を行う場合は、/var/named/chroot/etc/named.conf が設定ファイルとなる。
/var/named/chroot/etc/named.confの例
=====================================================
//
// BIND 9 簡易設定
//
// ローカルホストのリゾルバ。
// キーボード操作によりホスト自身が参照する場合のDNSの定義設定
view "localhost_resolver"
{
match-clients { localhost; };
match-destinations { localhost; };
recursion yes; // インターネット内の様々なドメイン名参照を許可するという意味
// RFC1912で定義される localhost, localdomainの定義ファイル。BIND9のパッケージに含まれているもの。
include "/etc/named.def";
// all views must contain the root hints zone:
// rootservers.defはroot name サーバーのIPアドレスを記録したファイル。
zone "." IN {type hint; file "/etc/rootservers.def"; };
zone "pilots.eva" {
type master;
file "/etc/pilots.eva.db";
};
// ローカルドメインといえど、きちんと逆引き定義はするのが吉。
zone "1.168.192.in-addr.arpa" {
type master;
file "/etc/1.168.192.in-addr.arpa.zone.db";
};
};
// イントラネット接続クライアント向けのリゾルバ定義。
// 以下はイントラネット内のクライアントPC(Windows/Mac等)がDNS参照する場合に応答する部分の記述。
view "internal_resolver"
{
match-clients { localnets; };
match-destinations { localnets; };
recursion yes; // インターネット内の様々なドメイン名参照を許可するという意味
// all views must contain the root hints zone:
// rootservers.defはroot name サーバーのIPアドレスを記録したファイル。
zone "." IN {type hint; file "/etc/rootservers.def"; };
// 以下にローカルドメインを定義するファイルの所在を記述する
zone "pilots.eva" {
type master;
file "/etc/pilots.eva.db";
};
// ローカルドメインといえど、きちんと逆引き定義はするのが吉。
zone "1.168.192.in-addr.arpa" {
type master;
file "/etc/1.168.192.in-addr.arpa.zone.db";
};
};
//以下はローカル利用の場合は不要。
//公開サーバーを設置する場合のドメイン定義ファイルの所在は以下に記述する。
view "external_resolver"
{
match-clients { !localnets; !localhost; };
match-destinations { !localnets; !localhost; };
recursion no; // BIND9の公開サーバーはnoがお約束。DDoS攻撃の踏み台化の防止がその理由。
zone "." IN {type hint; file "/etc/rootservers.def"; };
};
正引きファイル:/var/named/chroot/etc/pilots.eva.db の例
=====================================================
$TTL 1H @ SOA ns1.pilots.eva. root.pilots.eva. ( 24
3H
1H
1W
1H )IN NS @ @ IN A 192.168.1.10 dns IN A 192.168.1.10 www IN A 192.168.1.10 rei IN A 192.168.1.11 asuka IN A 192.168.1.12 sinji IN A 192.168.1.13
逆引きファイル:/var/named/chroot/etc/1.168.192.in-addr.arpa.zone.db の例
=====================================================
$TTL 86400 @ IN SOA ns1.pilots.eva. root.localhost ( 1 ; serial
28800 ; refresh
7200 ; retry
604800 ; expire
86400 ; ttk
)
IN NS ns1.pilots.eva. 2 IN PTR mac.pilots.eva. 3 IN PTR xp.pilots.eva. 5 IN PTR vista.pilots.eva. 10 IN PTR www.pilots.eva. 11 IN PTR rei.pilots.eva. 12 IN PTR asuka.pilots.eva. 13 IN PTR sinji.pilots.eva.
dns | IN | A | 192.168.1.10 |
www | IN | A | 192.168.1.10 |
ikari | IN | A | 192.168.1.11 |
gendou.ikari | IN | A | 192.168.1.11 |
yui.ikari | IN | A | 192.168.1.11 |
shinji.ikari | IN | A | 192.168.1.11 |