Ubuntu 10.04 Desktop Server
・Ubuntu 9.10 や Ubuntu 9.04 でもOK!
・Ubuntu Server をDesktop化する方法でもOK!
・定番のLAMPスタック搭載!
・内部からはSambaでファイルサーバとしても利用可能
・外部からはアクセス制御したSFTPサーバとしても利用可能
・セキュアなSSH接続やhttps接続
(今回はオレオレ認証)も可能
・FastCGIがC言語ネイティブを安全かつ超高速に稼働
・プロバイダ仕様で複数のユーザのWeb公開が可能


とうとうタイトルが複数行になってしまいました。
頑張ってメインタイトルを1行にしたものの、やっぱり、なんて、命名センスがないのでしょう。
基本的には短いタイトル、短い文章が好きなのですが。。。
なお、この内容は現時点においては、
 ・Ubuntu 9.04 Desktop
 ・Ubuntu 9.04 Server
 ・Ubuntu 9.10 Desktop
 ・Ubuntu 9.10 Server
 ・Ubuntu 10.04 Desktop α3
 ・Ubuntu 10.04 Desktop
にて動作確認しております。
Ubuntu 10.04 に関してはα版から大幅に変わったようで、インストールから大幅変更!
早速インストールを試してみました。
詳細は後ほど。

Ubuntu は Desktop 版を Server 化しても Server 版を Desktop 化しても、どちらも同じようにサーバ化が可能なのです。
最適化の部分を考えると若干違いはあるようですが、私が外部からアクセスしWebサーバやSFTPサーバとして利用するだけのレベルでは全く違いは感じられません。

それはさておき、クラウドな今、自宅で Personal LAMP Server 構築というのは、少々後ろ向きっぽいですが、α3ながらも、とにかく結構安定した Ubuntu 10.04 がでました!
お金があり、技術力がなく、責任問題に細かい日本の企業においては、サーバでは馬鹿高い Windows サーバ(これは世界的にも)、Linux サーバにおいても馬鹿高い RHEL が大流行していました。
Windows サーバはどれだけ性能が悪かろうが、その卓越したGUI環境で操作できますので、導入に対しても敷居が低く、操作も簡単で、導入してもらう企業としても、自社で保守がしやすいという観点からも人気があるのはわかります。
けれど、複雑なことはできないし、不安定だしで、しょっちゅう私の職場の Windows サーバは元気良くフリーズしています。(私の自宅の Ubuntu サーバは2年半ほぼノンストップでおとなしく安定稼働しています)
厳しい言い方になってしまいますが、 Windows サーバの安定性は正直なところ「全く駄目」です。そして、セキュアさに関しても「全く駄目」です。つまり、信頼性自体が「全く駄目」で、おまけに性能も悪いのです。

Google vs 中国のバトルの土俵は Windows や Internet Explorer です。(他に Adobe Flash、Adobe Reader、Adobe Acrobat、Windows 版各種FTP ソフトウェア、Java、Opera 等)
けれど、Microsoft や Adobe は謝罪の一つもしていません。
それに対し、TOYOTAの章男社長はアメリカの公聴会にまで出て行って謝罪しています。
この企業姿勢の違いはいかがでしょうか?
もちろん、東芝や日立、パナソニックのものは使えても、Microsoft のOSを温風ヒーターやコタツ、エアコン、温水器、炊飯器などの熱管理を行うOSとして利用しようというものなど、この世にはおりませんし、自動車の制御に使おうなんて自殺願望者などいるはずもありません。
東芝や日立などの日本を代表する企業は高温高圧のものを扱う技術に関しては、この上ない最高の技術が必要な原子力発電などを手がけているのです。
数十年に渡る、超高温/超高圧に耐えうる材質の知識もさることながら、少しのミスが大事故に繋がる大舞台においても独自のOSにて様々な熱処理を伴う制御系機器を安定動作させてきました。
そういった意味では、日本は昔ながらに命のプログラミング(ホンの些細なミスが命を奪ってしまうプログラミング)をし続け、安定動作させてきたのです。
何かあればブルースクリーンを出してしまうような、Microsoft のOSでは命に関わる重要な部分を任すことなどできないし、あり得ないのです。
そういった部分(Microsoftは命に関わる重要な制御には携われない)では章男社長の公聴会での謝罪はうなずけますし、Microsoftが公聴会で謝罪しないのもうなずけます。
けれど、繰り返される Windows や Internet Explorer、Microsoft Office の脆弱性の発見は明らかにソフトウェアの欠陥であり、繰り返される(2~3年で数百を越える) Windows Update は、自動車でいうならリコールと同様のものです。
結局のところ、Microsoft はユーザからお金をもらって、更にそのユーザにバグ取りをさせている訳です。
その企業姿勢は許されるものではないと判断しています。
せめて繰り返される Windows Update の折に、Windows ユーザに対し、またその脆弱性を利用しての攻撃を受けたものたちに対し謝罪すべきでしょう。
これはアメリカでも問題になっていて「有償ソフトウェアで、ユーザに販売し、その後ユーザにバグ取りさせる方式」はやがては消えていくことになるでしょうし、消えなければなければならないものでしょう。

Linux や Apache を始めとする OSS であれば、
「こんな便利なソフトウェアがあります、ぜひ使ってください!当然無償ですが、その代わり正常に機能しない場合もあります。そのときはバグ報告お願いします!」
なんて姿勢で出してきますし、これならば大歓迎です。
無料ですし、ソースコードは公開されていますので、内部的に何をやっているのかユーザ側でも判断できます。
内部的に気に入らなければ、使わなければ良いし、改良して使うこともできます。
それどころか「ここにバグがある!」や「ここは使いづらいのでこうすれば解消する」などの報告はその時点で OSS へ参加し貢献しているともいえます。
自分で改良して良いものができたら、それを再公開することも可能です。

商用ソフトウェアではそれができません。
馬鹿高いお金を払い、なおかつ不自由なのです。
けれど、そんな商用ソフトウェアでもメリットがあります。
馬鹿高い金額を支払う変わりに、導入から保守まで販売側にやらせることが可能ですし、何らかの問題が発生した場合の責任を販売側や製造側に押し付けることも可能です。
お金があり、技術力がなく、責任問題に細かい日本の企業にとってはうってつけのシステムなのです。
ところがそれでも Windows サーバでは問題になる場合があります。
それは Windows の低い性能であったり、低い安定性であったり、低い機密性であったり、狭いプラットフォーム対応であったりする訳です。
そんなときには RHEL や Olacle です。
これもお金があり、技術力がなく、責任問題に細かい日本の企業にとってはうってつけのシステムなのです。
無償の CentOS があっても、RHEL になってしまう理由はそんなところにあるのです。

