Linux: 25 PHP Рекомендации по безопасности для системных администраторов

# 1: Знай своего врага

PHP приложений, основанных могут столкнуться с различными типами атак. Я заметил, различные виды атак:

XSS — межсайтовый скриптинг является уязвимость в PHP веб-приложений, которые злоумышленники могут использовать для кражи информации пользователей. Вы можете настроить Apache и писать более безопасный PHP скрипты (проверка всех введенных пользователем данных), чтобы избежать XSS-атак.
SQL инъекция — это уязвимость в базе данных слой приложений PHP. Когда пользовательский ввод неправильно фильтруется любой SQL заявления могут быть выполнены в приложении. Вы можете настроить Apache и писать безопасный код (проверка и избежать всех введенных пользователем данных), чтобы избежать SQL-инъекций. Обычной практикой в PHP это попытка уйти параметров с помощью функции, называемой mysql_real_escape_string () перед отправкой запроса.
подмена
Загрузку файлов — позволяет посетителю разместить файлы (загрузка файлов) на вашем сервере. Это может привести к различным проблемам безопасности, такие как удаление файлов, удаление баз данных, получить информацию о пользователях и многое другое. Вы можете отключить загрузку файлов с помощью PHP или писать безопасный код (например, проверка ввода пользователя и разрешить только изображения типа файлов, таких как PNG или GIF).
В том числе локальных и удаленных файлов — злоумышленник может открыть файл с удаленного сервера и выполнить любой код PHP. Это позволяет им загружать файл, удалить файл и установить бэкдоры. Вы можете настроить PHP отключить удаленный запуск файла.
Eval () — Оцените строки как код PHP. Это часто используется злоумышленниками для скрытия своего кода и инструментов, на самом сервере. Вы можете настроить PHP отключить Eval ().
Море-серфинга атаки (Cross-сайта запрос подделки — CSRF) — Эта атака заставляет конечного пользователя для выполнения нежелательных действий на веб-приложения, в котором он / она в настоящее время проходят проверку подлинности.Успешный эксплойт CSRF могут поставить под угрозу конечный пользователь данных и работы в случае обычного пользователя. Если целевой конечный пользователь с учетной записью администратора, то это может поставить под угрозу весь веб-приложений.

# 2: Найти Встроенные модули PHP

Чтобы увидеть набор скомпилированных модулей PHP введите следующую команду:

# php -m

Пример результатов:

[PHP Modules]
apc
bcmath
bz2
calendar
Core
ctype
curl
date
dom
ereg
exif
fileinfo
filter
ftp
gd
gettext
gmp
hash
iconv
imap
json
libxml
mbstring
memcache
mysql
mysqli
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
readline
Reflection
session
shmop
SimpleXML
sockets
SPL
sqlite3
standard
suhosin
tokenizer
wddx
xml
xmlreader
xmlrpc
xmlwriter
xsl
zip
zlib
[Zend Modules]
Suhosin

Я рекомендует использовать PHP с уменьшением модулей для повышения производительности и безопасности. Например, вы можете отключить sqlite3 модуль удаления (снятия) файла конфигурации, или переименование (перемещение) файл / etc/php.d/sqlite3.ini следующим образом:

# rm /etc/php.d/sqlite3.ini

ИЛИ

# mv /etc/php.d/sqlite3.ini /etc/php.d/sqlite3.disable

Другие скомпилированные модули могут быть удалены reinstallating PHP с уменьшенной конфигурации. Вы можете скачать исходный код PHP от php.net и скомпилировать его как следует с GD, FastCGI и MySQL поддержка:

./configure —with-libdir=lib64 —with-gd —with-mysql —prefix=/usr —exec-prefix=/usr —bindir=/usr/bin —sbindir=/usr/sbin —sysconfdir=/etc —datadir=/usr/share —includedir=/usr/include —libexecdir=/usr/libexec —localstatedir=/var —sharedstatedir=/usr/com —mandir=/usr/share/man —infodir=/usr/share/info —cache-file=../config.cache —with-config-file-path=/etc —with-config-file-scan-dir=/etc/php.d —enable-fastcgi —enable-force-cgi-redirect

