Настройка FreeBSD 8.1+SQUID SAMS c авторизацией по NCSA
 

FreeBSD 8.1+SQUID SAMS c авторизацией по NCSA.

Оглавление


Введение
1.      Создание нового пользователя
2.      Установка MC
3.      Устанавливаем bash.
4.      Настройка доступа по SSH
5.      Собираем новое ядро, с поддержкой файрвола.
6.      Установка Веб сервера Apache 1.3
7.      Установка прокси сервер SQUID
8.      Установка СУБД Mysql 5.1
9.      Установка PHP 5
10.         Ставим PHP5 EXTENSIONS
11.         Установка SAMS-1.0.5
12.         Настройка Веб Интерфейса SAMS
13.        Настройка очистки счетчиков трафика пользователей SAMS 
14.         Установка Rejik
15.         Настройка freemem и freeswap
16.         Установка SARG для подсчета http трафика.
17.         Установка ProFTP для просмотра отчетов sarg через FTP сервер
18.         Установка trafd для подсчета общей суммы трафика
19.         Сделать клон диска, чтобы не ставить заново.
20.         APCUPSD - автовыключение сервера от UPS

 

Введение

В данной инструкции будет рассмотрен процесс установки связки SQUID SAMS c авторизацией по NCSA, и описаны все проблемы и их решения, которые возникли в процессе установки.

Установлена следующая ОС:

uname -a

Перед тем как начать установку обновите порты ОБЯЗАТЕЛЬНО!!!

# portsnap fetch extract
# portsnap fetch update

Как настроить сеть,  для того чтобы обновить порты написано далее.

 

1. Создание нового пользователя

Вводим команду:
# adduser
Username – имя пользователя, я выбрал rolf.
Full name – полное имя, можно оставить пустым
Uid – оставляем по умолчанию – enter
Login group – группа в которую входит пользователь, оставляем по умолчанию – enter
Login group is rolf. Invite rolf into other groups? []: - wheel – в какую еще группу добавить пользователя, добавляем в группу wheel, чтобы он мог пользоваться правами root, после ввода его пароль (su).
Login class [default]: - по умолчанию – enter
Shell (sh csh tcsh bash nologin) [sh]: bash – выбираем ранее установленный шел, т.е. bash
Home directory [/home/rolf]: - домашнюю директорию оставляем по умолчанию - enter
Use password-based authentication? [yes]: enter
Use an empty password? (yes/no) [no]: enter
Use a random password? (yes/no) [no]: enter
Enter password: - вводим пароль пользователя
Enter password again:  повторяем пароль…
Lock out the account after creation? [no]: enter
Username   : rolf
Password   : *****
Full Name  : folf
Uid        : 10078
Class      :
Groups     : rolf wheel
Home       : /home/rolf
Shell      : /usr/local/bin/bash
Locked     : no
OK? (yes/no):
проверяем все ли верно, если норма то вводим yes.

Adduser

adduser: INFO: Successfully added (rolf) to the user database.
Add another user? (yes/no): no – спрашивает будем ли вводить нового пользователя, отвечаем no.
Goodbye!

Нажимаем Alt+F2 переходим на другую консоль и вводим имя и пароль созданного пользователя.

Alt+F2

Должен выполниться вход в систему.

Rolf

Теперь зайдем с правами root. Вводим su, запросит пароль, вводим пароль root.

su

Можем работать в система под root.

 

2. Установка MC

MC можно установить из портов и из исходников. Рассмотрим оба варианта:

  1. Из исходников.
  2. Пишем на диск исходники MC. Берем например здесь:

    http://www.midnight-commander.org/downloads

    Ставим диск и монтируем его – mount /cdrom
    Создаем в корне папку distr – mkdir /distr
    Заходим на диск – cd /cdrom
    Копируем cp mc-XXXX /distr
    Идем в distr – cd /distr
    Распаковываем в tar –zxvf MC-XXXX
    Вводим sysinstall
    Sysinstall – Configure – Packages – All – glib – Install – поставили пакет glib 1.2 (находится на 2 диске дистрибутива FreeBSD)
    Теперь идем в папку /distr/MC-XXX
    ./configure
    Make
    Make install
    Reboot

  3. Из портов.
  4. Сначала нужно проверить есть ли интернет, пробуем пинговать mail.ru.

    ping

    Не пингует, т.к. у меня не прописан шлюз, прописываем его в r.conf

    ee /etc/rc.conf

    rc.conf

    Пробуем еще раз.

    ping mail.ru

    Все норма, но если не будет пинговаться то нужно проверить наличие в файле /etc/resolv.conf DNS сервера.

    ee /etc/resolv.conf

    resolv.conf

    Теперь нужно обновить порты. Вводим:
    portsnap fetch extract
    portsnap fetch update

    у меня скачал 56 метров обновлений.
    cd /usr/ports/misc/mc
    make install clean

    оставляем все запрашиваемые параметры по умолчанию, жмем ок.
    После установки перезагружаемся.

    Вводим mc

     

3. Устанавливаем bash.

Вводим sysinstall

sysinstall
Packages
FTP
Main Site
Requested

Ждем пока не появится следующий список
Выбираем All

ALL

Устанавливаем bash-3.2.51

Bash3
Reduested2

После установки bash выходим из Sysinstall.
Примечание: Если появилась необходисмость сменить шелл уже установленному пользователю то можно это сделать с помощью команды: chsh
Затем приводим файл к следующему виду:

chsh

R  - режим замены
Esc – выход из режима
:wq – запись и выход.
Теперь переключаемся на другой терминал, входим под пользователем, шел которого меняли и вводим
echo $SHELL
Появится что-то вроде

SHELL

Шел изменен.

 

4. Настройка доступа по SSH.

Далее я буду настраивать тестовый локальный сервер, который будет ходить в интернет через основной шлюз – 192.168.30.1.
Вводим ee /etc/rc.conf
Настраиваем сетевые карты, строки начинаются ifconfig…

rc.conf

Вводим ifconfig

ifconfig

Обе сетевухи подключены и настроены.
Т.к. доступ по SSH мы включили при установке, о чем свидетельствует строка
sshd_enable=”YES” в /etc/rc.conf, то пробуем подключиться к нашему серверу с локальной машины.
Для этого на локальной машине устанавливаем putty
Скачать можно например здесь

http://soft.softodrom.ru/ap/PuTTY-p5035

Ставим, запускаем, появляется окно.

Putty

Вводим IP нашего сервера и сохраняем – save, чтобы не вводить каждый раз. Затем - Open

Putty2

Putty3

Соглашаемся – Да
Вводим имя пользователя и пароль
login as:
Using keyboard-interactive authentication.
Password:

Входим в систему.
Получаем права root
su
Password:

Все теперь мы имеем полный доступ к нашему серверу.

 

5. Собираем новое ядро, с поддержкой файрвола.

