Установка Opennms на Fedora 24 server

Коротко, без коментов.

http://docs.opennms.org/opennms/index.html
rpm -Uvh http://yum.opennms.org/repofiles/opennms-repo-stable-rhel7.noarch.rpm
rpm –import http://yum.opennms.org/OPENNMS-GPG-KEY
yum -y install opennms
dnf install java-1.8.0-openjdk-devel
postgresql-setup initdb
systemctl enable postgresql
systemctl start postgresql
su – postgres
createuser -P opennms
createdb -O opennms opennms
exit
su – postgres
psql -c “ALTER USER postgres WITH PASSWORD ‘YOUR-POSTGRES-PASSWORD’;”
exit
nano /var/lib/pgsql/data/pg_hba.conf
local   all             all                                    md5
host    all             all             127.0.0.1/32            md5
host    all             all             ::1/128                 md5
systemctl reload postgresql
nano /opt/opennms/etc/opennms-datasources.xml
<jdbc-data-source name=”opennms”
database-name=”opennms”
class-name=”org.postgresql.Driver”
url=”jdbc:postgresql://localhost:5432/opennms”
user-name=”** YOUR-OPENNMS-USERNAME **”
password=”** YOUR-OPENNMS-PASSWORD **” />

<jdbc-data-source name=”opennms-admin”
database-name=”template1″
class-name=”org.postgresql.Driver”
url=”jdbc:postgresql://localhost:5432/template1″
user-name=”postgres”
password=”** YOUR-POSTGRES-PASSWORD **” />
/opt/opennms/bin/runjava -s
/opt/opennms/bin/install -dis
systemctl enable opennms
systemctl start opennms
firewall-cmd –add-port=8980/tcp –permanent
firewall-cmd –reload

Скрипт проверки скорости по тарифу/speed check

Всё просто – проверяю работу шейпера, каждый час в 5 минут.

5 */1 * * * /home/manager/speed_check

cat speed_check
#!/bin/bash
alert=`iperf3 -c iperf.test.ru -P 1 | awk ‘NR == 17{print$7}’` #17 строчка 7 колонка, количество потоков – 1
norma=200 #Тариф на сервера 200 мбит/с
#echo $alert
#Результат измерения может быть дробным-баш не работает с дробными числами, поэтому такая конструкция:
check=`echo “$alert $norma” | awk ‘{if ($1 > $2) print 1; else print 0}’`
if [ “$check” -eq 1 ]
then
/usr/bin/sendemail -o message-charset=utf-8 -f zabbix_mon@test.ru -t 123@test.ru -m !!! Внимание !!! Проверка показала, что на 100 мб тарифе скорость больше 200 мбитс. Необходимо проверить логи шейпера Сообщение было создано автоматически, пожалуйста, не отвечайте на него. -u Внимание! Необходимо проверить ограничение скорости! -s mail.test.ru -xp 123 -xu zabbix_mon@test.ru
#echo “$(date +%d-%m-%Y\ %H:%M:%S) (INFO) speed is  ${alert} Mb/s” >> speed.log
fi

exit

Подключение сертификатов в postfix и dovecot

Создать ca_bundle, файлы помещать в него в определённом порядке:

cat COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt>mail.somesite.ru.ca-bundle

Подключть tls в постфиксе:
/etc/postfix/main.cf
smtpd_tls_key_file = /etc/pki/mail/private.decr.key
smtpd_tls_cert_file = /etc/pki/mail/STAR_somesite_ru.crt
smtpd_tls_CAfile = /etc/pki/mail/mail.somesite.ru.ca-bundle
smtp_tls_key_file = /etc/pki/mail/private.key
smtp_tls_cert_file = /etc/pki/mail/STAR_somesite_ru.crt
smtp_tls_CAfile = /etc/pki/mail/mail.somesite.ru.ca-bundle

Подключить ssl в dovecot:
/etc/dovecot/conf.d/10-ssl.conf
ssl_key = </etc/pki/mail/private.key
ssl_cert = </etc/pki/mail/STAR_somesite_ru.crt
ssl_ca = </etc/pki/mail/mail.somesite.ru.ca-bundle