Посмотрите, как собрать и установить PHP на Unix-подобной операционной системы для получения дополнительной информации.

# 3: Ограничение PHP утечки информации

Чтобы ограничить утечку информации PHP отключить expose_php. Редактировать / и т.д. / php.d / secutity.ini и установить следующую директиву:

expose_php=Off

При включении expose_php отчеты всему миру, что PHP установлен на сервере, который включает в себя PHP версии в заголовке HTTP (например, X-Powered-By: PHP/5.3.3).Логотип PHP гидов (см. пример) также подвергаются, таким образом, добавляя их в адрес PHP поддержкой сайта будет отображаться соответствующий логотип. Когда expose_php включен, то вы можете видеть версии PHP с помощью следующей команды:

$ curl -I http://www.cyberciti.biz/index.php

Пример результатов:

HTTP/1.1 200 OK
X-Powered-By: PHP/5.3.3
Content-type: text/html; charset=utf-8
Vary: Accept-Encoding, Cookie
X-Vary-Options: Accept-Encoding;list-contains=gzip,Cookie;string-contains=wikiToken;string-contains=wikiLoggedOut;string-contains=wiki_session
Last-Modified: Thu, 03 Nov 2011 22:32:55 GMT

Я также рекомендую вам установить ServerTokens и ServerSignature директивы в httpd.conf, чтобы скрыть Apache версии и другой информации.

# 4: Минимизация загружаемых модулей PHP (Dynamic Extensions)

PHP поддерживает «Dynamic Extensions». По умолчанию RHEL загружает все модули расширения находятся в / и т.д. / php.d / каталога. Чтобы включить или отключить конкретного модуля, просто найти файл конфигурации в / и т.д. / php.d / и комментарии именем модуля. Вы также можете переименовать или удалить файл конфигурации модуля. Для достижения наилучших PHP производительности и безопасности, вы должны только включить расширения вашего WebApps требуется. Например, чтобы отключить расширение GD, введите следующие команды:

# cd /etc/php.d/
# mv gd.{ini,disable}
# /sbin/service httpd restart

Чтобы включить PHP-модуль, который называется gd, входят:

# mv gd.{disable,ini}
# /sbin/service httpd restart

# 5: Лог Всех ошибок PHP

Не подвергайте сообщения об ошибках PHP для всех посетителей сайта. Редактировать / и т.д. / php.d / security.ini и установить следующую директиву:

display_errors=Off

Убедитесь, что вы входите все PHP ошибки в лог-файл:

log_errors=On
error_log=/var/log/httpd/php_scripts_error.log

# 6: Запрет загрузки файлов

Редактировать / и т.д. / php.d / security.ini и установить следующую директиву, чтобы отключить загрузку файлов по соображениям безопасности:

file_uploads=Off

Если пользователи вашего приложения нужно загрузить файлы, включить эту функцию, установив upload_max_filesize ограничивает максимальный размер файлов, PHP будет принимать через добавления:

file_uploads=On
# user can only upload upto 1MB via php
upload_max_filesize=1M

# 7: Выключить удаленное выполнение кода

Если включен, allow_url_fopen позволяет PHP-файл функции — такие, как file_get_contents () и включать в себя и требуют отчетность — может извлекать данные из отдаленных мест, как FTP или веб-сайт.

Allow_url_fopen опция позволяет PHP-файл функции — такие, как file_get_contents () и включать в себя и требуют отчетность — может извлекать данные из удаленных населенных пунктах с использованием FTP или HTTP протоколам. Программисты часто забываем об этом и не делать правильный фильтрации входных данных при передаче пользовательских данных при условии, чтобы эти функции, их открытия до внедрения кода уязвимости.Большое количество внедрения кода уязвимости сообщили в PHP-приложениях веб вызваны сочетанием благоприятных allow_url_fopen и плохой фильтрации ввода. Редактировать / и т.д. / php.d / security.ini и установить следующую директиву:

allow_url_fopen=Off

Я также рекомендую отключить allow_url_include по соображениям безопасности:

allow_url_include=Off

# 8: Включить SQL безопасном режиме

