Как изменить порт Apache по умолчанию в Linux
Обеспечение безопасности сервера Linux — жизненно важная обязанность системного администратора. Хотя существует множество способов обеспечить максимальную безопасность вашего сервера, есть несколько основных шагов, которые вы должны сделать в первую очередь. Один из них — изменить порты по умолчанию часто используемых сервисов на пользовательские порты. Здесь мы увидим, как изменить порты Apache, FTP и SSH по умолчанию на что-то другое, о чем трудно догадаться. Разобьем эту тему на три небольшие части. В первой части мы увидим, как изменить порт Apache по умолчанию на собственный порт в Linux.
Почему нам нужно изменить порт Apache2 по умолчанию?
Прежде чем перейти к этой теме, вы можете спросить, изменение порта повысит безопасность? Честно говоря, нет, это не защитит вашу систему полностью. Изменение порта по умолчанию само по себе не обеспечивает серьезной защиты безопасности. Существует множество сканеров портов, которые в конечном итоге определят, какой порт вы используете. Но вы можете, как минимум, защитить свои серверы от любых любительских атак, а также уменьшить количество атак. Вот почему нам нужно изменить порты по умолчанию.
Измените порт Apache по умолчанию на собственный порт
1. Измените порт Apache в Debian/Ubuntu
Отредактируйте файл /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-адрес:8090.
Вы должны увидеть следующий экран:
Тестовая страница Apache2 в Ubuntu
Далее мы увидим, как изменить порт Apache в системах на базе RHEL.
2. Измените порт Apache в RHEL, CentOS, AlmaLinux, Rocky Linux
Сначала убедитесь, что вы установили веб-сервер 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
Затем проверьте тестовую страницу Apache в браузере, используя URL-адрес: http://IP-адрес:8090.
Вы должны увидеть следующий экран:
Измените порт Apache по умолчанию на собственный порт в Linux
Поздравляем! Порт Apache по умолчанию был изменен.
Перейдите по следующей ссылке, чтобы узнать, как изменить порт FTP по умолчанию.
- Как изменить порт FTP по умолчанию на собственный порт