TECH
[CloudGarage]

安全にサーバを運用するために。ポート番号を正しく開放しよう

TECH
中津川 篤司

サーバはポートを開放して外部からの接続を許可します。ポートを全く開放しなければ一番安全ですが、外部から接続できないのではサーバとしての役割が果たせないでしょう。

そこで必要なポートだけを許可して、安全に運用する必要があります。CloudGarageでは先日、接続許可設定を細かく設定できる機能を提供開始しました。今回はその使い方を解説します。

接続許可設定は3パターン

接続許可設定は大きく分けて3パターンの設定が用意されています。

  • かんたん設定
  • 詳細設定
  • 全開放

最後の全開放はすべてのポート番号への接続を許可するもので、OS側のファイアウォール設定で制御します。より玄人であったり、自動化を行っている方向けでしょう。かんたん設定はよく使われるポート番号に対する接続許可を設定できます。

  • SSH
    22
  • HTTP
    80
  • HTTPS
    443
  • Tomcat
    8080
  • Rails
    3000
  • FTP
    20/21/990
  • SMTP
    25/465/587
  • POP
    110/995
  • IMAP
    143/993
  • MySQL
    3306
  • PostgreSQL
    5432
  • DNS
    53

簡単設定はチェックするだけでポート番号を開放できる手軽さの一方、接続元が指定できません。そのため、インターネット公開が前提になるであろうSSH/HTTP/HTTPS/FTP/SMPT/POP/IMAP/DNSなどは良いのですが、データベースやTomcat/Railsなどがインターネットから接続されるのは好まれません。

そこで使いたいのが詳細設定です。

詳細設定の使い方

詳細設定では3つのパラメータで設定します。

  • プロトコル
  • ポート
  • 送信元IPアドレス

プロトコルはTCP/UDP/ICMP/ANYがあります。多くの場合はTCPですが、これは接続を許可したいアプリケーションによって変わるでしょう。

ポート番号は数字や範囲で指定します。例えば 8080 または 8080-8081 といった具合です。

IPアドレスはアドレス範囲で指定します。123.123.123.0/24といった具合です。なお、接続を許可しない場合には 0.0.0.0 を指定すれば良いですが、これは元々設定しなければいいだけなので意味がありません。

注意点

詳細設定は許可する条件だけを設定します。拒否設定のDENYはありませんので注意してください。そのため、あるIPアドレスからのアクセスだけを拒否したい場合には、アプリケーション側の設定や、ファイアウォールで設定する必要があります。


HTTP/HTTPSを除けば、アクセス先のポート番号はデフォルトから変えておいた方が安全とされています。外部からハッキングする人たちはデフォルトのポート番号(または類似番号)へのアタックを自動で行っています。そうした悪意を持った人たちにサーバを乗っ取られたりしないよう、ポート番号と接続許可に関する設定を正しく行いましょう。

この記事を書いた人

中津川 篤司

株式会社MOONGIFT 代表取締役。CloudGarage、ニフクラ mobile backend、hifive エバンジェリスト。プログラマ、エンジニアとしていくつかの企業で働き、28歳のときに独立。2004年、まだ情報が少なかったオープンソースソフトの技術ブログ『MOONGIFT』を開設し、毎日情報を発信している。2013年に法人化、ビジネスとエンジニアを結ぶエバンジェリスト業「DevRel」活動をスタートした。 Twitter:@goofmint | GitHub:@goofmint | Facebook: goofmint

この記事のタグ

オススメの記事

ページトップへ