Установка 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 ( Рекомендуем ставить образ minimal.iso)
Установка Centos в RAID-1 - следовать обязательно (ну или, как говорится, ваши проблемы)
Установка Centos в RAID-1 (English - картинки работают)
Инструкция по включению SOFT RAiD-1
Управление RAID-1 с помощью mdadm
Не забывайте что документация с прошлых версий Centos подходит и к вашей системе. Документация по системе:
Centos 5 Centos WiKi Документация
Отключаем IPv6 в Centos ( оригинал)
для начала /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 , описание здесь. мы сейчас его исправим( оригинал)
Теперь подключаем дистрибутив из репозатория "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 и сопутствующие пакеты.
Устанавливаем и настраиваем ZendOptimizer
Cтатья по настройке MySQL базы данных.
Так же установим PhpMyadmin для удобства работы с базой данных
Выполняем по инструкциям на сайте установку 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 и добавить эти службы в автозагрузку системы.
Настройка DNS
Настроим простую DNS зону в BIND и виртуал хостинг в Apache. Пример полной инфомарции по BIND и DNS.
Зона будет называться "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 <VirtualHost *:443> 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 <Directory "/var/www/mikbill/admin"> AllowOverride All Options FollowSymlinks Includes allow from all </Directory> SSLEngine on SSLCertificateKeyFile /etc/pki/tls/private/localhost.key SSLCertificateFile /etc/pki/tls/certs/localhost.crt <IfModule setenvif_module> BrowserMatch ".*MSIE.*" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 </IfModule> </VirtualHost> <VirtualHost *:80> ServerName admin.ispnet.demo ServerAdmin webmaseter_yousite.com Redirect permanent / https://admin.ispnet.demo/ </Virtualhost>
# cat stat_vhost.conf <VirtualHost *:80> 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 <Directory "/var/www/mikbill/stat"> AllowOverride ALL Options FollowSymlinks Includes MultiViews Order allow,deny Allow from all </Directory> </VirtualHost> <VirtualHost *:443> 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 <Directory "/var/www/mikbill/stat"> AllowOverride ALL Options FollowSymlinks Includes MultiViews Order allow,deny Allow from all </Directory> SSLEngine on SSLCertificateKeyFile /etc/pki/tls/private/localhost.key SSLCertificateFile /etc/pki/tls/certs/localhost.crt </VirtualHost>
Лутше изменить временный сертификат, или пропустите этот шаг.
В случае создание сертификата не забудте указать путь к нему в директивах 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
ядро биллинга запушено.
Настройка авторизации серверов для работы MikBill
Ознакомьтесь с пояснениями по работе биллинга MIkBill.
Ознакомтесь с информацией после установки
Вопросы на форум