Установка сервера NIS в Debian Linux и настройка клиентов

NIS очень прикольная штука. Она позволяет авторизоваться на всех машинах, где есть её клиент с помощью учетных данных локальных пользователей на сервере. Ну т. е. если мы поменяем пароль на свою учетку, то все клиенты автоматом подтянут изменения. Да и просто удобно.

Итак, установим нужные пакеты и их зависимости командой:

aptitude -y install nis portmap

Когда спросит, введем имя нашего домена – например, example.com
Автостарт службы сфейлиться, но не пугайтесь – ему просто не хватает некоторых настроек.

Займемся конфигурацией.

1) nano /etc/default/nis

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

NISSERVER=master

2) nano /etc/ypserv.securenets

Здесь закомментируем строчку, разрешающую доступ со всех IP:

# This line gives access to everybody. PLEASE ADJUST!
# make it comment
# 0.0.0.0 0.0.0.0

И пропишем адреса наших подсетей, например:
255.255.255.0                    10.86.35.0

3) nano /var/yp/Makefile

В 119-й линии добавим shadow:

ALL = passwd shadow group hosts rpc services netid protocols netgrp

4) nano /etc/hosts 

Добавим адрес нашего сервера NIS:
127.0.0.1 localhost nis.example.com nis
#Добавим также сетевой адрес сервера
10.86.35.10 nis.example.com nis

5) Обновим базу данных NIS сервера командой (введя на запрос имя нашего nis сервера как мы его прописали чуть выше – nis):

/usr/lib/yp/ypinit -m

Вывод команды:
At this point, we have to construct a list of the hosts which will run NIS
servers. master is in the list of NIS server hosts. Please continue to add
the names for the other hosts, one per line. When you are done with the
list, type a <control D>
. next host to add: nis
next host to add:
# push Ctrl+D
The current list of NIS servers looks like this:

localhost
nis

Is this correct? [y/n: y]
y

We need a few minutes to build the databases…
Building /var/yp/server.world/ypservers…
gethostbyname(): Success
Running /var/yp/Makefile…
make[1]: Entering directory `/var/yp/server.world’
Updating passwd.byname…
failed to send ‘clear’ to local ypserv: RPC: Program not registeredUpdating passwd.byuid…
failed to send ‘clear’ to local ypserv: RPC: Program not registeredUpdating group.byname…
failed to send ‘clear’ to local ypserv: RPC: Program not registeredUpdating group.bygid…
failed to send ‘clear’ to local ypserv: RPC: Program not registeredUpdating shadow.byname…
failed to send ‘clear’ to local ypserv: RPC: Program not registeredUpdating hosts.byname…
failed to send ‘clear’ to local ypserv: RPC: Program not registeredUpdating hosts.byaddr…
failed to send ‘clear’ to local ypserv: RPC: Program not registeredUpdating rpc.byname…
failed to send ‘clear’ to local ypserv: RPC: Program not registeredUpdating rpc.bynumber…
failed to send ‘clear’ to local ypserv: RPC: Program not registeredUpdating services.byname…
failed to send ‘clear’ to local ypserv: RPC: Program not registeredUpdating services.byservicename…
failed to send ‘clear’ to local ypserv: RPC: Program not registeredUpdating netid.byname…
failed to send ‘clear’ to local ypserv: RPC: Program not registeredUpdating protocols.bynumber…
failed to send ‘clear’ to local ypserv: RPC: Program not registeredUpdating protocols.byname…
failed to send ‘clear’ to local ypserv: RPC: Program not registeredUpdating netgroup…
failed to send ‘clear’ to local ypserv: RPC: Program not registeredUpdating netgroup.byhost…
failed to send ‘clear’ to local ypserv: RPC: Program not registeredUpdating netgroup.byuser…
failed to send ‘clear’ to local ypserv: RPC: Program not registeredmake[1]: Leaving directory `/var/yp/server.world’

master has been set up as a NIS master server.

Now you can run ypinit -s master on all slave server.

6) Запускаем демона NIS

/etc/init.d/nis start
Starting NIS services: ypserv yppasswdd ypxfrd ypbind.

7) Необходимо проапдейтить базу NIS:

cd /var/yp
make

Настройка клиентов NIS:

1) Установка:

aptitude -y install nis portmap
2) Конфигурация NIS Client – подредактируем несколько конфигов
nano /etc/yp.conf

# add at the last: (domain name) (server) (NIS server’s hostname)
domain example.com server nis.example.com

nano /etc/nsswitch.conf

passwd:      compat nis

group:          compat nis
shadow:         compat nis

hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4 nis
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

nano /etc/pam.d/common-session

Добавляем в конец для автоматического создания домашних директорий:

session optional pam_mkhomedir.so skel=/etc/skel umask=077

 /etc/init.d/nis restart

Всё. Можем заходить с помощью логина из NIS сервера.
Несколько полезных команд:

ypwhich – показывает адрес NIS-сервера

ypcat passwd  – показывает пользователей NIS-сервера
ypcat hosts – показывает список хостов
http://geckich.blogspot.com/

Ошибка в 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/

Чтение в iPad или OPDS каталоги и программа Mega Reader

Есть такая штука OPDS. По своей сути это библиотечный протокол когда устройство получает не HTML в браузере, а каталог книг разбитый по неким критериям. Изначально предназначен для распространения книг на устройства.

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

