ホーム > サーバー

サーバーのアーカイブ

07.さくらインターネットVPSを使ってみる。~ファイヤーウォールを使ってみる~

注意事項
サーバー管理については全くの素人が調べながら書いているので、セキュリティ的に脆弱な設定方法などが多々あると思われます。詳しい方は優しくご指摘いただけると幸いです。

さて、最後に少しだけセキュリティを高める為にファイヤーウォールを設定してみます。iptablesというのを使って必要なポートだけを許可するのが良いよいうです。
ファイヤーウォールの設定はシェルスクリプトというテキストファイルを作っておいてそれを適用するのが常套手段?の様なのでまずはシェルスクリプトを作成します。「emacs /etc/sysconfig/iptables.sh」

1
emacs /etc/sysconfig/iptables.sh

開いたシェルスクリプトに下記のようにiptablesのルールを書いていきます。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#! /bin/sh                                                                                                                                                                    

# IPアドレス設定。
# 使い回すIPアドレスを変数に設定。                                                                                                                                                          
server='xxx.xxx.xxx.xxx/xx'
home='xxx.xxx.xxx.xxx/xx'
any='0.0.0.0/0'

# iptabalesのサービスを停止。
/etc/rc.d/init.d/iptables stop

# iptablesの設定を初期化。
iptables -F
iptables -X

# まずは全てのポートを閉じる。
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

# サーバー内部で使用されるLoopbackを許可。
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# ssh接続用のポートを許可。                                                                                                                                                                        
iptables -A INPUT -p tcp -s $home -d $server --dport 40022 -j ACCEPT
iptables -A OUTPUT -p tcp -s $server --sport 40022 -d $home -j ACCEPT

# Web用のポートを許可。
iptables -A INPUT -p tcp -s $any -d $server --dport 80 -j ACCEPT
iptables -A OUTPUT -p tcp -s $server --sport 80 -d $any -j ACCEPT

# その他のポートへのアクセスをログで取得。
iptables -N LOGGING
iptables -A LOGGING -j LOG --log-level warning --log-prefix "DROP:" -m limit
iptables -A LOGGING -j DROP
iptables -A INPUT -j LOGGING
iptables -A OUTPUT -j LOGGING

# 再起動してもiptablesの設定が保持される様に保存。
/etc/rc.d/init.d/iptables save

# iptablesのサービスを開始。
/etc/rc.d/init.d/iptables start

あとは作ったシェルスクリプトに「chmod 700 /etc/sysconfig/iptables.sh」で実行権限を与えて「/etc/sysconfig/iptables.sh」でiptablesを設定します。

1
2
chmod 700 /etc/sysconfig/iptables.sh
/etc/sysconfig/iptables.sh

これでiptablesのポート制限は完了したはずです。でもiptablesを設定するとyumが使えなくなってしまいます。。。orz
色々と調べたんですけど、ネットの情報を適用しても上手くいきませんでした。何故なんでしょうね?

さくらインターネットVPSに色々なところから接続してみましたが、レスポンスも良かったです。
一番気に入ったのはコントロールパネルからいつでもディスクを初期状態に戻せる事ですかね。
レンタルサーバーの制限で悩まされる事もなくなり、且つ安価なのはやっぱり魅力的ですね。
まあ、それなりのサーバー管理の知識がないと難しいですが。。。

06.さくらインターネットVPSを使ってみる。~PHPの環境を作って、不要なデーモンを停止する~

注意事項
サーバー管理については全くの素人が調べながら書いているので、セキュリティ的に脆弱な設定方法などが多々あると思われます。詳しい方は優しくご指摘いただけると幸いです。

さて、今度はPHPが動く環境を作ろうと思います。サーバーにsshで接続している前提で話を進めます。
今回も「yum」で簡単にインストールしてしまいましょう。「yum -y install install php php-mbstring」でインストールします。phpが本体で、php-mbstringがPHPで日本語文字を使うのに使用します。

1
yum -y install install php php-mbstring

インストールが完了したらWebサーバーを再起動します。

