Top » LINUXサーバー構築 サーバーアプリの設定メモ
LINUXサーバー構築 サーバーアプリの設定メモ
デスクトップとして使用(実は殆ど使ってなかったが)していた、ノートlinuxマシンをサーバー仕立て直す事にしました。最終的にはデータベースを使ったアプリが動作するWEBサーバーに仕上げるのが目標です。マシンとしては今となっては非力のペンタマシンですが、SSDシリコンディスクに換装してますので、小規模サーバーなら十分だと思ってます。完成したら固定IPを取得して公開するのをゴールとしています。稼働させるサービスは取りあえず以下の通り。尚、インストールされているLINUXは、Vine Linux 5.2 (Palmer)です。この記事を書き始めた2014年9月時点で、6.2がリリースされているようですが、如何せん非力なマシンですので、5.2でサーバー仕立てにしようと思います。サーバーの設定しながらこのページを更新しているので、しばらくは頻繁に更新されます。
telnet(2014年9月20日稼働)
telnetはサーバを端末から操作できるようにする仮想端末ソフトウェア(プログラム)。但し通信を暗号化せずに平文のまま送信する為セキュリティーに問題があります。最近は殆ど使われないようですが、簡単に設定できるのでサーバー立ち上げ時は立ち上げておくと何かと便利です。サーバーがある程度構築出来たら、telnetからSSHに切り替えます。
Windows環境からtelnet接続する場合、Tera Term等のターミナルソフトが必要です。win8.1のコマンドプロンプトでは、telnetは使えなくなっているようです。かつては、telnet接続できたんですけど。
telnetはサーバを端末から操作できるようにする仮想端末ソフトウェア(プログラム)。但し通信を暗号化せずに平文のまま送信する為セキュリティーに問題があります。最近は殆ど使われないようですが、簡単に設定できるのでサーバー立ち上げ時は立ち上げておくと何かと便利です。サーバーがある程度構築出来たら、telnetからSSHに切り替えます。
Windows環境からtelnet接続する場合、Tera Term等のターミナルソフトが必要です。win8.1のコマンドプロンプトでは、telnetは使えなくなっているようです。かつては、telnet接続できたんですけど。
Proftpd(2014年9月20日稼働)
サーバーにおいて基本中の基本サービス FTPサーバーを稼働させます。Webサーバーにする場合は、htmlファイルや画像ファイルの転送が必要なので、ftpは必須のサービスです。但し、webサーバー用途で立ち上げているので、今のところanonymousサービスは使用しません。
サーバーにおいて基本中の基本サービス FTPサーバーを稼働させます。Webサーバーにする場合は、htmlファイルや画像ファイルの転送が必要なので、ftpは必須のサービスです。但し、webサーバー用途で立ち上げているので、今のところanonymousサービスは使用しません。
DNS
LAN内部から名前ベースのURLを指定すると、ルーターその物に接続されてしまうので、内部専用のDNSサーバーにより所定のWEBサーバーの名前解決できるようにするために必要となります。またバーチャルホスト仕様でWEBサーバーを仕立てようと思っているので、LAN内部のクライアント機から通常操作で接続するためにも、必要なサービスとなります。
LAN内部から名前ベースのURLを指定すると、ルーターその物に接続されてしまうので、内部専用のDNSサーバーにより所定のWEBサーバーの名前解決できるようにするために必要となります。またバーチャルホスト仕様でWEBサーバーを仕立てようと思っているので、LAN内部のクライアント機から通常操作で接続するためにも、必要なサービスとなります。
WEBサーバー(Apache)
SSH
DHCP
ルーターにもDHCP機能あるのですが、単にIPアドレスを割り振るだけでドメイン名、特定のDNSサーバー指定等は出来ないようです。仕方なくですが、Linuxサーバー側でDHCPDを稼働させる積りです。
ルーターにもDHCP機能あるのですが、単にIPアドレスを割り振るだけでドメイン名、特定のDNSサーバー指定等は出来ないようです。仕方なくですが、Linuxサーバー側でDHCPDを稼働させる積りです。
ネットワークパラメーターの設定
Linuxを端末として使用するだけなら、インストールしたデフォルト状態で十分ですが、サーバーとして仕上げようとすると各ネットワークパラメーターを適切に設定する必要あります。今回サーバーIPアドレス、ホスト名、ドメイン名は以下で設定しました。
固定IPアドレス: 192.168.0.123 (プライベートIP)
ホスト名 : mamiha2
ドメイン名 : mmh-project.com (LAN側のみの使用となるのでなんでもOK)
ホスト名 : mamiha2
ドメイン名 : mmh-project.com (LAN側のみの使用となるのでなんでもOK)
LinuxのGUI環境にもネットワークパラメーター設定用のツール用意されているようですが、使い方よく理解していないので、よく理解できておらず、今回は各種設定fileを直接編集することにしました。以下のように各設定fileを編集しました。
/etc/sysconfig/network
/etc/sysconfig/network
[root@mamiha2 ~]# vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=mamiha2.mmh-project.com
DOMAINNAME=mmh-project.com
NETWORKING=yes
HOSTNAME=mamiha2.mmh-project.com
DOMAINNAME=mmh-project.com
/etc/sysconfig/network-scripts/ifcfg-eth0
インストール済のVineだったので、GUI環境で作成されたものと思われる。赤字のパラメータが自分の設定とあっているか確認。
インストール済のVineだったので、GUI環境で作成されたものと思われる。赤字のパラメータが自分の設定とあっているか確認。
[root@mamiha2 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
# Intel Corporation PRO/Wireless 2200BG [Calexico2] Network Connection
DEVICE=eth0
BOOTPROTO=none
HWADDR=00:13:A9:05:AA:6D
ONBOOT=yes
TYPE=Ethernet
NM_CONTROLLED=yes
PEERROUTES=yes
DHCP_HOSTNAME=mamiha2.mmh-project.com
NAME="System eth0"
UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03
IPADDR=192.168.0.123
NETMASK=255.255.255.0
DNS1=127.0.0.1
GATEWAY=192.168.0.1
IPV6INIT=no
USERCTL=no
# Intel Corporation PRO/Wireless 2200BG [Calexico2] Network Connection
DEVICE=eth0
BOOTPROTO=none
HWADDR=00:13:A9:05:AA:6D
ONBOOT=yes
TYPE=Ethernet
NM_CONTROLLED=yes
PEERROUTES=yes
DHCP_HOSTNAME=mamiha2.mmh-project.com
NAME="System eth0"
UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03
IPADDR=192.168.0.123
NETMASK=255.255.255.0
DNS1=127.0.0.1
GATEWAY=192.168.0.1
IPV6INIT=no
USERCTL=no
/etc/hosts
> サーバー構築の初期段階ではDNSも稼働しておらず、名前解決が出来ずにエラーが出るサービスがあります。後述のProftpd等がその一例ですが、色んなサービスを立ち上げて行く上で、余計なトラブルにハマらないようにするためにも、以下赤字のように/etc/hostsに自分自身の名前情報登録しておきます。
> サーバー構築の初期段階ではDNSも稼働しておらず、名前解決が出来ずにエラーが出るサービスがあります。後述のProftpd等がその一例ですが、色んなサービスを立ち上げて行く上で、余計なトラブルにハマらないようにするためにも、以下赤字のように/etc/hostsに自分自身の名前情報登録しておきます。
[root@mamiha2 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost.localdomain localhost mamiha2
192.168.0.123 mamiha2.mmh-project.com
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost.localdomain localhost mamiha2
192.168.0.123 mamiha2.mmh-project.com
telnetの設定
最近はセキュリティーの問題で殆ど使われなくなってしまったサービスですが、サーバー立ち上げ時に端末からサーバーに簡単に接続する方法として便利なので、まずtelnetを使用できるようしておきます。サーバーが安定稼働するようなったら、SSHへ切り替えます。
telnet関係のパッケージがインストールされているか確認
[dareka@mamiha2 ~]$ rpm -qa | grep telnet
telnet-server-0.17.x-31vl5 ←telnet-server-***が無いなら以下手順でインストール
telnet-0.17.x-31vl5
telnet-server-0.17.x-31vl5 ←telnet-server-***が無いなら以下手順でインストール
telnet-0.17.x-31vl5
telnet-serverのインストール方法
suコマンド等でrootになり、
suコマンド等でrootになり、
apt-get install telnet-server
を実行。以下のような実行画面になります。デフォルトインストールだとスーパーサーバー xinetdもインストールされていないようです。telnet-serverの追加パッケージとして xinetdもインストールされました。
[root@mamiha2 ~]# apt-get install telnet-server
パッケージリストを読みこんでいます... 完了
依存情報ツリーを作成しています... 完了
以下の追加パッケージがインストールされます:
xinetd
以下のパッケージが新たにインストールされます:
telnet-server xinetd
アップグレード: 0 個, 新規インストール: 2 個, 削除: 0 個, 保留: 0 個
160kB のアーカイブを取得する必要があります。
展開後に 269kB のディスク容量が追加消費されます。
続行しますか? [Y/n]y ←続行しますか?と聞かれるので「y」を押す。
取得:1 http://updates.vinelinux.org 5.2/i386/main xinetd 2.3.14-1vl5 [129kB]
取得:2 http://updates.vinelinux.org 5.2/i386/main telnet-server 0.17.x-31vl5 [31.2kB]
160kB を 0s 秒で取得しました (541kB/s)
変更を適用しています...
準備中 ############################## [100%]
更新/インストール中
xinetd-2.3.14-1vl5.i386 ############################## [100%]
telnet-server-0.17.x-31vl5.i386 ############################## [100%]
完了
パッケージリストを読みこんでいます... 完了
依存情報ツリーを作成しています... 完了
以下の追加パッケージがインストールされます:
xinetd
以下のパッケージが新たにインストールされます:
telnet-server xinetd
アップグレード: 0 個, 新規インストール: 2 個, 削除: 0 個, 保留: 0 個
160kB のアーカイブを取得する必要があります。
展開後に 269kB のディスク容量が追加消費されます。
続行しますか? [Y/n]y ←続行しますか?と聞かれるので「y」を押す。
取得:1 http://updates.vinelinux.org 5.2/i386/main xinetd 2.3.14-1vl5 [129kB]
取得:2 http://updates.vinelinux.org 5.2/i386/main telnet-server 0.17.x-31vl5 [31.2kB]
160kB を 0s 秒で取得しました (541kB/s)
変更を適用しています...
準備中 ############################## [100%]
更新/インストール中
xinetd-2.3.14-1vl5.i386 ############################## [100%]
telnet-server-0.17.x-31vl5.i386 ############################## [100%]
完了
telnet-serverの設定
以下4stepの作業となります。
① /etc/xinetd.d/telnetの変更
② /etc/hosts.allowの変更
③ linuxマシンセキュリティレベルの設定変更
④ スーパーサーバー xinetd の起動
以下4stepの作業となります。
① /etc/xinetd.d/telnetの変更
② /etc/hosts.allowの変更
③ linuxマシンセキュリティレベルの設定変更
④ スーパーサーバー xinetd の起動
① /etc/xinetd.d/telnetの変更
[root@mamiha2 ~]# vi /etc/xinetd.d/telnet
# default: on
# description: The telnet server serves telnet sessions; it uses \
# unencrypted username/password pairs for authentication.
service telnet
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
disable = no ←デフォルトは「yes」。noに書き換える。
}
# default: on
# description: The telnet server serves telnet sessions; it uses \
# unencrypted username/password pairs for authentication.
service telnet
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
disable = no ←デフォルトは「yes」。noに書き換える。
}
② /etc/hosts.allowの変更
[root@mamiha2 ~]# vi /etc/hosts.allow
# hosts.allow This file contains access rules which are used to
# allow or deny connections to network services that
# either use the tcp_wrappers library or that have been
# started through a tcp_wrappers-enabled xinetd.
#
# See 'man 5 hosts_options' and 'man 5 hosts_access'
# for information on rule syntax.
# See 'man tcpd' for information on tcp_wrappers
#
in.telnetd:192.168.0. ←ここを追記。IPアドレスは各自の設定で変更してください。
# hosts.allow This file contains access rules which are used to
# allow or deny connections to network services that
# either use the tcp_wrappers library or that have been
# started through a tcp_wrappers-enabled xinetd.
#
# See 'man 5 hosts_options' and 'man 5 hosts_access'
# for information on rule syntax.
# See 'man tcpd' for information on tcp_wrappers
#
in.telnetd:192.168.0. ←ここを追記。IPアドレスは各自の設定で変更してください。
③ linuxマシンセキュリティレベルの設定変更
ファイヤーウォール設定に慣れていれば、iptablesの直接編集できるのですが、GUI環境だと「セキュリティレベルの設定変更」のツールが提供されているので、それを利用しました。
左画面は、GUIデスクトップ 左上メニュー
システム → システム管理 → セキュリティレベルとファイヤーウォールの設定
と進んで、管理者(root)のパスワードを入れると出てくるので、telnetにチェック入れてOKをクリック。
左画面は、GUIデスクトップ 左上メニュー
システム → システム管理 → セキュリティレベルとファイヤーウォールの設定
と進んで、管理者(root)のパスワードを入れると出てくるので、telnetにチェック入れてOKをクリック。
④ スーパーサーバーxinetdの起動
telnetはスーパーサーバーxinetdの制御でサービスが提供されるので、xinetdを起動させます。
telnetはスーパーサーバーxinetdの制御でサービスが提供されるので、xinetdを起動させます。
[root@mamiha2 etc]# /etc/rc.d/init.d/xinetd restart
xinetdを停止中: [ OK ]
xinetdを起動中: [ OK ]
xinetdを停止中: [ OK ]
xinetdを起動中: [ OK ]
chkconfigコマンドで、xinetdが自動起動となっているか確認します。
[root@mamiha2 etc]# chkconfig --list
・
・
xinetd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
↑ランレベル3(テキストログイン)とランレベル5(グラフィカルログイン)がonになっていることを確認する。
・
・
xinetd ベースのサービス:
chargen: off
chargen-udp: off
cups-lpd: off
daytime: off
daytime-udp: off
echo: off
echo-udp: off
rsync: off
services: off
telnet: on ←xinetdベースサービスでtelnetがonとなっていることを確認
time: off
time-udp: off
・
・
xinetd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
↑ランレベル3(テキストログイン)とランレベル5(グラフィカルログイン)がonになっていることを確認する。
・
・
xinetd ベースのサービス:
chargen: off
chargen-udp: off
cups-lpd: off
daytime: off
daytime-udp: off
echo: off
echo-udp: off
rsync: off
services: off
telnet: on ←xinetdベースサービスでtelnetがonとなっていることを確認
time: off
time-udp: off
xinetdが自動起動設定されていない場合は、
chkconfig xinetd on --level 35 ランレベル3と5で自動起動とする設定
で自動起動するようにしておく。apt-getでtelnet-serverをインストールした場合は、デフォルトでxinetdが自動起動するようになっているようです。
これでtelnet接続できるようになるはずです。Tera Term等の端末ソフトで接続できました。win8.1のコマンドプロンプトでは、telnet使えなくなっているようです。かつては、telnet接続できたんですけど。
chkconfig xinetd on --level 35 ランレベル3と5で自動起動とする設定
で自動起動するようにしておく。apt-getでtelnet-serverをインストールした場合は、デフォルトでxinetdが自動起動するようになっているようです。
これでtelnet接続できるようになるはずです。Tera Term等の端末ソフトで接続できました。win8.1のコマンドプロンプトでは、telnet使えなくなっているようです。かつては、telnet接続できたんですけど。
Proftpdの設定
サーバーにおいて基本中の基本サービス FTPサーバーを稼働させる。Webサーバーにする場合は、htmlファイル転送が必要なので、必須のサービス。Vine5.2ではデフォルトでProftpdはインストールされている。今回はanonymousサービスは使用しない。
Proftpdパッケージがインストールされているか確認
Proftpdパッケージがインストールされているか確認
[root@mamiha2 etc]# rpm -q proftpd
proftpd-1.3.2e-3vl5 ←proftpd-が表示されていることを確認
proftpd-1.3.2e-3vl5 ←proftpd-が表示されていることを確認
インストールされていない場合は、
[root@mamiha2 etc]#apt-get install proftpd
でインストールする。
/etc/proftpd.confの編集(ルート権限で)
ServerName "FTP server"
/etc/proftpd.confのデフォルトは、ServerNameが"ProFTPD Default Installation"になっているが、少なくともサーバーソフトを分からなくするだけでも、多少はセキュリティー強化になるので。私は単に"FTP server"とした。
#<Anonymous ~ftp>
#
# User ftp
# Group ftp
#
# # We want clients to be able to login with "anonymous" as well as "ftp"
# UserAlias anonymous ftp
#
# # Limit the maximum number of anonymous logins
# MaxClients 10
#
# # do not require shells listed in /etc/shells (user ftp do not have
# # shell...)
# RequireValidShell no
#
# # We want 'welcome.msg' displayed at login, and '.message' displayed
# # in each newly chdired directory.
# DisplayLogin welcome.msg
# # DisplayFirstChdir .message
# DisplayChdir .message
#
# # Limit WRITE everywhere in the anonymous chroot
# <Limit WRITE>
# DenyAll
# </Limit>
#
#</Anonymous>
anonymousサービスは使用しない方針なので、<Anonymous ~ftp>~</Anonymous>各行の先頭に#を追加し、コメントアウトする。#
# User ftp
# Group ftp
#
# # We want clients to be able to login with "anonymous" as well as "ftp"
# UserAlias anonymous ftp
#
# # Limit the maximum number of anonymous logins
# MaxClients 10
#
# # do not require shells listed in /etc/shells (user ftp do not have
# # shell...)
# RequireValidShell no
#
# # We want 'welcome.msg' displayed at login, and '.message' displayed
# # in each newly chdired directory.
# DisplayLogin welcome.msg
# # DisplayFirstChdir .message
# DisplayChdir .message
#
# # Limit WRITE everywhere in the anonymous chroot
# <Limit WRITE>
# DenyAll
# </Limit>
#
#</Anonymous>
以下のパラメーターを追加する。
UseReverseDNS off
IdentLookups off ←早く接続する。onにするとDNSを引いてくる間は待たされる。
ExtendedLog /var/log/proftpd.log ←ログを取るので追記。
RootLogin off ←Rootログインさせない
MaxClientsPerHost 2 ←同一IPからの同時接続数の設定
MaxHostsPerUser 2 ←同一ユーザー名の同時接続数の設定
IdentLookups off ←早く接続する。onにするとDNSを引いてくる間は待たされる。
ExtendedLog /var/log/proftpd.log ←ログを取るので追記。
RootLogin off ←Rootログインさせない
MaxClientsPerHost 2 ←同一IPからの同時接続数の設定
MaxHostsPerUser 2 ←同一ユーザー名の同時接続数の設定
linuxマシンセキュリティレベルの設定変更
ファイヤーウォール設定に慣れていれば、iptablesの直接編集できるのですが、GUI環境だと「セキュリティレベルの設定変更」のツールが提供されているので、それを利用しました。
左画面は、GUIデスクトップ 左上メニュー
システム → システム管理 → セキュリティレベルとファイヤーウォールの設定
と進んで、管理者(root)のパスワードを入れると出てくるので、ftpにチェック入れてOKをクリック。
ファイヤーウォール設定に慣れていれば、iptablesの直接編集できるのですが、GUI環境だと「セキュリティレベルの設定変更」のツールが提供されているので、それを利用しました。
左画面は、GUIデスクトップ 左上メニュー
システム → システム管理 → セキュリティレベルとファイヤーウォールの設定
と進んで、管理者(root)のパスワードを入れると出てくるので、ftpにチェック入れてOKをクリック。
Proftpdの起動
[root@mamiha2 ~]# /etc/rc.d/init.d/proftpd start
proftpdを起動中: [ OK ]
proftpdを起動中: [ OK ]
注意
Proftpdはホスト名の解決が必要なサービスのようです。「ネットワークパラメーターの設定」で記述したように /etc/hosts にサーバー機の情報を書いておかないと、Proftpdの起動が失敗するようです。失敗しても、単に「失敗」とだけ表示され、内容が表示されないので、解決するのにかなり苦労しました。/var/log/messagesにも「起動失敗」のエラー関係出力されていませんでした。かつてのversionでは起動失敗するとエラー内容が表示されていたような記憶あります。ここは特に注意必要です。
Proftpdはホスト名の解決が必要なサービスのようです。「ネットワークパラメーターの設定」で記述したように /etc/hosts にサーバー機の情報を書いておかないと、Proftpdの起動が失敗するようです。失敗しても、単に「失敗」とだけ表示され、内容が表示されないので、解決するのにかなり苦労しました。/var/log/messagesにも「起動失敗」のエラー関係出力されていませんでした。かつてのversionでは起動失敗するとエラー内容が表示されていたような記憶あります。ここは特に注意必要です。
Proftpdの自動起動設定
[root@mamiha2 etc]# chkconfig --list
・
・
proftpd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
↑ランレベル3(テキストログイン)とランレベル5(グラフィカルログイン)がonになっていることを確認する。
・
・
・
・
proftpd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
↑ランレベル3(テキストログイン)とランレベル5(グラフィカルログイン)がonになっていることを確認する。
・
・
xinetdが自動起動設定されていない場合は、
chkconfig proftpd on --level 35 ランレベル3と5で自動起動とする設定
で自動起動するようにしておく。
chkconfig proftpd on --level 35 ランレベル3と5で自動起動とする設定
で自動起動するようにしておく。