Есть много софтин для ыПада, предназначенных для чтения книг, в т. ч. и с использованием этого протокола, но лично мне первой попалась прожка с очень скромным названием Mega Reader 🙂 ну и както желания искать что ли бо подобное не возникло – прожка меня во всём устраивает. Вот чуть ниже несколько скринов:

Использование её интуитивно понятно.

Напоследок – самое важное 🙂 Т. е. библиотеки с халявной литературой. В силу того, что литература в .fb2, в основном тут проза. За тех. лит. надо идти на торренты или типа того и качать пдф-ки.

  • http://www.zone4iphone.ru/catalog.php – этот ресурс мне показался чуть получше: грузится быстрее, выбор больше… но нет описаний к книгам(
  • http://flibusta.net/opds – тоже хорошая библиотека. Может чуть подумать (а может это мой инет выделывался), но зато есть описания книг.
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/

Папки или что где находится в iPad 2

В этой напоминалке я напишу о том, в каких папках что искать в iPad 2. Файловая структура в iPad довольно таки замороченная и постоянно помнить что где валяется довольно проблематично.

Для начала надо сказать, что для просмотра файловой системы в принципе нужен Jailbreak (прочитать о нём можно в моей статье тут) и установленный из Cydia файловый менеджер iFile.

Для этого вначале добавьте в Cydia репозиторий Xsellize: http://cydia.xsellize.com Затем в поиске найдите iFile (не iFiles!!!!) из этого репозитория (а не отмеченный синим цветом) и установите.

Теперь перечислю те полезные папки, которые я обнаружил:

  • Фотографии находятся в подпапках тут: /var/mobile/Media/PhotoStreamsData/ или /var/mobile/Media/DCIM/
  • Фото еще находятся здесь: /var/mobile/Media/PhotoData/Sync/100SYNCD
  • Файлы загрузок Installous находятся тут: /var/mobile/Documents/Installous/Downloads/ сюда полезно кидать загруженные из интернет (торренты, браузер и т п) .ipa файлы, если под рукой нет iTunes.
  • Папка загрузок iCab находится тут: /var/mobile/Applications/<Application_ID>/Documents/ где <Application_ID> = F6E0DC32-A742-4C23-A9AF-67B555D43DF0 у меня. У вас может быть и по-другому – точно не знаю.
  • Файлы с играми для эмуляторов находятся в своих подпапках тут: /var/mobile/Media/ROMs Например: GAMEBOY, GENESIS, GBA, N64, PSX, TURBO
  • /System/Library/LaunchDemons – настройки всех демонов айос, многие из которых можно отключить. Но вслепую лучше не делать этого. Скоро напишу статью по этой теме.
  • /var/stash/Applications – сюда устанавливаются все программы из Cydia, имеющие GUI, в т ч и она сама, также настройки этих программ.

 По ходу обнаружения буду обновлять этот пост.

http://geckich.blogspot.com/

Jailbreak для iPad 2 (iOS 5.1.x)

Чтобы ставить бесплатно платные программы и играться со своим девайсом необходимо его малость “препарировать”.

Делается это так (из-под винды, а точнее, я делал в Win 7 x64, но думаю что и в остальных всё то же самое):

1. Установите самую последнюю версию iOS – на момент написания статьи это 5.1.1. Настройки -> Основные -> Обновление ПО.

2. Подключите своё устройство к компьютеру и сделайте резервную копию через iTunes (если новый, то можно в принципе и не делать, но очень желательно)

3. Пишут, что перед джеилбрейком желательно стереть всё с ыпада и если не делать этого, то джеил будет очень долго делаться. Как оно на самом деле – хз, но у меня ыпад был почти нулячий и я сбросил: Настройки –> Основные –> Сброс –> Удалить контент и настройки.

4. Скачиваем саму программулину – Absinthe 2.0.4 (на момент написания это самая свежая версия) по ссылке Absinthe 2.0.4 for Windows ну или откуда-нибудь еще. Затем распаковываем, например, на рабочий стол.


5. Откройте Absinthe 2 и убедитесь, что устройство подключено к компьютеру по USB и заряжено хотя бы на половину.
6. Нажмите “Jailbreak” и дождитесь завершения процесса взлома (это может занять какое-то время)
7. Зайдите в iTunes и восстановитесь из созданной ранее резервной копии

Далее сделаем несколько улучшений:

1. Запускаем Cydia. выбираем User.
2. Открываем «Manage» — «Sources»
3. Жмем на «Edit» — «Add» и вводим адрес дополнительного репозитория: http://cydia.hackulo.us
4. Откроется окошко, где нам скажут, что репозитрий хакерский. Не ссым и жмём на «Add Anyway».
5. Игнорируем все ошибки, если возникнут.

6. Заходим в раздел «Sections» — «Hackulo» или в свежих обновлениях (или поиске) находим «AppSync» для Вашей прошивки (5.1 т. е.)

7. Жмём на «install» и «confirm»
8. После установки, обязательно перезагрузить iPad !!!
9. Теперь нужно установить программульку Installous 5. Она нужна для поиска и установки программ .ipa. (как альтернатива – можно на ПК скачивать торренты и ставить через iTunes).

Всё вышеописанное делал на своём ыпадике.

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/