网站搜索

如何在 Linux 中更改 Apache 默认端口


保证 Linux 服务器的安全是系统管理员的重要职责。虽然有很多方法可以确保您的服务器尽可能安全,但您必须首先执行一些基本步骤。其中之一是将常用服务的默认端口更改为自定义端口。在这里,我们将看到如何将 Apache、FTP 和 SSH 的默认端口更改为其他难以猜测的端口。让我们把这个话题分成三个小部分。在第一部分中,我们将了解如何将 Apache 默认端口更改为 Linux 上的自定义端口。

为什么我们需要更改 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

然后,打开网络浏览器并导航至 URL:http://IP-address:8090

您应该看到以下屏幕:

Ubuntu 中的 Apache2 测试页

接下来我们将了解如何在基于 RHEL 的系统中更改 Apache 端口。

2.更改 RHEL、CentOS、AlmaLinux、Rocky Linux 上的 Apache 端口

确保您首先安装了 Apache 网络服务器。

然后,编辑 /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-address:8090 从浏览器验证 Apache 测试页。

您应该看到以下屏幕:

将 Apache 默认端口更改为 Linux 中的自定义端口

恭喜! Apache 默认端口已更改。

检查以下链接了解如何更改 FTP 默认端口。

  • 如何将 FTP 默认端口更改为自定义端口