けれど、世界の流れは変わってきています。
1年ほど前の段階で、世界の Linux 系のサーバシェアを見ると RHEL と Ubuntu は同程度になっています。
Ubuntu や CentOS に代表される「Free Linux」と言われる RHEL ではない無償の Linux を企業自ら研究し、導入し、運用しているのです。
現時点においては Ubuntu が RHEL を超えているかもしれません。
もちろん CentOS もぐんぐん伸びています。
Ubuntu は、かの Wikipedia の膨大なサーバ群を構成していますし、Google においても使われています。
CentOS に関しては最近多くのレンタルサーバが採用する等、RHEL のクローンOSとして情報量の多さや経済性/安定性/機密性も評価されているようです。

今まで一部の技術者たちしか扱えなかったサーバ構築管理の技術が Windows サーバの普及によって身近になり、RHEL のがんばりによって信頼性、安定性、機密性、性能の高いものとなり、CentOS や Ubuntu の公知によって「無料で、Windows と同等程度に手軽に扱え、RHEL と同等程度に信頼性、安定性、機密性、性能の高いサーバ」の存在として公に知られ、世の有志たちの技術公開によってその構築運用方法が知られるようになってきているのです。
日本においてはその企業体質のためか「Free Linux」の研究/導入/運用すらも大手企業に任せてしまって、無償のはずの「Free Linux」に有償サポートがついてしまい、結果「無償」のメリットを消し去り導入が進まないというジレンマに陥っています。
何だか、Linux の権利を皆に与え、貧乏で暮らしている「Linux Foundation」を尻目に、Linux の権利を貪り特許料を奪い取って大儲けしている「Microsoft」のような矛盾を感じてしまいます。(本当に Microsoft に Linux 関連特許料を取る権利があるかどうかは、私には謎ですが。。。)

話を戻しまして、Windowsほどではないにしても、Windows並に身近に操作できるという観点からも、今の Ubuntu の魅力は何といっても安定度の高い Desktop GUI 環境でもあり、そして私はずっと Ubuntu Desktop でサーバ構築運用を続けていますので、今回はその方法を伝授します。
私がWebアプリを作る場合は、C言語で FastCGI Only ですので、その特性上データベースも自作で、基本が On The Memory Original DataBase のため、LAMP の MP は全くと言っていいほど使いませんが、楽チンですし、ご希望も多いと思われますので家庭で利用し、職場からも利用できる LAMP & OpenSSH サーバを構築してみます。

実は逆の発想で、Ubuntu Server にデスクトップ環境の構築もできます。
そうすると、結局ほとんど同じデスクトップサーバができあがります。→決して暇人ではありません!
けれど、Desktop をサーバ化したほうが、Server にデスクトップを組み込むよりもダウンロード容量が少なく早く構築できますので、こちらの方法で行います。

では、今回 Ubuntu 10.04 Desktop を使ってみた感想ですが、α版は9.10と変わりなしという印象だったのですが、本番の10.04はインストールから新しくなり、今までとはイメージが異なります。各種ソフトウェアのインストール自体は6分程度、設定やクリーニングで1分、言語パッケージのダウンロードで6分とハードウェアの設定やサービスの開始、クリーニングで5分程度の合計18分程度で終わりました。言語パッケージのサーバが暇になればもう少し早いインストールになりそうです。インストール後再起動でスタートです。立ち上がりは 9.10 と同様超高速で10秒足らずで完了!紫色 ベースの画面は今までの茶色ベースよりも美しく、新しい時代の新しいOSをより実感させてくれます。ただ、Macっぽいウィンドウの各種ボタン配置は猿真似っぽくて少し引くかも しれませんが。。。テーマの変更で以前のウィンドウボタンにすることもできますが、これをデフォルトとしてくるならば、やはり操作になれるのも必要でしょう。デフォルトのテーマだと各種メニューの背景が黒ベースで、カッコいい気も しますが、これも好みが分かれそうです。私は常用するOSなので、さっぱりとした白背景がいいかな?という気がしました。Firefox はα版とは大違いで、3.6が安定動作してい ます。 デフォルトの検索エンジンはまたまた変更で元鞘のGoogleに戻っています。
後、気がついた点はGIMPが消えたことでしょうか。どうしてもCD-ROM1枚に収めたい気持ちはわかりますが、GIMPは標準で欲しかったところです。私的には、もう Sun Microsystems から Olacle の手に渡ってしまった OpenOffice.org をなくしても良いかと思うところです。Office ソフトはグラフィック系のソフトと違い、それほど高性能マシンが必要な訳でも、ローカルインストールしなければならない訳でもないので、Web 版のもので充分です。 その点、GIMP や InkScape などのグラフィック系ソフトはやはりまだ Web アプリでは充分ではないので、ぜひデフォルトで入れていただきたいところです。Windows & PhotoShop & Illustrator や Mac & PhotoShop & Illustrator が10万円超に対し、Ubuntu & GIMP & InkScape は無料なのですから、強烈にそのコストバリューを宣伝できることも請け合いです!まあ、デフォルトで入っていなくても簡単にインストールできるので良いのですが、、、
で、今度の Ubuntu は待ちに待ったLTS(ロングタイムサポートの略)なので、これが Linux の代表として Windows 7 や MacOS と比較されることになります。私が使ったところ、GNOMEはまだまだ成長途上で、Win & Macにはそのユーザインターフェイスの細やかなところで負ける部分を感じますが、取り立てて使っていて不便というほどのレベルではなく、慣れれば問題ないでしょう。それ以上に、その本来のOSの性能は、安定性、機密性、保守性、などなど圧倒的にずば抜けていて、これでようやく素人さんにも本気でお勧めできるOSになってきたと感じます。
特に LTSは安定志向も強いので、サーバとして考えると少しうれしい気がします。
それでは、ドキドキを抑えつつ、サーバ構築の始まりです!


★★★★★★★★★★ サーバ化の事前準備


★表記上のルール

username:これはユーザ名のことで、自由に改変してください
username:これはディレクトリ名のことで、usernameと同じものにしてください
groupname:これはusernameが所属するグループのことで、自由に改変してください

 

★サーバ構成

☆外部からサーバへのアクセスは
 ①SSH接続(一般ユーザはSFTP接続)
 ②http接続
 ③https接続
の3種類の接続ができるようにします。 

