# Eye Monitoring System — Руководство по установке ### Системные требования #### Поддерживаемые дистрибутивы: * ALT Linux 11.1+ * Debian 11+ * Ubuntu 20.04+ ## 🔧 Ручная установка ### Установка требуемых пакетов #### Для ALT Linux: ```bash # Обновление репозиториев apt-get update # Установка пакетов Eye apt-get install git xxd wget fping hwdata # База данных (выберите одну) apt-get install mariadb-server mariadb-client # Для MySQL # ИЛИ apt-get install postgresql postgresql-client # Для PostgreSQL # Веб-сервер и PHP apt-get install apache2 php8.2 php8.2-mysqlnd php8.2-pgsql \ php8.2-intl php8.2-mbstring php8.2-fpm-fcgi apache2-mod_fcgid # Perl-модули apt-get install perl-Net-Patricia perl-NetAddr-IP perl-Config-Tiny \ perl-Net-DNS perl-DateTime perl-Net-Ping \ perl-Net-Netmask perl-Text-Iconv perl-Net-SNMP \ perl-Net-Telnet perl-DBI \ perl-Parallel-ForkManager perl-Proc-Daemon \ perl-DateTime-Format-DateParse perl-DateTime-Format-Strptime \ perl-Net-OpenSSH perl-File-Tail perl-Tie-File \ perl-Crypt-Rijndael perl-Crypt-CBC perl-CryptX perl-Crypt-DES \ perl-File-Path-Tiny perl-Expect perl-Proc-ProcessTable \ perl-Text-CSV perl-Log-Log4perl \ perl-DBD-Pg perl-DBD-mysql # Дополнительные сервисы apt-get install dnsmasq syslog-ng syslog-ng-journal pwgen ``` #### Для Debian / Ubuntu: ```bash # Обновление репозиториев apt-get update # Установка пакетов Eye apt-get install git xxd bsdmainutils pwgen wget fping ieee-data # База данных (выберите одну) apt-get install mariadb-server mariadb-client # Для MySQL # ИЛИ apt-get install postgresql postgresql-client # Для PostgreSQL # Веб-сервер и PHP apt-get install apache2 php php-mysql php-pgsql php-bcmath \ php-intl php-mbstring php-date php-mail php-snmp php-zip \ php-db php-fpm libapache2-mod-fcgid # Perl-модули apt-get install -y perl \ libnet-patricia-perl libnetaddr-ip-perl libconfig-tiny-perl \ libnet-dns-perl libdatetime-perl libnet-netmask-perl \ libtext-iconv-perl libnet-snmp-perl libnet-telnet-perl \ libdbi-perl libparallel-forkmanager-perl libproc-daemon-perl \ libdatetime-format-dateparse-perl libnetwork-ipv4addr-perl \ libnet-openssh-perl libfile-tail-perl libdatetime-format-strptime-perl \ libcrypt-rijndael-perl libcrypt-cbc-perl libcryptx-perl \ libcrypt-des-perl libfile-path-tiny-perl libexpect-perl \ libtext-csv-perl liblog-log4perl-perl \ libdbd-pg-perl libdbd-mysql-perl # Дополнительные сервисы apt-get install dnsmasq syslog-ng ``` --- ### Создание пользователя и группы ```bash # Создание группы groupadd --system eye # Создание пользователя adduser --system --disabled-password --disabled-login \ --ingroup eye --home=/opt/Eye eye # Создание каталога mkdir -p /opt/Eye chown eye:eye /opt/Eye chmod 770 /opt/Eye # Опционально: добавить nagios в группу eye usermod -a -G eye nagios ``` --- ### Загрузка и установка исходного кода ```bash # Клонирование репозитория git clone https://github.com/rajven/Eye # Создание структуры каталогов mkdir -p /opt/Eye/scripts/cfg mkdir -p /opt/Eye/scripts/log mkdir -p /opt/Eye/html/cfg mkdir -p /opt/Eye/html/js mkdir -p /opt/Eye/docs # Установка прав chmod 750 /opt/Eye chmod 770 /opt/Eye/scripts/log chmod 750 /opt/Eye/scripts # Копирование файлов cp -R scripts/ /opt/Eye/ cp -R html/ /opt/Eye/ cp -R docs/ /opt/Eye/ # Установка прав chown -R eye:eye /opt/Eye ``` --- ### Применение патча SNMP SHA512 (опционально) ```bash # Патч для поддержки SNMPv3 SHA512 # Файл: /opt/Eye/docs/patches/sha512.patch # Для ALT Linux: /opt/Eye/docs/patches/sha512.alt.patch # Можете применить патч или просто заменить модуль cp /opt/Eye/docs/patches/USM.pm /usr/share/perl5/Net/SNMP/Security/USM.pm ``` --- ### Загрузка дополнительных JavaScript-библиотек ```bash # Создание каталогов mkdir -p /opt/Eye/html/js/jq mkdir -p /opt/Eye/html/js/select2 mkdir -p /opt/Eye/html/js/jstree # Загрузка jQuery wget https://code.jquery.com/jquery-3.7.0.min.js \ -O /opt/Eye/html/js/jq/jquery.min.js # Загрузка Select2 wget https://github.com/select2/select2/archive/4.0.12.tar.gz -O 4.0.12.tar.gz tar -xzf 4.0.12.tar.gz -C /opt/Eye/html/js/select2/ \ --strip-components=2 select2-4.0.12/dist rm -f 4.0.12.tar.gz # Загрузка jsTree wget https://github.com/vakata/jstree/archive/3.3.12.tar.gz -O jstree.tar.gz tar -xzf jstree.tar.gz -C /opt/Eye/html/js/ mv /opt/Eye/html/js/jstree-3.3.12/dist/* /opt/Eye/html/js/jstree rm -rf /opt/Eye/html/js/jstree-3.3.12 rm -f jstree.tar.gz ``` --- ### Настройка базы данных #### MySQL / MariaDB: ```bash systemctl enable mariadb systemctl start mariadb mysql_secure_installation mysql -u root -p < /opt/Eye/docs/databases/mysql/en/create_db.sql mysql -u root -p stat < /opt/Eye/docs/databases/mysql/en/data.sql mysql -u root -p < /etc/dnsmasq.conf cp /opt/Eye/docs/systemd/dhcp-log.service /etc/systemd/system/ cp /opt/Eye/docs/systemd/dhcp-log-truncate.service /etc/systemd/system/ systemctl enable dnsmasq dhcp-log dhcp-log-truncate systemctl start dnsmasq ``` #### Syslog-ng: ```bash cp /etc/syslog-ng/syslog-ng.conf /etc/syslog-ng/syslog-ng.conf.backup mkdir -p /etc/syslog-ng/conf.d cp /opt/Eye/docs/syslog-ng/eye.conf /etc/syslog-ng/conf.d/ cp /opt/Eye/docs/systemd/syslog-stat.service /etc/systemd/system/ systemctl enable syslog-ng syslog-stat systemctl restart syslog-ng systemctl start syslog-stat ``` #### NetFlow: ```bash cp /opt/Eye/docs/systemd/eye-statd.service /etc/systemd/system/ systemctl enable eye-statd ``` #### Stat-sync: ```bash cp /opt/Eye/docs/systemd/stat-sync.service /etc/systemd/system/ systemctl enable stat-sync.service ``` --- ### Импорт базы MAC-адресов ```bash cd /opt/Eye/scripts/utils/mac-oids/ bash download-macs.sh perl update-mac-vendors.pl ``` --- ## 🌐 Доступ к веб-интерфейсу * URL: `http://your-server-ip/` * Админ-панель: `http://your-server-ip/admin/` * Логин: `admin` * Пароль: `admin` --- ## 🔐 Рекомендации по безопасности * **НЕМЕДЛЕННО смените пароль администратора** * Сгенерируйте новый API-ключ * Ограничьте доступ с помощью firewall * Используйте HTTPS * Делайте регулярные обновления и резервные копии --- ## 📊 Интеграция с MikroTik ### Firewall: Правила с fasttrack надо вылкючить!!! ```routeros /ip firewall filter set disabled=yes [ find action =fasttrack-connection ] set disabled=yes [ find chain =forward and comment~"established" ] add action=drop chain=forward comment="deny unknown ips" out-interface-list=WAN src-address-list=!group_all add action=jump chain=forward comment="users set" in-interface-list=WAN jump-target=Users add action=jump chain=forward jump-target=Users out-interface-list=WAN add action=accept chain=forward comment=related,established connection-state=established,related add action=reject chain=forward comment="deny default wan" in-interface-list=WAN reject-with=icmp-network-unreachable add action=drop chain=forward out-interface-list=WAN ``` ### Работа с dhcp-сервером На события от dhcp-сервера в микротике надо повесить скрипт, который будут сообщать в Eye о аренде/освобождении ip-адресов. Поддерживаются GET и POST запросы. Правильнее всего будет исопльзовать HTTPS & POST. ### DHCP-скрипт (RouterOS 6): ```routeros /tool fetch mode=http keep-result=no url="http:///api.php?login=&api_key=&send=dhcp&mac=\$leaseActMAC&ip=\$leaseActIP&action=\$leaseBound&hostname=\$lease-hostname" ``` С https: ```routeros /tool fetch mode=https keep-result=no url="https:///api.php?login=&api_key=&send=dhcp&mac=\$leaseActMAC&ip=\$leaseActIP&action=\$leaseBound&hostname=\$lease-hostname" ``` ### DHCP-скрипт (RouterOS 7): ```routeros /tool fetch url="http:///api.php" mode=http http-method=post \ http-data="login=&api_key=&send=dhcp&mac=$leaseActMAC&ip=$leaseActIP&action=$leaseBound&hostname=$"lease-hostname"" \ keep-result=no ``` С https: ```routeros /tool fetch url="https:///api.php" mode=https http-method=post \ http-data="login=&api_key=&send=dhcp&mac=$leaseActMAC&ip=$leaseActIP&action=$leaseBound&hostname=$"lease-hostname"" \ keep-result=no ``` Имя dhcp-сервера должно быть образовано от имени интерфейса, на котором он работает. Т.е. при работе на интерфейсе bridge => dhcp-bridge ### NetFlow: ```routeros # RouterOS 6 /ip traffic-flow set enabled=yes # RouterOS 7 /ip traffic-flow set enabled=yes interfaces=WAN /ip traffic-flow target add dst-address= port=2055 ``` ## Важно! Не меняйте системные скрипты! Если надо что-то изменить, создайте копию скрипта и работайте с ней. Иначе при обновлении ваши изменения будут затёрты. ---