Копируем файл /usr/src/sys/i386/conf/GENERIC -> /usr/src/sys/i386/conf/KERN240810

cp /usr/src/sys/i386/conf/GENERIC /usr/src/sys/i386/conf/KERN240810

Для поддержки IPFW нужно добавить следующие строки

      • ident                      KERN240810
      • maxusers 256
      • options IPFIREWALL # встраиваем поддержку файрволла в ядро
      • options IPFIREWALL_FORWARD
      • options IPFIREWALL_VERBOSE # вывод информации об отброшенных пакетах
      • options IPFIREWALL_VERBOSE_LIMIT=100 # ограничение
      • options IPDIVERT

Остальное оставляем без изменения. Но можно и закомментировать честь ненужных для вашего ПК строк.
Делаем следующее
Конфигурируем

config KERN_140709

KERNEL

Если всё прошло успешно, без ошибок, то компилируем

переходим в каталог
cd /usr/src/sys/i386/compile/KERN_140709
и выполняем:
make depend
make
make install

Перезагружаемся. Доступ по SSH к серверу пропал. Заходим локально под рутом, вводим
ipfw list

Deny

Вводим

Ipfw add allow ip from any to any

Теперь доступ по SSH проявился.
Добавляем в /etc/rc.conf следующие строки:

#автозапуск файервола - firewall_enable="YES"
firewall_enable="YES"
# файл с правилами для файервола - /etc/rc.firewall
firewall_script="/etc/rc.firewall"
# firewall_type="MY" . закрытый тип файервола (если "OPEN", то - открытый)
firewall_type="MY"
firewall_logging="YES"

Правим  /etc/rc.firewall

#!/bin/sh -
ipfw="/sbin/ipfw -q"
# Для начала разрешим все на данном сервере.
${ipfw} add 10 allow ip from any to any

Настраиваем FIREWALL в соответствии со своими нуждами.

 

6. Установка Веб сервера Apache 1.3

Сначала пытался установить Aoache 2.2, но с ним возникли проблемы, поэтому опять вернлуся к 1.3

Устанавливаем веб сервер Apache, для того что бы можно было управлять прокси сервером, просмотривать статистику и многое другое через веб интерфейс SAMS, написанный на php

cd /usr/ports/www/apache13
/usr/ports/www/apache13/> make install clean
/usr/ports/www/apache13/> rehash

Добавим строку в /etc/rc.conf для автозапуска apache при перезагрузке сервера
echo 'apache_enable="YES"' >> /etc/rc.conf

Запускаем сам apache.

/usr/local/etc/rc.d/apache start
Starting apache.

Смотрим запустился ли веб сервер apache

ps axw | grep http

6283 ?? Ss 0:00,05 /usr/local/sbin/httpd
6284 ?? I 0:00,00 /usr/local/sbin/httpd
6285 ?? I 0:00,00 /usr/local/sbin/httpd
6286 ?? I 0:00,00 /usr/local/sbin/httpd
6287 ?? I 0:00,00 /usr/local/sbin/httpd
6288 ?? I 0:00,00 /usr/local/sbin/httpd
6380 p0 R+ 0:00,00 grep http

Проверяем открывается ли тестовая страница, набрав в любом веб браузере http://192.168.30.11/
Если при запуске Apache пишет сообщение об ошибке
apache2: Could not reliably determine the server's fully qualified domain name...

Тогда в файле /usr/local/etc/apache22/httpd.conf необходимо раскоментировать и изменить параметр
ServerName localhost

 

7. Установка прокси сервер SQUID

Устанавливаем сердце нашей связки прокси сервер Squid, нужен он для пропуска пользователей в интернет, так же кеширования http, https, ftp трафика

cd /usr/ports/www/squid
/usr/ports/www/squid/> make config

Squid 2.7.5

и устанавливаем

/usr/ports/www/squid/> make install clean
/usr/ports/www/squid/> rehash

Немного о параметрах:
http_port 3128 — порт, на котором будет работает squid
forwarded_for off — отключает ip адрес клиента
Добавляем следующие строки в /usr/local/etc/squid/squid.conf

ee /usr/local/etc/squid/squid.conf

Squid2

auth_param basic program /usr/local/libexec/squid/ncsa_auth /usr/local/etc/squid/ncsa_auth /usr/local/etc/squid/ncsa.sams
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off

Все строки обязательно пишем в секциях, где им и нужно быть. А то много у кого проблемы были за за того что пишут все подряд внизу. Добавляйте все параметры поиском их в конфиге они там есть только закомментированы
Создаем пользователя для проверки работы squid
/usr/local/bin/htpasswd -c /usr/local/etc/squid/ncsa.sams Golf
password: Golf

либо
/usr/local/sbin/htpasswd -c /usr/local/etc/squid/ncsa.sams Golf
Создадим (SWAP) для прокси сервера Squid
rehash
squid -z

2008/10/02 20:57:19| Creating Swap Directories

Далее добавляем в /etc/rc.conf строку для автоматического запуска squid после перезагрузки
echo 'squid_enable="YES"' >> /etc/rc.conf
Запускаем сам squid
/usr/local/etc/rc.d/squid start
Starting squid.
Смотрим в процесс
ps axw | grep squid

5927 ?? Is 0:00,00 /usr/local/sbin/squid -D
5928 ?? S 0:01,05 (squid) -D (squid)
5929 ?? Is 0:00,01 (ncsa_auth) /usr/local/etc/squid/ncsa.sams (ncsa_auth)
5930 ?? Is 0:00,01 (ncsa_auth) /usr/local/etc/squid/ncsa.sams (ncsa_auth)
5931 ?? Is 0:00,01 (ncsa_auth) /usr/local/etc/squid/ncsa.sams (ncsa_auth)
5932 ?? Is 0:00,01 (ncsa_auth) /usr/local/etc/squid/ncsa.sams (ncsa_auth)
5933 ?? Is 0:00,01 (ncsa_auth) /usr/local/etc/squid/ncsa.sams (ncsa_auth)

Для ротации логов добавляем в /etc/crontab:

1       1       1       2,4,6,8,10,12   *       root    /usr/local/sbin/squid -k rotate

 

8. Установка СУБД MySQL 5.1

Собственно устанавливаем Субд Mysql, где у нас будут храниться логи хождения пользователей по интернет страничкам.

cd /usr/ports/databases/mysql51-server
/usr/ports/databases/mysql51-server/> make install clean
rehash

Добавляем в /etc/rc.conf строку для запуска mysql
echo 'mysql_enable="YES"' >> /etc/rc.conf
И запускаем сам сервер
/usr/local/etc/rc.d/mysql-server start
Проверяем, должно быть что то типа этого
ps axw | grep mysql
6210 p0 RV 0:00,00 grep mysql (csh)
6188 p1- S 0:00,02 /bin/sh /usr/local/bin/mysqld_safe
--defaults-extra-file=/var/db/mysql/my.cnf -- user=mysql --datadir=/var
6206 p1- S 0:00,94 /usr/local/libexec/mysqld
--defaults-extra-file=/var/db/mysql/my.cnf --basedir=/usr/local --datadir=/var/

