billing:setup:centos_rhel_full

Установка 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

С включеной опцией не будет работать ZendOptimizer, что нас не устраивает.

Редактируйте файл /etc/selinux/config измените

SELINUX=enforcing

на

SELINUX=disabled

выполняем команду

setenforce 0

чтобы не перегружать систему для отключения SELinux.

Внимание в 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 зону в BIND и виртуал хостинг в Apache. Пример полной инфомарции по BIND и DNS.

Источник - 1 Источник - 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 ;

Поздравляю. настройка базы данных завершена.

для начала выполним подготовку

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.

у Вас все в порядке, в противном случае проверте правильность выполнения предидущих шагов или обращайтесь на форум.

для начала открываем файл /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

ядро биллинга запушено.

Настроим crond для Mikbill

Настройка авторизации серверов для работы MikBill

Ознакомьтесь с пояснениями по работе биллинга MIkBill.

Ознакомтесь с информацией после установки

Вопросы на форум

  • billing/setup/centos_rhel_full.txt
  • Последнее изменение: 10 лет назад
  • dh