セキュリティ:iptablesを設定する

ここまでやると一段落出来ますので、もう一歩頑張ってください!

iptablesの設定は重要なので、さくら公式にも書いてありますね。

iptablesの設定方法(さくらのサポート情報)

私の場合は、iptablesの設定をUKlabさんから拝借しています。

まずは、サーバにログインしましょう。

ssh [email protected]あなたのIPアドレス

もしくは、先ほどconfigで設定したコマンドで

ssh server1

ログインしたら、以下を実行してください。

sshdの設定を変える

vim /etc/ssh/sshd_config

#Port 22 の行の先頭の#をxで削除して、22を適当な番号に変えましょう。
編集が終わったら、 :wq で保存します。保存後はsshdの再起動です。

service sshd restart

これで、sshdの待受ポートが変更されました。次にiptablesを設定してポートの開閉設定をします。

vi iptables.sh

i をおしてインサートモードにしたら、このページの中身をコピペするのですが、少し準備がいります。

http://blog.uklab.jp/wp-content/uploads/iptables.sh_.txt

何故これを使っているかというと、各設定の意味がきちんと書かれているからです。一度中身を良く読んでみることをおすすめします。

コピーしたら、ローカルのテキストエディタなどの一度ペーストしてください。何故かと言うと、このtxtファイルの途中にポート番号を設定する場所があるからです。

iptables -A INPUT -p tcp --dport ポート番号 -j ACCEPT_COUNTRY

このポート番号という部分を変更します。変更すると言っても何にすれば良いのか?と思うと思いますが、基本的には自由です。

ただ、よく使われるサービスのポート番号は、ウェルノウンポート番号(WELL KNOWN PORT NUMBERS)といって 0〜1023までのポート番号のどこかに割り当てられていますのでそこは避けましょう。

その他、既に抑えられているportは使わないようにしてください。このtxtファイルを見てみると、1194番が設定されています(コメントアウトされているので、コメントアウトしたままであれば使ってもOKですが)

例として、ポート番号を12345に設定したとすると、先ほどの行はこうなります。

iptables -A INPUT -p tcp --dport 12345 -j ACCEPT_COUNTRY

編集し終わったら、リモートサーバで開いているviに貼り付けましょう。

きちんと i をおしてインサートモードにしてからペーストしてくださいね。そうしないと、最初の文字が欠けたりして不完全なペーストになったりします。

もし失敗してしまった場合は escをおしてコマンドモードにしてから u を押しましょう。undoです。uを押すたびにひとつ前の状態に戻ります。空っぽになった所で i をおしてインサートモードにし、編集後のテキストを貼り付けます。

終わったらファイルを保存して閉じましょう。 :wq です。

次にファイアウォール設定スクリプト外部関数のファイルを作成します。

vi iptables_functions

としてファイルを作ります。

次に、こちらの中身をコピーします。

viエディタに戻り、 i をおしてインサートモードにしてからペーストします。

:wq でファイルを保存してください。

次に、IPアドレスリストチェックスクリプトのファイルを作成します。

vi /etc/cron.daily/iplist_check.sh

先ほどと同様に、こちらの中身をコピペしてください。

終わったら、 :wq で保存です。

今作ったファイルに実行権限を与えます。(実行権限を与える時は chmod +x と覚えておくと良いかもしれません)

chmod +x /etc/cron.daily/iplist_check.sh

 

ここまでやったら最後に実行しましょう。以下のコマンドで設定が始まります。設定完了まで10分程度かかるような気がしますので気長に待ちましょう。(最初だけです)

sh iptables.sh

 

接続できるかテストをしましょう

iptablesの設定に失敗していると接続できなくなってしまうので注意してください。

新しいコンソールウィンドウを開き、接続してみます。

ssh [email protected]あなたのIPアドレス -p あなたの設定したポート

はい、少し変わりましたね。接続にポート番号の設定が必要になっているはずです。

ssh server1

先ほど設定したconfigファイルですが、このままでは恐らく接続出来ないはずです。configファイルを変更しましょう。

vi ~/.ssh/config

とやってファイルを開き

Host server1
HostName あなたのIP
User yourname
Port あなたの設定したポート

として保存します。こうすればこのコマンドでまたログイン出来るようになっていると思いますよ。

ssh server1

無事にログイン出来れば完了です。もし失敗するようであれば、先ほどの作業コンソールウィンドウに戻って、iptablesを止めます。

service iptables stop

これでiptablesが止まります。止まれば、ログインすることが出来ると思いますので、再度先ほど開いたコンソールウィンドウでログインを試みてみてください。間違う可能性があるのはiptables.sh_.txtのポート番号くらいだと思うので、そちらを見なおしてみると良いかと思います。

このままだと、サーバの再起動を行った時にiptablesが立ち上がりませんので以下のコマンドを打って再起動時にもiptablesが立ち上がるようにしておきます。

chkconfig iptables on

 

参考:さくらのVPSでWordPressを動かそう – 初期設定・セキュリティ設定編 –

これで設定は完了です!

次はついにWebサーバ設定に入ります。→Webサーバを立ち上げましょう:Nginx

 

オススメNginx本

nginx実践入門 (WEB+DB PRESS plus) 単行本(ソフトカバー) – 2016/1/16

nginxを現場で活用するための知識を、実践的なノウハウを交えて解説した書籍です。nginxのインストール方法や基本的な設定方法からはじめ、nginxを利用した「静的コンテンツ配信サーバ」「HTTPSサーバ」「Webアプリケーションサーバ」「大規模コンテンツ配信システム」の構築方法をそれぞれ詳しく紹介しています。後半ではnginxサーバのモニタリングやログの収集、そして軽量スクリプト言語Luaでnginxを拡張する方法について解説しているので、nginxをこれから使う方はもちろん、さらに活用したい方にもお勧めです。

公開日:
最終更新日:2016/02/16