собираем WEB сервер на Centos 6.5

Тема в разделе "Администрирование серверов", создана пользователем rrrrsrer79, 2 июл 2014.

  1. rrrrsrer79

    rrrrsrer79

    Регистрация:
    1 апр 2013
    Сообщения:
    106
    Симпатии:
    68
    В данной статье мы рассматриваем сборку сервера на базе 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 .
     
    Последнее редактирование: 5 июл 2014
  2. rrrrsrer79

    rrrrsrer79

    Регистрация:
    1 апр 2013
    Сообщения:
    106
    Симпатии:
    68
    Также установим еще модуль 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 — шаблон для нативных серверов имен.
     
    Zipoff нравится это.
  3. nix

    nix php, MySQL, UNIX, MikroTik ROSAPI

    Регистрация:
    16 янв 2013
    Сообщения:
    1.000
    Симпатии:
    889
    а можно еще с самого начала VestaCP установить и тогда ненадо будет столько писать например для тойже установки апача, мускуля, пхп... так как веста сама устанавливает все ето, а потом уже править что кому как угодно )
     
  4. rrrrsrer79

    rrrrsrer79

    Регистрация:
    1 апр 2013
    Сообщения:
    106
    Симпатии:
    68
    та это да) но я написал для того что не все захотят весту к примеру ставить, а другую панель захотят,вот для них и написал