☆内部からサーバへのアクセスは
 ①SSH接続
 ②http接続
 ③https接続
 ④Samba接続
の4種類の接続ができるようにします。

☆サーバにアクセスするSFTPアクセス一般ユーザの環境
 ここで、外部からSFTP接続されるサーバとして、考えなければならないことがあります。
 一般ユーザがSFTPでアクセスしてきた折には、指定したディレクトリにChrootして、そのディレクトリより上の階層へは行けないように設定したい訳です。(以降:アクセス制御)
 けれど、Chrootするディレクトリはその親ディレクトリすべても含め、root ユーザが所有者である必要があります。
 その場合ローカルログインするユーザ標準のディレクトリ「/home/username」のケースで考えると、
 「/home」の所有者はrootユーザですが、「/home/username」ディレクトリの所有者は「username」というユーザなので、「/home/username」ディレクトリでは、Chrootすることができなくなります。
 今度は逆にChrootできるように「/home/usernameディレクトリの所有者をrootユーザにしてしまうと、やはり通常 のSSH接続もローカルログインもできなくなってしまいます。
 つまり、SFTPで接続してくる一般ユーザは通常のSSH接続およびローカルログインができないユーザとなるという訳です。
 けれど例えば、自分が外部から自宅サーバにアクセスする折には、別段アクセス制御したSFTP接続する必要はありません。
 つまり、通常のSSH接続やローカルログインができるユーザはアクセス制御する必要がないユーザになります。
 アクセス制御をしなければ、Chrootもしない訳ですし、Chrootしないのであれば、通常のSSH接続もローカルログオンもできる訳ですのでこれで問題は解消します。

 上記の関係からSFTPアクセス制御を行う一般ユーザがSFTPで接続してくる場合のディレクトリ構成を下記の要領で考えてみました。

 
ディレクトリ名称 ディレクトリ 所有者 パーミッション 詳  細
ベースディレクトリ /home/username/ root 755 SFTPの場合にChrootするディレクトリでusernameは書き込みできないディレクトリ
ホームディレクトリ /home/username/doc/ username 700 外部から直接Webアクセスできないデータ(例:掲示板書き込みデータ)格納用ディレクトリ
SSLディレクトリ /home/username/ssl/ username 755 httpsアクセス用ディレクトリ(httpのディレクトリとは異なるディレクトリにしなければならない)
WWWディレクトリ /home/username/www/ username 755 httpアクセス用ディレクトリ(httpsのディレクトリとは異なるディレクトリにしなければならない)

 このディレクトリ構成を前提に内容を進めます。

☆Webアクセスとしてhttpでアクセスしてくるユーザは「http://ホスト名またはIPアドレス/~username/」でwwwディレクトリを参照できるようにします。

☆Webアクセスとしてhttpsでアクセスしてくるユーザは「https://ホスト名またはIPアドレス/~username/」 でsslディレクトリを参照できるようにします。


★ルータの設定

☆ルータ外部からのアドレス変換の設定を行う(ルータの外部IPアドレスとアクセスしてきたポート番号を、内部のサーバのIPアドレスとポート番号に変換)
ルータの設定にて、
 ① SSH Server(ウェルノウンポート番号は22)
  ルータの外部IPアドレス&外部からのSSHアクセスのポート番号 → 内部のサーバのIPアドレス&サーバのSSHアクセス用ポート番号
 ② Web Server(ウェルノウンポート番号は80)
  ルータの外部IPアドレス&外部からのhttpアクセスのポート番号 → 内部のサーバのIPアドレス&サーバのhttpsアクセス用ポート番号
 ③ SSL Server(ウェルノウンポート番号は443)
  ルータの外部IPアドレス&外部からのhttpsアクセスのポート番号 → 内部のサーバのIPアドレス&サーバのhttpsアクセス用ポート番号
等の各種サーバのアドレス変換テーブルを作成

☆ルータ内部のDHCP設定を調整する(サーバにDHCPアドレスがあたらないようにする)
 ・DHCPでもアクセスできますが、返って面倒なので固定IPにしてしまいましょう。

 

★Ubuntu 10.04 Desktop のインストール

☆LiveCDからインストール
 ・デフォルトインストールでOK(一般的なコンピュータならば15~30分足らずで完了すると思います)

☆固定IPアドレスの設定
 ・右上にある「有線ネットワーク接続」(「↑↓」マーク)を右クリックし「接続の編集」をクリック
 ・「ネットワーク接続」ダイアログボックスにて「有線」タブにある「Auto eth0」を選択し「編集」ボタンをクリック
 ・「IPv4」タブを選択
 ・「メソッド」を手動に変更
 ・「アドレス」、「ネットマスク」、「ゲートウェイ」を入力
 ・必要であれば「DNSサーバ」、「検索ドメイン」等を入力
 ・「適用」ボタンをクリックで完了
 ※以前の Ubuntu Desktop はこの設定が厄介でしたが、今は楽チン!
   くれぐれも Desktop に関しては、以前のCUI的に「/etc/network/interfaces」を編集しないでください。(その場合、正常動作しません)
   できる限りGUIが Ubuntu Desktop の醍醐味です!
  ノーマル Ubuntu Server (CUI)の場合は「/etc/network/interfaces」を編集してください。

 

★Basic Ubuntu サーバと LAMP サーバと OpenSSH サーバと Samba サーバのインストール

☆スーパーユーザ権限で tasksel の実行
sudo tasksel

☆各種サーバのインストール
 ・「インストールするソフトウェアの選択」にて
  ・Basic Ubuntu Server(これはインストールしなくても問題ありません)
  ・LAMP server
  ・OpenSSH server
  ・Samba file server
  をスペースキーを押して選択
 ・TABキーを押して<了解>にてエンターキーを押すとサーバ化が始まります。
 ・途中 MySQL インストール時に「MySQLの"root"ユーザに対する新しいパスワード」の入力を2度求められますので、適宜入力してください。
 ・所要時間はほとんどがダウンロードで、そのダウンロードに10分、インストールで2分程度でした。

 

★アップデートとアップグレード

●CUI方式
☆アップデート
sudo apt-get update

☆アップグレード
sudo apt-get upgrade

●GUI方式
☆「システム」→「システム管理」→「アップデートマネージャ」の起動

☆パッケージ管理システムのダウンロード可能サイトリストの更新
  「再チェック」ボタンをクリック

☆インストール済みパッケージの更新
  「アップデートのインストール」ボタンをクリック
  ※ダウンロード可能サイトリストを編集したり、サポート状況等によるアップグレード処理の設定は「システム」→「システム管理」→「ソフトウェア・ソース」にて設定

 