1
2
/etc/rc.d/init.d/httpd reload
eloading httpd:                                           [  OK  ]

本当にPHPが動いているかテスト用のファイルを置いて確認してみましょう。「emacs /var/www/html/index.php」でWebルートの配下に「index.php」を作ります。

1
emacs /var/www/html/index.php

内容は下記のように適当に作成します。ブラウザでIPアドレスを入力してアクセスすると作成したPHPの内容が表示されると思います。

1
2
3
4
5
6
7
8
9
< ! DOCTYPE html>
<html>
<head>
  <title>Hello world.</title>
</head>
<body>
  <h1><?php echo "Hello world."; ?></h1>
</body>
</html>

次に不要なデーモンを停止しましょう。貴重なメモリは効率よく使いたいので。現在のメモリの使用状況は「free」で確認します。

1
free

現在のデーモンの稼働状況は「service –status-all」で確認します。

1
service --status-all

色々なデーモンが動いていますね。さくらインターネットの中の人(社長)がこのデーモンはどういう意味で不要な物はこの辺りじゃない?っというのをブログに書いてくれているのでそれを参考にします。
さくらインターネットVPSでは、不要ではないか?という物は初期状態でほとんど無効になっています。
一つだけ「acpid」というデーモンが動いているのでこれを停止してみましょう。
「chkconfig acpid off」で起動時に「acpid」が動作しないようにします。あとは、「shutdown -r now」でサーバーを再起動します。一度sshが切断されるのでしばらくしてsshで接続してみてください。

1
2
chkconfig acpid off
shutdown -r now

起動してsshで接続したらサーバー側でデーモンの稼働状況を確認します。今度は、「acpid is stopped」となって停止している事が確認できます。

1
2
service --status-all
acpid is stopped

もう一度メモリーの使用状況を確認してみましょう。減っていますね。

1
free

今回は以上です。では、また。

05.さくらインターネットVPSを使ってみる。〜Webサーバーを作る〜

注意事項
サーバー管理については全くの素人が調べながら書いているので、セキュリティ的に脆弱な設定方法などが多々あると思われます。詳しい方は優しくご指摘いただけると幸いです。

さて今度はWebサーバーをたてます。サーバーにsshで接続している前提で話を進めます。
yumと言うコマンドで簡単にWebサーバーのインストールが行えるので今度はyumでインストールしてみます。「yum -y install httpd」と入力するとWebサーバーのインストールが行われます。yum -y install 【インストールするモノ】でインストールされます。オプションの「-y」は「確認ダイアログが出たら取りあえずyesで」っという意味?のようです。

1
yum -y install httpd

インストールが完了したら、Webサーバーのサービスを起動します。「/etc/rc.d/init.d/httpd start」と入力してEnterを押下すればサービスが起動されます。これでもうWebサーバーは取りあえず動きます。

1
2
/etc/rc.d/init.d/httpd start
Starting httpd:                                            [  OK  ]

本当にWebサーバーが動いているかテスト用のHTMLを置いて確認してみましょう。「emacs /var/www/html/index.html」でWebルートの配下に「index.html」を作ります。

1
emacs /var/www/html/index.html

内容は下記のように適当に作成します。ブラウザでIPアドレスを入力してアクセスすると作成したHTMLの内容が表示されると思います。

1
2
3
4
5
6
7
8
9
< ! DOCTYPE html>
<html>
<head>
  <title>Hello world.</title>
</head>
<body>
  <h1>Hello world!</h1>
</body>
</html>

これでWebサーバーは出来ましたが、最後に少しだけWebサーバーの設定を変更します。

1
emacs /etc/httpd/conf/httpd.conf

Webサーバーの設定を「ServerSignature Off」に変更します。こうすると、WebサーバーのApacheのバージョンとかが表に見えなくなるらしいです。

1
ServerSignature Off

そして、設定を反映する為にWebのサービスを再起動して完了です。

1
2
/etc/rc.d/init.d/httpd reload
eloading httpd:                                           [  OK  ]

今回はここまで。

ホーム > サーバー

検索
フィード
メタ情報

ページの上部に戻る