
Все мы хорошо знакомы с Apache веб-сервер, это очень популярный веб-сервер для размещения ваших веб-файлов или вашего веб-сайта в Интернете. Вот несколько ссылок, которые помогут вам настроить веб-сервер Apache на вашем Linux.
В этом руководстве я расскажу о некоторых основных советах по защите вашего веб-сервера. Прежде чем применять эти изменения на своем веб-сервере, вы должны иметь некоторые основы работы с сервером Apache.
При установке Apache с исходным кодом или любыми другими установщиками пакетов, такими как ням, он отображает версия вашего Apache веб-сервер, установленный на вашем сервере с Имя операционной системы вашего сервера в Ошибки. Он также показывает информацию о Установленные модули Apache на вашем сервере.
На картинке выше вы можете видеть, что Apache показывает свой версия с ОС установлена на вашем сервере. Это может быть серьезной угрозой безопасности как для вашего веб-сервера, так и для Linux. Предотвращать Apache Чтобы не отображать эту информацию миру, нам нужно внести некоторые изменения в основной файл конфигурации Apache.
Откройте файл конфигурации с помощью редактора vim и найдите «СерверПодпись«, По умолчанию включено. Нам нужно Выключенный эти подпись сервера и вторая строка "ServerTokens Prod”Указывает Apache возвращать только Apache в качестве продукта в заголовке ответа сервера при каждом запросе страницы. Он подавляет информацию об ОС, основной и дополнительной версии.
# vim /etc/httpd/conf/httpd.conf (RHEL / CentOS / Fedora) # vim /etc/apache2/apache2.conf (Debian / Ubuntu)
ServerSignature Off. ServerTokens Prod
# перезапуск службы httpd (RHEL / CentOS / Fedora) # перезапуск службы apache2 (Debian / Ubuntu)
По умолчанию Apache перечисляет все содержание корневого каталога документа при отсутствии индексный файл. См. Изображение ниже.
Мы можем выключить список каталогов с помощью Директива опций в файле конфигурации для определенного каталога. Для этого нам нужно сделать запись в httpd.conf или apache2.conf файл.
Параметры -Индексы.
Сообщество разработчиков Apache постоянно работает над проблемы с безопасностью и выпуская обновленная версия с новым параметры безопасности. Поэтому всегда рекомендуется использовать Последняя версия из Apache в качестве вашего веб-сервера.
Проверять Версия Apache: Вы можете проверить свою текущую версию с помощью httpd -v команда.
# httpd -v. Версия сервера: Apache / 2.2.15 (Unix) Сервер построен: 13 августа 2013 г. 17:29:28
Вы можете обновить свою версию с помощью следующей команды.
# ням обновить httpd. # apt-get install apache2
Также рекомендуется сохранить Ядро и Операционные системы обновляется до последних стабильных выпусков, если вы не запускаете какое-либо конкретное приложение, которое работает только с определенной ОС или ядром.
Всегда хорошо минимизировать шансы стать жертвой любого веб-атака. Поэтому рекомендуется отключить все эти модули которые в настоящее время не используются. Вы можете перечислить все скомпилированные модули веб-сервера, используя следующую команду.
# grep LoadModule /etc/httpd/conf/httpd.conf # необходимо разместить соответствующие строки `LoadModule 'в этом месте, чтобы файл. # LoadModule foo_module modules / mod_foo.so. LoadModule модули auth_basic_module / mod_auth_basic.so. LoadModule модули auth_digest_module / mod_auth_digest.so. LoadModule модули authn_file_module / mod_authn_file.so. LoadModule модули authn_alias_module / mod_authn_alias.so. LoadModule модули authn_anon_module / mod_authn_anon.so. LoadModule модули authn_dbm_module / mod_authn_dbm.so. LoadModule модули authn_default_module / mod_authn_default.so. LoadModule модули authz_host_module / mod_authz_host.so. LoadModule модули authz_user_module / mod_authz_user.so. LoadModule модули authz_owner_module / mod_authz_owner.so. LoadModule authz_groupfile_module modules / mod_authz_groupfile.so. LoadModule модули authz_dbm_module / mod_authz_dbm.so. LoadModule модули authz_default_module / mod_authz_default.so. LoadModule модули ldap_module / mod_ldap.so. LoadModule модули authnz_ldap_module / mod_authnz_ldap.so. LoadModule include_module modules / mod_include.so. LoadModule log_config_module modules / mod_log_config.so. LoadModule модули logio_module / mod_logio.so. LoadModule модули env_module / mod_env.so. LoadModule модули ext_filter_module / mod_ext_filter.so. ...
Выше список модулей, которые включены по умолчанию, но часто не нужны: mod_imap, mod_include, mod_info, mod_userdir, mod_autoindex. Чтобы отключить конкретный модуль, вы можете вставить «#»В начале этой строки и перезапустите службу.
При установке по умолчанию Apache запускает свой процесс с пользователем никто или демон. В целях безопасности рекомендуется запускать Apache в собственном непривилегированный учетная запись. Например: http-web.
# groupadd http-web. # useradd -d / var / www / -g http-web -s / bin / nologin http-web
Теперь тебе нужно сказать Apache чтобы работать с этим новым пользователем, и для этого нам нужно сделать запись в /etc/httpd/conf/httpd.conf и перезапустите службу.
Открыть /etc/httpd/conf/httpd.conf с редактором vim и выполните поиск по ключевому слову «Пользователь" и "Группа»И там вам нужно будет указать имя пользователя и имя группы использовать.
Пользователь http-web. Группа http-web
Мы можем ограничить доступ к каталогам с помощью «Разрешать" и "ОтрицатьВарианты в httpd.conf файл. В этом примере мы будем защищать корневая директория, для этого установив в httpd.conf файл.
Параметры Нет Запретить, разрешить Запретить от всех.
Эти два модуля «mod_security" и "mod_evasive”Являются очень популярными модулями Apache с точки зрения безопасности.
Где mod_security работает как брандмауэр для наших веб-приложений и позволяет нам контролировать трафик в режиме реального времени. Это также помогает нам защитить наши веб-сайты или веб-сервер от атаки методом грубой силы. Вы можете просто установить mod_security на вашем сервере с помощью установщиков пакетов по умолчанию.
$ sudo apt-get install libapache2-modsecurity. $ sudo a2enmod mod-security. $ sudo /etc/init.d/apache2 принудительная перезагрузка
# yum install mod_security. # /etc/init.d/httpd restart
mod_evasive работает очень эффективно, для обработки требуется один запрос и очень хорошо его обрабатывает. Это предотвращает DDOS атаки от нанесения такого же ущерба. Эта особенность mod_evasive позволяет ему справляться с HTTP грубая сила и Dos или DDos атака. Этот модуль обнаруживает атаки тремя способами.
mod_evasive можно установить прямо из исходников. Здесь у нас есть руководство по установке и настройке этих модулей, которое поможет вам настроить эти модули Apache в вашем Linux.
По умолчанию Apache следует символические ссылки, мы можем выключить эта функция с FollowSymLinks с Директива опций. И для этого нам нужно сделать следующую запись в основном файле конфигурации.
Параметры -FollowSymLinks
И, если есть какие-то особые Пользователь или интернет сайт нужно FollowSymLinks enable, мы можем просто написать правило в ".htaccess”Файл с этого веб-сайта.
# Включить символические ссылки. Параметры + FollowSymLinks
Примечание: Чтобы включить правила перезаписи внутри “.htaccess" файл "AllowOverride All»Должен присутствовать в основной конфигурации глобально.
Мы можем выключить сторона сервера включает (mod_include) и CGI выполнение, если не требуется, и для этого нам нужно изменить основной файл конфигурации.
Опции -включает. Параметры -ExecCGI
Мы можем сделать это и для конкретного каталога с помощью тега Directory. Здесь В этом примере мы выключать Включает выполнение файлов Cgi для «/var/www/html/web1»Каталог.
Параметры -Включает -ExecCGI.
Вот некоторые другие значения, которые могут быть включенный или выключенный с помощью директивы Options.
По умолчанию Apache не имеет ограничений на общий размер HTTP-запроса, то есть неограничен, и когда вы разрешаете большие запросы на веб-сервере, возможно, что вы можете стать жертвой Атаки отказа в обслуживании. Мы можем ограничить размер запросов директивой Apache »LimitRequestBody»С тегом каталога.
Вы можете установить значение в байтах из 0 (неограниченный) к 2147483647 (2 ГБ), которые разрешены в теле запроса. Вы можете установить это ограничение в соответствии с потребностями вашего сайта. Предположим, у вас есть сайт, на котором вы разрешаете загрузку, и вы хотите ограничить размер загрузки для определенного каталога.
В этом примере user_uploads это каталог, содержащий файлы, загруженные пользователями. Мы устанавливаем предел 500 тыс. за это.
LimitRequestBody 512000.
Что ж, это правда, что вы не можете полностью защитить свой веб-сайт от DDos атаки. Вот несколько директив, которые помогут вам контролировать это.
Apache позволяет вам вести журнал независимо от вашего Журнал ОС. Разумно включить ведение журнала Apache, поскольку оно предоставляет больше информации, например, команды, введенные пользователями, которые взаимодействовали с вашим веб-сервером.
Для этого вам нужно включить mod_log_config модуль. В Apache доступны три основных директивы, связанных с ведением журнала.
Вы также можете использовать их для конкретного веб-сайта, если делаете это. Виртуальный хостинг и для этого вам нужно указать его в разделе виртуального хоста. Например, вот конфигурация виртуального хоста моего веб-сайта с включенным ведением журнала.
DocumentRoot /var/www/html/example.com/ ServerName www.example.com. DirectoryIndex index.htm index.html index.php. ServerAlias example.com. ErrorDocument 404 /story.php. Журнал ошибок/var/log/httpd/example.com_error_log CustomLog /var/log/httpd/example.com_access_log вместе
Последнее, но немаловажное SSL сертификаты, вы можете защитить все свои коммуникации в зашифрованном виде через Интернет с помощью сертификата SSL. Предположим, у вас есть веб-сайт, на который люди входят, подтверждая свои учетные данные, или у вас есть веб-сайт электронной коммерции, на котором люди предоставляют свои банковские реквизиты или Дебет/Кредит данные карты для покупки продуктов, по умолчанию ваш веб-сервер отправляет эти данные в текстовом формате, но когда вы используете SSL сертификаты на ваши сайты, Apache отправляет всю эту информацию в зашифрованном виде.
Ты можешь приобрести сертификаты SSl от стольких разных поставщиков SSL, как namecheap.com. Если вы ведете очень небольшой веб-бизнес и не желаете купить сертификат SSL вы все еще можете назначить Самоподписанный сертификат на ваш сайт. Apache использует mod_ssl модуль для поддержки Сертификат SSL.
# openssl genrsa -des3 -out example.com.key 1024. # openssl req -new -key example.com.key -out exmaple.csr. # openssl x509 -req -days 365 -in example.com.com.csr -signkey example.com.com.key -out example.com.com.crt
После того, как ваш сертификат был создан и подписан. Теперь вам нужно добавить это в конфигурацию Apache. Откройте основной файл конфигурации с помощью редактора vim, добавьте следующие строки и перезапустите службу.
SSLEngine в SSLCertificateFile /etc/pki/tls/certs/example.com.crt SSLCertificateKeyFile /etc/pki/tls/certs/example.com.key SSLCertificateChainFile /etc/pki/tls/certs/sf_bundle.crt ServerAdmin [электронная почта защищена] ServerName example.com DocumentRoot / var / www / html / example / ErrorLog /var/log/httpd/example.com-error_log CustomLog /var/log/httpd/example.com-access_log common.
Откройте свой браузер, введите https://example.com, и вы сможете увидеть новый самоподписанный сертификат.
Это несколько советов по безопасности, которые вы можете использовать для защитите свой веб-сервер Apache монтаж. Дополнительные полезные советы и идеи по безопасности см. В официальной онлайн-документации HTTP-сервер Apache.