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

时间:2020-03-21 11:42:10  来源:igfitidea点击:

保持Linux服务器安全是系统管理员的重要义务。
虽然有很多方法可以确保服务器尽可能安全,但有一些基本步骤我们必须先做。
其中一个是将常用服务的默认端口更改为自定义端口。
其中我们将看到如何将Apache,FTP和SSH的默认端口更改为与难以猜测的不同的东西。
让我们在三个小部分中打破这个话题。
在第一部分中,我们将看到如何将Apache默认端口更改为Linux上的自定义端口。

为什么我们需要更改默认端口?

在达到主题之前,我们可能会要求更改端口将增加安全性?
说实话,不,它不会完全。
仅更改默认端口单位不提供任何严重的安全防御。
有许多端口Scanner将发现我们最终使用的端口。
但至少,我们可以使用任何业余攻击保护服务器,也可以减少攻击次数。
这就是为什么我们需要更改默认端口。

将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-Address:8090。

我们应该看到以下屏幕:

接下来,我们将看到如何在基于RHEL系统中更改Apache端口。

2.更改Rhel/CentOS上的Apache端口

确保首先安装了Apache WebServer。

然后,编辑/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系统中,确保SELinux和防火墙未阻止新端口号8090。

$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 2017-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
Nov 10 17:08:21 centos8.theitroad.lan systemd[1]: Starting The Apache HTTP Server...
Nov 10 17:08:21 centos8.theitroad.lan systemd[1]: Started The Apache HTTP Server.
Nov 10 17:08:21 centos8.theitroad.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验证浏览器的Apache测试页面:http://IP-address:8090。

我们应该看到以下屏幕:

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