【セキュリティ】さくらVPSにファイアウォールを適用する。【iptables】

firewall

VPSにデータを突っ込んで楽しく使えるようになったけど、自由な分、すべての管理を自分でやらなきゃいけない。
セキュリティを高く保ち、乗っ取りを防ぐのはユーザーの大切な義務。
必ず適用してセキュリティを高く保つ努力をしよう。

※注意

今回の設定は下記の記事の設定を終了したものとして書いています。
特にSSHの設定ポートの変更はセキュリティ上大変重要なので、必ず行っておいてください。
imotenを使っている人は送信メールのSSL化を必ず終わらせてください。

【さくら】VPSサーバーのパフォーマンスを向上させる。【DTI】

【Gmail】CentOS6.x(64bit)でimotenを設定して@docomo.ne.jpメールを使う【主にさくらインターネット編】

【iPhone】imotenの送信メールをSSL化する【docomoメール】

【オレオレ証明書】自作WebDAVサーバーにWindows7で接続する【Windows7】

【WebDAV】VPSをミュージックストリーミングサーバーにする【Subsonic】

【MyCloud】さくらVPSをAirVideoサーバーにする【ストリーミング】

iptables(ファイアウォール)の設定

さくらのVPSにはiptablesがすでにインストールしてあり、自動起動もするのだが、設定は何もされていない。
全くの無意味な存在。
なのでパケットフィルタリングの設定をする必要がある。

iptablesの編集

[root@ ~]# vi /etc/sysconfig/iptables エンターキー

何も書いていないまっさらなファイルが開くので、下記をコピペする。

—ここから—

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:FIREWALL – [0:0]

-A INPUT -j FIREWALL
-A FORWARD -j FIREWALL
-A FIREWALL -i lo -j ACCEPT
-A FIREWALL -s 10.0.0.0/8 -j DROP
-A FIREWALL -s 172.16.0.0/12 -j DROP
-A FIREWALL -s 192.168.0.0/16 -j DROP
-A FIREWALL -d 255.255.255.255 -j DROP
-A FIREWALL -d 224.0.0.1 -j DROP
-A FIREWALL -p icmp –icmp-type echo-request -m limit –limit 1/s –limit-burst 4 -j ACCEPT
-A FIREWALL -p udp –sport 53 -j ACCEPT
-A FIREWALL -p icmp –icmp-type any -j ACCEPT
-A FIREWALL -p 50 -j ACCEPT
-A FIREWALL -p 51 -j ACCEPT
-A FIREWALL -p udp –dport 5353 -d 224.0.0.251 -j ACCEPT
-A FIREWALL -p udp -m udp –dport 631 -j ACCEPT
-A FIREWALL -p tcp -m tcp –dport 631 -j ACCEPT
-A FIREWALL -m state –state ESTABLISHED,RELATED -j ACCEPT

# HTTPS 443, mail 465, SSH 10022, Subsonic 4040, AirVideo 45631
-A FIREWALL -m state –state NEW -m tcp -p tcp –dport 443 -j ACCEPT
-A FIREWALL -m state –state NEW -m tcp -p tcp –dport 465 -j ACCEPT
-A FIREWALL -m state –state NEW -m tcp -p tcp –dport 10022 -j ACCEPT
-A FIREWALL -m state –state NEW -m tcp -p tcp –dport 4040 -j ACCEPT
-A FIREWALL -m state –state NEW -m tcp -p tcp –dport 45631 -j ACCEPT

-A FIREWALL -j REJECT –reject-with icmp-host-prohibited

COMMIT

—ここまで—

このコピペだとSSHのポートは10022に変更してあるが、別の番号にしているのならその番号を記入すること。
ここを間違うと遠隔ログインができなくなって泣きを見る。
SSHの設定ポートの変更の記事は10022にしてあるから10022にしてある。

SubSonicのデフォルトポートが8080、AirVideoが45631なので、そのまま記述している。
変えているのならそこも変更。

Webサーバーにもしていないので、80番も閉じている。
穴は少ないほうがいい。
WebDAVは443、メールは465のSSLポートを介して使う。

もし送信メールのSSL化なんてイラネって人は、

-A FIREWALL -m state –state NEW -m tcp -p tcp –dport 587 -j ACCEPT

を#HTTPS 443〜の下の行に足そう。

コピペをするときに注意したいのは、コードに無駄なスペースがあってはならない。
COMMIT以降には改行もあってはならない。

