|
Почему 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 в RAID-1 - следовать обязательно (ну или, как говорится, ваши проблемы)
Инструкция по включению 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
Настроим MySQL - переходим к статье по настройке 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 - ваш пароль который вы только что сменили.
Все теперь откроем окно импорта.
Выберем кодировку файла koi8r и выберем файл из дистрибутива
centos/sql/mikbill.sql
проводим импорт...и вы создали базу данных для билилнга.
осталось создать пользователя базы данных и работа со SQL у нас закончена.
Снова открываем "привелегии"
Создаем нового пользователя.
называем его mikbill
ограничиваем вход только localhost
задаем пароль и снова записываем ег ов блокнот
Далее выбираем PROCESS , SUPER . GRANT в администрировании и создаем пользователя.
После выбираем базу данных mikbill в панели "Привилегии уровня базы данных"
И отмечаем все права этому пользователю на базу данных.
Ниже тоже самое но прямыми SQL командами, как памятка для оппытных пользователей.
Выполнять после импорта mikbill.sql ( импорт производить в кодировке koi8r)
ВНИМАНИЕ добавляя пользователя для работы биллинга, хост указывайте: 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 Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript
-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
ядро биллинга запушено.
Источник: http://www.celteh.com/dokumentatsiya/mikbill-install-centos.html |