Подключить серт в раундкуб
cat /etc/httpd/conf.d/ssl.conf
SSLCertificateFile /etc/pki/mail/STAR_somesite_ru.crt
SSLCertificateKeyFile /etc/pki/mail/private.key
SSLCACertificateFile /etc/pki/mail/mail.somesite.ru.ca-bundle

Посмотреть сертификат:
openssl x509 -in COMODORSADomainValidationSecureServerCA.crt -noout -text
Посмотреть ключ:
openssl rsa -in private.decr.key -noout -text

!!!Ключ private.decr.key должен дать тот, кто генерирует сертификаты

Скрипт проверки DHCP

Раз в 10 минут по крону запускается скрипт:
crontab -e
*/10 * * * * /home/dhcpd_check
cat dhcpd_check
#!/bin/bash
dhcpd_status1=`sudo dhcping -s 10.23.8.20`
dhcpd_status2=`sudo dhcping -s 10.23.8.21`
if [ “$dhcpd_status1” != “Got answer from: 10.23.8.20” ]
then
/usr/bin/sendemail -o message-charset=utf-8 -f zabbix_mon@test.ru -t monitoring@test.ru -m !!! Внимание !!! Проверка показала, что dhcp сервер 10.23.8.20 не ответил на запрос. Попробуйте получить ip-адрес. -u Внимание! Необходимо проверить dhcp сервер 10.23.8.20! -s mail.test.ru -xp 123 -xu zabbix_mon@test.ru
fi

if [ “$dhcpd_status2” != “Got answer from: 10.23.8.21” ]
then
/usr/bin/sendemail -o message-charset=utf-8 -f zabbix_mon@test.ru -t monitoring@test.ru -m !!! Внимание !!! Проверка показала, что dhcp сервер 10.23.8.21 не ответил на запрос. Попробуйте получить ip-адрес. -u Внимание! Необходимо проверить dhcp сервер 10.23.8.21! -s mail.test.ru -xp 123 -xu  zabbix_mon@test.ru
fi

exit

dhcping делает запрос на получение адреса 0.0.0.0 Получив ответ от сервера, что такого адреса нет, он выдает в консоль:
Got answer from: 10.23.8.20

Скрипт проверяет каждый сервер и отправляет пиьсмо по send_mail’у в случае неудачи

flow-tools, как не распарсить вывод.

Понадобилось найти статистику по адресам, статистики в nfsen не было.
В общем получил два таких файла:
[gg@localhost ~]$ ls ft-v05.2014-01-29.123001+0400
ft-v022014-01-29.12232001+0400
[tarasko@localhost ~]$ ls ft-v05.2012-01-29.122020+0400
ft-v05.2014-01-22124000+0400
Эта стата собиралась с помощью flow-tools, и посмотреть её можно тоже с помощью flow-tools
flow-cat – Concatenate flow files, обрабатывает данные в flow формате.
flow-nfilter – фильтрует потоки (flow)
flow-print – печатает в удобоваримом виде.
Фильтры для nfilter можно настроить здесь:
cat /etc/flow-tools/cfg/filter.cfg
filter-primitive gray-prefix //название первого условия
type ip-address-prefix //фильтруем по префиксу
permit 10.20.0.0/15 //определяем сам префикс
default deny //остальное запретить

filter-primitive mail //название второго условия
type ip-address //тип – ip-адрес
permit 94.100.180.150 //применяем к адресу
permit 217.69.139.150 //и к этому

filter-definition icf //название фильтра
match ip-source-address gray-prefix //фильтруем по источнику
match ip-destination-address mail //фильтруем по назначению.

Результирующая строка должна выглядеть следующим образом:

flow-cat /home/gg/ft-v05.2012-01-29.124000+0200 |flow-nfilter -F icf | flow-print -f5 //”-F icf – имя фильтра” “-f5 – время начала и конца flow”

Правда у меня такая конструкция не заработала, возможно я неправильно описал фильтр. Буду разбираться дальше.

SSH авторизация по ключу

На клиентской машине:

$ ssh-keygen –t rsa

Везде нажимаем Enter.

Теперь копируем на сервер открытый ключ в директорию, указанную в файле /etc/ssh/sshd_config (на сервере), в параметре AuthorizedKeysFile

С клиента нужно скопировать сгенерированные ключи на сервер, воспользовавшись утилитой scp:

$ scp  ~/.ssh/id_rsa.pub test@test:.ssh/authorized_keys