Редактировать / и т.д. / php.d / security.ini и установить следующую директиву:

sql.safe_mode = On

Если включена, mysql_connect () и mysql_pconnect () игнорирует любые аргументы, передаваемые в них. Обратите внимание, что, возможно, придется внести некоторые изменения в коде. Третьей стороной и приложение с открытым исходным кодом, таких как WordPress, а другие не могут работать на всех, когда sql.safe_mode включена. Я также рекомендую вам отключить magic_quotes_gpc для всех PHP 5.3.x установки, фильтрации является неэффективным и не очень надежные. mysql_escape_string () и пользовательские функции фильтрации служить лучшей цели (наконечник шляпы Эрик Хансен):

magic_quotes_gpc = Off

# 9: Управление POST размер

Запрос HTTP POST метод используется, когда клиент (браузер или пользователю) необходимо отправить данные на сервер Apache Сети как часть запроса, например, при загрузке файла или отправка заполненной формы. Злоумышленники могут попытаться отправить негабаритных запросы POST есть ресурсы системы. Вы можете ограничить максимальный размер запроса POST, что PHP будет обрабатывать. Редактировать / и т.д. / php.d / security.ini и установить следующую директиву:

; Set a realistic value here
post_max_size=1K

1K устанавливает максимальный размер передаваемых данных разрешенных приложений PHP. Этот параметр также влияет на загрузку файла. Для загрузки файлов большого размера, это значение должно быть больше, чем upload_max_filesize. Я также предлагаю вам ограничить доступные методы, использующие веб-сервер Apache. Изменить httpd.conf и установите следующие директивы DocumentRoot / VAR / WWW / HTML:



Order allow,deny

## Add rest of the config goes here… ##

№ 10: Управление ресурсами (DoS Control)

Вы можете установить максимальное время выполнения каждого скрипта PHP, в считанные секунды. Другая опция рекомендовано установить максимальное количество времени, каждый сценарий может провести разбор запроса данных, а максимальный объем памяти может потреблять скрипт. Редактировать / и т.д. / php.d / security.ini и установите следующие директивы:

# set in seconds
max_execution_time = 30
max_input_time = 30
memory_limit = 40M

# 11: Установка Suhosin Улучшенная защита системы на PHP

С странице проекта:

Suhosin является передовой системой защиты PHP установок. Он был разработан для защиты серверов и пользователей от известных и неизвестных недостатков в PHP приложений и ядра PHP. Suhosin состоит из двух независимых частей, которые могут быть использованы отдельно или в комбинации. Первая часть представляет собой небольшой патч для основных PHP, который реализует несколько низкий уровень защиты от bufferoverflows или уязвимость строки форматирования, а вторая часть является мощным расширением PHP, которая реализует все другие средства защиты.

Посмотрите, как установить и настроить Suhosin под операционные системы Linux.

# 12 Отключение опасные функции PHP

PHP имеет много функций, которые могут быть использованы для взлома вашего сервера, если не используется должным образом. Вы можете задать список функций / и т.д. / php.d / security.ini использованием disable_functions директиву:

disable_functions=exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source

# 13 PHP FastCGI / CGI — директиву cgi.force_redirect

PHP работа с FastCGI. Fascgi сократить объем используемой памяти веб-сервера, но все же дает вам скорость и мощь всего языка PHP. Вы можете настроить Apache2 + PHP + FastCGI или CGI как описано здесь. Конфигурация директивы Директива cgi.force_redirect мешает любому из вызова PHP напрямую с URL, как http://www.cyberciti.biz/cgi-bin/php/hackerdir/backdoor.php. Включите Директива cgi.force_redirect по соображениям безопасности. Редактировать / и т.д. / php.d / security.ini и установить следующую директиву:

; Enable cgi.force_redirect for security reasons in a typical *Apache+PHP-CGI/FastCGI* setup
cgi.force_redirect=On

# 14 PHP пользователь и идентификатор группы