★アクセス&編集方法

☆Windows からのアクセスは止めましょう。
 Windows 自体に Microsoft 自身も諦めた多くの脆弱性や未知の脆弱性が無数に存在しておりますので、基本的には Windows からアクセスするという以前に、Windows 自体の利用を一度考え直してみても良いのではないかと思います。
 どうしても Windows が必要なケースとしてはどのようなケースがあるでしょうか?
 1、Windows 上でしか動かないソフトウェア(Microsoft Office や Windows 専用ゲームなど)を利用するケース
 2、ビデオカードの性能をフルに使うようなソフトウェアを利用するケース
 多くの場合、この2つのケースになるのではないでしょうか?
 私も Windowsマシン があります。その Windowsマシン は nVidia のビデオカード経由でテレビに繋がっており、動画再生時に動画再生エリアを全画面としてテレビで再生されるように設定してあります。nVidia のビデオカードドライバの関係で、Linux 系 OS ですと、デスクトップ全体をテレビで見ることができても、動画再生エリアのみを全画面としてテレビで見ることはできません。(今回の Linux Core から nVidia のビデオカードドライバを解析したものが入ってきたようなので、状況が変わったかもしれませんが)それが唯一の私が Windowsマシンを使うケースです。もう二度と、言語として賞味期限のある Visual Studio は使いませんので、Windows マシンでプログラム開発することもありません。ゲームは作ることはあっても、やることはあまりありませんので、そういった部分でも Windows の必要性を感じることはありません。
 Web利用に関しては100% Linux 環境側で行っています。Linux でも Firefox や Google Chrome などのブラウザを利用することができますので不自由はしません。ありとあらゆるソフトウェアが無償で利用できますので、そうそう困ることはないと思いますが、まだまだ多くの問題を抱えているのは、やはり Microsoft Office の問題でしょう。独自仕様のスタイルを変更しようとしない Microsoft Office とその他の Office ソフトウェアの互換性は未だに「問題あり」の状況に変化はありません。最初から OpenOffice.org や Google Apps で作られていれば良いのですが、現状においては Microsoft Office で作った資産を再利用するケースが多くあるのが実状で、その点に関しても Linux 利用の不便さは否めません。
 けれど、ここで具体的に考え直してみれば、
 1、Microsoft Office やゲーム
 2、ビデオカードの性能をフルに使うケース
 以外の事柄に関しては Windows の必要性はなくなっています。
 つまり、Microsoft Office の過去の資産を、OpenOffice.org や Google Apps に移行さえしてしまえば、Windows 側には重要なデータファイルもなければ、個人情報を入力する必要もなく、窃取されて困るような情報を取り扱うことのない、ゲーム専用マシンであったり、動画再生専用マシンとして利用すれば良くなります。隔離したネットワーク環境に置いておけばなお安心です。窃取すべき情報がないのであれば、その Windows マシンがウィルス感染しても大きな問題にもなりません。
 ネットショッピング等における個人情報入力や個人情報ファイル等を取り扱う(重要なデータを取り扱う堅牢な Unix 系)OSと、ウィルス感染してしまう(ホビー用途限定の Windows)OSを分離すれば良いのです。そうすれば、情報漏洩などの問題の多くは解決します。少なくとも被害を最小限に止めることはできると思います。
 ところが、この方法を実現しようとすると、複数の OS が必要となります。使い勝手を考えると、1台のコンピュータで起動時に複数の OS から目的の OS を選択するマルチブート方式は、同時に複数の OS を利用できるわけではありませんので不便です。そうなると、複数のコンピュータ(ハードウェア)を用意するか、仮想化を利用することになります。私は電気代節約も兼ねて、Server 兼 Desktop の ATOM & ION マシンに Ubuntu を入れ、それをメインに使い、動画をテレビで見るときにだけサブの Windows マシンを起動するというデュアルハード環境を用意していますが、2台のコンピュータを持つというのは一般的ではありません。そう考えると、KVM の利用や VirtualBox や VMWare 等の仮想化ソフトを利用し、ゲスト OS としてもう一つの OS を立ち上げるという方式が現時点における現実解かもしれません。
 ここで、Windows は絶対に使うという前提で、ホスト OS とゲスト OS の組み合わせを考えてみると、
 1、ホスト OS : Windows 、ゲスト OS : Windows
 2、ホスト OS : Windows 、ゲスト OS : Unix系OS
 3、ホスト OS : Unix系OS 、ゲスト OS : Windows
 といった組み合わせが考えられます。
 1 については、不安定かつ機密性に欠け、ホストとゲストでデータを共有できるため、ホストもしくはゲストがウィルス感染した場合に共倒れも想定できますので、無意味な仮想化と考えられます。(領域を完全に分け、インストールテスト等を行うには便利ですが)
 2 については、ビデオカードの性能をフルに使う ケースがある人にとっては最もお勧めのケースです。その代わり Windows は Unix系OS と比較し性能が劣る分、ゲスト OS の性能も低くなってしまいますので、それは覚悟した上での利用になります。
 3 については、ビデオカードの性能をフルに使うケースはないが、Windows 上でしか動かないソフトウェアを利用するケースがある人にとって最もお勧めのケースです。それほど性能的なロスをすることなく、Windows も動きますので、Microsoft Office がどうしても必要なケース等には特にお勧めです。
 インストールと Windows Update したてで正常可動する Windows を仮想化ソフト側で保存しておけば、乱暴な使い方でレジストリを壊しても、ウィルス感染しても次回起動時には元通りにすることもできます。
 話が長くなりましたが、いずれにしても Windows 上においては、ファイル共有ソフトはもちろんのこと、ブラウザやメーラー、FTPソフト、SFTPソフトなどの通信を行うソフトウェアはインストールせ ず、原則として Windows Update または putty を利用した通信以外の通信は行わないようにした方が懸命です。
 ・ どうしても Windows から直接 SSH 接続で Unix系OS を操作したい場合は「putty」を利用する。
 ・ どうしても Windows から直接 SFTP を利用したい場合は「putty」に付属する「psftp」を利用する。(CUI環境ですが)
 ・ どうしても Windows を色々使いたい場合は VirtualBox や VMware などの仮想マシンを導入する。
 ・ FTPはいかなる環境下であれ、もう二度とソフトウェアをインストールしたり接続したりしない。
 ・ WindowsマシンのFTPソフトやSFTPソフトがインストールされていた場合は必ずクリーンにアンインストールし、レジストリにデータの残骸が残っていないかの確認もする。
 ・ 心配な方は Windows 自体をクリーンインストールし直す。
 こういった限定的な使い方や制限した使い方をすれば、Windows もまだまだ使える場面はあります。
 一方、Ubuntu であれば、FTP ソフトも SFTP ソフトも SSH ソフトも必要ありません。 標準のファイルブラウザ(Nautilus)や端末だけでローカルアクセスしているように他のコンピュータと接続できます。もともと「ネットワークとマルチユーザを前提」に作られた Unix系OS と「スタンドアローンでシングルユーザ」を前提に作られた Windows ではセキュリティに対する考え方が最初から根本的に異なりますので、それに即した使い方をすれば良いのです。そして Ubuntu には gFTP というとても使いやすい SFTP や FTPS 等も対応した FTP ソフトを初めとして、GIMP や Inkscape 等の Photoshop や Illustrator に双璧するグラフィックソフトウェアも無償で提供されております。ありとあらゆるソフトが OSS として公開され、無償で利用ができますので、そちらを利用していただいても構いません。
 と、色々書きましたが、セキュリティ面を考えると(Windows 自身の利用も含め)Windows からのアクセスはできるだけ控え、通信の機密性を確保していく必要性があります。

