ページ内コンテンツ

Linux Mint 17.2 Rafaela - MATEでサーバーを運営したい人向けの情報。 anchor.png

今回は、自宅サーバーをインターネット上に一般公開するまでを、ご説明します。
Windows XPがサポート終了となったために、多くの方々がLinux Mintへお引っ越しなさったかも知れませんね。
更には、Windows Server 2003からのお引っ越しの方もいらっしゃるのでしたら、嬉しいことですね。
数あるOSの中から、Linux Mintを選んで下さいまして、厚く御礼を申し上げます。
そして、今後ともご愛好を宜しくお願いします。
誰もが皆、最初は「LEVEL0からのスタート」です。経験値を上げないとね!
私は、皆さんを応援して行きますよ! 私のホームページも宜しくお願いします。
さて、
「Linux Mintはサーバーも動くと聞いたが、情報が載っておらんっ!」とお嘆きの方向けに、簡素な情報を載せておきます。

では、Linux Mint 17.2 RafaelaでCGI(Perl)を動かそうと思います。
Linux Mint 17.2 Rafaelaは、LTS(LTSとは、Long Term Support(長期間サポート)の意味)で、2019年4月までサポートされます。
これから、私が書く内容は、Linux Mint 17.2 RafaelaのCinnamonかMATEのエディションだと思って下さい。
そして、キーボードやマウスを使って操作する側をWindowsマシンとし、サーバー側をLinux Mint 17.2 Rafaelaとします。

ここで! というよりも、最初からなのですが、残念なお知らせをしなければならない人がいるのですがね(汗)。
プロバイダーの中には、自宅サーバーが許されていないプロバイダーがあります。
そういうプロバイダーと契約している人は、諦めて、VPS(バーチャル・プライベート・サーバ)にしましょう。
最近のVPSは、どこのサービスでもどっこいどっこいの、安くて良いサービスを行なっておりますので、
VPSでやっていくのも、問題なく、楽しくサーバーが構築でき、ホームページが運用できます。
まぁ、自宅サーバーも、VPSも知識がダブる所が沢山ありますので、取り敢えず、どんどん読み進んでくださいね!

rafaela.png
Page Top

Linux MintのUpdate&Upgrade。 anchor.png

Linuxを初めてお使いになった方々は、まず、Linuxをインストールしたら、必ずOSをUpdate&Upgradeする事を覚えておきましょう。
Linux MintもUpdate&Upgradeをしていかないと、中身がどんどん古くなっていきます。
Linux MintのUpdate&Upgradeの方法は、毎日自動で行なったほうがいいですよね?
その方法は、次を参考にして、インストール、設定してください。
cron-aptを使って、自動Update&Upgrade
初心者で解らない方は、こまめに、手動で次のコマンドをよく打っておくといいでしょう。
Linux Mintが最新の状態になります。

# apt-get update

# apt-get dist-upgrade

Page Top

Linux Mintのネットワーク環境を設定する。 anchor.png

さて、話を進めます。
ルーターのIPアドレスを、"192.168.0.1"とし、
自宅サーバーのIPアドレスを、"192.168.0.100"とし、
一般公開するドメインは、"http://gedatsu.dip.jp/"とします。
途中で、上手く行かなくて、投げ出したくなるときもあるでしょう。しかし、解決方法は、Google先生に聞けば教えてもらえます。
Google先生からの授業料は、何回受けても「無料」です。
この事は、当たり前と思っているでしょうが、実際には、Google先生に聞くのは面倒だからなぁと思って、みんな検索を掛ける回数が少ないと思いますよ。
何回でもGoogle先生に聞いてみて下さい。
そして、これはお約束ですが、自宅サーバーを運営したことによって、如何なる損害を被っても、自己責任でお願いします。

Page Top

Linux Mint 17.2 Rafaelaはサーバーもバリバリ動きます。 anchor.png

やり方は、ホームページを作りたければ、Web Serverなどの類、基本となる、apache2,mysql,php,perl周りを調べましょう。

Page Top

Linux Mint 17.2 Rafaelaのサーバーの設定。 anchor.png

設定は、Ubuntuのサーバーの設定と全くと言っていいほど同じだと思います。違うところを余り知りません。
だから、Googleで、「apache mysql php perl ubuntu」などのキーワードでご自分でお調べ下さい。自ずと結果は出てきます。

Page Top

ieServerで無料ドメインを取得します。 anchor.png

ieServerにアクセスし、無料ドメイン"gedatsu.dip.jp"と、 "thanks.dip.jp"を取得します。あくまでもこれは例に過ぎません。皆さんは、お好きなドメインを取得してみましょう。

