【インストールする物】
Linux のインストールは簡単です。
あまり難しいことは考えなくて良いです。
但し、これからLinuxを触ろうという方、LinuxではGUI(WindowsやMacOS)のような分かりやすいインターフェースばかりでは無いと言うことは覚えておいてください。
ドライバって何?と言う方は、まずPCにOSを入れる為の基礎知識を他のサイトで勉強して下さい。
ここでは方法論は説明しますけれども、言葉の意味や細かい説明はしませんので。
Linuxをデストリビューション無しでインストールする・・・と言う事にチャレンジしたい方は、これ以降全く参考になりません。 悪しからず。 そして、私自身がRedHat Linux(CentOS含む)しか触った事無いので、RedHat Linux以外のインストールについても、ほとんど触れる事はありません。 他のデストリビューションのインストールについて知りたい方は、さっさと他のサイトに行った方が良いです。
今回は、VPSのプリインストール使っているので、VPSのデフォルトになっています。
そういう意味では、OSのインストールもしていませんが、SSHが入っている位で、本当に最低限しか入っていません。
「上げたいサービスは自分でいれる」が基本になっています。
まぁ、基本は以下のコマンドでお任せなんですけどね・・・
yum install -y xxxx
今回は、Webサーバとして上げていくので、以下のサービスを入れていきます。
vsftp:FTPサーバ・・・コンテンツアップロード用
httpd:WEBサーバ・・・apacheですね。
sysstat:システム管理コマンド
denyhosts:自動でsshの不正アクセスを防ぐツール
postfix:MAILサーバ・・・コンテンツ・システムからのメールを送信
cacti:リソース管理ツール・・・CPUやメモリ・HDD等のリソースを管理するツールです。
開発ツールはデフォルトで入っているようなので、個別には入れません。
サーバ構築を行う時には以下の事を考えるべきだと思います。
・誰が使うか。
・何を使うか。
・いつ使うか。
・どこで使うか。
・どうして使うか。
・どのように使うか。
まぁ、なんでも同じですね。
利用者
公開サービス:不特定多数
管理サービス:管理者(自分)
サービス利用:コンテンツ管理者(自分/家族)
構成
スペック
−CPU:1GHz
−メモリ:512MB
−HDD:10GB
−LAN:1Gbps
回線
−100Mbps共用
サービス
−HTTP
−FTP
−SSH
−SMTP
−MySQL
その他
−FW無し
−IDS無し
−管理機能
公開時期・レベル
2010/11/01〜(仮運用)
正式運用未定
公開場所
インターネット上
利用前提
大容量データの公開とWEBサービスを中心とした技術検証・環境維持を目的とする。
利用方法
不特定多数:WEBサービス
管理者:情報発信・管理技術習得・設定技術習得
【セキュリティ対策】
本当はウィルス対策ソフトとか入れたいのですが、年間20万以上するようなソフトを入れる訳にもいきません。
個人利用ですから。
ではどうしましょうか?と言う事で、まずは攻撃を受けないように入る所を防ぐ事から始めます。
個人用PCでは、こちらから情報取りに行く為、自ら情報(ウィルス等)を受け入れてしまう可能性が高いです。
その為、ウィルスソフトをインストールして、自ら取り込んでしまった場合の対策をする訳ですね。
外部からの攻撃は、通常NATで変換かかって外に行く為、ブロードキャスト攻撃を受けなければ良いわけで、magic packetを受け取るような設定になっていなければ、PCそのものが外部から直接攻撃を受ける事はありません。
※ルータが無く、直接インターネットに接続する物はこの限りではありません。
※ルータがあった場合でも、同一ネットワーク上のPCやルータから攻撃を受ける攻撃もあります。
ルータがある場合は、必要ポート以外は内外の通信が制限されていたり、そもそも外部からのアクセスが無い訳です。
つまり、必要最小限のポートのみアクセスを受け付けるようにして、外部からはそれ以外は受けないようにしておけばルータと同様の効果が得られる訳ですね。
【セキュリティ対策〜hosts.allow/deny〜】
Linuxサーバの場合、hosts.allowとhosts.denyによって、ip address及びportで制限をかける事ができます。
[/etc/hosts.allow]
許可する物を明示的に記載します。
hosts.denyに優先して解釈されます。
[port]:[ip address]で記載します。
今回は、動的アドレスから管理者アクセスを行い、不特定多数のHTTPアクセスを受ける為、hosts.allowでは特に制御せず、hosts.denyのみで制御します。
固定アドレスからのアクセスしか無いのであれば、ここに固定アドレスを記載する事で、より強固な対応が可能になります。
[/etc/hosts.deny]
拒否する物を明示的に記載します。
[port]:[ip address]で記載します。
ネットマスクでの記載も可能ですので、以下のような記載で制御します。
ALL: 94.100.86.26 ←記載のアドレスからのアクセス全て
80: 94.100.86.26/255.255.255.0 ←記載のアドレスを含むマスクの範囲からのHTTP(port 80)アクセス
ALL: ALL ←全てのアドレスからのアクセス全て
なお、記載の方法はhosts.allow/deny共に同様です。
94.100.86.26のアドレスは私のサーバへsshのアクセスを試みてログインに複数回失敗した最初のアドレスです。
【セキュリティ対策〜SSH〜】
さくらのVPSで最初に利用できるサービスはsshdです。
これは初めからインストールされており、且つ、全てのアクセスを許容します。
もちろんユーザ/パスワードの制限はありますが、rootでのアクセスも許していますので、総当たり攻撃を受ければ、いずれは破られてしまうと言う事になります。
とりあえず、SSHに対しては以下の設定を行います。
設定:RootLogin禁止(追加)
rootのログインを禁止すると言う事は、ユーザの追加も必要です。
# useradd [ユーザ名][Enter]
# passwd [ユーザ名][Enter]
Changing password for user [ユーザ名].
New UNIX password: [パスワード][Enter]
BAD PASSWORD: it is based on a dictionary word ←簡単だったり、辞書にあるパスワードだと言う表示
Retype new UNIX password: [パスワード][Enter]
passwd: all authentication tokens updated successfully.
ちなみに、BAD PASSWORDが出たら、とりあえず変更した方が良いです。
総当たり攻撃で破られやすいと言う事ですので。
# vi sshd.conf
PermitRootLogin no #←追加 Rootログイン拒否
:wq[保存終了]
# /etc/init.d/sshd restart
これで、rootでのログインができなくなります。
ユーザとroot双方のパスワードを違う物にしておけば、rootになる為に三重のセキュリティになります。
(1) ユーザ名が分からない
(2) ユーザ名に対応したパスワードが分からない
(3) rootのパスワードが分からない
本当はこれに鍵交換も付加すれば更にセキュリティレベルが上がりますが、それはまた今度。
まずはここまでで、作業環境の構築を完了します。
|