Если вы не знаете, что такое VPS (VDS), то посмотрите здесь. Если вы знаете о VPS, но по какой-то причине у вас его ещё нет, то перейдите
Настройка VPS (VDS) для тех, кто никогда этим не занимался — довольно непростая вещь. Для тех, кто знает, что вся установка осуществляется несколькими командами, это может показаться достаточно простой задачей. Тем не менее, эта простота иногда бывает обманчива. «Голый» Apache уязвим к DoS, «голый» SSH уязвим к брутфорсингу и т. д. Панели управления, phpMyAdmin уязвимы к сниффингу трафика, обычный FTP просто категорически не рекомендован.
На VPS хостингах предусмотрена «пакетная» установка (предустановка) сервера и компонентов — там устанавливаются такие же «голые» программы. Можно заказать услугу специалиста по настройке (примерно 700 рублей в час, покупать нужно минимум час, в стандартную цену входит те же самые Apache, PHP, MySQL и т. п. вещи, для всего другого нужно договариваться отдельно и отдельная цена…
Обеспечение безопасности сервера — это целая наука и профессия. Нельзя в инструкциях описать все необходимые действия и правила настройки. Тем не менее, для предотвращения «детских» атак, вполне возможно и самому настроить сервер правильно.
В данной серии инструкций в качестве операционной системы выбран Debian. Аналогичная серия готовится и для CentOS.
Приступим к настройке VPS
Везде далее я выполняю команды из-под рута, если вы залогинены как обычный пользователь, то перед командами добавляйте sudo.
Перед началом установки какого-либо программного обеспечения, убедитесь что в вашей свеже установленной системе Debian назначено корректное имя хоста, которое должно соответствовать FQDN (полностью определённым доменным именам) (например, debian.mydomain.com). Для смены имени хоста наберите следующую команду:
После настройке FQDN для вашей системы, проверьте его следующей командой, которая должна вернуть FQDN:
Шаг 1: Установка Apache
Веб-сервер Apache сейчас является одним из самых часто используемых для веб-сайтов. У него открыт код, модульный дизайн, для него существует огромное количество расширений и он поддерживает множество языков программирования.
Для установки Apache на вашу систему наберите следующую команду:
После того, как пакеты Apache установлены, наберите в вашем браузере http://<IP-адрес-вашего-сервера>/
Вас должны встретить дефолтная страница браузера:
Шаг 2: Установка MySQL
Для любого маломальски сложно веб-приложения или сервиса нужна база данных. Чаще всего для этого используется MySQL. Последнее время, некоторые предпочитают MariaDB. При установке MariaDB все ваши сайты, которые работают на MySQL, будут работать точно также. Все команды и запросы к базе данных имеют один и тот же синтаксис. Установите любую (но только одну!) из этих систем управления базами данных.
Для установки MySQL
Для установки MariaDB
Во время установки у вас дважды спросят пароль для рута базы данных. Обязательно задайте достаточно сложный пароль.
Следующим шагом бы обезопасим сервер MySQL (MariaDB) отключив некоторые функции, такие как удалим анонимных пользователей, заблокируем удалённых вход рута, удалим тестовую базу данных. Всё это можно сделать запуском одного сркипта. Ответьте "Y" на все вопросы, кроме первого, когда спрашивают о смене пароля рута, он у нас уже есть.
Чтобы проверить аккаунт рута сервера MySQL (MariaDB) наберите следующую команду. Проверьте, можете ли вы войти с вашим паролем рута.
Для выхода используйте exit.
Шаг 3: Установка PHP
PHP — это скриптовый язык программирования, который запускается на серверной стороне, он крайне популярен и на нём работают множество веб-сайтов, он может взаимодействовать с базами данных, работать с информацией, генерировать веб страницы и очень многое другое.
Перед установкой PHP проверьте, какие библиотеки и модули доступны:
Чтобы посмотреть детальную информацию по конкретному PHP модулю используйте команду apt-cache.
Когда вы определились какой(какие) PHP модули будете устанавливать, установить их можно следующей командой:
Далее приведена команда для установки обязательных PHP модулей, без которых наш сервер не будет нормально работать. php5-mysql нужен для взаимодействия с базой данных и php5-mcrypt обеспечивает функции шифрования в PHP. php5-gd нужен для использования в веб-панеле phpMyAdmin.
Шаг 4: Настройка PHP
Перед тестированием конфигурации PHP вам нужно настроить временную зону для PHP, поскольку в дефолтном файле php.ini не установлена временная зона для функции даты, используемой во многих веб-приложениях. Для настройки временной зоаны timezone, отредактируйте /etc/php5/apache2/php.ini и задайте значение date.timezone в соответствии с физической временной зоной вашего сервера.
или
Узнать как правильно пишется Ваша временная зона можно так:
После настройки в PHP правильной временной зоны, перезапустите веб-сервер Apache для перегрузки конфигурации PHP и PHP модулей.
Давайте создадим файл на сервере:
Теперь откроем адрес
Например, я открываю так
Шаг 5: Установка phpMyAdmin
phpMyAdmin — это инструмент для управления базами данных MySQL/MariaDB через веб интерфейс.
Для установки phpMyAdmin на вашем сервере Linux наберите следующую команду:
Во время установки у вас спросят про настройку phpMyAdmin. Когда попросят выбрать веб сервер, выберете apache2, а когда попросят настроить базы данных через dbconfig-common, ответьте нет, поскольку мы уже настроили MySQL/MariaDB ранее.
После установки пакета phpMyAdmin, перейдите в браузере http://<IP-адрес-вашего-сервера>/phpmyadmin.
Это основное программное обеспечение для сервера. Сервер уже полностью рабочий, после перезагрузки все необходимые службы будут запускаться сами, теперь вы можете разместить ваш сайт и любые системы управления сайтами (CMS) WordPress, Drupal, Joomla, Opencart, Prestashop.
Переходим ко следующей части: «Настройка защищённого VPS (VDS) на Debian. Часть вторая: Защита Apache от DoS».
Ссылка скрыта от гостей
.Настройка VPS (VDS) для тех, кто никогда этим не занимался — довольно непростая вещь. Для тех, кто знает, что вся установка осуществляется несколькими командами, это может показаться достаточно простой задачей. Тем не менее, эта простота иногда бывает обманчива. «Голый» Apache уязвим к DoS, «голый» SSH уязвим к брутфорсингу и т. д. Панели управления, phpMyAdmin уязвимы к сниффингу трафика, обычный FTP просто категорически не рекомендован.
На VPS хостингах предусмотрена «пакетная» установка (предустановка) сервера и компонентов — там устанавливаются такие же «голые» программы. Можно заказать услугу специалиста по настройке (примерно 700 рублей в час, покупать нужно минимум час, в стандартную цену входит те же самые Apache, PHP, MySQL и т. п. вещи, для всего другого нужно договариваться отдельно и отдельная цена…
Обеспечение безопасности сервера — это целая наука и профессия. Нельзя в инструкциях описать все необходимые действия и правила настройки. Тем не менее, для предотвращения «детских» атак, вполне возможно и самому настроить сервер правильно.
В данной серии инструкций в качестве операционной системы выбран Debian. Аналогичная серия готовится и для CentOS.
Приступим к настройке VPS
Везде далее я выполняю команды из-под рута, если вы залогинены как обычный пользователь, то перед командами добавляйте sudo.
Перед началом установки какого-либо программного обеспечения, убедитесь что в вашей свеже установленной системе Debian назначено корректное имя хоста, которое должно соответствовать FQDN (полностью определённым доменным именам) (например, debian.mydomain.com). Для смены имени хоста наберите следующую команду:
Код:
hostnamectl set-hostname debian.mydomain.com
Код:
hostnamectl
Static hostname: ubuntuserver.mydomain.com
Icon name: ubuntuserver
Chassis: server
Boot ID: b7f7601160e34c74a8e6c5cca3b1b3bb
Operating System: Ubuntu 14.04 LTS
Kernel: Linux 3.13.0-24-generic
Architecture: x86_64
hostname -f
debian.mydomain.com
Опционально, обновите свою систему:
apt-get update
apt-get upgrade
Веб-сервер Apache сейчас является одним из самых часто используемых для веб-сайтов. У него открыт код, модульный дизайн, для него существует огромное количество расширений и он поддерживает множество языков программирования.
Для установки Apache на вашу систему наберите следующую команду:
Код:
apt-get install apache2
Вас должны встретить дефолтная страница браузера:
Шаг 2: Установка MySQL
Для любого маломальски сложно веб-приложения или сервиса нужна база данных. Чаще всего для этого используется MySQL. Последнее время, некоторые предпочитают MariaDB. При установке MariaDB все ваши сайты, которые работают на MySQL, будут работать точно также. Все команды и запросы к базе данных имеют один и тот же синтаксис. Установите любую (но только одну!) из этих систем управления базами данных.
Для установки MySQL
Код:
apt-get install mysql-server mysql-client
Код:
apt-get install mariadb-server mariadb-client
Следующим шагом бы обезопасим сервер MySQL (MariaDB) отключив некоторые функции, такие как удалим анонимных пользователей, заблокируем удалённых вход рута, удалим тестовую базу данных. Всё это можно сделать запуском одного сркипта. Ответьте "Y" на все вопросы, кроме первого, когда спрашивают о смене пароля рута, он у нас уже есть.
Код:
mysql_secure_installation
Чтобы проверить аккаунт рута сервера MySQL (MariaDB) наберите следующую команду. Проверьте, можете ли вы войти с вашим паролем рута.
Код:
mysql -u root -p
Шаг 3: Установка PHP
PHP — это скриптовый язык программирования, который запускается на серверной стороне, он крайне популярен и на нём работают множество веб-сайтов, он может взаимодействовать с базами данных, работать с информацией, генерировать веб страницы и очень многое другое.
Перед установкой PHP проверьте, какие библиотеки и модули доступны:
Код:
apt-cache search php5-
php5-cgi - server-side, HTML-embedded scripting language (CGI binary)
php5-cli - command-line interpreter for the php5 scripting language
php5-common - Common files for packages built from the php5 source
php5-curl - CURL module for php5
php5-dbg - Debug symbols for PHP5
php5-dev - Files for PHP5 module development
php5-gd - GD module for php5
php5-gmp - GMP module for php5
php5-json - JSON module for php5
php5-ldap - LDAP module for php5
php5-mysql - MySQL module for php5
php5-odbc - ODBC module for php5
.........
Код:
apt-cache show php5-<имя_модуля>
Код:
apt-get install php5-<имя_модуля>
Код:
apt-get install php5 php5-mysql php5-mcrypt php5-gd
Перед тестированием конфигурации PHP вам нужно настроить временную зону для PHP, поскольку в дефолтном файле php.ini не установлена временная зона для функции даты, используемой во многих веб-приложениях. Для настройки временной зоаны timezone, отредактируйте /etc/php5/apache2/php.ini и задайте значение date.timezone в соответствии с физической временной зоной вашего сервера.
Код:
date.timezone = Asia/Bangkok
Код:
date.timezone = Europe/Moscow
Код:
<?php
print_r( DateTimeZone::listIdentifiers( ) );
?>
Код:
service apache2 restart
Код:
echo '<?php phpinfo(); ?>' > /var/www/html/info.php
http://<IP-адрес-вашего-сервера>/info.php
для проверки настройки PHP.Например, я открываю так
Код:
http://192.168.1.37/info.php
Шаг 5: Установка phpMyAdmin
phpMyAdmin — это инструмент для управления базами данных MySQL/MariaDB через веб интерфейс.
Для установки phpMyAdmin на вашем сервере Linux наберите следующую команду:
Код:
apt-get install phpmyadmin
После установки пакета phpMyAdmin, перейдите в браузере http://<IP-адрес-вашего-сервера>/phpmyadmin.
Это основное программное обеспечение для сервера. Сервер уже полностью рабочий, после перезагрузки все необходимые службы будут запускаться сами, теперь вы можете разместить ваш сайт и любые системы управления сайтами (CMS) WordPress, Drupal, Joomla, Opencart, Prestashop.
Переходим ко следующей части: «Настройка защищённого VPS (VDS) на Debian. Часть вторая: Защита Apache от DoS».