☆テキストファイルの編集方法
 CUI方式で編集する場合のテキストエディタを nano にしてありますが、 vi でも Emacs でも、お好みでどうぞご変更ください。ただ、この環境下であれば、ぜひとも GEdit 等を用いた GUI での操作をお勧めします。

☆ファイル・ブラウザ(Nautius)をroot権限で起動できるメニューを作成(以降略称:ルートブラウザ)
 root権限がなければならないファイルをたくさん編集しますので、ファイルの閲覧をしながら、簡単かつ自動的にroot権限での編集ができる「ルートブラウザ」を作成します。
 ・ 「システム→設定→メイン・メニュー」にて「メイン・メニュー」ダイアログを開く
 ・ 「メニュー」で好みのメニューを選択し、「新しいアイテム」をクリックして「ランチャの作成」ダイアログボックスを開く
 ・ 「種類」は「アプリケーション」のままでOKで、「名前」と「コメント」と「アイコン」は任意、「コマンド」は「gksudo nautilus」とし閉じる
 ・ ただし、このルートブラウザは見栄えは通常のファイルブラウザだがとても強力で、いかなるファイル/ディレクトリでも削除変更できてしまう。
 ・ また、このルートブラウザから「右クリック →geditで開く」などの操作をした場合、gedit自体もroot権限で起動されるため、いかなるファイルも編集可能と超強力です。
 ・ そして、この時起動されるgeditの見栄えも通常のものと何ら変わりません。
 ・ こういった理由で、このルートブラウザは大変強力で便利なものではありますが、その取扱いには十分に気をつけてください。

 

★★★★★★★★★★ OpenSSH Server の設定(① SSH Server の設定)


 ローカルログインユーザの SSH Server の設定としては、OpenSSH サーバをインストールした段階で完了してしまっています。ですので、ここでは一般ユーザが外部から SFTP アクセスする場合の設定をします。


★SFTPアクセスをするユーザの作成

●CUI方式

☆グループの作成(groupaddは新規グループの作成)
sudo groupadd groupname

☆グループへの既存ユーザの追加(usermodは既存ユーザのアカウント情報変更)
sudo usermod -G groupname username

☆ユーザの新規作成(useraddは新規ユーザの作成)
sudo useradd username

☆新規追加したユーザのパスワード設定
sudo passwd username

●GUI方式

☆ユーザおよびグループの編集
 ・ 「システム→システム管理→ユーザとグループ」にて「ユーザ設定」ダイアログを開く
 ・ 「鍵マーク」をクリックして変更可能にする

☆グループの作成
 ・ 「グループの管理」をクリックして「グループの設定」ダイアログを開く
 ・ 「グループの追加」をクリックして「新しいグループ」ダイアログを開く
 ・ 既存のものと重複しない「グループ名」と「グループID」を入力し、必要であれば「グループのメンバ」をチェックし加え「OK」をクリック

☆ユーザの作成
 ・ 「ユーザの追加」をクリックして「新しいユーザ・アカウント」ダイアログを開く
 ・ 「アカウント」タブの「基本設定」のユーザ名や「パスワード」等必要事項を入力
 ・ 「高度な設定」タブの「ホームディレクトリ」にて「/home/username」のように適切な「ディレクトリ名」や「ユーザID」を入力
 ・ 必要であれば「メインのグループ」を入力し「OK」をクリック

 

★SFTPでアクセスするディレクトリの作成

●CUI方式

username ディレクトリを所有者:root、グループ:rootで作成し、パーミッションを755に設定する

cd /home
sudo mkdir username(ここでの username はディレクトリ名)
sudo chmod 755 username(ここでの username はディレクトリ名)→デフォルトが755なので省略可

☆ホームディレクトリ等を所有者:username、グループ:groupname で作成し、パーミッションをdoc:700、ssl:755、www:755に設定する

cd username(ここでの username はディレクトリ名)

sudo mkdir doc
sudo mkdir ssl
sudo mkdir www

sudo chown username doc
sudo chown username ssl
sudo chown username www

sudo chgrp groupname doc
sudo chgrp groupname ssl
sudo chgrp groupname www

sudo chmod 700 doc
sudo chmod 755 ssl→デフォルトが755なので省略可
sudo chmod 755 www→デフォルトが755なので省略可

●GUI方式

☆Chrootを行う元のディレクトリ(username)とその他ディレクトリの作成
 ・ ルートブラウザを起動し、「/home」ディレクトリへ移動
 ・ 「ファイル→フォルダの生成」にて「username」というディレクトリを作成
 ・ (ルートブラウザで作成したため、この時点で username ディレクトリは所有者:root、グループ:root、パーミッション755となる)
 ・ 「username」ディレクトリをダブルクリックし username ディレクトリの中に入る
 ・ 「ファイル→フォルダの生成」にて「doc」というディレクトリを作成
 ・ 「ファイル→フォルダの生成」にて「ssl」というディレクトリを作成
 ・ 「ファイル→フォルダの生成」にて「www」というディレクトリを作成
 ・ (この時点で「doc」、「ssl」、「www」の3つのディレクトリともに所有者:root、グループ:root、パーミッション755となる)