mod_fastcgi является CGI-модуль для веб-сервера Apache. Он может подключаться к внешнему FastCGI сервера. Вы должны убедиться, что PHP перспективе, как не суперпользователя. Если PHP выполняется как корень или UID до 100, он может получить доступ и / или управлять системными файлами. Вы должны выполнить CGI, PHP, в качестве непривилегированного пользователя с помощью Suexec Apache или mod_suPHP. Эта функция обеспечивает Suexec Apache пользователям возможность запускать CGI программы под идентификатор пользователя отличается от идентификатора пользователя вызывающего веб-сервера. В этом примере, мой PHP-CGI работает как phpcgi пользователей и Apache работает как пользователь Apache:

# ps aux | grep php-cgi

Пример вывода

phpcgi 6012 0.0 0.4 225036 60140 ? S Nov22 0:12 /usr/bin/php-cgi
phpcgi 6054 0.0 0.5 229928 62820 ? S Nov22 0:11 /usr/bin/php-cgi
phpcgi 6055 0.1 0.4 224944 53260 ? S Nov22 0:18 /usr/bin/php-cgi
phpcgi 6085 0.0 0.4 224680 56948 ? S Nov22 0:11 /usr/bin/php-cgi
phpcgi 6103 0.0 0.4 224564 57956 ? S Nov22 0:11 /usr/bin/php-cgi
phpcgi 6815 0.4 0.5 228556 61220 ? S 00:52 0:19 /usr/bin/php-cgi
phpcgi 6821 0.3 0.5 228008 61252 ? S 00:55 0:12 /usr/bin/php-cgi
phpcgi 6823 0.3 0.4 225536 58536 ? S 00:57 0:13 /usr/bin/php-cgi

Вы можете использовать такие инструменты, как spawn-fcgi на нерест удаленного и локального FastCGI процессы phpcgi пользователь (сначала добавьте phpcgi пользователя в систему):

# spawn-fcgi -a 127.0.0.1 -p 9000 -u phpcgi -g phpcgi -f /usr/bin/php-cgi

Теперь вы можете настроить Apache, Lighttpd и Nginx веб-сервер для использования внешнего PHP FastCGI работает на порту 9000 на 127.0.0.1 IP-адрес.

# 15 Ограниченный PHP доступ к файловой системе

Эта директива open_basedir установить каталоги, из которых PHP разрешается доступ к файлам с помощью функции как Еореп () и другие. Если файл находится вне пути определяется open_basdir, PHP откажется открыть его. Вы не можете использовать символические ссылки в качестве обходного пути. Например, только разрешить доступ к / var / WWW / HTML каталог, а не в / VAR / WWW / или TMP и / или каталоги и т.д.:

; Limits the PHP process from accessing files outside
; of specifically designated directories such as /var/www/html/
open_basedir=»/var/www/html/»
; ————————————
; Multiple dirs example
; open_basedir=»/home/httpd/vhost/cyberciti.biz/html/:/home/httpd/vhost/nixcraft.com/html/:/home/httpd/vhost/theos.in/html/»
; ————————————

# 16 сессии пути

Поддержка сессий в PHP представляет собой способ сохранения определенных данных через последующие обращения. Это позволяет создавать более специализированные приложения и увеличить привлекательность вашего сайта. Этот путь определяется в / и т.д. / php.ini и все данные, относящиеся к конкретной сессии будут сохранены в файл в каталоге, указанном в опции session.save_path. По умолчанию выглядит следующим образом под RHEL / CentOS / Fedora Linux:

session.save_path=»/var/lib/php/session»
; Set the temporary directory used for storing files when doing file upload
upload_tmp_dir=»/var/lib/php/session»

Убедитесь, что путь за пределами / var / WWW / HTML, а не для чтения или записи любым другим пользователям системы:

# ls -Z /var/lib/php/

Пример результатов:

drwxrwx—. root apache system_u:object_r:httpd_var_run_t:s0 session

Примечание: Z-опции в командной Ls дисплей контекста безопасности, такие как файловый режим, пользователь, группа, контекст безопасности и имя файла.

# 17 Поддержка PHP, программного обеспечения и операционной системы до даты

Применение патчей безопасности является важной частью поддержания Linux, Apache, PHP, MySQL и сервера. Все PHP обновление для системы безопасности должны быть пересмотрены и применяются как можно скорее, используя один из следующих инструментов (если вы устанавливаете PHP через менеджер пакетов):

