====== Установка Centos(RHEL) (полная) ====== Почему Centos ? - ответ: выбор прост - потому что он очень стабилен. По сути это RHEL без логотипов Redhat. Ниже выдержка из wikipedia: CentOS (англ. Community ENTerprise Operating System) — дистрибутив Linux, основанный на коммерческом Red Hat Enterprise Linux компании Red Hat, и совместимый с ним. Red Hat Enterprise Linux состоит из свободного ПО с открытым кодом, но доступно в виде дисков с бинарными пакетами только для платных подписчиков. Как требуется в лицензии GPL и других, Red Hat предоставляет все исходные коды. Разработчики CentOS используют данный исходный код для создания окончательного продукта, очень близкого к Red Hat Enterprise Linux и доступного для скачивания. Существуют и другие клоны Red Hat Enterprise Linux, созданные на основе этого кода. CentOS использует программу yum для скачивания и установки обновлений с репозитория CentOS Mirror Network, тогда как Red Hat Enterprise Linux получают обновления с серверов Red Hat Network. CentOS до версии 5.0 для обновлений использовал также программу up2date. Устанавливаем Centos пакет server, рекомендуется ставить текущую стабильную версию. На Данный момент рекомендуем ставить Centos 6.3 x86_64 ([[http://ftp.hosteurope.de/mirror/centos.org/6.3/isos/x86_64/CentOS-6.3-x86_64-minimal.iso | Рекомендуем ставить образ minimal.iso]]) [[http://sysadmins.me/topic/633/ | Установка Centos в RAID-1]] - следовать обязательно (ну или, как говорится, ваши проблемы) [[http://www.iprobot.net/linux-tutorial/how-to-setup-software-raid-for-centos/ | Установка Centos в RAID-1]] (English - картинки работают) [[http://ss.lg.ua/node/859 | Инструкция по включению SOFT RAiD-1]] [[http://xgu.ru/wiki/raid#mdadm | Управление RAID-1 с помощью mdadm]] Не забывайте что документация с прошлых версий Centos подходит и к вашей системе. Документация по системе: [[http://www.centos.org/docs/5/ | Centos 5]] [[http://openwiki.ru/wiki/CentOS | Centos WiKi]] [[http://centos.name/?page/documentation | Документация]] Отключаем IPv6 в Centos ([[http://wiki.centos.org/FAQ/CentOS5#head-47912ebdae3b5ac10ff76053ef057c366b421dc4 | оригинал]]) для начала /etc/sysconfig/network задаем NETWORKING_IPV6=no и потом в /etc/modprobe.conf добавляем alias ipv6 off alias net-pf-10 off выполняем команду /sbin/chkconfig ip6tables off и делаем reboot сервера. Все IPv6 выключен. После установке добавьте себе пользователя и пропишите его в /etc/sudoers и закройте вход root по ssh навсегда. конфиг /etc/ssh/sshd_config Port 22 Protocol 2 PermitRootLogin no MaxAuthTries Если добавить пользователя в /etc/sudoers adduser -m login passwd login Если добавить пользователя в /etc/sudoers строкой вида login ALL=(ALL) NOPASSWD: ALL где login - имя Вашего пользователя . теперь по команде sudo su - вы становитесь рутом после первой загрузки не забудьте выполнить setup и отключите службы которые редко используются (рекомендация носит общий характер) anacron atd auditd avahi-daemon bluetooth cpuspeed cups firstboot ip6tables isdn readahead_early restorecond Для начала выполним предварительную установку необходимых пакетов для работы системы и небольшую донастройку. Настройка /etc/sudoers необходимо изменить Default requiretty Defaults env_reset на #Default requiretty #Defaults env_reset Так же добавите строку ну и по подобию Вашего пользователя в системе. apache ALL=(ALL) NOPASSWD: ALL =====Отключение SELinux===== С включеной опцией не будет работать ZendOptimizer, что нас не устраивает. Редактируйте файл /etc/selinux/config измените SELINUX=enforcing на SELINUX=disabled выполняем команду setenforce 0 чтобы не перегружать систему для отключения SELinux. =====Установка PHP 5.2===== Внимание в Centos 5.x имеется bug в php , описание [[http://allurcode.com/2010/03/30/pdo-rowcount-not-working-in-php-5-1-6/ | здесь]]. мы сейчас его исправим([[http://wiki.centos.org/HowTos/PHP_5.1_To_5.2 | оригинал]]) Теперь подключаем дистрибутив из репозатория "CentOS-5 Testing" в папке /etc/yum.repos.d создаем файл с именем CentOS-Testing.repo # CentOS-Testing: # !!!! CAUTION !!!! # This repository is a proving grounds for packages on their way to CentOSPlus and CentOS Extras. # They may or may not replace core CentOS packages, and are not guaranteed to function properly. # These packages build and install, but are waiting for feedback from testers as to # functionality and stability. Packages in this repository will come and go during the # development period, so it should not be left enabled or used on production systems without due # consideration. [c5-testing] name=CentOS-5 Testing baseurl=http://dev.centos.org/centos/$releasever/testing/$basearch/ enabled=1 gpgcheck=1 gpgkey=http://dev.centos.org/centos/RPM-GPG-KEY-CentOS-testing includepkgs=php* теперь можно установить необходимые пакеты yum install ntp logrotate php php-common php-cli openssh screen tcpdump gcc php-ncurses php-mysql yum install php-mhash php-mcrypt php-mbstring php-imap php-devel php-bcmath php-xml php-xmlrpc yum install php-gd php-snmp freeradius2 freeradius2-mysql freeradius2-perl freeradius2-utils yum install perl-IO-Socket-INET6 mysql mysql-connector-odbc mysql-devel mysql-server yum install vixie-cron crontabs httpd httpd-manual mod_ssl bind bind-chroot caching-nameserver yum install php-devel apr-util-mysql ppp rp-pppoe mrtg dhcp samba system-config-date rpm -Uvh http://pptpclient.sourceforge.net/yum/stable/rhel5/pptp-release-current.noarch.rpm yum install pptpd Теперь у Вас установлены Freeradius , Mysql, Apache2, PHP, Bind, DHCPd, MRTG, Samba, Crond , pppd, poptop, rp-pppoe и сопутствующие пакеты. [[billing:configuration:zendoptiomizer|Устанавливаем и настраиваем ZendOptimizer]] [[billing:configuration:mysql|Cтатья по настройке MySQL базы данных.]] Так же установим PhpMyadmin для удобства работы с базой данных Выполняем по инструкциям на сайте установку PhpMyadmin Вначале по этой [[http://www.centos.name/?page/additionalresources/RPMForge | ссылке]]. А потом по этой [[http://www.centos.name/?page/tipsandtricks/phpmyadmin | ссылке]]. Пакеты rpmforge-release-0.5.1-1.el5.rf.i386.rpm и rpmforge-release-0.5.1-1.el5.rf.x86_64.rpm Вы найдете в дистрибутиве в папке soft Далее добавим полезный для работы пакет yum install iftop после успешной настройки phpmyadmin делаем /etc/init.d/mysql start /etc/init.d/httpd start и не забываем запустить setup и добавить эти службы в автозагрузку системы. [[billing:configuration:ntp|Настройка часов и времени - это очень важно сделать]] ===== Настройка DNS ===== Настроим простую DNS зону в BIND и виртуал хостинг в Apache. Пример полной инфомарции по BIND и DNS. [[http://www.opennet.ru/docs/RUS/linuxsos/ch14_2.html | Источник - 1]] [[http://www.opennet.ru/docs/RUS/linuxsos/ch14_2.html | Источник - 2]] Зона будет называться "ispnet.demo" для начала прописываем первым наш сервер в файле /etc/resolv.conf в итоге конфиг будет выглядить примерно так # cat /etc/resolv.conf nameserver 127.0.0.1 search localdomain переходим в папку /var/named/chroot/etc файл named.caching-nameserver.conf Вносим новые значения в options listen-on port 53 { any; }; listen-on-v6 port 53 { none; }; allow-query { any; }; allow-query-cache { any; }; Далее в конфиге после logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; добавляем view demo_zone { match-clients { any; }; match-destinations { any; }; recursion yes; zone "ispnet.demo" IN { type master; file "ispnet.demo.zone"; allow-update { none; }; }; }; view localhost_resolver { match-clients { any; }; match-destinations { any; }; recursion yes; include "/etc/named.rfc1912.zones"; }; и осталное удаляем что внизу. сохраняем, теперь нужно прописать файл зоны. файл зоны находится по пути /var/named/chroot/var/named создаем файл ispnet.demo.zone содержимое файла $TTL 86400 $ORIGIN ispnet.demo. ispnet.demo. IN SOA @ ns.ispnet.demo. ( 44 ; serial (d. adams) 3H ; refresh 15M ; retry 1W ; expiry 1D ) ; minimum $ORIGIN ispnet.demo. IN NS ns.ispnet.demo. IN A IP ns IN A IP admin IN A IP stat IN A IP myadm IN A IP www IN A IP где IP - ip адресс вашего сервера. Это пример зоны, в реальной зоне необходимо использовать 2 NS сервера. делаем /etc/init.d/named restart и не забываем запустить setup и добавить эту службу в автозапуск системы. **Открываем установленный PHPMyadmin и начинаем работы с базой данных.** для начала откроем "привелегии" Удалим всех стандартных пользователей кроме 3х root для пользователей root зададим одинаковый пароль и сохраним его себе на долгую память в блокноте. Теперь вносим этот пароль в конфиг PHPmyadmin чтобы продолжить работу. файл находится по пути /usr/share/phpmyadmin/config.inc.php если вы ставили по инструкции выше...или же по другому пути как Вы сами установили данное приложение. в нем меняем $cfg['Servers'][$i]['extension'] = 'mysql'; на $cfg['Servers'][$i]['extension'] = 'mysqli'; и в конце файла перед строками $cfg['UploadDir'] = ''; $cfg['SaveDir'] = ''; вносим 3 строки $cfg['Servers'][$i]['user'] = 'root'; $cfg['Servers'][$i]['password'] = 'rootpass'; $cfg['Servers'][$i]['auth_type'] = 'config'; где rootpass - ваш пароль который вы только что сменили. Все теперь откроем окно импорта. Выберем кодировку файла UTF8 и выберем файл из дистрибутива centos/sql/mikbill.sql проводим импорт...и вы создали базу данных для билилнга. осталось создать пользователя базы данных и работа со SQL у нас закончена. Снова открываем "привелегии" Создаем нового пользователя. называем его mikbill ограничиваем вход только localhost задаем пароль и снова записываем ег ов блокнот Далее выбираем PROCESS , SUPER . GRANT в администрировании и создаем пользователя. После выбираем базу данных mikbill в панели "Привилегии уровня базы данных" И отмечаем все права этому пользователю на базу данных. Ниже тоже самое но прямыми SQL командами, как памятка для оппытных пользователей. Выполнять после импорта mikbill.sql ( импорт производить в кодировке UTF8) **ВНИМАНИЕ добавляя пользователя для работы биллинга, хост указывайте: localhost или %.** CREATE USER 'mikbill'@'localhost' IDENTIFIED BY 'password'; GRANT USAGE ON * . * TO 'mikbill'@'localhost' IDENTIFIED BY 'password' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ; GRANT ALL PRIVILEGES ON `mikbill` . * TO 'mikbill'@'localhost' WITH GRANT OPTION ; REVOKE ALL PRIVILEGES ON * . * FROM 'mikbill'@'localhost'; GRANT PROCESS , SUPER ON * . * TO 'mikbill'@'localhost' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ; Поздравляю. настройка базы данных завершена. =====Настройка Freeradius.===== для начала выполним подготовку rm -rf /etc/raddb rm -rf /etc/init.d/radiusd теперь перейдем в папку дистрибутива открываем папку centos и выполняем cp -R ./usr/local/sbin/* /usr/local/sbin/ cp -R ./raddb /etc/ cp -R ./init.d/* /etc/init.d/ cp /etc/raddb/serialize.pm /usr/lib/perl5/vendor_perl/5.8.8/ ln -s ../init.d/mikbill /etc/rc.d/rc3.d/S87mikbill mkdir /etc/mrtg echo > /etc/mrtg/mrtg_mikbill_users.conf echo > /etc/mrtg/mrtg_mikbill_tarif.conf chmod -R a+rw /etc/mrtg Теперь осталось отредактировать конфигурационный файл /etc/raddb/sql.conf **ВНИМАНИЕ в этом файле следует изменять только 1 параметр** password = "MIKBILLPASS" вместо MIKBILLPASS впишите свой пароль на базу данных mikbill Последнее добавте в автозапуск radiusd и mikbill с помощью команды setup для теста запустите radiusd -X если вы увидели radiusd: #### Opening IP addresses and Ports #### listen { type = "auth" ipaddr = * port = 0 } listen { type = "acct" ipaddr = * port = 0 } Listening on authentication address * port 1812 Listening on accounting address * port 1813 Ready to process requests. у Вас все в порядке, в противном случае проверте правильность выполнения предидущих шагов или обращайтесь на форум. =====Настраиваем Apache.===== для начала открываем файл /etc/httpd/conf/httpd.conf переходим в конец файла и добавляем с новой строки ServerName 0.0.0.0 TraceEnable off RewriteEngine On RewriteCond %{REQUEST_METHOD} ^TRACE RewriteRule .* - [F] NameVirtualHost *:80 NameVirtualHost *:443 Include /etc/httpd/vhosts.d/*.conf теперь создаем директорию /etc/httpd/vhosts.d и в нее ложим 2 конфиг файла # cat ./admin_vhost.conf ServerAdmin webmaseter_yousite.com ServerName admin.ispnet.demo ErrorLog /var/log/httpd/admin.ispnet.demo_error_log CustomLog /var/log/httpd/admin.ispnet.demo_access_log combined DocumentRoot /var/www/mikbill/admin AllowOverride All Options FollowSymlinks Includes allow from all SSLEngine on SSLCertificateKeyFile /etc/pki/tls/private/localhost.key SSLCertificateFile /etc/pki/tls/certs/localhost.crt BrowserMatch ".*MSIE.*" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 ServerName admin.ispnet.demo ServerAdmin webmaseter_yousite.com Redirect permanent / https://admin.ispnet.demo/ # cat stat_vhost.conf ServerAdmin admin_yousite.com ServerName stat.ispnet.demo ErrorLog /var/log/httpd/stat.ispnet.demo_error_log CustomLog /var/log/httpd/stat.ispnet.demo_access_log combined DocumentRoot /var/www/mikbill/stat AllowOverride ALL Options FollowSymlinks Includes MultiViews Order allow,deny Allow from all ServerAdmin admin_yousite.com ServerName stat.ispnet.demo ErrorLog /var/log/httpd/stat.ispnet.demo_error_log CustomLog /var/log/httpd/stat.ispnet.demo_access_log combined DocumentRoot /var/www/mikbill/stat AllowOverride ALL Options FollowSymlinks Includes MultiViews Order allow,deny Allow from all SSLEngine on SSLCertificateKeyFile /etc/pki/tls/private/localhost.key SSLCertificateFile /etc/pki/tls/certs/localhost.crt Лутше изменить временный сертификат, или пропустите этот шаг. В случае создание сертификата не забудте указать путь к нему в директивах SSLCertificateKeyFile и SSLCertificateFile конфигураций виртуалхостов. создайте папку /etc/httpd/ssl и в этой директории выполните команду openssl req -new -newkey rsa:1024 -nodes -keyout new.cert.key -x509 -days 500 -subj /C=UA/ST=Dn/L=Don/O=ISPNET/OU=Billing/CN=*.ispnet.demo/emailAddress= email@ispnet.demo -out new.cert.cert которая создаст самоподписаный сертификат, на первое время вам его хватит. Заполните данные для доступа к базе данных биллинга. внесите в эти файлы логин и пароль на SQL /var/www/mikbill/admin/app/etc/config.xml /var/www/mikbill/stat/app/etc/config.xml Настройка Apache закончена. Не забываем сделать /etc/init.d/httpd restart Соотвественно зайдя по ссылкам https://admin.ispnet.demo \\ https://stat.ispnet.demo \\ http://stat.ispnet.demo "админка" и "личный кабинет" теперь доступны из вашей сети. логин и пароль на первичный вход в "админку" admin admin теперь запустив команду /etc/init.d/mikbill start вы запустите ядро биллинга, после старта ядра выполните команду # ps auxfw|grep php вы увидите вывод схожий с этим root 11339 3.5 0.0 133900 3468 pts/6 S+ Oct05 624:07 | \_ php ./mikbill.php ядро биллинга запушено. [[billing:configuration:cron|Настроим crond для Mikbill]] [[billing:configuration:cross_server_uathorization|Настройка авторизации серверов для работы MikBill]] [[billing:configuration:explain|Ознакомьтесь с пояснениями по работе биллинга MIkBill.]] Ознакомтесь с [[billing:install:post_install | информацией после установки]] Вопросы на [[http://www.mikbill.ru/forums/forum/39-%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-centos/|форум]]