Далее меняем пароль администратора - (root) СУБД Mysql
Вводим команду
hostname
Proxy.local – это полное имя нашего сервера

/usr/local/bin/mysqladmin -u root password 'Vita'
/usr/local/bin/mysqladmin -u root -h Proxy.local password 'Vita'

 

9. Установка PHP 5

Для нормальной работы необходимо ставить PHP 5.2 с версией 5.3 SAMS работает некорректно!!!
cd /usr/ports/lang/php52
/usr/ports/lang/php5/> make config

PHP 5.2.8

Устанавливаем:
/usr/ports/lang/php52/> make install clean
/usr/ports/lang/php52/> rehash

Чтобы активировать модули apache даем команду
apachectl graceful
Далее создаем тестовую страничку (для тестирования, работает ли php), вот с таким содержанием

ee /usr/local/www/data/index.php
<?
phpinfo();
?>

Перезапускаем веб сервер командой
/usr/local/etc/rc.d/apache restart
Проверяем работоспособность php заходим с любого интернет браузера http://192.168.30.11/index.php
Примечание: (мне не потребовалось, но все же)
Если у вас не появилась страница с информацией делаем следующее, а именно добавляем поддержку php
ee /usr/local/etc/apache/httpd.conf
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

 

10. Ставим PHP5 EXTENSIONS

PHP5 extensions тоже ставим версии 5.2 иначе SAMS будет работать некорректно

cd /usr/ports/lang/php52-extensions
/usr/ports/lang/php5-extensions/> make config

      Options for php5-extensions 1.2                  |
      | +----------------------------------------------------------------+ |
      | |  [ ] BCMATH      bc style precision math functions             | |
      | |  [ ] BZ2         bzip2 library support                         | |
      | |  [ ] CALENDAR    calendar conversion support                   | |
      | |  [X] CTYPE       ctype functions                               | |
      | |  [X] CURL        CURL support                                  | |
      | |  [ ] DBA         dba support                                   | |
      | |  [ ] DBASE       dBase library support                         | |
      | |  [ ] DOM         DOM support                                   | |
      | |  [ ] EXIF        EXIF support                                  | |
      | |  [ ] FILEINFO    fileinfo support                              | |
      | |  [ ] FILTER      input filter support                          | |
      | |  [ ] FRIBIDI     FriBidi support                               | |
      | |  [ ] FTP         FTP support                                   | |
      | |  [X] GD          GD library support                            | |
      | |  [X] GETTEXT     gettext library support                       | |

      | |  [ ] GMP         GNU MP support                                | |
      | |  [X] HASH        HASH Message Digest Framework                 | |
      | |  [X] ICONV       iconv support                                 | |

      | |  [ ] IMAP        IMAP support                                  | |
      | |  [ ] INTERBASE   Interbase 6 database support (Firebird)       | |
      | |  [ ] JSON        JavaScript Object Serialization support       | |
      | |  [ ] LDAP        OpenLDAP support                              | |
      | |  [ ] MBSTRING    multibyte string support                      | |
      | |  [ ] MCRYPT      Encryption support                            | |
      | |  [ ] MHASH       Crypto-hashing support                        | |
      | |  [ ] MING        ming shockwave flash support                  | |
      | |  [ ] MSSQL       MS-SQL database support                       | |
      | |  [X] MYSQL       MySQL database support                        | |
      | |  [ ] MYSQLI      MySQLi database support                       | |
      | |  [ ] NCURSES     ncurses support (CLI only)                    | |
      | |  [ ] ODBC        unixODBC support                              | |
      | |  [ ] OPENSSL     OpenSSL support                               | |
      | |  [ ] PCNTL       pcntl support (CLI only)                      | |
      | |  [X] PCRE        Perl Compatible Regular Expression support    | |
      | |  [X] PDF         PDFlib support (implies GD)                   | |
      | |  [X] PDO         PHP Data Objects Interface (PDO)              | |
      | |  [X] PDO_SQLITE  PDO sqlite driver                             | |

      | |  [ ] PGSQL       PostgreSQL database support                   | |
      | |  [X] POSIX       POSIX-like functions                          | |
      | |  [ ] PSPELL      pspell support                                | |
      | |  [ ] READLINE    readline support (CLI only)                   | |
      | |  [ ] RECODE      recode support                                | |
      | |  [X] SESSION     session support                               | |
      | |  [ ] SHMOP       shmop support                                 | |
      | |  [X] SIMPLEXML   simplexml support                             | |
      | |  [ ] SNMP        SNMP support                                  | |
      | |  [ ] SOAP        SOAP support                                  | |
      | |  [ ] SOCKETS     sockets support                               | |
      | |  [ ] SPL         Standard PHP Library                          | |
      | |  [X] SQLITE      sqlite support                                | |
      | |  [ ] SYBASE_CT   Sybase database support                       | |
      | |  [ ] SYSVMSG     System V message support                      | |
      | |  [ ] SYSVSEM     System V semaphore support                    | |
      | |  [ ] SYSVSHM     System V shared memory support                | |
      | |  [ ] TIDY        TIDY support                                  | |
      | |  [X] TOKENIZER   tokenizer support                             | |
      | |  [ ] WDDX        WDDX support (implies XML)                    | |
      | |  [ ] XML         XML support                                   | |
      | |  [X] XMLREADER   XMLReader support                             | |
      | |  [ ] XMLRPC      XMLRPC-EPI support                            | |
      | |  [X] XMLWRITER   XMLWriter support                             | |
      | |  [ ] XSL         XSL support (Implies DOM)                     | |
      | |  [ ] YAZ         YAZ support (ANSI/NISO Z39.50)                | |
      | |  [ ] ZIP         ZIP support                                   | |
      | |  [X] ZLIB        ZLIB support                                  | |
      +-+------v(+)------------------------------------------------------+-+
      |                       [  OK  ]       Cancel                        |
      +--------------------------------------------------------------------+

/usr/ports/lang/php5-extensions/> make install clean
/usr/ports/lang/php5-extensions/> rehash

Чтобы активировать модули apache даем команду

apachectl graceful

В файл /usr/local/etc/apache/httpd.conf добавить директиву ExecCGI
Этот параметр разрешит загрузку файлов на сервер через web интерфейс. Добавляем в конец файла.
ee /usr/local/etc/apache/httpd.conf