# yum update

или

# apt-get update && apt-get upgrade

Вы можете настроить Red Hat / CentOS / Fedora Linux для отправки уведомлений ням пакет обновлений по электронной почте. Другим вариантом является применение обновлений безопасности через хрон. В Debian / Ubuntu Linux можно использовать для отправки apticron безопасности уведомлений.

Примечание: Проверьте php.net за последний релиз для установки исходного кода.

# 18: Ограничить к файлам и каталогам

Убедитесь, что вы запускаете Apache как не суперпользователя, такие как Apache или WWW. Все файлы и каталоги должны принадлежать не суперпользователя (или Apache пользователь) в / VAR / WWW / HTML:

# chown -R apache:apache /var/www/html/

/ VAR / WWW / HTML / это каталог и DocumentRoot которого может изменяться другими пользователями, так как корень никогда не выполняет любые файлы оттуда, и не должны создавать файлы там.

Убедитесь, что права доступа к файлу установлены в 0444 (только для чтения) в / VAR / WWW / HTML /:

# chmod -R 0444 /var/www/html/

Убедитесь, что все каталоги разрешения установлены в 0445 в / VAR / WWW / HTML /:

# find /var/www/html/ -type d -print0 | xargs -0 -I {} chmod 0445 {}

Примечание о создании правильными правами файлов

Сменить владельца и сделать команду CHMOD давлениях, что ни при каких обстоятельствах DocumentRoot или файлов, содержащихся в DocumentRoot могут быть перезаписаны пользователем веб-сервер Apache. Пожалуйста, обратите внимание, что вам нужно установить права доступа, что делает наиболее подходит для модели развития вашего сайта, так что не стесняйтесь регулировать сменить владельца и CHMOD команды в соответствии с вашими требованиями. В этом примере, сервер Apache запускается как пользователь Apache. Это настраивается с пользователями и группами директивы в файле httpd.conf.Пользователь Apache необходимо иметь доступ на чтение все под DocumentRoot, но не должны иметь доступ на запись к чему.

Убедитесь, что httpd.conf имеет следующие директивы ограничительные конфигурации:


Options None
AllowOverride None
Order allow,deny

Вы должны только предоставить доступ на запись в случае необходимости. Некоторые веб-приложения, такие как WordPress и другие, возможно, потребуется кэширование каталогов. Вы можете предоставить доступ на запись для кэширования каталогов с помощью следующих команд:

# chmod a+w /var/www/html/blog/wp-content/cache
### block access to all ###
# echo ‘deny from all’ > /var/www/html/blog/wp-content/cache/.htaccess

# 19: Write Protect Apache, PHP, и файлы конфигурации MySQL

Используйте команду chattr, чтобы защитить от записи файлов конфигурации:

# chattr +i /etc/php.ini
# chattr +i /etc/php.d/*
# chattr +i /etc/my.ini
# chattr +i /etc/httpd/conf/httpd.conf
# chattr +i /etc/

Команда chattr может написать защитить PHP файл или файлы в / VAR / WWW / HTML каталог также:

# chattr +i /var/www/html/file1.php
# chattr +i /var/www/html/

№ 20: Использование Linux Security Extensions (таких как SELinux)

Linux поставляется с различными патчами безопасности, которая может быть использована для защиты от неправильной или угрозу программ сервера. Если возможности использования SELinux и другие Linux расширений безопасности вводит ограничения на сети и другие программы. Например, SELinux предоставляет различные политики безопасности для Linux ядра и веб-сервера Apache. Чтобы получить список всех переменных Apache SELinux защиты, введите:

# getsebool -a | grep httpd

Пример результатов:

