В данной статье мы рассматриваем сборку сервера на базе Centos os6.5 на виртуальной машине VMware с панелью управления VESTASP,расшаривание домена по сети ,чтоб наши сайты были доступны не только по локальной сети,но и в интернет мы рассматрим немного позже 1. Запускаем консоль и пишем su root , вводим пароль ,жмем ентер 2. Код: yum -y install httpd ставим apache 3. Код: service httpd start запускаем апач,прописываем в автозагрузку его Код: chkconfig httpd on ( если просто запустить команду chkconfig то httpd со 2 -ого по 5-ый должне быть статус on 4.Создаем каталог Код: cd /var/www/html 5. Создаем файл Код: vi index.html , index.html это и есть создаваемый нами файл После этого попадаем в созданный нами файл,но что его редактировать жмем кнопку а ( на инглише) ,после того,как мы написали нужный нам текст жмем на кнопку esc ,этим действием мы выходим из режима редактирования. Чтоб вернуться к командной строке нажимаем двоеточие : и 2 буквы wq команда w отвеччает за сохранение файла ,а q - за возврат к командной строке 6.Уже можем заходить через файл зиллу.Чтоб узнать айпи хоста пишем в командной строке Код: ifconfig . логин у нас будет root ,пароль тот,который мы указывали при установке системы. 7.Устанавливаем PHP Код: yum -y install php php-common php-gd php-mysql php-xml php-mbstring Создаем там же где и создавали файл index.html файл test.php со следующим содержимым Код: <?php phpinfo(); ?> и сохраняем.Проверяем пхп по адресу наш айпи/test.php 8.Устанавливаем MYSQL НАБИРАЕМ Код: yum -y install mysql mysql-server и после установки запускаем его Код: service mysqld start , прописываем его так же в автозагрузку Код: chkconfig mysqld on . Создаем пользователя следующим запросом Код: mysqladmin -u root password 'newpass1' где root - имя пользователя , newpass1 -его пароль. Создаем базу данных Код: mysqladmin -u root -p create mydb ,где mydb и есть имя нашей базы данных после этого унас спрашивают пароль,нужно вводить пароль пользователя которого мы создавали,в нашем случаем это newpass1. Нам осталось поставить phpMyAdmin ее можно поставить 2 -умя способами :1-без панели управления и 2-ой -с панелью. Способ №1 для Centos os 64 bit .Выполняем следующие команды Код: rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm далее Код: rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm далее Код: rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm далее Код: rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm далее Код: yum --enablerepo=remi install phpmyadmin далее Код: yum --enablerepo=remi,remi-test install phpmyadmin Готово.настроить файл конфигурации phpmyadmin мы можем тут Код: /etc/httpd/conf.d/phpMyAdmin.conf если у вас установлен Nginx вам нужно настроить и создать виртуальный хост-файл вручную, создавая следующий файл Код: vi etc/nginx/sites-available/phpMyAdmin Добавьте следующий весь код к ней, нажмите сохранить и выйти. В конфигурационном файле ниже, я выбрал имя сервера как tecmint, вы меняете его на имя своего хоста Код: server { listen 80; server_name tecmint; access_log /var/log/nginx/phpmyadmin/access.log; error_log /var/log/nginx/phpmyadmin/error.log; root /usr/share/phpMyAdmin; location / { index index.php; } ## Images and static content is treated different location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|xml)$ { access_log off; expires 360d; } location ~ /\.ht { deny all; } location ~ /(libraries|setup/frames|setup/libs) { deny all; return 404; } location ~ \.php$ { include /etc/nginx/fastcgi_params; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/share/phpMyAdmin$fastcgi_script_name; } } Теперь установите имя сервера tecmint на локальный, Чтобы сделать это, просто добавьте следующую запись в вашем / и т.д. / хост файл. Код: 127.0.0.1 tecmint Теперь создайте нужный каталог и включить Nginx виртуальный хост для PHPMyAdmin Код: # mkdir -p /var/log/nginx/phpmyadmin # cd /etc/nginx/sites-enabled # ln -s /etc/nginx/sites-available/phpMyAdmin Теперь перезапускаем апач и нжикс Код: # /etc/init.d/httpd restart и # service httpd restart далее # /etc/init.d/nginx restart и # service nginx restart ГОТОВО.ТЕПЕРЬ МОЖЕМ ЗАЙТИ В phpMyadmin . P.S все команды вводить без символа # СПОСОБ №2 шаг1 Код: curl -O http://vestacp.com/pub/vst-install.sh шаг2 Код: bash vst-install.sh шаг3 Код: bash vst-install.sh --force На вопрос: "Please enter valid email address: " вводим свой email на который прийдут данные для входа,а также будут приходить оповещения Если по каким либо причинам недоступен адрес входа в панели выполняем следующие действия открывает от рута файл /etc/sysconfig/iptables после строки Код: -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT вписываем Код: -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT сохраняем файл от рута после этого выполняем Код: service iptables restart либо запускаем от рута Код: system-config-firewall-tui (если не стоит пакет - ставим) и отмечаем в диалоговых окнах то, что нам требуется ОБЯЗАТЕЛЬНО МЕНЯЕМ ПУТЬ В PHPMYADMIN По умолчанию он доступен если после адреса домена прописать /phpmyadmin что является серъезной уязвимостью Рассмотрим как поменять путь на /phpmyadmin_myserver45678944422 к примеру Для этого выполняем следующие действия: 1. В файле /etc/httpd/conf.d/phpmyadmin.conf меняем эти пути Код: Alias /phpMyAdmin /usr/share/phpMyAdmin Alias /phpmyadmin /usr/share/phpMyAdmin на Код: Alias /phpmyadmin_myserver45678944422 /usr/share/phpMyAdmin Также поменяйте Код: <Directory /usr/share/phpMyAdmin/scripts/> на Код: <Directory /usr/share/phpMyAdmin/setup/> 2. Теперь поменяем пути на новые в нашей панельке. В 3-х файлах: Код: /usr/local/vesta/web/add/db/index.php /usr/local/vesta/web/templates/admin/list_db.html /usr/local/vesta/web/templates/user/list_db.html Меняем с "phpmyadmin/" на "phpmyadmin_myserver45678944422/" 3. Заходим в "Службы" и перезагружаем "httpd" ,либо выполняем запрос с рут правами service httpd restart 4. Готово) При обновление панели, операции с файлами: /usr/local/vesta/web/add/db/index.php /usr/local/vesta/web/templates/admin/list_db.html /usr/local/vesta/web/templates/user/list_db.html нужно проделать повторно. установка на реальный сервер аналогична.Только есть несколько моментов Во первых на роутере должна работать функция перенаправления портов и DMZ про это можете почитать в википедии,если не знаете.Ставить лучше консольную версию centos без граф. оболочки. после того настроили роутер нужно будет прописать настройки сеит при установке сентоса. Покажу на примере к примеру адрем моего роутера 192.168.1.2 . У вас при установке будет одно или 2 соединения.Если несколкьо то лишнее удаляем,оставляем одно.Его редактируем а именно: удаляем мак адресс,ставим чекбокс напротив поделючаться автоматически и для всех юзверей.По вкладке соединения меняем типо подключения вместо dncp на manual в поле айпи пишем айпишник который хотим назначить для нашей машины к примеру 192.168.1.145 ,в поле маска указываем 255.255.255.0 , гетевей указываем айпишник нашего роутера в нашем случае 192.168.1.2 , ниже есть2 поля dns в первом прописываем так же айпи нашего роутера,жмем сохранить .готово. В роутере вам нужно будет направить в вкладке дмз на айпи вашей машины 192.168.1.145 .
Также установим еще модуль fail2ban для защиты от брута нашего сервака Fail2Ban – инструмент позволяющий защитить сервер от брутфорса таких сервисов как SSH, FTP, Apache и т.д. ОН производит анализ логов программ и в случае превышения лимита на неудачные логины банит IP адрес злоумышленника при помощи правил iptables, при «бане» администратору высылается оповещение. Устанавливаем Код: yum install fail2ban дальше откройте файл /etc/fail2ban/jail.conf измените параметры: Код: bantime = 21600 это время в секундах на сколько блокировать хулигана, меньше чем 6 часов ставить смысла нет, лучше больше, но главное не переборщить, иначе если вы ошибетесь с паролем 3 раза вас так же заблокирует. Если у вас белый ip адрес можете прописать в параметр Код: ignoreip = 1.14.33.13 где 1.14.33.13 и есть ваш айпи и вас не будет блокировать. Не рекомендуется оставлять параметр ignoreip со значением по умолчанию 127.0.0.1/8, это создаёт очевидную угрозу в многопользовательских системах — если злоумышленник получил доступ хотя–бы к одному shell–аккаунту, то он имеет возможность беспрепятственно запустить bruteforce–программу для атаки на root или других пользователей прямо с этого–же сервера опция findtime — определяет длительность интервала в секундах, за которое событие должно повториться определённое количество раз, после чего санкции вступят в силу. Если специально не определить этот параметр, то будет установлено значение по умолчанию равное 600 (10 минут). Проблема в том, что ботнеты, участвующие в «медленном брутфорсе», умеют обманывать стандартное значение. Иначе говоря, при maxretry равным 6, атакующий может проверить 5 паролей, затем выждать 10 минут, проверить ещё 5 паролей, повторять это снова и снова, и его IP забанен не будет. В целом, это не угроза, но всё же лучше банить таких ботов Вы можете так же изменить количество доступных попыток неудачных попыток авторизации, за это отвечает параметр Код: maxretry = 3 Дальше запускаем наш фаилм2бан Код: service fail2ban start и добавляем в автоагрузку Код: chkconfig fail2ban on Ну и небольшой фаг по настройкам пакетов в панели весты Описание шаблонов которые используются в VestaCP. Apache default - без дополнительных настроек , хорошо работает для большинства сайтов. basedir - борется против phpshells с помощью openbasedir директивы. hosting - отдельные PHP лимиты для каждого домена ( php_admin_value memory/safemode/etc). phpcgi - шаблон запустить PHP как CGI. может быть полезно для запуска php4 или PHP5.2. phpfcgid - в PHP как FCGI ( автоматически устанавливается на сервере с > 1 Гб оперативной памяти ). wsgi - шаблон для запуска проектов на питоне ( можно установить вручную ). Apache шаблон на самом деле состоит из трех файлов . Файл с расширением TPL используется для построения обычный виртуальный хост . Файл с расширением STPL используется для построения SSL виртуальный хост . Файл с расширением sh не является обязательным. Он может быть использован в качестве триггера для запуска дополнительных команд оболочки по созданию домена. Более подробную информацию см. шаблон phpfcgid.sh. Nginx default - служит для статического контента, хорошо работает для большинства сайтов. hosting - disable_symlinks директива для защиты от атак символических ссылок. сaching - динамические страницы кэшируются в течение 15 мин для обработки спонтанное движение aka reddit-effect. force-https - принудительное использование HTTPS / SSL (можно установить вручную). DNS default - записи DNS. gmail - предопределение записей в почтовый хост на гугл App. child-ns — шаблон для нативных серверов имен.
а можно еще с самого начала VestaCP установить и тогда ненадо будет столько писать например для тойже установки апача, мускуля, пхп... так как веста сама устанавливает все ето, а потом уже править что кому как угодно )
та это да) но я написал для того что не все захотят весту к примеру ставить, а другую панель захотят,вот для них и написал