☆「doc」、「ssl」、「www」の3つのディレクトリのアクセス権を変更
 ・ 「doc」ディレクトリを右クリックし「プロパティ」をクリックし「アクセス権」タブをクリックする
 ・ 「所有者」を「username」に変更し、フォルダのアクセス権は「作成と削除」のまま
 ・ 「グループ」を「groupname」に変更し、フォルダのアクセス権を「なし」に変更
 ・ 「その他」のフォルダのアクセス権を「なし」に変更
 ・ 「実行」のチェックを入れ閉じる
 ・ 「ssl」ディレクトリを右クリックし「プロパティ」をクリックし「アクセス権」タブをクリックする
 ・ 「所有者」を「username」に変更し、フォルダのアクセス権は「作成と削除」のまま
 ・ 「グループ」を「groupname」に変更し、フォルダのアクセス権は「アクセスのみ」のまま
 ・ 「その他」のフォルダのアクセス権も「アクセスのみ」のまま
 ・ 「実行」のチェックを入れ閉じる
 ・ 「www」ディレクトリを右クリックし「プロパティ」をクリックし「アクセス権」タブをクリックする
 ・ 「所有者」を「username」に変更し、フォルダのアクセス権は「作成と削除」のまま
 ・ 「グループ」を「groupname」に変更し、フォルダのアクセス権は「アクセスのみ」のまま
 ・ 「その他」のフォルダのアクセス権も「アクセスのみ」のまま
 ・ 「実行」のチェックを入れ閉じる

 

★SFTPアクセスユーザの設定をするため「/etc/ssh/sshd_config」をroot権限で編集

●CUI編集方法(エディタは好みもあるのでお好きにどうぞ。ただ、そろそろviに代表されるCUI方式からGUI方式にしていきましょうか。)
sudo nano /etc/ssh/sshd_config

●半CUI半GUI編集方法
sudo gedit /etc/ssh/sshd_config
gksudo gedit /etc/ssh/sshd_config

●GUI 編集方法
ルートブラウザを起動後/etc/ssh/sshd_configファイルを右クリックしgeditで編集

☆編集内容
Subsystem sftp /usr/lib/openssh/sftp-server
の行をコメントアウトし
#Subsystem sftp /usr/lib/openssh/sftp-server
に変更

その下の行を追加し
Subsystem sftp internal-sftp
を追記

・ユーザごとに指定する場合は最終行に
Match user username
    ChrootDirectory /home/%u
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp
と追記
※ SFTPアクセスユーザが少ない場合は、このようにユーザごとに指定する

・グループごとに指定する場合は最終行に
Match group groupname
    ChrootDirectory /home/%u
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp
と追記
※SFTPアクセスユーザが多い場合は、最初にグループを作成して、全SFTPアクセスユーザを1つのグループに入れて、グループごとに指定する

 

★OpenSSHの再起動
これで、SFTPユーザ関連の設定が完了したので OpenSSH を再起動します。
sudo /etc/init.d/ssh restart

 

★SFTPでのアクセステスト
では、正しくアクセスできるかテストしてみましょう。

●CUI方式

sftp username@ホスト名またはIPアドレス

●GUI方式

 ・「場所→サーバへ接続」にてファイルブラウザ(Nautilus)を起動
 ・「サービスの種類」を「SSH」に変更
 ・「サーバ名」にホスト名またはIPアドレスを入力
 ・「ポート番号」に SSH のウェルノウンポート番号「22」を入力(自分で変更した場合はそのポート番号)
 ・「フォルダ」はアクセスする折の初期フォルダを入力(特に指定がなければ空白でOK)
 ・「ユーザ名」は先ほど作った SFTP ユーザ名を入力
 ・「ブックマークを追加する」のチェックボックスにはブックマークを作りたければチェックを入れ「ブックマーク名」を入力する
 ・「接続」ボタンをクリックし、パスワードを入力


★SFTP アクセスユーザ&ディレクトリ自動生成バッチ処理(多くのユーザを作るときにご利用ください)
SFTP でアクセスするユーザ作成とディレクトリ作成を一気にやってしまうBashを作りました。
パスワードの登録に別途expectを利用しておりますので、makesftpuserとgoexpectの2つのファイルになります。
テキストファイルとして同一のディレクトリに保存した後、2ファイルともに実行可能ファイルにしてください。
入力書式は
makesftpuser ユーザ名 パスワード
になります。
expectをインストールしてください。

●CUI方式
sudo apt-get install expect

●GUI方式
「システム→システム管理→Synapticパッケージマネージャ」にてSynapticを起動
クイック検索にてexpectを検索
expectを右クリック→インストール指定をクリック→適用をクリック
expectを使わず、手動でパスワード登録される場合は「#パスワードの登録」のすぐ下の「./goexpect $1 $2」の行をコメントアウト「#./goexpect $1 $2」してください。

 

ファイル名:makesftpuser
↓ここから
#!/bin/bash

# ヘルプ表示
if [ $1 == "-help" ] || [ $1 == "-h" ];then
    echo "実行に必要な引数の数は2です。"
    echo "一つ目の引数は「ユーザ名」"
    echo "二つ目の引数は「パスワード」"
    echo "になります。"
    echo "例)makeuser username password"
    exit 1
