5) ポート番号の変更
第5回目は、サーバーへの攻撃緩和や、ポートスキャンによるサーバーCPU負荷軽減を目的とするポート番号の変更についてです。
インターネットリサーチ・コンサルティング・企画、ウェブ翻訳から、Web制作、システム開発までオープンソース・ネットワークビジネスを提供
ポート番号の変更
ポート番号を変更する目的は、サーバーへの攻撃を緩和し、ポートスキャンに対するサーバーのCPU負荷を軽減することにあります。
不特定多数の利用者が存在するような標準ポートを変更することは利用者の利便性を著しく低下させるため出来ません。一方、サービス利用者が限定されているポートは標準で設定されているものについては変更を行っておくと、「ポートスキャン」対策になる事から、サーバーのCPU負荷軽減に寄与する事が期待されます。
サービスとポート番号の確認
/etc/services には IP 接続のポート番号とサービス名の対応が書かれています。
そこで、/etc/servicesを確認し、現在割り当てられているポート番号とサービス名を確認します。
(ただし、サービスによっては/etc/servicesを参照しないでポート番号を定めるものもあります。)
ポート番号について
ポート番号は、0から65535までとなっています。そのうち、0から1023 までの範囲は Well Known Portsと呼ばれ、IANA(Internet Assigned Number Authority)により定義/管理されています。
次に、1024から49151まではRegistered Portsと呼ばれ、様々なサービスが定義されています。
最後に、9152から65535についてはDynamic or/and Private Portsと呼ばれています。
もし、独自にポート番号を割り当てたい場合は、1024以降で使用中のポートと重複しないものを設定するのが無難です。
Well Known Ports自体は特に強制力はないため、任意に設定出来ますが、混乱を招く危険性がある事から好ましくありません。もし変更する場合には、変更したことを常に把握しておく管理が必要となります。
サービスとポート番号の変更
サービスのポート番号を変更する場合には、各サービスの設定ファイルを変更する必要があります。
このとき、外部向けのサービスに関しては、ポート番号を変えてしまうと何も知らないユーザーはアクセス出来なくなってしまいます。ポート番号を変更するサービスは、利用者が特定されている場合に限定し、変更時には必ず利用者に通知を行う必要があります。
また、ユーザー側や上位ネットワークで、ファイアウォールで変更した設定が禁止されていて利用出来ないこともあるため、ファイアウォールの設定についても確認しておく必要があります。
以上を念頭に置き、SSHサービスを例に、ポート番号の変更設定方法について解説します。
OpenSSH の場合、sshd_config を編集し設定を行います。例えば、利用ポートを10022に変更する場合は以下のように設定します。
# vi /etc/ssh/sshd_config
#Port 22 Port 10022 ←追加する #Protocol 2,1 #ListenAddress 0.0.0.0 #ListenAddress ::
・設定完了後、sshサーバーを下記操作により再起動させる事で設定が有効になります。
# /etc/init.d/sshd restart
/etc/servicesの設定
ポート番号を変更したサービスをスーパーサーバーから利用する場合、/etc/servicesを設定する必要があります。
/etc/servicesは 1 行につき 1 サービスづつ記述します。設定方法については以下の通りです。
・viを使用してファイルを開きます。
# vi /etc/services
・サービス名 ポート番号/プロトコルの種類 [サービスに対する別名のリスト]の書式で設定し保存します。
例1 sshサービスを22番ポートから10022 番ポートに変更
#ssh 22/tcp SSH Remote Login Protocol ←#でコメントアウト #ssh 22/udp SSH Remote Login Protocol ←#でコメントアウト ~ ssh 10022/tcp SSH Remote Login Protocol ←追加する ssh 10022/udp SSH Remote Login Protocol ←追加する
次回予告
次回は、限定的に使用するポートをよりセキュアに運用するための「TCP Wrapperの利用」についてです。