<Directory />
Options FollowSymLinks ExecCGI
AllowOverride None
</Directory>
Настраиваем php.ini
//> cp /usr/local/etc/php.ini-dist /usr/local/etc/php.ini
И добавляем в конец файла в php.ini 2 строки.
//> ee /usr/local/etc/php.ini
safe_mode = On
safe_mode_exec_dir = "/usr/local/share/sams/bin"

Перезагрузим Apache

/usr/local/etc/rc.d/apache restart

11. Установка SAMS-1.0.5

cd /usr/ports/www/sams
/usr/ports/www/sams/> make config

SAMS-Install

/usr/ports/www/sams/> make install clean
/usr/ports/www/sams/> rehash
cp /usr/local/etc/sams.conf.sample /usr/local/etc/sams.conf

Правим конфиг самса до такого состояния

ee /usr/local/etc/sams.conf

SAMS.conf

      [client]
      SQUID_DB=squidlog
      SAMS_DB=squidctrl
      MYSQLHOSTNAME=localhost
      MYSQLUSER=root – ЛОГИН АДМИНИСТРАТОРА MySQL который вводили ранее!!!!!
      MYSQLPASSWORD=gfhjkm123 - ПАРОЛЬ АДМИНИСТРАТОРА MySQL который вводили ранее!!!!!
      MYSQLVERSION=5.1
      SQUIDCACHEFILE=access.log
      SQUIDROOTDIR=/usr/local/etc/squid
      SQUIDLOGDIR=/var/squid/logs
      SQUIDCACHEDIR=/var/squid/cache

      SAMSPATH=/usr/local
      SQUIDPATH=/usr/local/sbin
      #SQUIDGUARDLOGPATH=/var/log
      #SQUIDGUARDDBPATH=/var/db/squidGuard
      RECODECOMMAND=iconv -f KOI8-R -t 866 %finp > %fout
      #LDAPSERVER=servername_or_ipadress
      #LDAPBASEDN=your.domain
      #LDAPUSER=DomainAdministrator
      #LDAPUSERPASSWD=passwd
      #LDAPUSERSGROUP=Users
      REJIKPATH=/usr/local/rejik
      SHUTDOWNCOMMAND=/sbin/shutdown -h now
      CACHENUM=0

При копировании данных с сайта лисяры пути

Теперь добавляем линк в конфиг Apache, для того что бы можно было попасть в веб интерфейс

ee /usr/local/etc/apache/httpd.conf

      Alias /sams "/usr/local/share/sams/"
      <Directory "/usr/local/share/sams/">
      AllowOverride AuthConfig
      Options Indexes MultiViews
      Order allow,deny
      Allow from all
      </Directory>

Ну и перезагрузим Apache для надежности =)

/usr/local/etc/rc.d/apache restart

Если в web-интерфейсе пишет ошибки ссылаясь на файлы php.ini

Notice: Undefined index: user in /usr/local/share/sams/lframe.php on line 60
Notice: Undefined index: user in /usr/local/share/sams/tray.php on line 139

В случае ошибок с датами в PHP необходимо выполнить следующие действия

PHP.ini

Создаем Базы и пользователя самс в СУБД Mysql, для этого перейдите в любом интернет браузере по ссылке http://192.168.30.11i/sams/   и там вы увидите

Run SAMS

Нужно нажать на кнопку Run SAMS database installation script тем самым мы запустим скрипт по созданию нужных баз и пользова теля в MySQL.

Sams installation

Sams MySQL user: Вводим пользователя под которым самс будет подключаться к БД (а именно которого мы указали в sams.conf)
Sams MySQL user password: Вводим пароль для пользователя sams, естественно так же который мы указали в sams.conf
Ну и нажимаем кнопку Create Database
Далее вы должны увидеть следующее:

SAMS created

Если видим подобное чудо, то все отлично!,  нажимаем на кнопку Starting SAMS webinterface
Далее необходимо создать символическую ссылку!!!! (чтобы создавался файлик ncsa.sams, в который добавляются пользователи)

ln -s /usr/local/bin/htpasswd /usr/bin/htpasswd

Под FreeBSD при запуске сервера SAMS норовит стартовать раньше MySQL, в результате чего он не может открыть нужные таблицы. Устранить можно исправив в файле /usr/local/etc/rc.d/sams строчку:
# REQUIRE: LOGIN cleanvar
до
# REQUIRE: LOGIN cleanvar mysql
и тогда mysql_real_connect() error 0. no open database squidctrl, DELAY 3 sec не появится

Демон должен выглядеть так

ee /usr/local/etc/rc.d/sams

#!/bin/sh
# $FreeBSD: ports/www/sams/files/sams.sh.in,v 1.1 2006/12/29 20:18:35
# PROVIDE: sams
# REQUIRE: mysql
# REQUIRE: LOGIN cleanvar
# KEYWORD: shutdown
#....пропущено....

Добавляем в /etc/rc.conf строку sams_enable="YES" для того что бы SAMS запускался при старте системы

echo 'sams_enable="YES"' >> /etc/rc.conf

Запускаем SAMS

/usr/local/etc/rc.d/sams start

Starting sams.

 

12. Настройка Веб Интерфейса SAMS

В любом браузере переходим http://ip_tachki/sams/
Заходим в веб интерфейс, ПО УМОЛЧАНИЮ ПОЛЬЗОВАТЕЛЬ admin, ПАРОЛЬ qwerty (ВСЕГДА ТАК)

