如何将Apache默认端口更改为自定义端口
保持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默认端口已更改。