allow_httpd_anon_write —> off
allow_httpd_mod_auth_ntlm_winbind —> off
allow_httpd_mod_auth_pam —> off
allow_httpd_sys_script_anon_write —> off
httpd_builtin_scripting —> on
httpd_can_check_spam —> off
httpd_can_network_connect —> off
httpd_can_network_connect_cobbler —> off
httpd_can_network_connect_db —> off
httpd_can_network_memcache —> off
httpd_can_network_relay —> off
httpd_can_sendmail —> off
httpd_dbus_avahi —> on
httpd_enable_cgi —> on
httpd_enable_ftp_server —> off
httpd_enable_homedirs —> off
httpd_execmem —> off
httpd_read_user_content —> off
httpd_setrlimit —> off
httpd_ssi_exec —> off
httpd_tmp_exec —> off
httpd_tty_comm —> on
httpd_unified —> on
httpd_use_cifs —> off
httpd_use_gpg —> off
httpd_use_nfs —> off

Чтобы отключить поддержку Apache CGI, введите:

# setsebool -P httpd_enable_cgi off

Смотрите Red Hat SELinux руководство для получения дополнительной информации.

# 21 Установка mod_security

ModSecurity является открытым источником обнаружения вторжений и предотвращения двигатель для веб-приложений. Вы можете легко установить mod_security под Linux и защиты Apache и PHP на основе приложений от XSS и других атак:

## A few Examples ##
# Do not allow to open files in /etc/
SecFilter /etc/

# Stop SQL injection
SecFilter «delete[[:space:]]+from»
SecFilter «select.+from»

# 22 Запуск Apache / PHP в Chroot тюрьме, если возможно

Ввод PHP и / или Apache в изолированной тюрьме сводит к минимуму ущерб от потенциального взлома, изолируя веб-сервера для небольшой части файловой системы. Вы можете использовать традиционный вид изолированной установки с Apache. Тем не менее, я рекомендую FreeBSD тюрьмы, XEN virtulization, KVM virtulization или OpenVZ виртуализации, которая использует концепцию контейнеров.

# 23 Используйте брандмауэр для ограничения исходящих подключений

Атакующий будет скачать файл на локальном веб-сервере, используя такие инструменты, как Wget. Использование Iptables блокировать исходящие соединения от пользователя Apache. Модуль ipt_owner пытается сопоставить различные характеристики пакета создателя, для локально сгенерированных пакетов. Он действителен только в OUTPUT цепочки. В этом примере, позволяют Вивек пользователю подключаться извне через порт 80 (полезно для RHN или CentOS РЕПО доступа):

/sbin/iptables -A OUTPUT -o eth0 -m owner —uid-owner vivek -p tcp —dport 80 -m state —state NEW,ESTABLISHED -j ACCEPT

Вот еще один пример, который блокирует все исходящие соединения от пользователя апача, кроме нашего собственного SMTP-сервера, а также спам проверка API сервиса:

# ….
/sbin/iptables —new-chain apache_user
/sbin/iptables —append OUTPUT -m state —state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables —append OUTPUT -m owner —uid-owner apache -j apache_user
# allow apache user to connec to our smtp server
/sbin/iptables —append apache_user -p tcp —syn -d 192.168.1.100 —dport 25 -j RETURN
# Allow apache user to connec to api server for spam validation
/sbin/iptables —append apache_user -p tcp —syn -d 66.135.58.62 —dport 80 -j RETURN
/sbin/iptables —append apache_user -p tcp —syn -d 66.135.58.61 —dport 80 -j RETURN
/sbin/iptables —append apache_user -p tcp —syn -d 72.233.69.89 —dport 80 -j RETURN
/sbin/iptables —append apache_user -p tcp —syn -d 72.233.69.88 —dport 80 -j RETURN
#########################
## Add more rules here ##
#########################
# No editing below
# Drop everything for apache outgoing connection
/sbin/iptables —append apache_user -j REJECT

# 24 смотрете Logs & Auditing

Проверьте файл журнала Apache:

# tail -f /var/log/httpd/error_log
# grep ‘login.php’ /var/log/httpd/error_log
# egrep -i «denied|error|warn» /var/log/httpd/error_log

Проверьте файл журнала PHP:

# tail -f /var/log/httpd/php_scripts_error.log
# grep «…etc/passwd» /var/log/httpd/php_scripts_error.log