User authenticate ---> Access under the name of another superuser

  1. Настройки WEB интерфейса -> Нажимаем на Гаечный ключ

    Язык:                                                                                             [Russian KOI8-R]
    Разрешить доступ пользователей к своей статистике:
    по трафику за день                                                                         [X]
    по посещенным URL                                                                     [X]
    Тема иконок:                                                                                  [bumper]
    Показывать дерево пользователей                                              [X]
    Показывать пользователей как                                                    [Фамилия Имя]
    Размер Килобайта, учитываемого вашим провайдером (byte) [1024]
    Размер Мегабайта, учитываемого вашим провайдером (byte)  [1048576]
    Показывать графики в отчетах                                                      [X]
    Создавать PDF отчеты:                                                                  [Не создавать]

    Сохранить изменения]

  2. SAMS -> Администрирование SAMS -> Настройка SAMS

    Домен по умолчанию:                                                                             [Оставляем_пустым]
    Способ аутентификации пользователя:                                                 [NCSA]
    Настройка samsdaemon:
    Проверять наличие команды на реконфигурирование squid каждые [1 секунду]
    Обрабатывать логи SQUID:                                                                    [X]
    Используя:                                                                         [Запускать обработчик логов через N минут]
    обрабатывать через:                                                                                [1 минуту]
    Автоматически очищать счетчики трафика пользователей:               [X]
    Путь к wbinfo:                                                                                           [/usr/local/bin]
    файл перенаправления запроса:                                [http://ip_tachki/sams/icon/classic/blank.gif]
    Путь к каталогу, где лежат файлы запрета запроса:                              [http://ip_tachki/sams/messages]
    Редиректор:                                                                                      [Не использовать редиректор]
    Включить ограничение скорости доступа пользователей (delaypool):            [ ]
    Сохранять данные о трафике в базе за последние:                              [Не сохранять]

    [Сохранить изменения]

  3. SAMS -> Шаблоны пользователей -> Default

    Cписки SAMS:
    Перенаправление запроса
    [X] Banners
    [X] Counters
    [ ] Доступ запрещен ко всем URL
    Запрет доступа
    [X] Chats
    [X] Porno
    [X] Localdomains
    Объем трафика пользователя шаблона по умолчанию (Mb):            [100]  0 - unlimited traffic
    Скорость канала для всего шаблона (byte/s):                                       [64000]
    Скорость канала для отдельного пользователя (byte/s):                     [64000]
    Способ авторизации пользователей:                                                   [NCSA]
    Период лимита трафика:                                                                        [Месяц]
    период:[   ]дней
    Дата следующего обнуления
    счетчика трафика:
    [    ]:[  ]:[  ]
    Дни недели
    Пон Вт Ср Чт Пт Сб Вск

                                                                   [x][x][x][x][x][x][x]
    Временной период
    0 : 00 - 23 : 59

    [Сохранить изменения]

  4. Пользователи -> Добавить пользователя

    Регистрация нового пользователя
    Пользователь:                                                                                             [test]
    Домен:                                                                                                  [Оставляем поле пустым]
    Пароль для допуска пользователя
    в интернет и просмотра статистики:                                                     [******]
    IP адрес/маска:                                                                                   [             ]/[255.255.255.255]
    Имя:                                                                                                             [Тест]
    Отчество:                                                                                                 [Тестович]
    Фамилия:                                                                                                   [Тестов]
    Группа:                                                                                                        [Users]
    Разрешенный
    трафик (Мб):                                                                                                  [100]
    Пользователь активен:                                                                                  [X]
    Шаблон:                                                                                                      [Default]

    [Добавить пользователя]

  5. SAMS -> Локальные домены

    Список локальных доменов
    Локальные домены

       
    +-------------------+-+
    | 127.0.0.1         | |
    | 192.168.55.0/24   | |
    | domain.local      | |
    | ip_tachki         | |
    | proxy.domain.local| |
    |                   | |
    |                   | |
    |                   | |
    |                   | |
    +-------------------+-+
    [Удалить URL]
    [__________________][Change]
    [__________________][Добавить URL]
    [Очистить список]

Список содержит домены, данные по доступу к которым пользователей НЕ ЗАНОСЯТСЯ в базу логов SQUID. Трафик пользователей по этим доменам не учитывается.

SAMS -> SQUID -> Реконфигурирование SQUID -> Реконфигурировать

 

13. Настройка очистки счетчиков трафика пользователей

SAMS ведет учет объема информации, полученной пользователями. По превышении объема информации, пользователь отключается от доступа к прокси-серверу

Очистка счетчиков пользователей может производиться через любой период времени (кратно суткам). Период очистки счетчиков установливается в свойствах шаблонов пользователей. Очистка производится демоном samsdaemon.

Также возможно производить очитску счетчиков ВСЕХ пользователей, вызывая утилиту sams с ключем -c из cron.
Пример настройки /etc/crontab на очистку счетчиков пользователей 00:00 1 числа каждого месяца:

0 0 1 * * /usr/local/sams/bin/sams -c

 

14. Установка Rejik

РЕЖИК нужен он для того что бы запрещать доступ на ненужные для работы сайты, файлы, так же нужен и для отключения пользователей, которые превысили свой лимит.

cd /usr/ports/www/rejik  
/usr/ports/www/rejik/> make config

Rejik 3.2

/usr/ports/www/rejik/> make

Для того что бы режик был регистронезависимым нужно раскомментировать строку:

#define CASE_INDEPENDENT

/usr/ports/www/rejik/> ee work/redirector/vars.h
Правим строку  
// Uncoment next line for case independent  
#define CASE_INDEPENDENT

Устанавливаем rejik:

/usr/ports/www/rejik/> make install
/usr/ports/www/rejik/> rehash

Далее копируем банлисты в рабочий каталог Режика.

cp -R /usr/ports/www/rejik/work/banlists /usr/local/rejik

Даем права на бан лист squid:squid, думаю не повредит так как надоели с граблями (прав) на него

chown -R squid:squid /usr/local/rejik/banlists

Правим эти строки примерно до такого состояния
Проверяем, правильно ли прописаны пути в redirector.conf, поменяв путь с ban на messages

ee /usr/local/rejik/redirector.conf

Пример такой

    error_log /usr/local/rejik/redirector.err
    change_log /usr/local/rejik/redirector.log
    make-cache /usr/local/rejik/make-cache
    #allow_urls /usr/local/rejik/banlists/allow_urls
    
    <BANNER>
    ban_dir /usr/local/rejik/banlists/banners
    url http://127.0.0.1/messages/1x1.gif  
    #log off
    
    <PORNO>
    ban_dir  /usr/local/rejik/banlists/porno
    url http://127.0.0.1/messages/porno.html
    
    <MP3>
    ban_dir /usr/local/rejik/banlists/mp3
    url http://127.0.0.1/messages/mp3.html
    
    <JS>
    ban_dir /usr/local/rejik/banlists/js
    url http://127.0.0.1/messages/js.js  
    #log off

И создаем директорию где у нас будут храниться БАН страницы

mkdir /usr/local/www/data/messages

Качаем, распаковываем архив и кладем файлы в /usr/local/www/data/messages

messages - скачать

Даем права для того что бы у пользователей при срабатывания режика были права для просмотра странички запрета. Естественно увидев ее тем самым понял что нефиг ему там делать.

chown -R www:www /usr/local/www/data/messages/

Добавляем параметр в SQUID для редиректора Режик

ee /usr/local/etc/squid/squid.conf

Располодение в файле не менять!

    #       By default, a URL rewriter is not used.  
    #  #Default:  
    # none
    url_rewrite_program /usr/local/rejik/redirector /usr/local/rejik/redirector.conf  

Веб интерфейсе включаем поддержку Режика:

SAMS -> Администрирование SAMS -> Настройка SAMS

Редиректор:                                                      [  Rejik  ]

SAMS -> SQUID -> Реконфигурирование SQUID -> Реконфигурировать

 

15. Настройка freemem и freeswap

Исправление некоторых файлов Sams под FreeBSD, для того что бы отображалась загруженность сервера
Да и вот дописал что бы показывало в интерфейсе freemem и freeswap (Это не обязательно!)
Так как Sams в большем случае написан под Linux и некоторые запросы немного не для FreeBSD
Вот так вот отображалось до того как изменили

freemem

Топаем в порты

cd /usr/ports
/usr/ports/> make search name=freecolor

Port:   freecolor-0.8.8
Path:   /usr/ports/sysutils/freecolor
Info:   Displays free memory as a bargraph
Maint:  tdb@FreeBSD.org
B-deps: libstatgrab-0.16 pkg-config-0.23_1
R-deps: libstatgrab-0.16 pkg-config-0.23_1
WWW:    http://www.rkeene.org/oss/freecolor/

cd /usr/ports/sysutils/freecolor
/usr/ports/sysutils/freecolor/> make install clean

Меняем запрос  free на freecolor

ee /usr/local/share/sams/bin/freemem 

Правим до такого состояния

#!/bin/sh
STR=`/usr/local/bin/freecolor -t -m -o | grep Mem:`
echo $STR

Меняем запрос free на top 

ee /usr/local/share/sams/bin/freeswap

Правим до такого состояния

#!/bin/sh
STR=`/usr/local/bin/freecolor -t -m -o | grep Swap:`
echo $STR

После всего выглядет это вот так

freemem

 

16. Установка SARG для подсчета http трафика.

Для того чтобы собирать статистику по http трафику необходимо поставить SARG.
Сначала проверяем в /usr/local/etc/squid/squid.conf наличие строки

access_log /var/squid/logs/access.log squid

Которая отвечает за запись логов, которые использует sarg, если нет добавляем ее.
Устанавливаем SARG из портов.
Переходим в папку /usr/ports/www/sarg.

SARG

Оставляем по умолчанию все доп опции - Ок
Настройка
Редактируем файл /usr/local/etc/sarg/sarg.conf

Раскоментируем и исправим строку Language Russian_windows1251

Раскоментируем и исправим строку
access_log /var/squid/logs/access.log

Раскоментируем и исправим строку
output_dir /usr/local/www/apache22/data/sarg/squid-reports

SARG settings

Настрока sarg закончена.
Для того чтобы снять отчет с 15 по 16 июля 2009 года вводим следующую строку

sarg -d 15/07/2009-16/07/2009 -l /usr/local/squid/logs/access.log.

SARG reports

 

17. Установка ProFTP для просмотра отчетов sarg через FTP сервер

Установка ProFTP

cd /usr/ports/ftp/proftpd/
make install clean

Оставляем все по умолчанию.
установился proftp-1.3.2.

Правим /usr/local/etc/proftpd.conf

Теоретически ничего править не надо, но подробный конфиг приведу

    # proftp 1.3.2
    # Имя сервера
    ServerName                      "ProFTPD Server"

    #Как запускается демон
    ServerType                      standalone

    DefaultServer                   on
    ScoreboardFile          /var/run/proftpd/proftpd.scoreboard

    #Стандартный FTP порт
    Port                            21

    # Use IPv6 support by default.
    #UseIPv6                                on

    # Маска для ограничения создания директорий и файлов
    Umask   022

    # Максимальное кол-во процессов
    MaxInstances                    30

    # Ограничение на максимальную длину комманды
    CommandBufferSize       512

    # Пользователь и группа, под которой работает демон
    User                            nobody
    Group                           nogroup

    # Директория по умолчанию - домашний каталог пользователя
    DefaultRoot ~

    # Normally, we want files to be overwriteable.
    AllowOverwrite          on

    # Разрешение на смену прав файлам и создание каталогов
    <Limit SITE_CHMOD>
    DenyAll
    </Limit>

    # Анонимные пользователи
    # Если не надо, то удалите или закомментите всю директиву.
    # Путь до каталога, обратите внимание, на него DefaultRoot не распространяется.
    #<Anonymous ~ftp>
    #   User                                ftp
    #   Group                               ftp

    # Назначение псевдонима anonymous для ftp
    # UserAlias                   anonymous ftp

    # Лимит максимума клиентов
    # MaxClients                  10
    ### We want 'welcome.msg' displayed at login, and '.message' displayed
    ### in each newly chdired directory.
    # DisplayLogin                        welcome.msg
    # DisplayFirstChdir           .message

      ### Limit WRITE everywhere in the anonymous chroot
    # <Limit WRITE>
    #   DenyAll
    # </Limit>
    #</Anonymous>

    #Если пользователи жалуются на длительную авторизацию - вход по ftp,
    #воспользуйтесь директивой UseReverseDNS off, дополнительно к ней можно
    #использовать директиву IdentLookups off.
    UseReverseDNS off
    IdentLookups off

    RequireValidShell off
    #Times off


Добавляем в /etc/rc.conf

proftpd_enable=”YES”

Перезагружаемся reboot

Если выдает ошибку warning: unable to determine IP address of .
Решение: в /etc/hosts добавить 127.0.0.1 ИМЯ СЕРВЕРА.

Вводим top – находим proftpd.

Создаем пользователей: одного только для просмотра другого для просмотра и редактирования.
Создаем первого пользователя:

    Username: userftp
    Full name:
    Uid (Leave empty for default):
    Login group [userftp]:
    Login group is test. Invite test into other groups? []:
    Login class [default]:
    Shell (sh csh tcsh bash nologin) [sh]: nologin
    Home directory [/home/userftp]:
    Use password-based authentication? [yes]:
    Use an empty password? (yes/no) [no]:
    Use a random password? (yes/no) [no]:
    Enter password:
    Enter password again:
    Lock out the account after creation? [no]:
    Username   : userftp
    Password   : *****
    Full Name  :
    Uid        : 1005
    Class      :
    Groups     : test
    Home       : /home/userftp
    Shell      : /usr/sbin/nologin
    Locked     : no
    OK? (yes/no): yes
    adduser: INFO: Successfully added (test) to the user database.
    Add another user? (yes/no): yes
    Username: test
    Full name:
    Uid (Leave empty for default):
    Login group [test]:
    Login group is test. Invite test into other groups? []:
    Login class [default]:
    Shell (sh csh tcsh bash nologin) [sh]:nologin
    Home directory [/home/test]: /home/userftp
    Use password-based authentication? [yes]:
    Use an empty password? (yes/no) [no]:
    Use a random password? (yes/no) [no]:
    Enter password:
    Enter password again:
    Lock out the account after creation? [no]:
    Username   : test
    Password   : *****
    Full Name  :
    Uid        : 1005
    Class      :
    Groups     : test
    Home       : /home/userftp
    Shell      : /usr/sbin/nologin
    Locked     : no
    OK? (yes/no): yes
    adduser: INFO: Successfully added (test) to the user database.
    Add another user? (yes/no): no
    Теперь идем в /etc/passwd смотрим 2 последние строчки и изменяем их, должно получится что-то вроде
    userftp:*:1003:1003:userftp:/home/userftp:/usr/sbin/nologin
    test:*:1004:1004:User &:/home/userftp:/usr/sbin/nologin

После заведения второго пользователя в тот же каталог права доступа заменятся поэтому советую сразу проверить обоими пользователями.

Создаем в директории home/userftp папку upload и меняем на нее права
Права сгруппированы три по три, соответственно чтение/запись/выполнение для владельца/группы/всех остальных. Численное представление:
Значение       Права доступа           Список файлов каталога

    0          Ничего не разрешено          ---
    1          Нельзя читать и писать, разрешено исполнять  --x
    2          Нельзя читать и исполнять, разрешено писать  -w-
    3          Нельзя читать, разрешено писать и исполнять  -wx
    4          Разрешено читать, нельзя писать и исполнять   r--
    5          Разрешено читать и исполнять, нельзя писать   r-x
    6          Разрешено читать и писать, нельзя исполнять   rw-
    7          Разрешено все                                                         rwx

Нам нужны права на изменение для владельца и группы, для остальных только чтание и исполнение следовательно пишем

Chmod 775 upload/

LS

Смотрим права:

    ls -l
    total 18
    -rw-r--r--  1 userftp  userftp  767 Jul  2 15:19 .cshrc
    -rw-r--r--  1 userftp  userftp  248 Jul  2 15:19 .login
    -rw-r--r--  1 userftp  userftp  158 Jul  2 15:19 .login_conf
    -rw-------  1 userftp  userftp  373 Jul  2 15:19 .mail_aliases
    -rw-r--r--  1 userftp  userftp  331 Jul  2 15:19 .mailrc
    -rw-r--r--  1 userftp  userftp  797 Jul  2 15:19 .profile
    -rw-------  1 userftp  userftp  276 Jul  2 15:19 .rhosts
    -rw-r--r--  1 userftp  userftp  975 Jul  2 15:19 .shrc
    drwxrwxr-x  2 root     userftp  512 Jul  2 17:41 upload

Можно пробовать заходить под test и под userftp.
Для того чтобы нельзя было зайти через ssh используя логин и пароль этих пользователей проверяем:

chsh userftp

chsh userftp

Выход Ctrl+Z.
Перезагружаемся и пробуем.
Если FTP не работает то нужно править правила nat. Изменяем /etc/rc.firewall

natd

Пробуем, должно работать.

FTP-SARG
SARG-STAT

 

18. Установка trafd для подсчета общей суммы трафика

    1. Устанавливаем trafd из портов (необходим интернет)
      1. Переходим в папку /usr/ports/net-mgmt/trafd
      2. Make install clean
    1. Настраиваем trafd

Для запуска демона при загрузке ОС, в /etc/rc.conf прописываем:

/usr/local/bin/trafd -i xl0                  // где xl0 это имя внешней сетевухи

Перезагружаемся и проверяем введа команды trafsave xl0 и trafdump xl0.
Теперь traflog -l -i /usr/local/var/trafd/trafd.xl0 должно вывести следующее

hluz# traflog -l -i /usr/local/var/trafd/trafd.xl0
traflog: WARNING: SIOCGIFADDR: /usr/local/var/trafd/trafd.xl0: Device not configured
#        Started            Dumped            Data         All     Recs
001   Jul 23 14:29:20   Jul 23 14:29:58        60124        77604      2
002   Jul 23 17:17:25   Jul 23 17:33:52        58967        80463      3

Автоматизируем процесс.
Идем в /usr/locfl/bin и создаем фаил traf_save

#!/bin/sh
/usr/local/bin/trafsave xl0
/usr/local/bin/trafdump xl0

В /usr/locfl/bin и создаем еще фаил traf_save

#!/bin/sh
/usr/local/bin/traflog -n -b581 -e582 -s -i /usr/local/var/trafd/trafd.xl0 from all to 192.168.30.11 mask 255.255.255.255

Идем в /etc/crontab и добавляем строку

0       0,12    *       *       *       root    /usr/local/bin/traf_save

Т.е. каждые 12 часов будет делаться откат логов.

Для просмотра делаем следующее

Трафик хранится в файле: /usr/local/var/trafd/trafd.xl0 , из данного файла необходимо взять номера строк которыми начинается и заканчивается период на котором мы хотим увидеть трафик.
Файл смотрим командой

traflog -l -i /usr/local/var/trafd/trafd.xl0

[root@mail /usr/ports/net-mgmt/trafd]# traflog -l -i /usr/local/var/trafd/trafd.xl0
traflog: WARNING: SIOCGIFADDR: /usr/local/var/trafd/trafd.xl0: Device not configured
#        Started            Dumped            Data         All     Recs
001   Oct  6 09:59:11   Oct  6 10:05:51     13080139     13842891    142
002   Oct  6 10:05:51   Oct  6 10:09:45     19149402     19921578    119
003   Oct  6 10:09:45   Oct  6 10:09:46       261789       271237      4
[root@mail /usr/ports/net-mgmt/trafd]#

то есть для периода с 6 октября по 6 октября, мы берем значения начало: 001, конец: 003.
Для установки границ периода вводим команду:

еe /usr/local/bin/traf_made

В файле ставим эти значения за ключами –b и –e (соответственно начало и конец периода)

/usr/local/bin/traflog -n -b001 -e003 -s -i /usr/local/var/trafd/trafd.xl0 from all to 217.23.26.238 mask 255.255.255.255

Для сохранения файла нажимаем  “Ctrl+kx»
Далее вводим команду:   

/usr/local/bin/traf_made | more

[root@mail /usr/ports/net-mgmt/trafd]# /usr/local/bin/traf_made | more
traflog: WARNING: SIOCGIFADDR: /usr/local/var/trafd/trafd.xl0: Device not configured  (/usr/local/var/trafd/trafd.xl0) mail.platonn.ru at Oct  6 09:59:11 - Oct  6 10:09:46
Summary: 6623721 data bytes, 7355505 all bytes, 134 records
From           Port         To            Port  Proto     Data       All
80.240.106.49      65302   217.23.26.238      65302   udp    2475368    2833880
213.148.27.182     65415   217.23.26.238      65415   udp    1291696    1360464
89.249.25.162      80      217.23.26.238      client  tcp     735671     763627
81.19.70.1         80      217.23.26.238      client  tcp     213750     220310

Нас интересует суммарный трафик, Summary: 6623721 размер указан в байтах.

19. Сделать клон диска, чтобы не ставить заново.

Сталкнулся с проблемой, оказалось винт который клонировать определен как slave будем исправлять
Ставим диск, идем в sysinstall – Configure – fdisk выбраем его согдаем слайс, делаем загрузочным
Выбираем тип загрузчика Standart
После этого идем в label но если не получится смонтировать то нужно перезгрузиться.

Останавливаем операционную систему (далее ОС) с помошью команды halt и выключаем компьютер.
Подключаем новый жёсткий диск, определяем его в BIOS и загружаем ОС.
Допустим, что новый. Создаем директории

/mnt/root, /mnt/var, /mnt/usr, /mnt/tmp

Запускаем от пользователя root программу /stand/sysinstall , в ней выбираем Configure -> Fdisk, ad2. Создаём FreeBSD slice на всём свободном пространстве диска. Нажимаем ’s’ (set bootable). Нажимаем ‘w’ (write changes). При выходе из fdisk задают вопрос, надо ли создать Master Boot Record? Выбираем Standard Install a standard MBR (no boot manager), и Yes.
Выходим из Fdisk и заходим в Label, выбираем ad2 нажимаем ‘a’ (auto-defaults for all), это создаст partition’ы для /, /var, /usr, /tmp, swap; или можно выбрать размер каждой partition вручную. Затем, чтобы /stand/sysinstall смог отформатировать и сразу смонтировать, надо командой ‘m’ для каждой partition указать одну из точек монтирования (mount points), нажать ‘w’ (write changes). После этого программа создаст файловые системы и примонтирует их к указанным точкам монтирования.

Если же вы будете создавать partition’ы вручную, то есть небольшая хитрость.
Первое после создания слайса нужно выйте из Sesinstall и затем снова зайти, иначе не будет монтироваться, постоянная проблема при клонировании
Второе в  FreeBSD Disklabel Editor установим курсор на новый диск и создадим новую корневую файловую систему, указав ей в качестве точки монтирования /. Label отметит, что ad2s1a будет смонтирована на /. Обратите внимание: новая корневая файловая система должна быть именно с буквой a на конце. Для того, что бы Label правильно смонтировал эту файловую систему, встаньте на её описание и укажите в качестве точки монтирования /mnt/root.
/tmp монтировать обязательно!
Под пользователем root выполняем серию из команды pax (по одной на каждую файловую систему), например:

    # cd /; pax -p eme -X -rw . /mnt/root
    # cd /var; pax -p eme -X -rw . /mnt/var
    # cd /usr; pax -p eme -X -rw . /mnt/usr
    /tmp переносить не нужно

Тем самым файловые системы скопированы на новый диск.
Порядок монтирования не менять!!! А то может произойти рекурсия.
Командой df уточняем соответствуют ли буквы partition’ов новых файловых систем старым. Если нет, изменяем новый /etc/fstab, который находится в /mnt/root/etc/fstab.
Например, если старый жёсткий диск в данный момент primary master (ad0), а новый - secondary master (ad2), старая /usr находится на /dev/ad0s1f, а новая - /dev/ad2s1f, ничего менять не надо, так как когда мы переставим новый винчестер на место старого, эта система опять будет /dev/ad0s1f. Если же новая /usr стала, скажем, /dev/ad2s1g, в /mnt/root/etc/fstab следует изменить расположение ad0s1f на ad0s1g.
Если пришлось изменить /mnt/root/etc/fstab, следует убедиться в существовании всех устройств /dev/*, указанных в этом файле, иначе новая система не загрузится. Если таковые отсутствуют - создать, например:
# cd /dev; sh ./MAKEDEV ad0s1g
После этого устанавливаем новый жёсткий диск на место старого, и пытаемся загрузить ОС. Если ОС не загружается, скорее всего ошибка в /etc/fstab или в /dev нет нужных устройств.

20. APCUPSD - автовыключение сервера от UPS

Ставим из портов:

/usr/home/name/>cd /usr/ports/sysutils/apcupsd
/usr/ports/sysutils/apcupsd/>make && make install && make clean

В случае если при попытке установить из портов выдает ошибку

"Makefile", line 112: Could not find bsd.port.options.mk

Для устранения нужно скопировать bsd.port.options.mk из /usr/ports/Mk/ в /usr/share/mk
Правим /usr/local/etc/apcupsd/apcupsd.conf
Основные настройки задаются в файле /etc/apcupsd/apcupsd.conf, каждая строка которого определяет значение одного параметра. Основные параметры:

UPSNAME имя которое будет указываться в системном журнале
UPSTYPE тип-управляющего-соединения (dumb, apcsmart, net, usb, snmp, test)
UPSCABLE тип-кабеля (simple, smart, usb, ether, модель фирменного кабеля)
DEVICE имя-устройства (/dev/ttyS0, /dev/hiddev0, 192.168.0.1:3551)
LOCKFILE имя-каталога (/var/lock; в этом каталоге будут создаваться блокирующие файлы доступа к последовательным или USB портам)
NETSERVER on (включение NIS сервера - см. ниже)
NISIP 0.0.0.0 (IP адрес для входящих соединений; можно 127.0.0.1)
NISPORT 3551 (входной порт NIS сервера)
EVENTSFILE имя-файла (журнал событий для NIS сервера)
EVENTSFILEMAX максимальный-размер-в-КБ
NETTIME 60 (интервал опроса NIS-сервера клиентом)
ONBATTERYDELAY 6
BATTERYLEVEL 5 (минимальный уровень зарядки батареи в процентах, после которого начинается выключение)
MINUTES 3 (минимальное количество минут, оставшихся до исчерпания батареи, после которого начинается выключение; основывается на мнении UPS)
TIMEOUT 0 (если не 0, то выключение начинается после указанного числа секунд работы на батарее без учёта уровня зарядки)
ANNOY 60 (интервал между призывами к пользователям прекратить работу)
ANNOYDELAY 300 (задержка между переходом на работу от батареи и первым призывом завершать работу)
NOLOGON disable (не давать начинать новый сеанс работы при работе от батареи; disable - отключить ограничение; timeout - запрещать новый сеанс по истечении 90%, заданого в TIMEOUT; percent - запрещать новый сеанс по достижению 110% уровня зарядки, заданного BATTERYLEVEL; minutes - запрещать новый сеанс по достижению 110% минут, указанных в MINUTES; always - запрещать сразу)
NOLOGINDIR имя-каталога (в этом каталоге создаётся файл nologin - именно наличие этого файла в /etc запрещает новый сеанс в UNIX)
KILLDELAY 0
SCRIPTDIR /etc/apcupsd
PWRFAILDIR имя-каталога (в этом каталоге - /etc/apcupsd - создаётся файл powerfail, как признак сбоя питания, который используется в изменённом скрипте /etc/init.d/halt для выключения UPS после выключения системы)
STATTIME 60 (секунд между обновлением файла состояния или записями в syslog)
STATFILE имя-файла
DATATIME 60 (секунд между обновлением краткого файла данных, см. ниже)
LOGSTATS on (выводить подробное состояние через syslog)
FACILITY DAEMON (от имени какой службы выводить состояние в syslog)

Добавляем автозапуск демона
echo 'apcupsd_enable="YES" ' >> /etc/rc.conf
Настройка закончена..

Источники:

http://www.lissyara.su

http://sams.perm.ru

v1.


 
Сайт управляется системой uCoz