はじめまして。
レンタルサーバを作りたいと考えいるのですが、ネットワークに余り明るくないのでご質問させて頂きました。
イメージとしては、下記の様な手順になるのかなと考えているのですが、具体的な設定方法などご教授頂けると幸いです。
手順
1.サーバ用PCを用意
2.OSインストール(windows or linux)
3.サーバインストール(apacheやtomcat)
4.必要であればPHPやjava等をインストール
5.必要であればDBインストール
6.サーバ下にサブフォルダを大量作成
→このフォルダ1つ1つが各ユーザに割り当てるフォルダになる
7.各ユーザがサブフォルダ1つ1つにFTPで個別にアクセスできるようにする。
この他、ユーザ管理画面やユーザ作成画面なども別途必要になるかと思います。
良く分からないのは、7のフォルダごとにアクセス権を割り当てることです。
個別のフォルダにFTPのアクセス権を設定することはできるのでしょうか。
その他、見落としなどございましたらご指摘いただけると幸いです。
以上、宜しくお願い致します。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答9件
0
まず聞いておくべきなのは、
貴方は学生だったり無職だったりして、勉強の為にレンサバ事業者としてのスキルを磨いてみたいという好奇心が動機ですか?
これがYESならば、そうですか、頑張ってくださいねというエールと共にアドバイスを送りましょう。
他の企業から金を貰って請け負うとでかい責任がつきまとうので、
ある程度運用経験を積むまではボランティアかカンパ程度にしておいたほうが無難です。
また、不特定多数をユーザとして公開しないでください、あくまで自分で責任持てる知人のみをユーザーにしてください。
具体的なサービスのコアな大枠は質問文の手順で良いでしょう。
普通に自分でWebサーバを立ち上げて運営するならばギリギリ合格点という感じですかね。
軽微な問題が出ても自分で何とかできそうです。
問題は、上記の質問への回答がNOのケースであり、
事業者になって金稼ぎをしたいという頭おかしい事を言ってる場合です。
もし質問者さんが私の友人であるならば必死で引き止めます。
理由は2つ
- セキュリティ的な所で作るべき仕組みが多すぎる
- 儲かる見込みがない
上から見ていきましょうか。
まず、本質問にはセキュリティ的な視点が一切盛り込まれていません。
これはレンサバ事業者として致命的な欠陥です。
Web上にサーバーマシンを公開した時点で全世界のクラッカー達の攻撃の対象になりえます。
お客様のファイルを預かりWebサーバで公開する行為ですから、漏洩≒事業者として一発アウトです。
また、内部のユーザの動向にも気を配る必要があります。
例えば2000年前後ではCGIゲームが多数登場し、Webサーバの負荷を1人のユーザーが集める事で他のユーザのWebサイトへのアクセスが出来なくなり大問題になりました。
今ではスクレイピングや、仮想通貨のマイニングもありますからやはりそれらの懸念は残っています。
こういった特定ユーザがマシンのCPUを異常に消費したり、トラフィックを占拠し始めたらどう対処しましょうか?
違法なファイル置き場に関しても難しいところです。
無断で複製した著作物、コンピュータ・ウィルス、ポルノ…
貴方が用意したサーバーマシンなので利用者がこれらを持ち込んだ場合、対処を間違えれば、貴方が犯罪者として捕まる可能性もあります。どう対処しましょうか?
他にもメール送信機能があればスパムメールを送信しまくるユーザも出てくるでしょうし、他のサイトにHTTP通信を飛ばせるのであればDDOS攻撃の温床にもなります。
サーバマシンは落ちない事が求められますが、
貴方のサービスはどの程度の可用性を宣言しますか?
復旧の仕組みは?死活監視は?
また、愉快犯のF5キーアタックの標的になりえます。
技術的な問題点はこの辺ですかね。
具体的な案を出せと言われれば出せない事もないですが…面倒見きれません。嫌です。
私はいかんせんプログラマ寄りの人間なのでその道のプロに比べると私の案は稚拙で恥ずかしいものです。
抜け漏れが多いでしょうし、嘘やトンチンカンなアドバイスになる可能性もあり、teratailでアドバイス貰った通りにやったのに、漏れがあって損害が発生した!どうしてくれるんだ!と怒鳴られてもなんにも保証出来ません。
本気で事業として取り組むのであれば、
ちゃんとしたセキュリティ会社に金払ってアドバイスをもらって下さい。
さて、紆余曲折ありましたが技術的な問題点を片付けてサービスを公開したとしましょう。
でも儲かる見込みは無さそうですが大丈夫ですか?
そもそも、レンサバというのは2000年時点で多数の企業が離脱して落ち着いています。
この20年でVPS、Heroku、クラウド、サーバレス…イケてるサービスが山のように登場してますので、私は生涯二度とレンサバを利用することはないでしょう。
そして貴社のライバルはサーバ運用やLinuxのプロが集まって月額100円そこそこのレンサバを公開しているさくらインターネットさんという老舗です。
差別化はどうしましょう?価格帯は?使える言語は?機能は?
そんじょそこらのエンジニアがサーバ運用のスペシャリスト揃いのさくらインターネットに勝てるわけ無いんですよ。
よしんば勝てても月額100円までダンピングされてしまっているので、全く旨味がないんですよね。
100円ってなんだよ……缶コーヒーじゃん……
コツコツ営業してITスキルのない顧客を抱える戦略でいくのであれば、
さくらインターネットやGMOみたいなサービスをお借りして、Webサイト制作と運営代行サービスとして中間マージンを抜いた方がよっぽど健全だし堅牢な仕組みに仕上がると思います。
ただまぁ、私は普通のエンジニアですので、
もし質問者さんが何かしらの儲けるネタを隠しており、勝算があるなら止めはしません。
投稿2018/09/21 04:00
編集2018/09/21 08:49総合スコア21158
0
その他、見落としなどございましたらご指摘いただけると幸いです。
「レンタル」といってどの程度の人に貸すのかわからないですが、「他人に貸す」となった場合は、セキュリティ・可用性などについて、個人利用と比べて高度なものが要求されます。
どうやって立てるかを相談しないといけないレベルで他人様のデータを預かるのは、正直言ってリスクが大きすぎます。
(もちろん、「サークルの内輪で共用する」ような、第三者が関係していないものであれば、その限りではないです)
投稿2018/09/21 01:08
総合スコア145184
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ベストアンサー
組織の内部向けにレンタルサーバー、つまり、Webホスティングサービスのシステムを構築し、運用していますので、その内容についてかいつまんで述べます。
サービス概要
実装済み
- 各部署が独自のホームページ等を公開できる場所として提供。(詳しい知識が無くてもOK)
- 使用料無料!(本当は金取りたい…)
- 利用者毎に独自のサブドメインが使用可能。(わかりやすいURLにできる)
- 証明書が付いてくるので、デフォルトでHTTPS可。(証明書の発行手数料はこちらで負担します)
- 自称SLA99.99%。(超えた場合の返金額は0円になにをかけても0円なので問題なし)
- CGIやPHPが使える。(Perl、Python、Rubyだけではなく、C/C++を自分でコンパイルすることも可)
- MySQLとPostgreSQLが使える。(MySQLの正体はMariaDBだけど)
- PHPはバージョンを選べる。(一つのバージョンを除きPHP-FPM経由になります)
- Wordpress等のメジャーなCMSの動作を保証。(WordpressとDrupalは取りあえず動いた)
- 任意のWebアプリケーションが(知識があれば)使える。(puma、Jetty、go製Webアプリが動作実績としてあり)
- OS・ミドルウェアは自動アップデートなので、セキュリティも安心。(その上に載っているコンテンツは知らんけどな)
- SE Linux有効。(ルール追加が大変でした)
- 利用者間は互いにファイルが見えないchrootを駆使した構成。(同じ組織内だし、そこまでする必要あったのかは疑問だけど)
- 外部公開版と内部のみ公開版の二種類を用意。(ただし、後から移ることはは出来ません)
- スケールアウト可能。(予算が付けば容量も無制限に増やせるよ)
未実装
- PHP-FPM以外のfast_cgi(検証中)
- cron(そのままだとchrootされない><)
- Shibboleth SP(ちょっと無理っぽい)
- まともなsendmailコマンド(メールは内部のSMTPサーバーに直接飛ばしてくれ)
- オブジェクトストレージサーバー(nextCloud向けにCephあたりを作ろうと思っている)
- LDAPサーバーとの連携(どういう仕組みにすればいいのかすらわかってない)
ユーザーへのサービス
- コンテンツアップロードはSCP/SFTPとFTP。(FTPは暗号化あり)
- SSH可能。(chroot済みだけど、GCCとかも使えます)
- Userminでパスワード変更。(将来はcronを登録できるようにしたい)
- DB管理用にphpMyAdminとphpPgAdmin。
- アクセス解析にAWStats。(試験運用中で解析対象サイトは一部のみ)
- オンラインマニュアル。(誤字脱字だらけ…そのうち修正するよ)
システム構成
- サーバーは自称プライベートクラウドに仮想マシンとして設置。(間借りしたデータセンターにクラスタ化された仮想環境基盤を置いているだけなんですけどね)
- 役割別にサーバーがわかれており、それぞれ複数台用意。
- 負荷分散サーバー(ちょっと作り直したい)
- Web兼Appサーバー(分離を構想中)
- ファイルサーバー(コンテンツ置き場)
- DBサーバー(MariaDBとPostgreSQLが同居ってどうなのだろう)
- 管理サーバー(これだけ1台、このサーバーが落ちていてもWebが落ちないから)
主な技術
- CentOS 7
- keepalived
- nginx
- Apache HTTP Server
- MariaDB Galera Cluster
- PostgreSQL
- GlusterFS
- Ansible
ユーザーやサイトの管理ツール
RubyスクリプトとAnsibleの組合せで自作。品質が良くなったらGitHubに公開するかもしれません。
Rubyスクリプトの主なコマンド
他サーバーへの命令が必要な場合は、Ansibleのタスク呼び出しになっています。
- ユーザーの作成・削除(ディレクトリも自動で作られる。ユーザーとサイトは1対1)
- ユーザーに対するDBの作成・削除
- 秘密鍵・証明書要求の作成、証明書と中間証明書の結合(nginxは結合が必要なの)
- ドメイン毎のnginx、Apache HTTP Server設定ファイルの作成
- chrootしても大丈夫なようにするためのユーザー毎のマウント処理
Ansibleの主なタスク
- Rubyスクリプトから呼び出す各処理
- 各サーバーへの秘密鍵・証明書の配付
- 各サーバーへのnginx、Apache HTTP Server設定ファイル配付
- 各サーバーのアップデートによる再起動命令
- バックアップ
かかった工数
わかんね。
時間あるときにちょっとずつ進めて、一段落するのに半年ぐらいかかりました。その後も、少しずつ改良を加えて行っています。なお、システムは二つあり、後から作った方はサーバーまるごとクローン大作戦をして、ホスト名・IPアドレス依存分の見直しや書き換えをして、一週間ぐらいです。
工夫した点
静的コンテンツはnginx、動的コンテンツはApache HTTP Serverにすることで、速くなったような気だけします(ただの自己満足)。それでありながら.htaccessも使えます(その場合はApache HTTP Serverだけで処理されますが)。Apache HTTP Serverではmod_ruid2でユーザーの領域を分離しています。これがなかったなら、Dockerでユーザー毎にApache HTTP Serverを動かすハメになっていた可能性が高いです。
複数のWebサーバーがどうやって同一コンテンツを持つかという点が一番悩みました。最初は共有ディスクを持たせてGFS2で作ってみたのですが、うまくマウントされないときはあるわ、クラスター仕込むのがめんどいわ、極めつけがSE Linux未対応ということで断念しました。その後、GlusterFSを使ってうまくいっています。GlusterFSはクラスタ化されたNFSのように使えますし、スナップショット(何回か失敗しています)までとれるのが良かったです。
未解決部分
- GlusterFSに全て置いている状態だと、Ruby on Rails(puma使用)の起動がめちゃくちゃ遅い。(10分ぐらいかかるんですけど)
- PostgreSQLは、マスターが死んでも、スレーブがマスターに自動昇格しない。(どんな仕組みが良いのか、ずっと検証中)
- 改良するための時間がなかなか取れない。
将来構想
- Dockerを使って作り直し。(CentOS 7のサポートが切れるまでは作っておきたい)
このシステムは私が培ってきたインフラ技術の集大成です。これでも、商業サービスに比べたら、相手にならないぐらい低いレベルだと思います(例えば、商業ですと、ユーザー毎の制限とかが必要になりますが、このシステムは内部向けサービスなので制限はしていないのです)。上に書いている内容がわからないとなると、知識や経験が足りません。その状態では、レンタルサーバーを作るのは難しいと思います。
投稿2018/09/21 11:29
総合スコア21735
0
レンタルサーバーの管理者を目指すということであれば、これぐらいは、自力解決してもらいたいと思うので、ヒントだけ書いておきます。
- chroot
- jail (FreeBSD)
投稿2018/09/21 01:31
編集2018/09/21 01:43総合スコア25171
0
技術的云々の前に
- サービス提供内容、責任範囲、SLA(やるべきこと、守るべきこと)
- 料金プラン(予算とどう儲けていくのか)
このあたりを考えたほうが良いかなと思います。
サーバ用PCってあたりで・・・って感じなのですが
回線って大丈夫かな?/故障時にどうするんだろう?/データってどう保護するんだろう?等々不安が満載です。
ざっくりしたところから細かく考えないと危ないですよ。
投稿2018/09/21 01:53
編集2018/09/21 04:42総合スコア706
0
レンタルサーバーを作るというのはいいのですが、
サーバーですのでどんな時も動く環境を用意しておかないといけない。
これも結構大変だと思います。
例えば最近発生した北海道の地震では停電があったが、あらかじめ燃料を用意して停電中も稼働し続けた、さくらインターネットの例があります。
もしこれが無ければ、結構当社はやばかったとおもいます。
これほどまでとはしなくてもいいと思いますが、仮にもしも何かあっても動き続ける環境を作らないと難しいと思います。
私としての提案はレンタルサーバーをさくらなどで借りて、それをほかの人に再販してその管理者になるするいいと思います。
ただ再販でお金を取るというのはBtoBなので、個人に再販を頼むことはないと思いますが
投稿2018/09/21 04:39
総合スコア156
0
実際にあなたの作ろうとするようなレンタルサーバを借りてその動作を見てみればどうでしょう。
そうすれば、何ができて何ができないか、また、何をどうしなければならないか、というのが見えると思います
そのうえで、ここではこうなってるけどこれはどうしたら、とか疑問が出てくれば、改めてこういうところで聞けばいいかと。
投稿2018/09/21 01:05
総合スコア87774
0
余談です
どのような仕様のレンタルサーバを想定しているのか不明ですが、既存クラウドサービス上にシステムを構築することで自社で管理する範囲を狭めることができます。
Dropbox が AWS を基盤として利用していたのは有名です。(現在は違いますが)
今だと Netlify とか。
SLA やセキュリティポリシーが合致するようであれば、かなり責任範囲を絞れると思います。
投稿2018/09/21 02:15
編集2018/09/21 02:18退会済みユーザー
総合スコア0
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/09/21 04:34
2018/09/21 04:40
2018/09/21 16:16
2019/08/06 14:24