Лог-файлы даст вам некоторое представление о том, что нападает на выбрасывается на сервере и позволяет проверить, если необходимый уровень безопасности, присутствует или нет.Auditd Услуга предоставляется системой аудита. Включите его для проверки SELinux событий, authetication события, изменения файлов, изменение счета и так далее. Я также рекомендую использовать стандартные «Linux системы мониторинга Сервис» для контроля над веб-сервером.

# 25 Запуск службы на систему или VM экземпляров

Для крупных установок рекомендуется запускать, базы данных, статический и динамический контент с разных серверов.

///////////////
/ ISP/Router /
//////////////
\
|
Firewall
\
|
+————+
| LB01 |
+————+ +—————————+
| | static.lan.cyberciti.biz |
+——————+—————————+
| phpcgi1.lan.cyberciti.biz|
+—————————+
| phpcgi2.lan.cyberciti.biz|
+—————————+
| mysql1.lan.cyberciti.biz |
+—————————+
| mcache1.lan.cyberciti.biz|
+—————————+

Запуск различных сетевых сервисов на отдельных серверах или VM случаях. Это ограничивает число других услуг, которые могут быть скомпрометированы. Например, если злоумышленник в состоянии успешно использовать такие программы, как поток Apache, то он / она получит доступ ко всему серверу в том числе других служб, работающих на том же сервере (например, MySQL, сервер электронной почты и так далее). Но, в приведенном выше примере содержание подается следующим образом:

static.lan.cyberciti.biz — Lighttpd или Nginx использования сервера для статических активы, такие как JS / CSS / изображений.
phpcgi1.lan.cyberciti.biz и phpcgi2.lan.cyberciti.biz — Apache веб-сервер с PHP используется для создания динамического контента.
mysql1.lan.cyberciti.biz — MySQL сервера баз данных.
mcache1.lan.cyberciti.biz — Memcached сервер очень быстро система кэширования для MySQL. Он использует libevent и epoll (Linux выполнения) для масштабирования на любое количество открытых соединений и использует неблокирующий сети I / O.
LB01 — веб-Nginx и обратного прокси-сервера перед веб-серверов Apache. Все соединения, приходящие из интернета на имя одного из веб-серверов проходят через сервер Nginx прокси-сервер, который может либо иметь дело с просьбой самостоятельно или передать запрос полностью или частично на главный веб-серверов. LB01 обеспечивает простую балансировку нагрузки.

# 26 Дополнительные инструменты

С странице проекта:

PHPIDS (PHP-Intrusion Detection System) представляет собой простой в использовании, хорошо структурированный, быстрый и состоянии современного уровня безопасности для PHP на основе веб-приложений.IDS ни полос, ни фильтры дезинфицирует любые вредоносные данные, он просто определяет, когда злоумышленник пытается сломать ваш сайт и реагирует точно так, как вы хотите.

Вы можете использовать PHPIDS обнаружить злоумышленников, и войти любой атаки обнаружен для последующего просмотра. Обратите внимание, что я лично не использовал этот инструмент.

Заметка о PHP Backdoors

Вы можете встретить скрипты PHP или так называемые общие бэкдоров, такие как C99, c99madshell, R57 и так далее.Бэкдор сценария PHP не что иное, скрытый сценарий для обхода всех аутентификации и доступа к серверу по требованию. Он устанавливается на злоумышленникам получить доступ к серверу, пытаясь остаться незамеченным. Обычно PHP (или любой другой CGI-скрипт) сценария по ошибке позволяет включать код уязвимости в веб-браузере. Злоумышленник может использовать такой использования уязвимостей для загрузки бэкдор снарядов, которые могут дать ему ряд возможностей, таких как:

Загрузка файлов
Загрузка файлов
Установить руткитов
Установить спама почтовых серверов / сервер ретрансляции
Установить прокси-сервер, чтобы скрыть треков
Возьмите под свой контроль сервер
Возьмите под свой контроль сервера баз данных
Украсть всю информацию
Удалить все данные и базы данных
Открытые TCP / UDP портов и многое другое

Перевод статьи cyberciti.biz/tips/php-security-best-practices-tutorial.html


Понравилась статья? Поделись с остальными.

Комментарии закрыты.