elif [ $# -ne 2 ];then
    echo "入力された引数の数は$#です。"
    echo "実行に必要な引数の数は2です。"
    echo "ヘルプを見たい場合は引数に-hと入力してください。"
    exit 1
fi

echo "UserName:$1"
echo "PassWord:$2"
echo "でSFTPユーザを作成します。"
echo "よろしいですか?(y or n)"

while read ans
do
    if [ " $ans" == " y" ] || [ " $ans" == " Y" ];then
        echo "答えが$ansでしたので、SFTPユーザを作成します。"
        break
    elif [ " $ans" == " n" ] || [ " $ans" == " N" ];then
        echo "答えが$ansでしたので、処理を取り消して終了します。"
        exit 1
    else
        echo "答えは y または n で答えてください。"
        echo "UserName:$1"
        echo "PassWord:$2"
        echo "でSFTPユーザを作成します。"
        echo "よろしいですか?(y or n)"
    fi
done

# ユーザの作成
sudo useradd -d /home/$1/doc $1

# パスワードの登録
./goexpect $1 $2

# ディレクトリの作成
sudo mkdir /home/$1
sudo mkdir /home/$1/doc
sudo mkdir /home/$1/ssl
sudo mkdir /home/$1/www

# ディレクトリオーナーの変更
sudo chown $1 /home/$1/doc
sudo chown $1 /home/$1/ssl
sudo chown $1 /home/$1/www

# ディレクトリグループの変更
sudo chgrp $1 /home/$1/doc
sudo chgrp $1 /home/$1/ssl
sudo chgrp $1 /home/$1/www

# パーミッションの設定
sudo chmod -R 700 /home/$1/doc
sudo chmod -R 755 /home/$1/ssl
sudo chmod -R 755 /home/$1/www

# ヒアドキュメントで完了メッセージを表示する。
cat <<__EOT__
ユーザ名 : 「$1」
パスワード: 「$2」
ユーザ作成は正常に終了しました。
__EOT__

exit 0
↑ここまで

 

ファイル名:goexpect
↓ここから
#!/usr/bin/expect -f

log_file expect_log
set password [lindex $argv 1]
spawn sudo passwd [lindex $argv 0]
set send_slow {1 .1}
expect "新しいUNIXパスワードを入力してください:"
send -s "$password\r"
expect "新しいUNIXパスワードを再入力してください:"
send -s "$password\r"
expect eof
↑ここまで


★★★★★★★★★★ LAMP Server の設定(apache2 の設定、MySQLの設定、Perl、Pyhon、PHPの設定)


★apache2 の設定

☆プロバイダ仕様のため多くのユーザがWeb公開し、
「http://ホスト名またはIPアドレス/~username/」や「https://ホスト名またはIPアドレス/~username/」
でアクセスできるようにする前提ですので、UserDirをapache2に組み込み、有効化します。
sudo a2enmod userdir

☆FastCGIが動作するように設定

●CUI方式
まず、FastCGI本体となる「libapache2-mod-fastcgi」と開発時のインクルードヘッダファイル等の「libfcgi-dev」をインストール
sudo apt-get install libapache2-mod-fastcgi libfcgi-dev

次に FastCGI を apache2 に組み込み、有効化する
sudo a2enmod fastcgi

最後に apache2 の再起動(Desktop 版の端末でアパッチを restart しても FastCGI が有効にならない場合は Ubuntu 自体の再起動でOK)
sudo /etc/init.d/apache2 restart

●GUI方式
「システム→システム管理→Synaptic パッケージ・マネージャ」にて Synaptic を起動
クイック検索にて FastCGI 本体となる「libapache2-mod-fastcgi」を検索し、右クリック→インストール
同様に、開発時のインクルードヘッダファイル等の「libfcgi-dev」を検索し、右クリック→インストール
(このとき、「libfcgiOldbl」が追加でインストールされる)
この後、適用をクリックしインストール
インストール後 Ubuntu を再起動

☆apache2(② Web Server)の設定
Web Server としては、
 ・ 「http://ホスト名またはIPアドレス/~username/」にてアクセスしたときのディレクトリの設定
 ・アクセスしたときにその該当ファイルがないときにディレクトリ/ファイル情報をしないように設定
 ・C言語をコンパイルして作ったネイティブCGIの動作の許可
 ・CGIとして動作可能な拡張子(C言語ネイティブ:.cgi、Perl Script:.pl、Python Script:.py)を設定
  (PHPはLAMPサーバをインストールした時点でモジュール型が動作するようになっているためここでは設定しない)
 ・FastCGIとして動作可能な拡張子(C言語FastCGIネイティブ:.fcgi)を設定
 ・CGIが動作するディレクトリの設定
 ・ドキュメントを置くディレクトリの設定
等を行います。

赤字のエリアは各自の希望に合わせて変更・設定
ファイル名:/etc/apache2/sites-available/default
CUI編集方法:sudo nano /etc/apache2/sites-available/default
GUI編集方法:ルートブラウザにてファイルを右クリックしgeditで編集

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    UserDir www

    DocumentRoot /home/
    <Directory /home/>
        Options -Indexes FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /home/*/www>
        Options -Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
        AddHandler cgi-script .cgi .pl .py
        AddHandler fastcgi-script .fcgi
        Options ExecCGI

    </Directory>

    ScriptAlias /cgi-bin/ /home/*/www
    <Directory "/home/*/www">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog /var/log/apache2/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog /var/log/apache2/access.log combined

    Alias /doc/ "/home/*/doc/"
    <Directory "/home/*/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0::1/128
    </Directory>

</VirtualHost>

 

☆apache2(③ SSL Server)の設定
SSL Server としては、
 ・SSLを apache2 に組み込み有効化する
 ・SSLの設定ファイル名を指定する
 ・ 「https://ホスト名またはIPアドレス/~username/」にてアクセスしたときのディレクトリの設定
 ・アクセスしたときにその該当ファイルがないときにディレクトリ/ファイル情報をしないように設定
 ・C言語をコンパイルして作ったネイティブCGIの動作の許可
 ・CGIとして動作可能な拡張子(C言語ネイティブ:.cgi、Perl Script:.pl、Python Script:.py)を設定
  (PHPはLAMPサーバをインストールした時点でモジュール型が動作するようになっているためここでは設定しない)
 ・FastCGIとして動作可能な拡張子(C言語FastCGIネイティブ:.fcgi)を設定
 ・CGIが動作するディレクトリの設定
 ・ドキュメントを置くディレクトリの設定
等を行います。

まず、sslを利用できるよう、端末で下記2命令を実行します。
ssl を apache2 に組み込み、有効化
sudo a2enmod ssl

apache2で用いる設定ファイルの設定
sudo a2ensite default-ssl

次にファイルの編集
赤字のエリアは各自の希望に合わせて変更・設定
ファイル名:/etc/apache2/sites-available/default-ssl
CUI編集方法:sudo nano /etc/apache2/sites-available/default-ssl
GUI編集方法:ルートブラウザにてファイルを右クリックしgeditで編集

<IfModule mod_ssl.c>
<VirtualHost _default_:443>
    ServerAdmin webmaster@localhost

    UserDir ssl

    DocumentRoot /home/
    <Directory /home/>
        Options -Indexes FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /home/*/ssl/>
        Options -Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
        AddHandler cgi-script .cgi .pl .py
        AddHandler fastcgi-script .fcgi
        Options ExecCGI

    </Directory>

    ScriptAlias /cgi-bin/ /home/*/ssl/
    <Directory "/home/*/ssl">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog /var/log/apache2/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog /var/log/apache2/ssl_access.log combined

    Alias /doc/ "/home/*/doc/"
    <Directory "/home/*/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

    ~中略~

</VirtualHost>
</IfModule>

 

☆apache2 の再起動
sudo /etc/init.d/apache2 restart

 

★MySQL Server 設定

☆日本語を利用できるように、UTF-8の設定
ファイル名:/etc/mysql/my.cnf
CUI編集方法:sudo nano /etc/mysql/my.cnf
GUI編集方法:ルートブラウザにてファイルを右クリックしgeditで編集

[client]のエリアに下記コードを追記(Ubuntu Desktop の場合は必要)
default-character-set = utf8

[mysqld]のエリアに下記コードを追記
default-character-set = utf8
skip-character-set-client-handshake

[mysqldump]のエリアに下記コードを追記
default-character-set = utf8

[mysql]のエリアに下記コードを追記
default-character-set = utf8

 

☆MySQLの再起動
sudo /etc/init.d/mysql restart

※MySQLの再起動は reload では正しく変更が反映されませんので、必ず restart または Ubuntu の再起動を行ってください。
 また、UTF-8の設定を行う前に作ったデータベースの言語設定は、MySQLの設定に関わらず維持されてしまいますので気をつけてください。
 MySQLはデフォルトではラテン語を用います。
 つまり、デフォルトのMySQLに接続しようとするPHP等はラテン語でMySQLに話しかけてしまうので、MySQL接続時にPHP等が話す文字コードもUTF-8に変更する必要があります。


★★★★★★★★★★ その他色々

 

★Sambaの設定

ファイルブラウザにてファイルサーバ化したいフォルダを「右クリック→共有のオプション」
「このフォルダを共有する」のチェックボックスにチェックを入れ、共有名等を入れればOKです。
ただし、Windowsマシンも接続する場合は同一のワークグループに存在するよう設定してください。
なお、Ubuntu側のデフォルトのワークグループ名は「WORKGROUP」になります。

☆Ubuntu側でワークグループを変更する方法
赤字のエリアは各自の希望に合わせて変更・設定
ファイル名:/etc/samba/smb.conf
CUI編集方法:sudo nano /etc/samba/smb.conf
GUI編集方法:ルートブラウザにてファイルを右クリックしgeditで編集

workgroup = WORKGROUP

 

★スクリプトアップロードの注意事項
PHP、Perlは文字コードにほとんど問題ないのですが、PythonのみあらかじめUTF-8N(LF)コードでスクリプトを製作しアップしなければ動作しません。
もちろん、Ubuntu自体がUTF-8ですので、全てUTF-8で統一がベストです。
スクリプトではありませんが、CのCGIを作成するときのコードも当然UTF-8です。
そして、アップロードするときのプロトコルとして絶対にFTPは使用しないようにしてください。
以前Telnetが瞬く間に消えてSSHに変わったように、FTPが消え、SFTPもしくはFTPSに変わります。
いえ、変えなければなりません。
同様にメールプロトコルのPOP3やSMTPなんかも消えなければなりません。
ネット上に平文でID、パスワード、文章内容などを流してしまうプロトコルを一掃することで随分ネット社会としてのセキュリティが高まります。
外に出るときに裸で歩かないのと同様に最低限のマナーとして、暗号化してネットにパスワード等を流す当たり前の社会になって欲しいものです。

 

★その他注意事項
やっぱりセキュアというからには、本来自分で、SELinux等様々なセキュア対策を講じる必要があります。
その点、ディストリとして標準でかなりセキュアな設定のCentOSが日本人に好まれるのが良くわかります。
更にCentOSはインストールもかなり楽で素晴らしいOSです。
が、自宅にある余ったマシンでサーバ構築する私としては、ハード対応に少し残念さがあります。
ということで、ハードを選ばず、劇的に導入の楽な Ubuntu な訳ですが、Ubuntuは特に初心者の方も多いと思いますので、良く理解しセキュアな環境ができるようになるまでは、サーバマシン及びサーバを踏み台にしてアクセスできるマシンには、漏洩して困るような情報は入れないでください。

 

★最終確認
これで全て完了しました。
このサーバの動作を確認します。

1、通常の Ubuntu Desktop としての機能
 ・GNOMEデスクトップの動作確認
 ・Synaptic、Firefox等の動作確認

2、LAMPサーバとしての機能
 ・Webサーバとしての動作確認
  「/home/username/www/」にindex.htmlを置いて、「http://ホスト名またはIPアドレス/~username/」にてアクセス
 ・SSLサーバとしての動作確認
  「/home/username/ssl/」にindex.htmlを置いて、「https://ホスト名またはIPアドレス/~username/」にてアクセス
   SSLサーバはいわゆる「オレオレ認証」になりますので、アクセス後
   「接続の安全性を確認できません」
   とか
   「このサイトのセキュリティ証明書は信頼できません」
   というようなメッセージがでますが気にせず接続してください。
   また、最近では Rapid-SSL のように年間2000~3000円程度で独自SSLを利用できますので、ドメインとともに導入してみてください。
 ・MySQLの単体確認(mysqlを起動してログイン後サンプルデータベース抽出確認等)
 ・Perlの動作確認
 ・Pythonの動作確認
 ・PHPの動作確認
 ・Perl、Python、PHPとMySQLの連携での動作確認(特に日本語関連の確認)

3、OpenSSHサーバとしての機能
 ・SSHサーバとしてのとしての動作確認(他クライアントからログインして各種操作)
 ・SFTPサーバとしての動作確認(他クライアントからログインしてファイル送受信操作)

4、Sambaサーバとしての機能
 ・Sambaサーバとしての動作確認(共有エリアにファイルの保存、削除等)

これらがうまく動作すれば完了です。
お疲れ様でした。
初めてサーバに挑戦した人は苦労したかもしれませんが、慣れてくれば1時間もかかりません。
Windows XP をクリーンインストールし、Windows Update や各種ソフトウェアのインストールまで終えて、使える状況にするまでには2日かかりますが、Ubuntu であれば Desktop インストールと Server 環境設定のセットで1時間もかからないのです。
どうですか?
Windows Serverよりも早くて楽チンでは?
性能、信頼性、安定度、機密性が高く、GUIで操作が楽チンな無料のOS(Ubuntu Desktop Server)を使ってみませんか?
今から2時間の時間が確保できるのでしたら、必要なデータの退避、Ubuntu ISOイメージのダウンロードとインストールCD作成、そしてインストール、サーバ環境設定と試してみてください。
きっとかつてない素晴らしい体験ができるでしょう!
なお、かなり巨大なベージになってしまいましたので、点検したつもりですがまだ間違いがあるかもしれません。
何かおかしなところがありましたら、ご指摘くだされば幸いです。

 

ここでの文章、画像、検証結果などは全てDreamHopeに著作権があります。リンクに関してはTopLink、DeepLinkともに構いませんが、全部・一部の「学術論文等許諾の不必要な引用」以外の引用に関しては禁止します。

Copyright (C) 2010 DreamHope All Rights Reserved .  Access: