На сервер, распаковываем и открываем файл конфигурации:
wget https://github.com/NagiosEnterprises/nagiosvshell/archive/2.x.zip
unzip 2.x.zip
cd nagiosvshell-2.x/
nano config.php
Строки, на которые следует обратить внимание, выделены жирным шрифтом. Значения по-умолчанию указаны для nagios3, установленного через пакетный менеджер. У меня уже был nagios 4, установленный внучную. Необходимые поправки для путей установки, расположения конфигурационного файла сайта и файла пользователей стандартного Nagios GUI дописываем в скобки ” в разделе $custom = array(
<?php
Custom values
#
Add any custom values here. If a value is empty, the default value defined
below is used.
$custom = array(
'targetdir' => '',
'apacheconfdir' => '',
'apacheconffile' => '',
'apacheuser' => '',
'apachegroup' => '',
'etc_conf' => '',
'htpasswd_file' => '',
# See config/vshell.conf for explanations of each value
'vshell_baseurl' => '',
'TTL' => '',
'update_interval' => '',
'nagios_coreurl' => '',
'lang' => '',
);
Default values
#
Do not edit these defaults
$defaults = array();
$defaults['debian'] = array(
'targetdir' => '/usr/local/vshell2',
'apacheconfdir' => '/etc/apache2/sites-enabled',
'apacheconffile' => 'vshell2.conf',
'apacheuser' => 'www-data',
'apachegroup' => 'www-data',
'etc_conf' => 'vshell2.conf',
'htpasswd_file' => '/etc/nagios3/htpasswd.users',
'vshell_baseurl' => 'vshell2',
'nagios_coreurl' => 'nagios3',
'TTL' => '90',
'update_interval' => '90',
'lang' => 'en_GB',
);
$defaults['redhat'] = array(
'targetdir' => '/usr/local/vshell2',
'apacheconfdir' => '/etc/httpd/conf.d',
'apacheconffile' => 'vshell2.conf',
'apacheuser' => 'apache',
'apachegroup' => 'apache',
'etc_conf' => 'vshell2.conf',
'htpasswd_file' => '/etc/nagios/passwd',
'vshell_baseurl' => 'vshell2',
'nagios_coreurl' => 'nagios',
'TTL' => '90',
'update_interval' => '90',
'lang' => 'en_GB',
);
Теперь даём права на запуск и запускаем install.php:
chmod +x install.php ./install.php
Скрипт сделает всё сам. И если все данные были указаны правильно в конфиг-файле, то мы сможем увидить новую оболочку по адресу http://your_server_ip/vshell2
Если видите ошибку 500 или ещё что – лопатим логи apache (/var/log/apache2/error.log) на предмет того что пошло не так.
Быстрая заметка. Иногда случается что дисковая I/O подсистема чем-то сильно нагружена и не понятно, каким именно процессом. В определении виновника может помочь следующая команда:
top -b -n 1 | awk '{if (NR <=7) print; else if ($8 == "D") {print; count++} } END {print "Total status D (I/O wait probably): "count}' > topsave.txt
Все команда нужно указывать по спецификации FTP протокола, например такой.
Осовные команды: RETR – получить файл с FTP в переменную или по хендлеру записать в локальный файл; LIST – показать список файлов/директорий в указанной или текущей по-умолчанию; NLST – то же, что и LIST, но возвращает только имена файлов/директорий; STOR – загрузить с презаписью файл на FTP-сервер; и другие
Для работы FTP_TLS нужен пайтон 2.7+, если у вас только 2.6, то придётся сделать одно из следующего: 1. Доустановить пайтон 2.7, например как описано здесь для Oracle Linux 6:
Редактируем /etc/yum.repos.d/public-yum-ol6.repo и убеждаемся, что enabled=1 в следующем параграфе:
[ol6_software_collections]
name=Software Collection Library release 3.0 packages for Oracle Linux 6 (x86_64)
baseurl=http://yum.oracle.com/repo/OracleLinux/OL6/SoftwareCollections/x86_64/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=1
Если при запуске скрипта по cron (а скорее всего так и будет) выбивает ошибку вида:
error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory
То необходимо добавить путь к библиотеке в /etc/ld.so.conf и запустить команду ldconfig, которая сама всё пропишет.
или
2. Cкачать дистрибутив пайтона 2.7 отсюда и вытащить фал ftplib.py и положить его в папку со скриптом (если скрипт запускается по cron, то это может не сработать):
wget http://www.python.org/ftp/python/2.7.1/Python-2.7.1.tgz
tar -zxvf Python-2.7.1.tgz Python-2.7.1/Lib/ftplib.py
cp Python-2.7.1/Lib/ftplib.py /path_to_script/
или
3. Заходить на FTPS вызывая bash команды например lftp с помощью модуля subprocess.
Если вы несколько раз неправильно пытались подключиться к серверу Linux, где настроен fail2ban, то вы будете занесены в черный список и не сможете подключиться заданное на сервере количество времени или вообще навсегда.
Чтобы разбанить IP адрес, нужно на сервере выполнить следующие команды.
Вначале посмотреть цепочки правил (jail):
fail2ban-client status
Результат будет что-то вроде такого:
Status |- Number of jail: 3 `- Jail list: apache, ssh, apache-modsecurity
Затем в разбаниваем IP в нужной “клетке” (цепочке правил):
fail2ban-client set JAILNAMEHERE unbanip IPADDRESSHERE
В старых версиях Fail2ban может не существовать команды unbanip, тогда вы будете получать ошибку вида:
Invalid command (no set action or not yet implemented)
Здесь придётся перезагрузить “клетку”, что уберёт из неё все баны:
fail2ban-client reload JAILNAMEHERE
Также можно добавить IP в список исключений чтобы он не блокировался, если вы что-то тестируете:
fail2ban-client set sasl addignoreip 198.32.110.100
Посмотреть, какие IP забанены в “клетке” можно с помощью команды:
Итогда нужнообновить пакеты, не трогая при этом например ядро или еще миллион охожих ситуаций, где надо исключить пакет из обработки.
Есть два способа.
1) Единоразово – когда запускаете yum, использовать опцию –exclude: yum –exclude=package* update yum –exclude=php* update yum –exclude=*rrd* update yum –exclude=kernel*,*snmp,perl* update
2) Добавить необходимые пакеты в исключения в конфигурационном файле /etc/yum.conf : exclude=php* kernel*
Выглядеть это будет примерно так: [main] cachedir=/var/cache/yum keepcache=0 debuglevel=2 logfile=/var/log/yum.log distroverpkg=redhat-release tolerant=1 exactarch=1 obsoletes=1 gpgcheck=1 plugins=1 exclude=php* kernel*
Теперь эти пакеты исключатся из обработки любыми командами yum.