Ошибка в FileZilla Error GnuTLS error "-12" A TLS fatal alert has been received.

Эта ошибка возникает, если пытаться зайти колиентом версии 3.5.3 на FTP сервер, поднятый на vsftpd и с использованием FTPES (FTP over explicit TLS/SSL)

Вводим все данные правильно в Site Manager и… получаем ошибку

Error GnuTLS error “-12” A TLS fatal alert has been received.

WTF???

Дело в том, что в FileZilla версией от 3.5.3 не поддерживаются определенные заголовки SSL и TLS. Я так особо не вникал, какие – там можно себе мозг сломать 🙂

В общем, решение заключается в добавлении в конфиг ftp-сервера /etc/vsftpd.conf строчки:

ssl_ciphers=HIGH

Перезапускаем ftp демона и пробуем.
http://geckich.blogspot.com/

Удаление скрытых драйверов в Windows 2003

Недавно задолбал меня на сервере драйвер, из-за которого периодически сыпались ошибки в ивентлог… Нашел способ его (и не только его) удалить.

Для того, чтобы найти и удалить ненужные драйвера:

1. Нажмите [Windows]+[Break],чтобы вызвать диалоговое окно System Properties (Свойства системы).

2. Перейдите на вкладку Advanced (Дополнительно) и нажмите на кнопку Environment Variables (Переменные среды).

3. Нажмите на кнопку New (Создать) на панели System Variables (Системные переменные).
В диалоговом окне New System Variable (Новая системная переменная) в поле Variable Name (Имя переменной) введите devmgr_show_nonpresent_devices, а в поле Variable Value (Значение переменной) введите 1.

4. Нажмите OK, чтобы вернуться в диалоговое окно System Properties (Свойства системы) и затем ещё раз нажмите OK.

5. Перейдите на вкладку Hardware (Оборудование) и нажмите на кнопку Device Manager (Диспетчер устройств).

6. В меню Диспетчера устройств выберите View | Show Hidden Devices (Вид | Показать скрытые устройства).

7. Раскройте все списки дерева устройств и ищите затемнённые иконки, обозначающие неиспользуемые драйвера.

8. Чтобы удалить неиспользуемый драйвер, щелкните правой кнопкой на соответствующем ярлыке и выберите команду Uninstall (Удалить).

Тема работает на Windows XP и Windows Server 2003 R2. На остальных версиях не проверял, но мне кажется, что скорее всего тоже работать будет.

http://geckich.blogspot.com/

Проверка заданий планировщика Windows Scheduler в Nagios

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

Такую задачу можно решить многими способами. Здесь опишу свой вариант.

Использовать я буду NRPE для Windows, а точнее его реализацию в NSC++ клиенте (0.3.х версия). NRPE позволяет выполнять на стороне клиента любые скрипты и получать от них результаты – главное всё правильно настроить 😉 Как установить и настроить NRPE на сервере и клиенте я писал в этой статье. Для скриптов будем использовать Python 3. Почему? Во 1-х я знаю этот язык 🙂 а во 2-х, я долго мучался с PowerShell, в котором очень криво работает парсинг CSV и мне так и не удалось заставить его нормально вытягивать данные. В итоге, я положий большой и толстый на мракобесную приблуду и заюзал православный питон, в котором тоже была пара граблей, но гугл помог их решить 🙂

Итак. Для начала настроим клиента.

Идем на http://python.org/download/ и скачиваем 3ю версию питона для Windows, устанавливаем (Далее, Далее… Готово 🙂 ).

Открываем конфиг NSC++ и в секцию [External Scripts] прописываем:

check_scheduler=C:Python32python.exe “C:Program FilesNSClient++scriptsscript.py”

Затем собсно и пишем этот скриптец (создаем текстовый файлик, переименовываем и ПКМ / Edit with IDLE):

import csvimport sys
import os
##Deleting old log
os.system('del "log.csv"')
##Performing schtasks command
os.system('schtasks /query /fo CSV /v >> "log.csv"')
##Clean bad characters inserted by schtasks
fi = open('log.csv', 'rb')
data = fi.read()
fi.close()
fo = open('log.csv1', 'wb')
fo.write(data.replace(b'x00', b''))
fo.close()
##Opening cleaned CSV
ifile = open('log.csv1', "r")
reader = csv.reader(ifile, delimiter=',', quotechar='"', quoting=csv.QUOTE_ALL)
##Extracting needed data
for row in reader:
if (row[1] == "rdc_106") or (row[1] == "rdc_108") or (row[1] == "rdc_115") or (row[1] == "rdc_116"):
print (row[1]+" : "+row[5])
ifile.close()

Алгоритм работы скрипта такой:

  • удаляем старый лог чтоб не мешал
  • командой schtasks /query /fo CSV /v >> “log.csv” получаем список заданий и в формате CSV записываем в лог-файл
  • очищаем файлик от символов неотображаемых null которые мракософтные команды и Excel зачем-то пихают в файлик CSV,
    а питон ругается на аткие символы
  • а затем извлекаем в командную строку поля TaskName и Last Run Time для нужных нам заданий.

Перезапускаем службу NSClient++. Всё, если вы ничего не напутали с путями, то клиент настроен.
Настроим теперь сервер.

Тут всё даже попроще. Редактируем файл команд /usr/local/nagios/etc/objects/commands.cfg добавив в конец:

define command{
        command_name    check_scheduler
        command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c check_scheduler
        }

Затем пишем скриптец на bash, который будет чекать наши задания и отправлять результаты по почте. Мне не надо было делать постоянный чек, потому я не прописывал сервис для хоста.

#!/bin/bash
#удаляем старый лог чтоб не мешал
rm /home/user/daily_log
#тут пишем комментарии, чеки и всё такое
echo ” `date ` nn Daily report for Super-duper server.nn [Disk space on D:]” >> /home/user/daily_log>
/usr/local/nagios/libexec/check_nt -H 192.168.1.4 -p 12489 -v USEDDISKSPACE -l d -d SHOWALL >> /home/user/daily_log
echo “n [Processes state:]” >> /home/user/daily_log
/usr/local/nagios/libexec/check_nt -H 192.168.1.41 -p 12489 -v PROCSTATE -l someprocess.exe -d SHOWALL >> /home/user/daily_log
/usr/local/nagios/libexec/check_nrpe -H 192.168.1.4 -p 5666 -c check_scheduler >> /home/user/daily_log
cat /home/user/daily_log | mail -s “Report for Super-duper” -c copy_mail@domain.com recipient@domain.com 

chmod +x /home/user/daily_report.sh

И пихаем этот скриптик в планировщик на нужное на время crontab -e (например, в 6-45 по рабочим дням):

45 6 * * 1-5 sh /home/user/daily_report.sh

Усё. Если всё сделано правильно, то пожинаем плоды своего труда.

http://geckich.blogspot.com/

Nagios NRPE контроль размера файла (filesize)

Сразу оговорюсь, что система, в которой я настраивал это хозяйство, ранается на Debian 6, а сам Nagios установлен не из пакетов, а из сорцов как в RedHat – в /usr/local/nagios – так проще и удобней, т. к. почти вся документация написана под такой вариант установки.

Для мониторинга нам понадобится плугин к Nagios – NRPE(Nagios Remote Plugin Executor). Смысл его работы показан на рисунке:

На винде он так же точно работает, только через NSClient++.

Итак, приступим. Процесс настройки и установки хорошо описан в официальной пдф-ке: http://nagios.sourceforge.net/docs/nrpe/NRPE.pdf . Но я опишу свои шаги.

1. Устанавливаем необходимую библиотеку:

apt-get update
apt-get install build-essential libssl-dev xinetd


2. Скачиваем сам плугин и распаковываем. На момент написания статьи последняя версия была 2.13:

wget http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.13.tar.gz
tar -xzvf nrpe-2.13.tar.gz

3. Переходим в директорию с сорцами плугина, конфигурим и устанавливаем:

cd nrpe-2.13/

./configure
make all

make install-plugin
make install-daemon
make install-daemon-config
4. Также можно запускать nrpe с помощью xinetd, как я и сделал:

make install-xinetd
nano /etc/xinetd.d/nrpe

Где прописываем:

# default: on
# description: NRPE (Nagios Remote Plugin Executor)
service nrpe
{
        flags           = REUSE
        socket_type     = stream
        port            = 5666
        wait            = no
        user            = nagios
        group           = nagios
        server          = /usr/local/nagios/bin/nrpe
        server_args     = -c /usr/local/nagios/etc/nrpe.cfg –inetd
        log_on_failure  += USERID
        disable         = no
        only_from       = 127.0.0.1
}

И рестартуем xinetd:

/etc/init.d/xinetdt restart
5. Создаем ссылку чтобы без полного пути выполнять команду:

ln -s /usr/local/nagios/libexec/check_nrpe /usr/bin/check_nrpe

6. Проверяем и перезапускаем Nagios:

check_nrpe
/etc/init.d/nagios restart
7. Конфиг NRPE находится тут: /usr/local/nagios/etc/nrpe.cfg . В нем нужно прописать IP адреса машин, которые мониторятся, например:

allowed_hosts=127.0.0.1,192.168.2.0/24

8. Проверяем работоспособность NRPE (вместо localhost можно указывать адрес машины, которая мониторится, но там должен быть настроен NRPE Listener):
/usr/local/nagios/libexec/check_nrpe -H localhost
Кстати, помним, что NRPE использует порт 5666 (по умолчанию), соответственно, его надо открыть ка кна стороне сервера, так и клиента (!). На сервере в файлике /etc/services должна быть запись: 

nrpe              5666/tcp                         # Nagios Remote Plugin Executor

9. Далее необходимо настроить Windows машину.
Скачиваем под нужную архитектуру отсюда http://nsclient.org/nscp/downloads/ . Обязательно (!!111) версию 0.3.9, а не 0.4.0. На момент написания в статьи версия 0.4 была полный пис оф щит 🙂 – под ней всё описанное ниже не работает.
Устанавливаем клиент, отметив галочки напротив всех плугинов и прописав адрес нашего Nagios сервера.
10. Подредактируем конфиг C:Program FilesNSClient++NSC.ini добавив следующее:
В секции [NRPE]:
allow_arguments=1
allow_nasty_meta_chars=1
В секции: [External Scripts]:

check_filesize=cscript.exe //nologo //T:60 “C:Program FilesNSClient++scriptscheck_filesize.vbs” -p C:WindowsSysWOW64 -f imageres.dll -w 10000 -c 20000


Путь, имя файла и пределы – понятное дело, те, кото
рые нужны Вам.
11. Теперь скачиваем отсюда или отсюда сам скриптец check_filesize.vbs и ложим в папку C:Program FilesNSClient++scripts . Перезапускаем сервис NSClient++ и идем обратно на сервер.
12. Пропишем 2 команды – общая для NRPE и конкретно для нашего файлика. В /usr/local/nagios/etc/objects/commands.cfg :

define command{        command_name    check_nrpe
        command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
        }


define command{        command_name    check_filesize
        command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c check_filesize -a $ARG1$ $ARG2$ $ARG3$ $ARG4$
        }

13. Далее в конфиге для нашей Windows машины прописываем (подставляя свои данные, ясный-красный):

define service{
        use                     generic-service
        host_name               Server Windows 1
        service_description   Check imageres.dll
        check_command           check_nrpe!check_filesize
        notifications_enabled   1
}

Команда указана без параметров, соответственно – будут использоваться те, что прописаны на Win машине в NSC.ini. Если Вам нужно мониторить несколько файлов на одной машине, то придется указывать параметры (я на них забил – и так сложно было разобраться, как всё правильно настроить).


14. Перезагрузим Nagios:
/etc/init.d/nagios reload

Если вы всё правильно сделали, то через несколько минут, когда Nagios одуплится, вы увидите результат.

При написании статьи использовалась идея из http://felipeferreira.net/?p=53 Но сама конфигурация была выработана методом проб и ошибок.
Также можно изменить код скрипта (он на VB), чтобы файлик мониторился в определенных пределах размеров (например, 10Мб < файл < 20 Мб). 
http://geckich.blogspot.com/

Настройка сети в Debian / Ubuntu Linux

Тапками не кидать – заметка чисто для себя. Ну и мож кому пригодится.

Редактируем файлик /etc/network/interfaces в котором прописываем:

allow-hotplug eth0
auto eth0
iface eth0 inet static
   address 192.168.1.5
   netmask 255.255.255.0
   network 192.168.1.0
   broadcast 192.168.1.255
   gateway 192.168.1.1
   dns-nameservers 8.8.8.8

Вместо eth0 и цифирок ставим свои.

Также можно вбомбить в /etc/resolv.conf адреса своих днс серверов и домена:

domain example.com
search example.com
nameserver 109.86.2.2

В файлике /etc/hostname прописываем имя сервера:
name
В принципе, всё.
Если хотим дхсп, то вместо iface eth0 inet static прописываем iface eth0 inet dhcp и всё что ниже не вписываем.
http://geckich.blogspot.com/

Использование утилиты rdesktop в Linux

Утилита элементарна, но часто забываю параметры… вот и решил записать.
Используется для подключения к удаленному рабочему столу RDP Windows. В консоли Linux набираем (изи записываем в скрипт .sh):

rdesktop -k en-us -g 1400×900 -u Administrator -p secret 192.168.1.100

Указываем раскладку клавиатуры, разрешение, пользователя, пароль и адрес сервера, к которому хотим подключиться. Обязательно указывать только адрес.

http://geckich.blogspot.com/

Установка Windows 7 на нетбук

Для этого нам понадобиться 2 вещи – образ самой Windows и программа для записи образа на флеш.

Образ доставайте сами какой вам понравится, а вот программу можно скачать тут: http://www.microsoftstore.com/store/msstore/html/pbPage.Help_Win7_usbdvd_dwnTool

Устанавливаем и запускаем ее, предварительно скопировав всё важное с флешки:

Выбираем ISO образ с виндой.

Выбираем, что мы хотим – USB, конечно.
Выбираем конкретно на какую флеш.

Если попросить отформатировать – нажимаем Yes.

Теперь ждем завершения процесса, затем вставляем флешку в нетбук, выбираем в настройках BIOS загрузку с флешки и устанавливаем Windows как обычно.

http://geckich.blogspot.com/

В DSpace в поиске нет русских букв / крокозябры / иероглифы

Если Вы установили DSpace, прописали как сказано здесь Установка Dspace :

В файле dspace.cfg прописываем:

#Кодировка писем
mail.charset = UTF8

#Локализация
default.locale = ru

#Язык сообщений
default.language = ru_RU

И всё на русском, кроме поиска, т. е. картина примерно такая:

То это проблема с кодировкой в Apache Tomcat и надо залезть в настройки и в файле server.xml прописать следующее:

<!– Define a non-SSL HTTP/1.1 Connector on port 8080 –>
<Connector port=”8080″ maxHttpHeaderSize=”8192″
maxThreads=”150″ minSpareThreads=”25″ maxSpareThreads=”75″
enableLookups=”false” redirectPort=”8443″ acceptCount=”100″
connectionTimeout=”20000″ disableUploadTimeout=”true”
URIEncoding=”UTF-8″
/>

http://geckich.blogspot.com/

Установка Sun Java в Debian 6

Для того, чтобы поставить sun-jdk или sun-jre, а не open-jdk/jre, которые ущербны, необходимо сделать следующее.

1. Добавить в репозиториях раздел non-free путем дописывния в конец строк репозиториев в файлике /etc/apt/sources.list например (у вас прсото могут быть другие репозитории/зеркала):

deb http://mirror.yandex.ru/debian/ squeeze main contrib non-free

2. Теперь обновляем список пакетов и ставим джаву:
apt-get update
apt-get install sun-java6-jdk
Для того, чтобы джава нормлаьно работала в браузерах, необходимо поставить пакет с плугином:
apt-get install sun-java6-plugin
3. Переключиться на новую джаву (если до этого юзалась open java) командой:
update-alternatives –config java
Будет что-то типа:

  Selection    Path                                      Priority   Status
————————————————————
* 0            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      auto mode
  1            /usr/bin/gij-4.4                           1044      manual mode
  2            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      manual mode
  3            /usr/lib/jvm/java-6-sun/jre/bin/java       63        manual mode

Выбираем 3… Усё.
http://geckich.blogspot.com/