この無料ドメインを取得するサイトの他にも、MyDNSなどの無料ドメイン取得ホームページがあります。
jp,com,org,biz,netなどの価値あるドメインを取得したければ、VALUEDOMAINがお勧めです。こちらは有料となっております。

Page Top

PuTTYでWindowsからLinux Mintを遠隔操作する場合、openssh-serverをインストール。 anchor.png

Linux Mint 17.2 Rafaelaは、最初から、Linux MintをSSHで遠隔操作するためのソフトがインストールされてません。
ですから、次のコマンドを打ちまして、インストールします。

# apt-get install openssh-server

Page Top

WindowsでLinux MintをSSHで遠隔操作する際に必要な"PuTTY"をインストール。 anchor.png

PuTTYはこちらから、ダウンロードしましょう。日本語対応しておりますので、安心です。

PuTTY-rafaela.png

※セキュリティを高めたければ、sshのポート番号を変えたり、SSH秘密鍵を使ってアクセスしたり色々方法があります。
 皆さんで研究したり、調べてみましょう。

Page Top

CGI(Perl)を使いたいとき。 anchor.png

Linux Mintの場合、最初から、"/usr/bin/perl"にPerlがインストールされています。
Perlはプログラムの参照元が、"/usr/bin/perl"の場合と、"/usr/local/bin/perl"の場合があります。
だから、次のようにリンクを貼ります。最初に下記のようにしましょう。これは、お約束のような物ですよ。


# which perl
/usr/bin/perl

# ln -s /usr/bin/perl /usr/local/bin/perl


リンクを貼ったら、次の例のように、インストール、設定をしていきます。

# apt-get install apache2

# a2enmod cgi

# a2enmod userdir

# vi /etc/apache2/mods-enabled/userdir.conf

<IfModule mod_userdir.c>
       UserDir public_html
       UserDir disabled root

       <Directory /home/*/public_html>
               AllowOverride All(変える)
               Options ExecCGI FollowSymLinks(変える)
               <Limit GET POST OPTIONS>
                       Require all granted
               </Limit>
               <LimitExcept GET POST OPTIONS>
                       Require all denied
               </LimitExcept>
       </Directory>
</IfModule>

# vi /etc/apache2/conf-available/httpd.conf

  AddHandler cgi-script .cgi .pl
  ServerName localhost
  DirectoryIndex index.html index.htm index.cgi
  ### ここでは、例のために複数個のホームページを一つのapache2で運営できることを学ぶために、
  ### 「バーチャルホスト」という機能を使います。 
  ### 下記の例では、"gedatsu.dip.jp"というホームページと、
  ### "thanks.dip.jp"というホームページを公開するために設定しています。
  <VirtualHost *:80>
       DocumentRoot /home/USERNAME/public_html/html/hogehoge1
       ServerName gedatsu.dip.jp
  </VirtualHost>
  <VirtualHost *:80>
       DocumentRoot /home/USERNAME/public_html/html/hogehoge2
       ServerName thanks.dip.jp
  </VirtualHost>

# ln -s /etc/apache2/conf-available/httpd.conf /etc/apache2/conf-enabled/

# vi /etc/apache2/apache2.conf

ServerName localhost(末尾に追加する)

# /etc/init.d/apache2 restart


Page Top

Hostsファイルを設定する。 anchor.png

そして、自宅サーバーの場合には、Hosts Fileを変更する。
Hosts Fileの置き場所は、Windows 8.1では、下記の通りです。

C:\Windows\System32\Drivers\etc\hosts

※このWindowsのhostsファイルはセキュリティで保護されているので、右クリック→プロパティで下記のように設定を変更してから、セキュリティの設定を書き換えて下さい。

hosts.jpg
hosts2.jpg

Linux MintのHosts Fileの置き場所は、

/etc/hosts

です。
hostsファイルは、下記を例にして設定しましょう。

192.168.0.100 gedatsu.dip.jp thanks.dip.jp
Page Top

Proftpd-basicをLinux Mintにインストールする。 anchor.png

Proftpd-basicのインストールと設定を参考にして、インストールと設定を行なって下さい。

Page Top

FFFTPをWindowsにインストールする。 anchor.png

FFFTPのインストールと設定を参考にして、ダウンロードと設定を行なって下さい。

Page Top

上級者はより便利な、WinSCPをWindowsにインストールする。 anchor.png

WinSCPを参考にして、ダウンロードと設定を行なって下さい。

Page Top

Linux MintのWebサーバーをインターネット上に公開する方法。 anchor.png

DiCEを使います。次のようにしてダウンロードします。
wgetを使えば、いちいちホームページに行かなくても、コマンド上でダウンロードできます。

# wget http://homepage3.nifty.com/sarad/diced01914.tar.gz

# apt-get install ia32-libs
(↑32ビットパソコンでは、このコマンドは必要ないです。)
(↑64ビットパソコンでは、これをインストールしないとdicedは動いてくれません。)

# tar -vzxf diced01914.tar.gz -C /usr/local/bin/

# cd /usr/local/bin/DiCE

# ./diced
これでdicedがインストールされて、起動します。
ここで、PuTTYなどの、現在使っている物の文字コードの設定を、"EUC-JP"にします。"UTF-8"のままだと、文字化けします。

=-=-=- DiCE DynamicDNS Client -=-=-=
Version 0.19 for Japanese
Copyright(c) 2001 sarad

DiCEのヘルプを表示。
:?
*** 起動オプション ***

diced [-s|-d|-h|-e] [-b] [-l]

 -s           起動と同時に開始します
 -d           起動と同時にバックグラウンドで開始します
 -h           コマンドオプションを表示します
 -b           イベント実行時にビープ音を鳴らします
 -l           ログを作成します
 -e  指定のイベントを実行して終了します

*** コマンド一覧 ***

exit             DiCEを終了します
start            DiCEを開始します
startd           DiCEをバックグラウンドで開始します
setup            DiCEの環境設定を行います
list             登録済のイベント一覧を表示します
add              イベントを追加します
ed[it] <番号>    イベントを編集します
del <番号>       イベントを削除します
en[able] <番号>  イベントを有効にします
dis[able] <番号> イベントを無効にします
ev[ent] <番号>   イベントの情報を表示します
ex[ec] <番号>    イベントを今すぐ実行します
logcr            ログをクリアします

DiCEの環境設定。
:setup
IPアドレスの検出方法を指定してください
(0) 自動検出
(1) ローカルのネットワークアダプタから検出
(2) 外部のスクリプトから検出
<現在:0>
(N)変更しない  (P)戻る
>2
-------------------------------------------------
スクリプトのURLを入力してください
<現在:>
(N)変更しない  (P)戻る
>http://info.ddo.jp/remote_addr.php
-------------------------------------------------
プライベートIPアドレスも検出対象ですか? (Y/N)
<現在:いいえ>
(P)戻る
>n
-------------------------------------------------
IPアドレスの検出をテストしますか? (Y/N)
(P)戻る
>y
検出IPアドレス>xxx.xxx.xxx.xxx
-------------------------------------------------
IPアドレスの検出をテストしますか? (Y/N)
(P)戻る
>n
-------------------------------------------------
IPアドレスをチェックする間隔を指定してください(分)
設定可能範囲は5分以上です
<現在:10>
(N)変更しない  (P)戻る
>n
=================================================
DNSサーバーの負荷を軽減するために頻繁なDNS更新を防ぐ必要があります
前回の更新から一定時間DNS更新処理を行わないように保護時間を設定して
ください(分)  設定可能範囲は10分から1440分です
<現在:60>
(N)変更しない  (P)戻る ← 30分に変更。
>30
=================================================
設定を保存しますか? (Y/N)
(P)戻る
>y
設定を保存しました
=================================================

:add
新しくイベントを追加します

DynamicDNSサービス名を入力してください
"?"で対応しているサービスを一覧表示します
(P)戻る
>?
             DynDSL               IPDYN               No-IP               Earth              JSPEED            SelfHOsT                 USA              @nifty            MyServer                 cjb                todd         StaticCling              ddo.jp           dynDNS.it            ieServer            cheapnet              DNS2Go          Netservers                ZiVE            DynDNSdk              dyndns      did.expoze.com            EveryDNS          onamae.com            DnsTokyo             ddns.ca         RegisterFly         VALUEDOMAIN             GetmyIP            changeIP            livedoor                 p2p                dnsQ             DDNS.nu               unicc           my-domain               Dynup             nicolas              Now.nu                eNom             MyIP.US              pcc.jp             3domain           Microtech           ZENNO.COM                 ODN                Dynu                DION             BIGLOBE              JPN.ch              theBBS               DtDNS                dyns                  yi           CyberGate              Dyn.ee              instat                ysdn                 ODS             miniDNS            ZoneEdit          HAMMERNODE            ARTofDNS                 dhs                dnip              Dynamx          WebReactor                 DHS            MyDNS.JP
=================================================
新しくイベントを追加します

DynamicDNSサービス名を入力してください
"?"で対応しているサービスを一覧表示します
(P)戻る
>ieServer
-------------------------------------------------
<< ieServer Project >>
URL: http://www.ieserver.net/
*** 情報 ***
IPアドレスはサーバー側で自動検出します。
IPアドレスの指定は出来ません。
(入力しても無視されます)
=================================================
ドメイン名を入力してください
"?"でドメイン一覧を表示します
(P)戻る
>dip.jp
=================================================
ホスト名を入力してください
(P)戻る
>gedatsu
=================================================
ログインユーザ名を入力してください
(P)戻る
>
=================================================
ログインパスワードを入力してください
(P)戻る
>******
=================================================
登録するIPアドレスを入力してください
空白にすると現在のIPアドレスを自動検出します
(P)戻る
>
=================================================
このイベントに題名を付けてください
(P)戻る
>gedatsu.dip.jp
=================================================
このイベントを実行するスケジュールを設定します
-------------------------------------------------
実行する頻度を指定してください (番号入力)
(0)1回のみ (1)1日1回 (2)1週間に1回 (3)1ヵ月に1回
(4)その他の周期 (5)IPアドレス変化時 (6)起動時
(P)戻る
>5
-------------------------------------------------
IPアドレスがあまり変化しない環境の場合、更新せずに一定期間を過ぎると
アカウントを削除されてしまうことがあります
IPアドレスの変化が無い時に実行する間隔を指定してください
(0)7日毎   (1)14日毎  (2)21日毎  (3)28日毎
(4)35日毎  (5)56日毎  (6)84日毎
(P)戻る
>0
=================================================
詳細オプションを設定します
-------------------------------------------------
[ オフライン ]
(0)No (1)Yes
番号>0
=================================================
このイベントを有効にしますか? (Y/N)
(イベントの有効/無効は"EN/DIS"コマンドで切替えられます)
>y
=================================================
イベントを保存しますか? (Y/N)
>y
イベント"gedatsu.dip.jp"を保存しました
=================================================
:list
(No.)   (イベント名)                   (スケジュール)             (次回予定)
  0 *  gedatsu.dip.jp                 IPアドレス変化時 (7日毎)   04/29 20:05
:ex 0
このイベントは 0 分前に実行されています
短時間に何度も実行するとDNSサイトに警告を受けることがあります

実行してもよろしいですか?(Y/N)
>y
+ 4/22 20:05 にgedatsu.dip.jpが実行されました
 IPアドレスを更新しました
:exit

ieServerの場合には以上のようにします。他のDynamicDNSサービスの場合の例は、他サイトを参照して見て下さい。詳細は省略します。
さて、先ほど、PuTTYの文字コードを"EUC-JP"に変えたので、今度は元通りに、"UTF-8"にしておきましょう。
その後は、dicedをLinuxの起動時に自動的に読み込んでスタートするために、次のように書き記します。

# vi /etc/rc.local

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

sudo /usr/local/bin/DiCE/diced -d -l

exit 0

これで、dicedがPC起動時に自動起動します。

Page Top

Linux Mintのファイアウォールを設定する。 anchor.png

80番のポートとは、ホームページを公開する際に、開放する一般的なポートです。
このポートを開けなければ、自宅サーバーのホームページは、一般公開出来ません。
22番のポートとは、SSHの一般的なポート番号です。
このポートを開けなければ、SSHでPuTTYなどを使って、Linux Mintを遠隔操作できません。
21番のポートとは、FTPの一般的なポート番号です。
このポートを開けなければ、FTPでFFFTPやWinSCPなどを使って、Linux Mintに接続できません。
60000~60030番のポートとは、FTPのPassiveモードの時に使うポートです。この範囲は自由に変えられます。

下記の方法は、簡単に書きましたが、私自身あまり解説に自信がないので(特にiptables)、各自の宿題にしますヾ(゚Д゚ )ォィォィ。
※ヒントは、"ufw"か、もしくは"iptables"のどちらか一方を使います。
 下記もヒントですから、参考までに。セキュリティに関わるところなので、慎重に行いましょう。


# apt-get install ufw

# ufw reset

# ufw default DENY

# ufw allow 80/tcp

# ufw allow proto tcp from 192.168.0.0/24 to any port ssh

# ufw allow proto tcp from 192.168.0.0/24 to any port ftp

# ufw allow proto tcp from 192.168.0.0/24 to any port 60000:60030

# ufw enable

# ufw reload

# ufw status

Google先生にufwを聞く。
ufwは一度設定してしまえば、Linux Mintを再起動させても、自動的にまた同じ設定のufwになる模様ですから安心ですね。


# vi set_iptables

#!/bin/sh

#サービスを許可したい範囲を設定(例: 192.168.10.0/24)
TRUSTSITE='192.168.0.0/24'

# 一旦初期化
iptables -F

# デフォルトルール
iptables -P INPUT DROP    # 入ってくるのはダメ。DROP(=deny)はそのまま捨てる。rejectと違い返信しないのでよりセキュア
iptables -P OUTPUT ACCEPT # 出て行くのはOK
iptables -P FORWARD DROP  # 通すのはダメ

# 自分からのアクセスはOK
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# 内部から始まった外部からの応答はOK
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#(以下に、ルールを追加)
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -s $TRUSTSITE -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -s $TRUSTSITE -p tcp --sport 22 -j ACCEPT
iptables -A INPUT -s $TRUSTSITE -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -s $TRUSTSITE -p tcp --dport 60000:60030 -j ACCEPT

# vi set_ip6tables

#!/bin/sh

# 全てのルールを削除
/sbin/ip6tables -F
# 全てのユーザ定義チェインを削除
/sbin/ip6tables -X

# 基本的には外部からのパケットの通過を拒否
/sbin/ip6tables -P INPUT DROP
# 基本的には外部へのパケットの通過を拒否
/sbin/ip6tables -P OUTPUT DROP
# 基本的には他のインターフェイスへ再送信を拒否
/sbin/ip6tables -P FORWARD DROP

# lo( ループバック)からのINPUTを拒否
/sbin/ip6tables -A INPUT -i lo -j DROP

# chmod +x set_iptables

# chmod +x set_ip6tables

参照
Google先生に"iptables" "80"を聞く。
※設定ファイルが出来たら、"/etc/network/if-up.d/"に置くといいでしょう。起動時に、自動的に読み込まれます。


Page Top

ルーターのポート80番を開放する。 anchor.png

Aterm BL190HWの場合の、説明をします。ブラウザで、次のようにURLの部分で打ちまして、ルーターにアクセスします。
http://192.168.0.1/
設定した、ID,PASSWORDを入力し、管理画面に入ります。
下記を参考に、設定をして下さい。

aterm1.jpg
aterm2.jpg

※ここでは、ポート番号22番(SSH)を絶対に開けてはなりません。大変危険ですので、開けないでくださいね!
 本当に必要な物だけ、開けるのがコツです。

Page Top

CMANで確認すること。 anchor.png

数分後、CMANにアクセスし、dicedの設定が反映されたか、確かめます。反映されるまで、数分から、数時間かかります。

cman.png


また、80番ポートが開放されているか、このサイトで確認することも出来ます。慣れない内は、毎回確認すると良いでしょう。

cman2.jpg
Page Top

英語翻訳 ウェブページ翻訳-エキサイト翻訳でホームページが外部から見られるか確認。 anchor.png

英語翻訳ウェブページ翻訳-エキサイト翻訳にアクセスし、枠内に自宅サーバーのURL(http://gedatsu.dip.jp/など)を入力し、外部からホームページが閲覧出来るかどうか確認する。

以上が確認できれば、自宅サーバーのホームページは外部に一般公開されていると言うことになります。
長くなりましたが、疲れましたか?
慣れてしまえば、大丈夫です。何よりも、Google先生が強い味方だということも、皆さんは今回知ったかもしれませんね。
お疲れ様でした。

Page Top

頼れるお兄様の、Ubuntuも宜しくね♪ anchor.png

Ubuntuは、とっても頼れる兄様だと思います。
重要事項は、Ubuntuの中で決められて、その派生で、Linux Mintやelementary OSが在ります。
頼れるお兄様、Ubuntuとも仲良くやっていきたいですね。
要するに、「お蔭様」を知らないと、後で痛い目に遭いますよね? 私も反省しております。
今後とも、Ubuntuユーザーさんも、どうぞ宜しくお願いします。

Page Top

もしよろしかったら、私の"RSSのまとめ"の読者になりませんか? anchor.png

KOUJIのRSSまとめ, rss4018c.jpg


トップ   凍結解除 差分 バックアップ 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom Powered by xpWiki
Counter: 19376, today: 3, yesterday: 2
初版日時: 2006-01-09 (月) 21:10:35
最終更新: 2016-07-16 (土) 09:40:32 (JST) (227d) by kouji