ウェブサイト検索

Linux で Apache のデフォルト ポートを変更する方法


Linux サーバーを安全に保つことは、システム管理者の重要な義務です。サーバーの安全性を可能な限り高める方法はたくさんありますが、最初に実行する必要がある基本的な手順がいくつかあります。その 1 つは、 頻繁に使用するサービスのデフォルト ポートをカスタム ポートに変更することです。ここでは、Apache、FTP、SSH のデフォルトのポートを推測しにくい別のポートに変更する方法を見ていきます。このトピックを 3 つの小さな部分に分けて見てみましょう。最初の部分では、Linux で Apache のデフォルト ポートをカスタム ポートに変更する方法を説明します。

Apache2 のデフォルト ポートを変更する必要があるのはなぜですか?

本題に入る前に、ポートを変更するとセキュリティが強化されるのではないかと疑問に思うかもしれません。正直に言うと、いいえ、システムを完全に保護することはできません。デフォルトのポートを変更するだけでは、重大なセキュリティ防御は提供されません。最終的にどのポートを使用しているかを検出するポート スキャナーが多数あります。しかし、少なくとも、素人による攻撃からサーバーを保護することはできますし、攻撃の数を減らすこともできます。そのため、デフォルトのポートを変更する必要があります。

Apacheのデフォルトポートをカスタムポートに変更する

1. Debian/Ubuntu で Apache ポートを変更します。

/etc/apache2/ports.conf ファイルを編集します。

sudo vi /etc/apache2/ports.conf

次の行を見つけます。

Listen 80

そして、これを任意の乱数に変更します (例: 8090)。

Listen 8090

このエントリにより、サーバーはすべてのインターフェイスのポート 8090 での接続を受け入れるようになります。サーバーが特定のインターフェイスのポート 8090 での接続を受け入れるようにするには、以下に示すように、対応するネットワーク インターフェイスの IP アドレスを含めるだけです。

Listen 192.168.1.101:8090

これは、サーバーに複数の IP アドレスまたはネットワーク インターフェイスがある場合に役立ちます。

ファイルを保存して閉じます。

さらに、Ubuntu と Debian では、/etc/apache2/sites-enabled/000-default.conf ファイルのポート番号も変更する必要があります。

sudo vi /etc/apache2/sites-enabled/000-default.conf

次の行を見つけてポート番号を変更します。

<VirtualHost *:8090>

ファイルを保存して閉じます。

次に、Apache サービスを再起動して変更を有効にします。

sudo systemctl restart apache2

次に、ポート設定を確認してみましょう。

sudo netstat -tulpn | grep :8090

サンプル出力:

tcp6       0      0 :::8090                 :::*                    LISTEN      4066/apache2

次に、Web ブラウザを開いて URL: http://IP アドレス:8090 に移動します。

次の画面が表示されるはずです。

Ubuntu の Apache2 テスト ページ

次に、RHEL ベースのシステムで Apache ポートを変更する方法を見ていきます。

2. RHEL、CentOS、AlmaLinux、Rocky Linux で Apache ポートを変更します。

最初に Apache Web サーバーがインストールされていることを確認してください。

次に、/etc/httpd/conf/httpd.conf ファイルを編集します。

sudo vi /etc/httpd/conf/httpd.conf

次の行を見つけます。

Listen 80

そして、これを任意の乱数に変更します (例: 8090)。

Listen 8090

このエントリにより、サーバーはすべてのインターフェイスのポート 8090 での接続を受け入れるようになります。サーバーが特定のインターフェイスのポート 8090 での接続を受け入れるようにするには、以下に示すように、対応するネットワーク インターフェイスの IP アドレスを含めるだけです。

Listen 192.168.1.150:8090

これは、サーバーに複数の IP アドレスまたはネットワーク インターフェイスがある場合に便利です。

ファイルを保存して閉じます。

RHEL/CentOS システムでは、新しいポート番号 8090 が SELinux およびファイアウォールによってブロックされていないことを確認してください。

sudo semanage port -a -t http_port_t -p tcp 8090

semanage コマンドが見つからない場合は、次のパッケージを CentOS 7/RHEL 8 にインストールします。

sudo yum install policycoreutils-python

CentOS 8/RHEL 8 の場合:

sudo dnf install policycoreutils-python-utils

ファイアウォール経由でポート 8090 を許可するには、次の手順を実行します。

RHEL 7/8 および CentOS 7/8 の場合:

sudo firewall-cmd --permanent --add-port=8090/tcp
sudo firewall-cmd --reload

RHEL 6/CentOS 6 の場合:

sudo vi /etc/sysconfig/iptables

そして、新しいカスタム ポート行を追加します。

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8090 -j ACCEPT

ファイルを保存して終了し、iptables サービスを再起動します。

sudo service iptables restart

最後に httpd サービスを再起動します。

sudo systemctl restart httpd

RHEL 6.x システムでは、次のコマンドを使用して httpd サービスを再起動します。

sudo service httpd restart

次に、次のコマンドを使用してリスニング ポートを確認します。

サンプル出力:

● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/httpd.service.d
           └─php-fpm.conf
   Active: active (running) since Mon 2020-02-10 17:08:21 IST; 1min 20s ago
     Docs: man:httpd.service(8)
 Main PID: 2126 (httpd)
   Status: "Running, listening on: port 8090"
    Tasks: 213 (limit: 11501)
   Memory: 24.3M
   CGroup: /system.slice/httpd.service
           ├─2126 /usr/sbin/httpd -DFOREGROUND
           ├─2127 /usr/sbin/httpd -DFOREGROUND
           ├─2128 /usr/sbin/httpd -DFOREGROUND
           ├─2129 /usr/sbin/httpd -DFOREGROUND
           └─2130 /usr/sbin/httpd -DFOREGROUND

Feb 10 17:08:21 centos8.ostechnix.lan systemd[1]: Starting The Apache HTTP Server...
Feb 10 17:08:21 centos8.ostechnix.lan systemd[1]: Started The Apache HTTP Server.
Feb 10 17:08:21 centos8.ostechnix.lan httpd[2126]: Server configured, listening on: port 8090

または、netstat コマンドを使用します。

sudo netstat -tulpn | grep :8090

サンプル出力:

tcp6       0      0 :::8090                 :::*                    LISTEN      17636/httpd

netstat コマンドが見つからない場合は、次のパッケージをインストールします。

sudo yum install net-tools

次に、URL: http://IP アドレス:8090 を使用して、ブラウザから Apache テスト ページを確認します。

次の画面が表示されるはずです。

Linux で Apache のデフォルト ポートをカスタム ポートに変更する

おめでとう! Apacheのデフォルトポートが変更されました。

FTP のデフォルト ポートを変更する方法については、次のリンクを確認してください。

  • FTP のデフォルト ポートをカスタム ポートに変更する方法

関連記事