これだけは注意すること!
無駄なスペースや改行があるとエラーが出て起動しない。

iptablesの再起動

[root@ ~]# /etc/rc.d/init.d/iptables restart エンターキー

でiptablesをリスタートする。

iptables: ファイアウォールルールを消去中:       [ OK ]
iptables: チェインをポリシー ACCEPT へ設定中filter   [ OK ]
iptables: モジュールを取り外し中:           [ OK ]
iptables: ファイアウォールルールを適用中:       [ OK ]

と出れば成功。

[root@ ~]# iptables -L エンターキー

を行い、ずらっと文字列が出てくれば起動している。

実は結構攻撃されているVPS

sshを22番のままにしておくと、自動攻撃ツールが22番にビシバシ攻撃してきている。
パスワードを解析されると乗っ取られてしまうので、可及的速やかにポートだけでも変更しよう。

【セキュリティ】さくらVPSにファイアウォールを適用する。【iptables】」への22件のフィードバック

  1. まさ

    >こんばんは。
    セキュリティ強化ですね。
    自分も昨日ファイル改ざん検知、rootkit検知、アンチウイルスソフトを導入しました。
    今週末あたりにファイアウォールを導入しようかなと思っていたので、またまた参考にさせてもらいます。

    セキュリティを万全にしてIMAP-IDLE対応のメールサーバーを入れて、imotenを自分のメールサーバー経由で出来ないかなって考えています。
    セキュリティ対策をどこまでやればいいかじっくり調査してからになりそうですけど…

    返信
  2. Anonymous

    >間違っていたらすみません。
    Subsonicのポートは4040ではないでしょうか?
    こちらのセキュリティを先に設定してから、Subsonicの設定をしたところ、アクセスできませんでした。
    知識はあまりないのですが、8080を4040に変更してみたらうまくいったので、もしかしたらと思いまして。
    勘違いでしたら申し訳ありません。

    返信
  3. 葛葉キョウジ

    >自分もそれを考えてメールサーバーを入れてみようかと思ったんですけど、
    iPhone自体がIMAP−Pushに対してのバグがあるので、
    使えたとしてもプッシュが不安定なら労力に合わないなと思って止めましたw

    返信
  4. 葛葉キョウジ

    >あ、自分が8080に変更していたの忘れてたw
    4040で合ってます。
    すいませんw

    返信
  5. Anonymous

    >キョウジさんお疲れ様です。

    昨日この記事を参考にセキュリティを強化したのですが、そこからメールが送信できず、-A FIREWALL -m state –state NEW -m tcp -p tcp –dport 587 -j ACCEPT の587を465に変更して追加したところメールを送信できるようになりました。
    自分だけの勘違いだったら申し訳ないのですが、報告いたします。

    返信
  6. 葛葉キョウジ

    >おおっと。メールのSSLポートは465だった。
    たさねば。
    ありがとうございますヽ(´ー`)ノ

    返信
  7. BG-5

    >くずのはさん、こんにちは。

    # HTTPS 443, mail 465, SSH 10022, Subsonic 8080, AirVideo 45631
    の、Subsonicの部分は8080のままで良いのでしょうか?4040ですか?

    返信
  8. 葛葉キョウジ

    >あ、コメントがあったか。
    そのままでも大丈夫ですけど、
    気になるなら直してくださいw

    返信
  9. BG-5

    >くずのはさん、こんばんは。

    先程、firewallの設定、終了しました。
    今回はコピペでサクッとは行きませんでしたが、勉強になりました。
    悩んで試してうまいこといった時はうれしいもんですね!
    Subsonicも入れてみましたよ。
    ダウンロードしたアルバムも聞ければ最高なんですけどね!贅沢ですかねw
    今日は、Airvideoに挑戦してみます!

    返信
  10. ohkun

    >キョウジさん今晩は、次から次へとブログが更新され、とても追いついていきません。遅ればせながら私はやっと自作WebDav無事完了したばかりです。とても長い道のりでした。Iphoneアプリの
    OverTheAirだと、どういう訳かログイン時にIDとPASSWORDが違うと言われ何十回IDとPASSWARD
    を確認、打ち直しを繰り返したり、頭から設定をやり直し、ブログを読みあさりましたが、結局はアプリをGoodReaderにしたらあっけなく接続しました。フー。PC(Win XP)ではネットワークドライブの割り当てが巧く行かず、記事の中に「ネットワークプレイスの追加」を見つけ試した所
    見事成功しました。キョウジさんのググッテみれば出来ると言うことを体験しました。ちょっと睡眠不足気味ですが・・・・。有難うございました。

    返信
  11. 葛葉キョウジ

    >ポート番号以外でさくっといかなかったところありました?

    iTunesでダウンロードした曲は著作権保護機能が付いているので、
    iTunesでしか聞けないんですよね(-_-;)
    自分はあまりダウンロードしない派なので実害はなかったですけどw

    返信
  12. 葛葉キョウジ

    >頑張りましたね!

    とりあえず、VPSの記事も急いで書きすぎてミスも多かったので、
    しばらくは休もうかなと思ってます。
    疲れましたw

    返信
  13. BG-5

    >くずのはさん、こんにちは。

    コピペだと、1行あけるところにスペースが入ってたりして、
    ファイアウォール適用で[失敗]ってなっちゃったんですよね、私の場合。
    最後に”Line:6”とか出るので、その行を直して成功した次第ですw
    エディタで見ただけじゃ、スペース入っててもわかんないんでチョイ焦りましたw

    返信
  14. 葛葉キョウジ

    >ああ、なるほど。
    やっぱりスペースでしたか(-_-;)
    自分の時はCOMMIT以降に改行とスペースが入っていて蹴られたんですが、
    その前でもダメなんだ・・・。
    書きなおさねば。

    ありがとうございますヽ(´ー`)ノ

    返信
  15. ohkun

    >きょうじ様 ご苦労様です。
    ようやっと,お蔭様でファイアーウオールの設定も完成しました。iptablesの編集で解説していた無駄なスペース等ない様に慎重にコピペをしていたつもりでしたが、ペースト時に、どう言う訳かスペースの部分が狂って来るようです。自分の場合は特に下記の部分
    -A FIREWALL -m state –state NEW -m tcp -p tcp –dport 443-j ACCEPT
    -A FIREWALL -m state –state NEW -m tcp -p tcp –dport 465-j ACCEPT
    -A FIREWALL -m state –state NEW -m tcp -p tcp –dport 10022-j ACCEPT
    -A FIREWALL -m state –state NEW -m tcp -p tcp –dport 4040-j ACCEPT
    -A FIREWALL -m state –state NEW -m tcp -p tcp –dport 45631-j ACCEPT
    数字と-jの間がスペースがなかったりあったりとミスがありました。
    iptables-restore v1.4.7: invalid port/service `10022-j' specified
    とターミナルで知らせてくれたので(最初は何を意味しているのか分からなかった)
    そこを修正したら無事成功しました。イヤー感激ですね!!!

    返信
  16. 葛葉キョウジ

    >ありゃ。そうでしたか(;´Д`)
    iptablesのコードだけはやたら厳しいですからね。
    何度失敗した事か(-_-;)
    自分のsshまで閉じちゃって青ざめましたw

    返信
  17. シーサー

    >こんばんは、さきほどこの設定でセキュリティ対策をさせて頂きましたが、
    davサーバーにアクセスできなくなってしまいました。
    https://ipアドレス/dav
    とブラウザに入れても、エクスプローラに入れても全くダメです…
    マイネットワークからネットワークプレースの追加ウィザードを走らせても
    途中で固まってしまいます。
    何がおかしいのでしょうか

    TeraTermからのアクセスやスーパーユーザー権限の取得はできています。
    いつも申し訳ございません。よろしくお願い致します。

    返信
  18. 葛葉キョウジ

    >[root@ ~]# /etc/rc.d/init.d/iptables stop

    でiptablesを止めたら接続できるようになりますか?
    もしそうなら、
    [root@ ~]# vi /etc/sysconfig/iptables

    の記述が間違ってます。

    返信
  19. 茉莉

    くずのはさま。
    こんにちは。いつもありがとうございます。
    やっと、SSL化とファイアウォールできました!
    SSL化はすんなりいきましたが、
    ファイアウォールは、少々手こずりました^^;
    これからも記事を参考にセキュリティ強化していきますね!

    返信
    1. 葛葉 キョウジ(管理人) 投稿作成者

      それはよかったですね!
      セキュリティを強化し終わったら、
      拡張編でいろいろ機能を強化すると、iPhoneがより楽しめるので、
      それも是非やってみてください。

      返信

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)