Admin » 12 май 2022, 12:15
Обсуждение статьи
Apache веб-сервер Debian
Быстрая установка веб-сервера Apache
Что такое Apache и зачем нужен
Apache по сути - программное обеспечение, которое служит своего рода посредником, между сервером на котором хранятся файлы и браузером пользователя. Пользователь через браузер посылает запрос на сервер, Apache обрабатывает этот запрос и выдает требуемые файлы. При помощи Apache мы видим страницы в интернете.
Установка Apache
Apache доступен в репозиториях Debian по умолчанию, и поэтому его можно установить с помощью стандартных инструментов управления пакетами.
Код: Выделить всё
sudo apt update
sudo apt upgrade -y
sudo apt install apache2 -y
Открытие портов для веб-сервера Apache
Если установлен и активирован брандмауэр UFW, а он должен быть активным. Нужно добавить правила, чтобы была связь с Apache. Проверим открыты ли порты 80 и 443
Если нет, то откроем
Дополнительная защита веб-сервера Apache
Если не установлен Fail2ban устанавливаем, включаем джайлы для Apache.
По умолчанию джайлы для Apache разделены на несколько частей, находятся под общим закомментированым названием HTTP servers, сделаем файл в каталоге
и включим некоторые из джайлов для сервера Apache.
Код: Выделить всё
# выявляем неудачные попытки ввода пароля
[apache-auth]
enabled = true
port = http,https
logpath = %(apache_error_log)s
maxretry = 3
bantime = 24h
# выявляем потенциальные сканирования для применения эксплойтов и php уязвимостей
[apache-noscript]
enabled = true
port = http,https
logpath = %(apache_error_log)s
maxretry = 3
bantime = 24h
# выявляем попытки переполнения Apache
[apache-overflows]
enabled = true
port = http,https
logpath = %(apache_error_log)s
maxretry = 2
bantime = 24h
# выявляем неудачные попытки в поиске домашней директории на сервере
[apache-nohome]
enabled = true
port = http,https
logpath = %(apache_error_log)s
maxretry = 2
bantime = 24h
Сохранить файл Ctrl+O Enter, закрыть Ctrl+X
Закомментировал правило [apache-auth] потому что оно меня блокирует, когда редактирую страницы в вордпресс. Причины выясняю. Можно не комментировать, а добавить строчку в этом джайле ignoreip = мой_айпи. Но это не вариант, потому что у меня динамический айпи, каждый раз сюда бегать и править не вариант.
В плагине WP-Security- Файрвол убрал галку Полностью блокировать доступ к XMLRPC и все заработало, точнее меня файл2бан перестал банить.
Проверка конфигурации и перезапуск Fail2ban
После любых изменений в конфигурации необходимо ее проверить командой:
Перезапустить Fail2ban , что бы изменения вступили в силу.
Проверка работы сервера Apache
Чтобы узнать запущена ли служба Apache выполнить простую команду
Увидим зелененькую точку, значит сервис запущен. А так же ошибку AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message Ничего страшного в этом нет, но чтоб не мозолило глаза исправим. Всего то нужно нужно добавить ServerName директиву для конфигурации Apache.
Добавить строчку в конце ServerName 127.0.0.1 или ServerName localhost
Сохраняем файл Ctrl+O , Enter, и закрываем Ctrl+X
Проверка синтаксиса Apache
Перезапуск сервера Apache
После чего поднять первый тост за локалхост и рестартануть Apache именно рестарт, с релоадом почему то новые настройки не проглотились.
Страница веб-сервера по умолчанию
Теперь можно посмотреть, что по умолчанию видно в браузере, если обратиться к серверу по его айпи адресу. Если не знаем ip сервера смотрим командой hostname -I. Набираем в браузере высветившийся ip и наслаждаемся первой страницей вашего сервера.
Команды управления Apache
Остановка веб-сервера
Запуск вебсервера
Остановка и запуск
Выключение автозапуска
По умолчанию Apache автоматически загружается при старте системы, можно выключить автозапуск.
Включение автозапуска
Справочник по файлам Apache
Размещение содержимого сайтов
По умолчанию контент размещается в каталоге /var/www/html. Лучше создать другой каталог, например разместить сайты в каталоге пользователя /home/user/www создав директорию
Потом в при создании виртуального хоста укажем новую директорию, где будет размещен контент.
Файлы конфигурации
/etc/apache2: каталог конфигурации Apache. Здесь хранятся все файлы конфигурации Apache.
/etc/apache2/apache2conf: главный файл конфигурации Apache. Его можно изменить для внесения изменений в глобальную конфигурацию Apache. Этот файл отвечает за загрузку многих других файлов в каталоге конфигурации.
/etc/apache2/ports.conf: этот файл задает порты, которые будет прослушивать Apache. По умолчанию Apache прослушивает порта 80, а если активирован модуль с функциями SSL, он также прослушивает порт 443.
/etc/apache2/sites-available/: каталог, где можно хранить виртуальные хосты для каждого сайта. Apache не будет использовать файлы конфигурации из этого каталога, если они не будут связаны с каталогом sites-enabled. Обычно все изменения конфигурации серверных блоков выполняются в этом каталоге, а затем активируются посредством ссылки на другой каталог с помощью команды a2ensite.
/etc/apache2/sites-enabled/: каталог, где хранятся активные виртуальные хосты для каждого сайта. Обычно они создаются посредством создания ссылок на файлы конфигурации из каталога sites-available с помощью команды a2ensite. Apache считывает файлы конфигурации и ссылки из этого каталога при запуске или перезагрузке, когда компилируется полная конфигурация.
/etc/apache2/conf-available/, /etc/apache2/conf-enabled/: эти каталоги имеют те же отношения, что и каталоги sites-available и sites-enabled, но используются для хранения фрагментов конфигурации, которые не принадлежат виртуальному хосту. Файлы из каталога conf-available можно активировать с помощью команды a2enconf и отключить с помощью команды a2disconf.
/etc/apache2/mods-available/, /etc/apache2/mods-enabled/: эти каталоги содержат доступные и активированные модули соответственно. Файлы с расширением .load содержат фрагменты для загрузки определенных модулей, а файлы с расширением .conf содержат конфигурации этих модулей. Модули можно активировать и отключать с помощью команд a2enmod и a2dismod.
Журналы сервера
/var/log/apache2/access.log: по умолчанию каждый запрос веб-сервера регистрируется в этом файле журнала, если Apache не настроен по другому.
/var/log/apache2/error.log: по умолчанию все ошибки регистрируются в этом файле. Директива LogLevel в конфигурации Apache указывает, насколько детальные записи регистрируются в журналах ошибок.
Обсуждение статьи [url=https://wildserver.ru/apache-install/]Apache веб-сервер Debian[/url]
[size=200][b]Быстрая установка веб-сервера Apache[/b][/size]
[size=150][b]Что такое Apache и зачем нужен[/b][/size]
[size=100]Apache по сути - программное обеспечение, которое служит своего рода посредником, между сервером на котором хранятся файлы и браузером пользователя. Пользователь через браузер посылает запрос на сервер, Apache обрабатывает этот запрос и выдает требуемые файлы. При помощи Apache мы видим страницы в интернете.[/size]
[size=150][b]Установка Apache[/b][/size]
[size=100]Apache доступен в репозиториях Debian по умолчанию, и поэтому его можно установить с помощью стандартных инструментов управления пакетами.[/size]
[code]sudo apt update
sudo apt upgrade -y
sudo apt install apache2 -y[/code]
[size=150][b]Открытие портов для веб-сервера Apache[/b][/size]
[size=100]Если установлен и активирован брандмауэр [url=/security/ufw/][b][i]UFW[/i][/b][/url], а он должен быть активным. Нужно добавить правила, чтобы была связь с Apache. Проверим открыты ли порты 80 и 443[/size]
[code]sudo ufw status verbose[/code]
[size=100]Если нет, то откроем[/size]
[code]sudo ufw allow "WWW Full"[/code]
[size=150][b]Дополнительная защита веб-сервера Apache[/b][/size]
[size=100]Если не установлен [url=https://wildserver.ru/fail2ban/][b][i]Fail2ban[/i][/b] устанавливаем[/url], включаем джайлы для Apache.[/size]
[size=100]По умолчанию джайлы для Apache разделены на несколько частей, находятся под общим закомментированым названием [b][i]HTTP servers[/i][/b], сделаем файл в каталоге[/size]
[code]sudo nano /etc/fail2ban/jail.d/apache.conf[/code]
[size=100]и включим некоторые из джайлов для сервера Apache.[/size]
[code]# выявляем неудачные попытки ввода пароля
[apache-auth]
enabled = true
port = http,https
logpath = %(apache_error_log)s
maxretry = 3
bantime = 24h
# выявляем потенциальные сканирования для применения эксплойтов и php уязвимостей
[apache-noscript]
enabled = true
port = http,https
logpath = %(apache_error_log)s
maxretry = 3
bantime = 24h
# выявляем попытки переполнения Apache
[apache-overflows]
enabled = true
port = http,https
logpath = %(apache_error_log)s
maxretry = 2
bantime = 24h
# выявляем неудачные попытки в поиске домашней директории на сервере
[apache-nohome]
enabled = true
port = http,https
logpath = %(apache_error_log)s
maxretry = 2
bantime = 24h[/code]
[size=100]Сохранить файл [b][i]Ctrl+O[/i][/b] [b][i]Enter[/i][/b], закрыть [b][i]Ctrl+X[/i][/b][/size]
[size=100]Закомментировал правило [b][i][apache-auth][/i][/b] потому что оно меня блокирует, когда редактирую страницы в вордпресс. Причины выясняю. Можно не комментировать, а добавить строчку в этом джайле [b][i]ignoreip = мой_айпи[/i][/b]. Но это не вариант, потому что у меня динамический айпи, каждый раз сюда бегать и править не вариант.[/size]
[size=100]В плагине WP-Security- Файрвол убрал галку [b][i]Полностью блокировать доступ к XMLRPC[/i][/b] и все заработало, точнее меня файл2бан перестал банить.[/size]
[size=125][b]Проверка конфигурации и перезапуск Fail2ban[/b][/size]
[size=100]После любых изменений в конфигурации необходимо ее проверить командой:[/size]
[code]sudo fail2ban-client -d[/code]
[size=100]Перезапустить Fail2ban , что бы изменения вступили в силу.[/size]
[code]sudo systemctl restart fail2ban[/code]
[size=150][b]Проверка работы сервера Apache[/b][/size]
[size=100]Чтобы узнать запущена ли служба Apache выполнить простую команду[/size]
[code]sudo systemctl status apache2[/code]
[size=100]Увидим зелененькую точку, значит сервис запущен. А так же ошибку [b][i]AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message[/i][/b] Ничего страшного в этом нет, но чтоб не мозолило глаза исправим. Всего то нужно нужно добавить [b][i]ServerName[/i][/b] директиву для конфигурации Apache.[/size]
[code]sudo nano /etc/apache2/apache2.conf[/code]
[size=100]Добавить строчку в конце [b][i]ServerName 127.0.0.1[/i][/b] или [b][i]ServerName localhost[/i][/b][/size]
[size=100]Сохраняем файл [b][i]Ctrl+O[/i][/b] , [b][i]Enter[/i][/b], и закрываем [b][i]Ctrl+X[/i][/b][/size]
[size=150][b]Проверка синтаксиса Apache[/b][/size]
[code]sudo apachectl configtest[/code]
[size=150][b]Перезапуск сервера Apache[/b][/size]
[size=100]После чего поднять первый тост за локалхост и рестартануть Apache именно рестарт, с релоадом почему то новые настройки не проглотились.[/size]
[code]sudo systemctl restart apache2[/code]
[size=150][b]Страница веб-сервера по умолчанию[/b][/size]
[size=100]Теперь можно посмотреть, что по умолчанию видно в браузере, если обратиться к серверу по его айпи адресу. Если не знаем ip сервера смотрим командой [b][i]hostname -I[/i][/b]. Набираем в браузере высветившийся ip и наслаждаемся первой страницей вашего сервера.[/size]
[size=150][b]Команды управления Apache[/b][/size]
[size=125][b]Остановка веб-сервера[/b][/size]
[code]sudo systemctl stop apache2[/code]
[size=125][b]Запуск вебсервера[/b][/size]
[code]sudo systemctl start apache2[/code]
[size=125][b]Остановка и запуск[/b][/size]
[code]sudo systemctl restart apache2[/code]
[size=125][b]Выключение автозапуска[/b][/size]
[size=100]По умолчанию Apache автоматически загружается при старте системы, можно выключить автозапуск.[/size]
[code]sudo systemctl disable apache2[/code]
[size=125][b]Включение автозапуска[/b][/size]
[code]sudo systemctl enable apache2[/code]
[size=150][b]Справочник по файлам Apache[/b][/size]
[size=125][b]Размещение содержимого сайтов[/b][/size]
[size=100]По умолчанию контент размещается в каталоге [b][i]/var/www/html[/i][/b]. Лучше создать другой каталог, например разместить сайты в каталоге пользователя [b][i]/home/user/www[/i][/b] создав директорию[/size]
[code]mkdir ~/www[/code]
[size=100]Потом в при создании виртуального хоста укажем новую директорию, где будет размещен контент.[/size]
[size=125][b]Файлы конфигурации[/b][/size]
[size=100][b][i]/etc/apache2[/i][/b]: каталог конфигурации Apache. Здесь хранятся все файлы конфигурации Apache.[/size]
[size=100][b][i]/etc/apache2/apache2conf[/i][/b]: главный файл конфигурации Apache. Его можно изменить для внесения изменений в глобальную конфигурацию Apache. Этот файл отвечает за загрузку многих других файлов в каталоге конфигурации.[/size]
[size=100][b][i]/etc/apache2/ports.conf[/i][/b]: этот файл задает порты, которые будет прослушивать Apache. По умолчанию Apache прослушивает порта 80, а если активирован модуль с функциями SSL, он также прослушивает порт 443.[/size]
[size=100][b][i]/etc/apache2/sites-available/[/i][/b]: каталог, где можно хранить виртуальные хосты для каждого сайта. Apache не будет использовать файлы конфигурации из этого каталога, если они не будут связаны с каталогом [b][i]sites-enabled[/i][/b]. Обычно все изменения конфигурации серверных блоков выполняются в этом каталоге, а затем активируются посредством ссылки на другой каталог с помощью команды [b][i]a2ensite[/i][/b].[/size]
[size=100][b][i]/etc/apache2/sites-enabled/[/i][/b]: каталог, где хранятся активные виртуальные хосты для каждого сайта. Обычно они создаются посредством создания ссылок на файлы конфигурации из каталога [b][i]sites-available[/i][/b] с помощью команды [b][i]a2ensite[/i][/b]. Apache считывает файлы конфигурации и ссылки из этого каталога при запуске или перезагрузке, когда компилируется полная конфигурация.[/size]
[size=100][b][i]/etc/apache2/conf-available/[/i][/b], [b][i]/etc/apache2/conf-enabled/[/i][/b]: эти каталоги имеют те же отношения, что и каталоги [b][i]sites-available[/i][/b] и [b][i]sites-enabled[/i][/b], но используются для хранения фрагментов конфигурации, которые не принадлежат виртуальному хосту. Файлы из каталога conf-available можно активировать с помощью команды [b][i]a2enconf[/i][/b] и отключить с помощью команды [b][i]a2disconf[/i][/b].[/size]
[size=100][b][i]/etc/apache2/mods-available/[/i][/b], [b][i]/etc/apache2/mods-enabled/[/i][/b]: эти каталоги содержат доступные и активированные модули соответственно. Файлы с расширением [b][i].load[/i][/b] содержат фрагменты для загрузки определенных модулей, а файлы с расширением [b][i].conf[/i][/b] содержат конфигурации этих модулей. Модули можно активировать и отключать с помощью команд [b][i]a2enmod[/i][/b] и [b][i]a2dismod[/i][/b].[/size]
[size=125][b]Журналы сервера[/b][/size]
[size=100][b][i]/var/log/apache2/access.log[/i][/b]: по умолчанию каждый запрос веб-сервера регистрируется в этом файле журнала, если Apache не настроен по другому.[/size]
[size=100][b][i]/var/log/apache2/error.log[/i][/b]: по умолчанию все ошибки регистрируются в этом файле. Директива [b][i]LogLevel[/i][/b] в конфигурации Apache указывает, насколько детальные записи регистрируются в журналах ошибок.[/size]