Показаны сообщения с ярлыком linux. Показать все сообщения
Показаны сообщения с ярлыком linux. Показать все сообщения

среда, 7 августа 2013 г.

OpenVpn генерация и отзыв сертификата

Система FreeBSD но неважно...

Генерация ключа для Удаленного доступа OpenVPN

 $ cd /usr/local/share/doc/openvpn/easy-rsa/2.0
 #. ./vars
 #./build-key-pkcs12 <Name>
 При генерации многих клиентов можно предварительно заполнить файл vars значениями по умолчанию.
После ответов на все вопросы и заполнения уникальных полей, в подкаталоге keys/server будет лежать комплект файлов <Name>.* Это и есть искомые сертификаты.

Отзыв сертификатов


$ cd /usr/local/etc/openvpn/easy-rsa/2.0
# . ./vars
# ./revoke-full <Name>     # для каждого удаляемого клиента проделываем такую операцию
"Revoking Certificate ... Data Base Updated"
Копируем только что создавшийся crl.pem на место того, который уже есть (путь к нему нужно смотреть в файле openvon.conf, параметр crl-verify). Если такого параметра нет – то добавляем его и указываем местоположение нового файла
crl-verify /usr/local/etc/openvpn/crl.pem
После этого ОБЯЗЯТЕЛЬНО ВЫСТАВЛЯЕМ ПРАВА ДЛЯ ФАЙЛА crl.pem 644, иначе работать не будет. openvpn не сможет прочесть этот файл (у меня openvpn работает от юзера nobody).
Делаем рестарт демона:
#/usr/local/etc/rc.d/openvpn restart
Теперь не смогут подключится те, кого мы удалили из базы.

вторник, 2 июля 2013 г.

Работа с history

Использование номеров

Если вы дадите команду history, вы получите список последних введённых команд с порядковым номером перед каждой из них. Вы можете повторно запустить любую команду из истории при помощи конструкции
где n — номер записи в истории. То есть, например, инструкция
выполнит пятидесятую команду из истории. Также вы можете использовать конструкцию
если вам нужно выполнить n-ю по счёту команду, начиная с конца списка. Например, ваш вывод history выглядит так:
1  sudo su
2  exit
3  sudo apt-get update
тогда команда !1
запустит команду sudo su.

Вызов последней команды

Как часто вы вводите какую-то команду, а затем видите, что вы, намереваясь предварить её sudo, забыли это сделать? У меня такое происходит постоянно. Можно исправить это, вернувшись к последней команде при помощи клавиши «стрелка вверх» или при помощи комбинации Ctrl+p, затем, перейдя в начало строки при помощи клавиши Home или Ctrl+a вписать пропущенное sudo. Есть и более простой способ:
$ sudo !!
Это запустит последнюю команду (!!) при помощи sudo. Неплохо?
Вы, вероятно, знаете конструкцию !command, которая запустит последнюю команду из истории, которая начинается с command. Таким образом, если вы недавно запускали очень длинную команду и помните с чего она начиналась, такой способ запуска из истории может вам пригодиться. А знаете ли вы, что Bash  в этом случае ищет не команду, а ищет подстроку? То есть, вам не нужно после восклицательного знака вписывать всю команду целиком, достаточно лишь первых символов. Допустим, вы запускали что-то вроде:
$ git commit -a -m "Various and sundry notes"
Многие пользователи введут
$ !git
чтобы повторить команду, однако зачатую вполне достаточно выполнить
конечно же, при условии, что после искомой команды вы больше не выполняли команд, начинающихся с «g».
Если вам вдруг понадобится выполнить поиск не сначала строки, а в любой её части, воспользуйтесь конструкцией «!?string?». Например:
$ !?commit?

Вызов последнего параметра команды

Используя комбинацию «Esc+.» (Escape с точкой), вы можете вызывать из истории последнее слово, переданное команде в качестве аргумента. Например, вы запускали:
$ cp filename1 filename2
Теперь, если вы нажмёте «Esc+.», то вы получите «filename2». Попробуйте самостоятельно поиграть с этой функцией — очень полезная штука!
А что, если вам нужно не последнее слово, а скажем, второе? Или вообще все? Например, у вас в истории есть команда:
$ ls file1.txt file2.txt file3.txt file4.txt
и вам понадобилось вытащить два слова из середины? Легко!
$ ls !:2-3
Если же вам вдруг понадобились вообще все аргументы, переданные команде, вы можете воспользоваться такой конструкцией:
$ ls !:*

Поиск

Ещё одна полезная функция — это поиск при помощи «Ctrl+r». Нажмите «Ctrl+r» и в появившемся приглашении начните вводить часть какой-нибудь ранее ведённой команды. По мере ввода символов Bash будет пытаться найти в истории последнюю команду, содержащую указанные вами символы. После того, как найдёте, можете начать «Ctrl+r» ещё раз и Bash выведет более раннюю команду, если таковая имеется. После того, как вы отыщете нужную команду, просто нажмите «Enter» и она появится в вашей командной строке.
Если вам необходимо отредактировать команду, прежде чем запускать, воспользуйтесь традиционными «стрелкой влево» и «стрелкой вправо», чтобы переместить курсор в нужное место команды для исправления.

Безопасность

История команд очень полезная штука, однако иногда бывают ситуации, когда нежелательно, чтобы она сохранялась. Например, вы используете для работы разделяемую между многими пользователями систему и не хотите, чтобы системные администраторы системы выдели какие команды вы вводили. Даже если вы пользуетесь личным компьютером, всегда есть шанс, что он будет взломан и вам хотелось бы не хранить в истории действительно важные данные. В конце-концов вы можете захотеть не захламлять историю какими-то командами, поскольку в их хранении просто нет смысла. Например, вы можете часто пользоваться ls, однако зачем хранить её в истории, вместо того, чтобы хранить в ней только длинные и действительно полезные с точки зрения хранения команды?
Давайте посмотрим, каким способом можно управлять хранением команд в истории.
Первый способ — это определить в .bashrc переменную окружения со следующим значением:
HISTCONTROL=ignorespace:ignoredups
Опция ignorespace заставляет Bash игнорировать команды, начинающиеся с пробела. Если вам нужно, чтобы Bash не сохранил в истории команду, содержащую секретную информацию — просто предварите её пробелом.
Опция ingoredups исключает хранение в истории дубликатов команд, что часто помогает значительно разгрузить историю команд.
Вообще, некоторые дистрибутивы «из коробки» имеют эти опции установленными. Если это не ваш случай — просто добавьте строку в ваш ~/.bashrc.
Вы также можете заставить Bash игнорировать некоторые команды. Допустим, вы не хотите хранить в истории команды, содержащие имя какого-нибудь сервера. Просто определите значение переменной окружения HISTIGNORE и можете чувствовать себя спокойно:
HISTIGNORE="*myserver*"
Да, по поводу «спокойствия». На разделяемых системах некоторые пользователи могут видеть команды, запущенные вами при помощи утилит top и ps. Поэтому, если вы не уверены на 100% в надёжности системы, с которой работаете — не стоит запускать там какие бы то ни было команды, содержащие секретные данные.

воскресенье, 17 февраля 2013 г.

Консольные утилиты мониторинга для Linux

Перепост отличной статьи с сайта: Korodus


На данный пост меня вдохновила статья на хабре про утилиты мониторинга для Linux. Оригинал статьи находится здесь.
1. vmstat (virtual memory statistics) — выдает некоторую статистику по использованию процессов и памяти.
vmstat [-V] [-n] [delay [count]]
2. top - консольная команда, которая выводит список работающих в системе процессов и информации о них.
top -hv | -bcisSH -d delay -n iterations [-u user | -U user] -p pid [,pid ...]
Программа с частотой обновления в 2с показывает текущую активность процессов в виде таблицы. Стандартные колонки:
  • PID — идентификатор процесса
  • USERNAME — пользователь, от которого запущен процесс
  • THR — количество потоков, запущенных процессом
  • PRI — текущий приоритет процесса
  • NICE — приоритет, выставленный командой nice. От −20 (наивысший) до 19.
  • SIZE — размер процесса (данные, стек и т. д.) в килобайтах
  • RES — текущее использование оперативной памяти
  • STATE — текущее состояние («START», «RUN» (только в этом состоянии показывает текущую нагрузку программы на процессор), «SLEEP», «STOP», «ZOMB», «WAIT» или «LOCK»)
  • C — номер процессора, на котором идет выполнение (доступен только на SMP системах)
  • TIME — время использования процессора в секундах
  • CPU — процент доступного времени процессора, которое использовала запущенная программа
  • WCPU — усредненное значение CPU
  • COMMAND — название команды, под которой работает процесс.
Чтобы выйти из программы top, нужно нажать клавишу [q].
Полезные интерактивные команды, которые можно использовать в top:
  • [Пробел] Немедленно обновить содержимое экрана.
  • [h] Вывести справку о программе.
  • [k] Уничтожить процесс. Программа запрашивает у вас код процесса и сигнал, который будет ему послан.
  • [n] Изменить число отображаемых процессов. Вам предлагается ввести число.
  • [u] Сортировать по имени пользователя.
  • [M] Сортировать по объёму используемой памяти.
  • [P] Сортировать по загрузке процессора.
Подробнее об утилите top на страничке Wiki http://ru.wikipedia.org/wiki/Top
3. atop — продвинутый интерактивный полноэкранный монитор производительности, написанный для Linux. Является аналогом top, но в отличие от него выводит только новые изменения об активных системных процессах. Позволяет контролировать загрузку ЦПУ, ОЗУ, HDD, компьютерной сети, а также распределение нагрузок по обрабатываемым процессам. Является удобным инструментом для администрирования системы.
atop [-flags] [interval [samples]]
atop -w  file  [-S] [-a] [interval [samples]]
atop -r [file] [-b hh:mm] [-e hh:mm] [-flags]
Подробнее об утилите atop на страничке Wiki http://ru.wikipedia.org/wiki/Atop  4. htop - продвинутый монитор процессов. Htop показывает динамический список системных процессов, список обычно выравнивается по использованию ЦПУ. В отличие от top htop показывает все процессы в системе. Также показывает время непрерывной работы, использование процессоров и памяти.
Подробнее об утилите htop на страничке Wiki http://ru.wikipedia.org/wiki/Htop


5. iotop — показывает активность записи на диск и чтения с диска, использование swap-раздела, и полную статистику обращения к диску всех процессов. Список процессов сортируется от более активных процессов к менее активным и обновляется раз в секунду.
Список команд управления утилитой очень короткий и состоит всего из двух команд:
  • r обратная сортировка, то есть от менее активных процессов к более активным;
  • q для выхода.
Для iotop нет man-страницы, так что используйте опцию —help для просмотра списка всех доступных опций, таких, например, как -d, которая задает частоту обновления.
Установка: sudo apt-get install iotop
Команда запуска: /usr/bin/iotop
Сайт: http://guichaz.free.fr/misc/#iotop
6. iftop - утилита предназначена для мониторинга загрузки канала в реальном времени. По умолчанию программа отображает конечные точки сетевых соединений (можно нажать клавишу p, тогда будут отображаться также номера портов), причем объем передаваемых данных отображается как в виде цифр, так и в виде графического представления: горизонтальной полоски.
Настройка отображаемой информации осуществляется путем нажатия на клавиши: для вывода списка доступных команд нажмите ?. iftop можно запускать с различными опциями, например, если нужно отслеживать только один интерфейс.
Информация отображается iftop в очень простом и понятном виде. Программа незаменима для контроля сети и определения ее пропускной способности. Возможно, вам также понадобится команда netstat -p для определения, какой именно процесс использует сеть в настоящее время.
Установка из командной строки: sudo apt-get install iftop
Команда запуска: /usr/sbin/iftop
Сайт: http://www.ex-parrot.com/~pdw/iftop/
7. powertop - находит программные компоненты, которые вынуждают Ваш ноутбук потреблять больше энергии, чем это необходимо, в то время как он находится в режиме ожидания.
PowerTOP собирает информацию из различных источников ядра и отображает результат работы системы в одном окне так, что Вы можете видеть, насколько хорошо Ваша система работает, и какие компоненты наиболее проблемные.
Подробнее об утилите можно прочитать на сайте
http://www.calculate-linux.org/blogs/en/205/show
8. itop - Мониторинг интенсивности генерации прерываний.
http://www.hunz.org/itop/
9. kerneltop
Наверное, должен показывать что-то интересное про ядро. У меня дома ему не понравился System.map, а на сервере — отсутствие /proc/profile.
10. dnstop
Специализированный анализатор DNS-трафика на интерфейсе. Наверное, был бы очень полезен при починке DNS на контроллере домена, к сожалению, Active Directory на линуксе работает не очень хорошо.
Безусловно полезно для нахождения засранца, загоняющего бинд в неприличный LA.
Анализ количества DNS запрососв как средство борьбы с завирусованными клиентами
На DNS сервер запускаем dnstop
dnstop -4 -Q -i IP_АДРЕС ВАШЕГО_DNS eth0
На DNS сервер запускаем dnstop
Смотрим tcpdump-ом DNS запросы клиентов которые превышают 1% от общего количества и убеждаемся что они с «бешеной» скоростью перебирают MX записи. Звоним клиенту – предупреждаем о зараженной машине которая рассылает спам.
11. jnettop — так же, как и iftop утилита предназначена для мониторинга загрузки канала в реальном времени.
12. sntop
Замечательная штука для скринсейвера или публичного монитора — по конфигу рассылает пинги и показывает, если какой-то хост лёг. В принципе, в рабочих условиях при настроенном конфиге позволяет быстро оценить состояние не очень большого парка серверов (запустили — и сразу красным видно, кто лежит).
13. latencytop
14. xrestop
Монитор потребления ресурсов X-сервера разными приложениями, которые к нему подключились. (Обнаружил, что хром жрёт ресурсов х-сервера много больше, чем опера. Но, Опера в свою очередь жрет гораздо больше системных ресурсов, чем слово «херня» нарисованное на заборе, что не означает, что будем использовать ту херню.)
14a. slabtop
Специализируется на структурах данных SLAB ядра, фактически, показывает использование памяти в более тонких категориях, чем «свободно/занято/кеш». View only, несколько режимов сортировки.
15. apachetop
Не столь полезен, как хотелось бы, показывает статистику ответов на запросы. Никакой магии, просто читает логи апача.
16. sqtop
Топ по логам сквида. С учётом скорости их роста, сначала генерирует промежуточную статистику, а потом уже даёт по ней шаритьс
17. pg_top
Пакет в debian почему-то называется ptop (Как и всё в дебиане… Вроде есть, но не так называется, не так работает… Пример VIM. Отвлекся…). Мониторит загрузку postgresql.
18. mytop
Мониторит mysql. Есть альтернативный mtop, делает примерно то же, но заброшен и (в дебиане ;] ) выпилен в районе lenny -> squeeze.
19. xentop
Мониториг доменов XEN’а. Интересен тем, что показывает не только память-процессор, но и дисковые операции с сетью. К сожалению, никакого управления, view only. Единственный из всех top’ов, не влазящий в 80 столбцов при выводе.
Список топов, которые я глазами не посмотрел:
  • hatop — мониторинг haproxy
  • virt-top — мониторинг за работой libvirt
  • mctop — мониторинг состояния memcached
  • perf-top — нашёл документацию, самого perf-top в виде тарбола или пакета не нашёл.
20. hatop
21. virt-top
22. mctop
23. gkrelmtop
24. ntop
25. libgtop
26. nload
27. nethogs
Отображает сетевой трафик от конкретных приложений. Очень топовая штука, имхо…
28. ntop показывает текущее использование сети. Он отображает список хостов, которые в настоящее время используют сети и предоставляет информацию, касающуюся IP и не-IP-трафикf, генерируемого каждым хостом.
29. netstat позволяет получить в режиме реального времени информацию о состоянии сетевых соединений, а также статистические данные и таблицу маршрутизации.
30. iptraf мониторинг данных, пересылаемых через сетевой интерфейс, а также просмотр статистики пo соединениям.
31. ipstate мониторит contrack из iptables, показывает активные трансляции с возможностью их прибить. Фактически, близок к цисковому sh ip nat tra, но удобнее.
32. prstat
33. glance
34. vnstat
vnstat —live Monitoring eth0
Сначала ложные топы кратко:
  • gkrelmtop — плагин под gkrelm (монитор производительности в гуе) — оффтопик.
  • ntop — нарушает text-based традицию интерактивных программ и ставится как сайт для апача.
  • libgtop — библиотека для мониторигна производительности
  • nload — консольный монитор сетевой активности, в отличие от обычных top’ов не выводит рейтинг, а рисует текстовый график.
При подготовке поста использовались материалы Wikipedia, http://www.fedoralinux.ru http://gnu.su/news.php?extend.602

понедельник, 3 сентября 2012 г.

Этапы загрузки системы c Linux

При включения компьютера, первоначально происходит запуск BIOS (basic input/output system — «базовая система ввода-вывода»), которая  производит инициализацию и  проверку аппаратных средств машины (POST - power-on-self-test). Сама BIOS представляет из себя микросхему с неизменным набором микропрограмм (ПЗУ), пользовательские настройки к которым находятся в динамической энергозависимой памяти CMOS. По завершению тестирования, BIOS ищет на доступных носителях информации запись MBR - данные необходимые для дальнейшей загрузки операционной системы расположенную в первых секторах носителей, загружает его в оперативную память и передает ей управление.

В MBR находится программа-загрузчик (скорее всего GRUB(GRand Unified Bootloader), так как LILO(LInux LOader) уже практически не используется). Основная задача загрузчика состоит в переносе ядра ОС в оперативную память и передача ему управления дальнейшим функционированием компьютера.

Ядро при загрузке производит опрос присутствующих устройств с целью определения "что есть в системе". Если драйвер вкомпилирован в ядро, то устройство инициализируется, а если нет, то оно должно подключиться в виде модуля, а модуль лежит в виде файла на файловой системе, причем на неизвестно каком носителе. То есть для загрузки модулей ядра порождения процесса init (отвечающего за создание процессов описанных в /etc/inittab) необходимо получить доступ к файловой системе. Но файловая система не является частью ядра - значит её модуль тоже надо загрузить из файла который лежит где? Правильно, где то на диске.
Для решения этой проблемы была реализована технология initrd, а в настоящий момент initramfs.

initramfs - виртуальная файловая система, образ которой хранится рядом с образом ядра. при этом минимальный набор драйверов включается в ядро, а остальные подгружаются в виде модулей из виртуальной системы.
Цитата:
 Все сказанное выше относительно процедур загрузки и использования файла initrd справедливо для ядер версии 2.4.xx и более ранних. В ядрах версии 2.6 (а точнее, начиная с экспериментального ядра версии 2.5.46) разработчики решили реализовать иной механизм. Причиной послужили несколько недостатков ранее использовавшегося варианта реализации временной корневой файловой системы.
Во-первых, виртуальный диск, как и все блочные устройства, требует драйвер файловой системы для интерпретации данных во время выполнения. Этот драйвер приходилось включать в ядро.
Во-вторых, неэфективно используется оперативная память, так как размер виртуального диска фиксирован и не может изменяться во время работы без его переформатирования (даже если диск не заполнен, невозможно отдать эту память под другие нужды).
В третьих, в Linux осуществляется кэширование всех файлов и записей каталогов, прочитанных или записанных на блочное устройство. Виртуальный диск тоже кешируется, как и обычные диски, то есть часть данных будет храниться не только на RAM диске, но и в страничном кэше "page cache" (для файловых данных) и в кэше для записей каталогов "dentry cache", что еще больше снижает эффективность использования памяти.
Для устраненеия этих недостатков Линус Торвальдс предложил монтировать кэш ядра Линукс как особую файловую систему, работающую полностью в кэше ядра. При этом нет лишнего дублирования информации между блочным устройством и кэшем, так как блочного устройства попросту нет. Файловая система, реализующая эти идеи, была разработана и получила название initramfs. Ее использование имеет следующие преимущества:
  • Система, использующая initramfs в качестве корневой файловой системы, более не нуждается в соответствующем драйвере файловой системы, встроенном в ядро, так как нет блочных устройств для интерпретации файловых систем.
  • Размер этой файловой системы автоматически изменяется в соответствии с обьёмом данных, которые она содержит. При добавлении новых файлов (как и при расширении существующих) автоматически выделяется память, при удалении или уменьшении файла происходит высвобождение памяти.
  • Достоинством initramfs является также то, что это не новый код, а новое применение уже существующего кода кэширования ядра Линукс, что практически не влечёт увеличение размера ядра, выполнение будет очень простым и основано на чрезвычайно хорошо протестированной инфраструктуре.
  • Исчезают некоторые проблемы загрузки с SATA-дисков.
  • Initramfs загружается немного быстрее, чем initrd.
Формат initramfs используется по умолчанию для всех ядер, начиная с версии 2.6.15.

После загрузки модулей происходит монтирование корневой системы в режиме "только чтение"
и запуск процесса init, который является родоначальником всех других процессов в LINUX.
init отвечает за продолжение загрузки системы и перевод её от состояния "после загрузки ядра"  к рабочему состоянию обработки запросов многих пользователей. init так же выполняет много различных операций необходимых для дальнейшей работы операционной системы, таких как проверка и монтирование файловых систем, запуск различных служб и демонов, запуск процедур логирования, загрузка оболочек пользователя...


Для подробной информации стоит воспользоваться следующими ресурсами на основе которых была написана эта статья:
  1. Исследуем процесс загрузки Linux  ,
  2. Новая модель инициализации initramfs
  3. Процесс загрузки Linux

вторник, 22 мая 2012 г.

Установка Ubuntu по сети и настройка кэширующего сервера обновлений

Описание здесь
sudo apt-get install apt-cacher.
Создаем и назначаем права на папку, которая будет хранить пакеты.
Настройки apt-cacher хранятся в /etc/apt-cacher/apt-cacher.conf.
Настройка Apache:
Alias /apt-cacher /usr/share/apt-cacher/apt-cacher.pl Options ExecCGI, AddHandler cgi-script .pl.
Запускаем демона
sudo /etc/init.d/apt-cacher start.
По умолчанию сервер будет работать на 9999 порту. На клиентских машинах редактируем файл: /etc/apt/sources.list, раскоментируем настройки и добавляем:
deb updateserver:9999/ubuntu intrepid multiverse restricted main universe
, где updateserver – это имя компьютера на котором мы только что подняли apt-cacher.

четверг, 1 марта 2012 г.

Samba с асторизацией через AD

За основу и рыбу была взята замечательная статья:
Samba c доменной авторизацией и правкой пермишенов через галочки автора lissyara/

# yum install samba-winbind krb5-workstation samba

Указываем использовать winbind в /etc/nsswitch.conf

passwd: files winbind
shadow: files
group: files winbind
hosts: files dns

Правим конфиг самбы:
[global]
workgroup = BITZA
realm = BITZA.LAN
server string = Samba Server Version %v
interfaces = lo, eth0
security = ADS
password server = fs.bitza.lan dc.bitza.lan
log file = /var/log/samba/log.%m
max log size = 50
idmap uid = 10000-20000
idmap gid = 10000-20000
winbind use default domain = Yes
admin users = "@BITZA\Domain Admins", BITZA\admin
hosts allow = 172.16.1., 127.
cups options = raw

[SVN_conf]
comment = SVN configuration
path = /var/svn/conf
admin users = "@BITZA\Domain Admins"
read only = No
vfs objects = recycle, full_audit
full_audit:priority = INFO
full_audit:facility = local1
full_audit:failure = unlink rmdir mkdir write rename write aio_write pwrite
full_audit:success = unlink rmdir mkdir write rename write aio_write pwrite
full_audit:prefix = share=%S; id=%U; ip=%I -->
recycle:minsize = 1
recycle:versions = Yes
recycle:directory_mode = 0770
recycle:exclude = *.TMP *.tmp
recycle:maxsize = 0
recycle:version = Yes
recycle:touch_mtime = Yes
recycle:touch = Yes
recycle:keeptree = Yes
recycle:repository = /shares/trash/%S

[TRAC_conf]
comment = SVN configuration
path = /var/trac-projects
admin users = "@BITZA\Domain Admins"
read only = No
vfs objects = recycle, full_audit
full_audit:priority = INFO
full_audit:facility = local1
full_audit:failure = unlink rmdir mkdir write rename write aio_write pwrite
full_audit:success = unlink rmdir mkdir write rename write aio_write pwrite
full_audit:prefix = share=%S; id=%U; ip=%I -->
recycle:minsize = 1
recycle:versions = Yes
recycle:directory_mode = 0770
recycle:exclude = *.TMP *.tmp
recycle:maxsize = 0
recycle:version = Yes
recycle:touch_mtime = Yes
recycle:touch = Yes
recycle:keeptree = Yes
recycle:repository = /shares/trash/%S

Ну и на всякий случай как ввести машину в домен:

# more /etc/krb5.conf
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log

[libdefaults]
default_realm = BITZA.LAN
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true

[realms]
BITZA.LAN = {
kdc = fs.bitza.lan
admin_server = fs.bitza.lan
}

[domain_realm]
.example.com = BITZA.LAN
example.com = BITZA.LAN

Получаем тикет:
# kinit -p admin
Password for admin@BITZA.LAN: # Вводим пароль администратора домена
Вводим машину в домен:
net ads join -U admin

пятница, 3 февраля 2012 г.

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

GENTOO:
elogv - оболочка для парсинга вывода результата emerge



CONSOLE:
CTRL-A - переход к началу строки (+CISCO CLI)
CTRL-E - переход к концу строки (+CISCO CLI)

понедельник, 3 октября 2011 г.

Ubunta не выходит из спящего режима

Одна из причин зависания убунты при выходе из спящего режима драйвер VirtualBox`a - vboxdrv
Для его корректной выгрузки нужно в файле /etc/pm/config.d/modules добавить
SUSPEND_MODULES="vboxdrv"
В /etc/rc.conf добавить
MODULES=(vboxdrv !pcspkr)
для загрузки модуля после просыпания

пятница, 30 сентября 2011 г.

программный RAID1 с загрузкой под grub2 (Fedora14)

Монтируем диск для хранения образа диска
#mkdir /mnt/sdc
#mount /dev/sdc1 /mnt/sdc
Снимаем образ с диска с инфой
#dd if=/dev/sda conv=sync,noerror bs=32M | gzip -9cf > /mnt/sdc/sda.dd-image.gz
Где bs устанавливаем равную кэшу диска (в моём случае 32 Mb)

Разворачиваем образ из архива
#gunzip -c /mnt/sdc/sda.dd-image.gz | dd bs=32M of=/dev/sda
(В моём случае 500 гигабайт - ~100 минут)

Прогресс смотрим следующим образом, в соседней консоли узнаем pid процесса dd:
#ps -A |grep dd
Затем смотрим сам прогресс:
#watch -n10 kill -USR1 `ps -o pid -C dd|tail -n1`
------------------------------------------------------------------------------------------
#/dev/sda - диск с информацией
#/dev/sdb - диск зеркало
Что бы убрать с диска метадату аппаратного массива необходимо загрузившись с liveCD Выполнить следующие комманды:
#dmraid -r
(покажет список дисков у которых присутствуют метаданные массива)
#dmraid -rE /dev/sda
(собственно затирание метаданных)

Если есть остатки программного массива, их можно затереть следующим образом:
Для начала отмонтируйте и остановите массив:
# umount /dev/md0
# mdadm -S /dev/md0
Затем необходимо затереть superblock каждого из составляющих массива:
# mdadm --zero-superblock /dev/sda1
# mdadm --zero-superblock /dev/sda2
и так далее по всем разделам включенным в массивы
Если действие выше не помогло, то затираем так:
# dd if=/dev/zero of=/dev/sda1 bs=512 count=1
# dd if=/dev/zero of=/dev/sda2 bs=512 count=1
Загружаемся с /dev/sda и устанавливаем grub2 в качестве загрузчика. И обновляенм ядро (при необходимости):
# yum install grub2
# grub2-install /dev/sda
#yum erase kernel kernel-PAE grub
#yum install dracut dracut-tools kernel-PAE
Создаем через fdisk идентичные разделы, или копируем структуру первого диска /dev/sda:
#sfdisk -d /dev/sda | sfdisk --force /dev/sdb
#grub2-install /dev/sdb
В fdisk выставляем для всех разделов диска /dev/sdb тип fd ( raid autodetect)

Создаем массив для разделов, НЕ подключая туда пока раздел с информацией (sda). Если используется версия GRUB2 < 1.98, то дописываем в строку создания массива параметр --metadata=0.9 .
#mdadm --create /dev/md1 --level=1 --metadata=0.9 --raid-devices=2 missing /dev/sdb1 (это /boot)
#mdadm --create /dev/md2 --level=1 --metadata=0.9 --raid-devices=2 missing /dev/sdb2 (это /)
#mdadm --create /dev/md3 --level=1 --metadata=0.9 --raid-devices=2 missing /dev/sdb3 (swap)
#mdadm --create /dev/md4 --level=1 --metadata=0.9 --raid-devices=2 missing /dev/sdb4 (это /var)
Проверяем как создались диски
#cat /proc/mdstat
Форматируем свеже-созданные разделы
#mkfs.ext4 /dev/md1
#mkfs.ext4 /dev/md2
#mkswap -f /dev/md3
#mkfs.ext4 /dev/md4
Правим файл mdadm.conf
#cp /usr/share/doc/mdadm-3.1.3/mdadm.conf-example /etc/mdadm.conf
#mdadm --examine --scan >> /etc/mdadm.conf
Удаляем в содержимом файла /etc/sysconfig/grub ссылку на массив

Удаляем файл /boot/grub2/device.map
#rm /boot/grub2/device.map
Изменяем файл fstab
для начала узнаем UUID дисков в массиве и для удобства копируем их в /etc/fstab
#blkid /dev/md1 >>/etc/fstab
#blkid /dev/md2 >>/etc/fstab
#blkid /dev/md3 >>/etc/fstab
#blkid /dev/md4 >>/etc/fstab
Копируем записи загрузки в fstab и комментируем старые записи.
В незакомментированных записях правим параметры загрузки на UUID соответствующих дисков.
Должно получиться что-то вроде этого:
UUID=09e79cff-323b-4645-a8d4-630172cfedaf / ext4 defaults 1 1
UUID=0f316921-b794-492c-8fc2-8d71827145b5 /boot ext4 defaults 1 2
UUID=75ed9f59-a61c-4379-a124-af0b5dfd0a61 /var ext4 defaults 1 2
UUID=6f724829-50e2-4670-a939-747706b2d4d2 swap swap defaults 0 0
В файле /etc/mtab так же правим данные разделов на соответствующие /dev/md* .

далее обновляем initamfs. Так как стандартный пакет не может автоматически собрать mdraid создаем свой собственный вариант initramfs`а
#dracut --modules mdraid --omit dmraid --mdadmconf --force /boot/dracut/mdraid.img версия_ядра
Версию ядра можно списать по аналогии результату команды uname -r , только для нового ядра. Так происходит, потому что мы находимся еще на старом,
а не на свеже установленном ядре. в моем случае версия ядра была 2.6.35.14-96.fc14.i686.PAE.

и объединяем его со стандартным
#dracut-catimages /boot/mdraidadv.img /boot/initramfs-2.6.35.14-96.fc14.i686.PAE.img
По пути /etc/grub.d создаем файл 09_mdraid
#cp /etc/grub.d/40_custom /etc/grub.d/09_raid
со следующим содержимым:
menuentry "MDRAID and INITRAMFS" --class gnu-linux --class gnu --class os {
set gfxpayload=keep
insmod mdraid
insmod ext2
set root='(md1)'
echo Loading Linux 2.6.35.14-96.fc14.i686.PAE ...
linux /vmlinuz-2.6.35.14-96.fc14.i686.PAE root=/dev/md2 ro quiet KEYTABLE=ru SYSFONT=ter-k14n LANG=ru_RU.UTF-8
echo Loading initial ramdisk ...
initrd /mdraidadv.img
}
Строка "KEYTABLE=ru SYSFONT=ter-k14n LANG=ru_RU.UTF-8" необходима для лечения квадратиков вместо русских букв. Для удобства её можно скопировать из результата команды dracut-gencmdline
Так же изменяем в файле /lib/udev/rules.d/10-console.rules строку
KERNEL=="tty0", RUN+="/lib/udev/console_init %k"
на
KERNEL=="tty*", RUN+="/lib/udev/console_init %k"
Далее смотрим в /boot/grub2/grub.conf
root в этой переменной указывается путь, где grub ищет сам себя:
set root = '(md1)'
в строке search указываем путь до раздела загрузки меняя UUID, который ранее получили и прописали в fstab
search --no-floppy --fs-uuid --set 0f316921-b794-492c-8fc2-8d71827145b5
Пересобираем конфиг GRUB`а 2
#grub2-mkconfig >> /boot/grub2/grub2.conf
На всякий случай для отладки включаем шелл dracut`а. Для этого в файле /boot/grub2/grub.conf в конце строки загрузки ядра
можно дописать "console=tty0 rdshell" без кавычек.
------------------------------------------------------------------------------------------
Загружаемся с LiveCD
монтируем диск sda в /mnt/sda а массив md в /mnt/md
#mkdir /mnt/sda
#mkdir /mnt/md

#mount /dev/md2 /mnt/md
#mkdir /mnt/md/boot
#mkdir /mnt/md/var
#mount /dev/md1 /mnt/md/boot
#mount /dev/md4 /mnt/md/var

#mount /dev/sda2 /mnt/sda
#mount /dev/sda1 /mnt/sda/boot
#mount /dev/sda4 /mnt/sda/var
Копируем данные с sda на md
#cp -dpRx /mnt/sda/* /mnt/md
(~30 минут)
------------------------------------------------------------------------------------------
Загружаемся с массива
#reboot
В fdisk выставляем для всех разделов диска /dev/sda тип fd ( raid autodetect)

подключаем диски устройства /dev/sda в массив
mdadm --add /dev/md1 /dev/sda1
mdadm --add /dev/md2 /dev/sda2
mdadm --add /dev/md3 /dev/sda3
mdadm --add /dev/md4 /dev/sda4
и напоследок ещё раз делаем
#grub2-install /dev/sda
#grub2-install /dev/sdb

суббота, 11 июня 2011 г.

Настройка обработки Magnet ссылок на deluge

Источник: http://welinux.ru/post/2235/

Магнет-ссылки предназначены для указания на ресурсы, доступные к загрузке через p2p сети. Такие ссылки в основном идентифицируют файлы не по их расположению или имени, а по содержанию, точнее, по хеш-коду.

При клике по такой ссылке google chrome передаёт эту ссылку утилите xdg-open, которая в свою очередь передаёт ссылку конечной программе. Но вряд ли xdg-open точно знает какая программа должна обрабатывать magnet-ссылку и у меня, например, xdg-open передавала ссылку x-www-browser, коим в моей системе является google-chrome. Сейчас я расскажу вам как научить xdg-open открывать magnet-ссылки тем, чем нужно.

Для этого открываем его для редактирования

sudo gedit /usr/bin/xdg-open

Далее идем в самый конец файла и видим строки:

case "$DE" in
kde)
open_kde "$url"
;;
gnome)
open_gnome "$url"
;;
xfce)
open_xfce "$url"
;;
generic)
open_generic "$url"
;;
*)
exit_failure_operation_impossible "no method available for opening '$url'"
;;
esac

Понятно, что для open_xfce соответствует то, что команда будет выполняться в xfce, для open_kde то, что в kde и т.д. При необходимости ненужные DE можно стереть. Теперь нужно добавить условие, которое будет выполняться, если переданная ссылка magnet. Ниже приведен пример для всех DE и torrent клиента deluge.

case "$DE" in
kde)
if (echo $url | grep '^magnet') then
deluge "$url"
else
open_kde "$url"
fi
;;
gnome)
if (echo $url | grep '^magnet') then
deluge "$url"
else
open_gnome "$url"
fi
;;
xfce)
if (echo $url | grep '^magnet') then
deluge "$url"
else
open_xfce "$url"
fi
;;
generic)
if (echo $url | grep '^magnet') then
deluge "$url"
else
open_generic "$url"
fi
;;
*)
exit_failure_operation_impossible "no method available for opening '$url'"
;;
esac

Естественно, что вместо deluge вы можете подставить любую программу.
Как я уже сказал ненужные DE можно удалить и для openbox вышепреведённый код можно заменить на:

if (echo $url | grep '^magnet') then
deluge "$url"
else
open_generic "$url"
fi

пятница, 24 декабря 2010 г.

1С + postgresql на Fedora

Вообще замечательно это описано на этом ресурсе
Это надо сделать сразу:
В /etc/sysctl.conf прописать:
kernel.shmmax=1073741824
kernel.shmall=2097152
Обновить командой:
sudo sysctl -p
Перейти в директорию с RPM пакетами платформы 1С и установить её командой:
$ sudo rpm -i *.rpm
Starting 1C:Enterprise 8.2 server: OK
Далее, скачиваем исходники с сайта 1С и разворачиваем пакет:
$ rpm -ihv postgresql-8.4.3-3.1C.src.rpm
Устанавливаем необходимые приложения для компиляции базы:
$ sudo yum install rpm-build gcc make glibc-devel bison flex python-devel tcl-devel readline-devel zlib-devel openssl-devel krb5-devel e2fsprogs-devel gettext pam-devel openldap-devel icu libicu libicu-devel
Также необходимо исправить параметр уровня подгона патча, на RHEL он равен 2, но в новой rpm системе его предполагается установить в 0, а поскольку Fedora – есть тестовая платформа для RHEL, то тут уже все новое работает в тестовом режиме. Для этого открываем файл /usr/lib/rpm/macros находим в нем строчку
%_default_patch_fuzz 0
и заменяем ее на
%_default_patch_fuzz 2
Если мы этого не сделаем устанавливаемые патчи будут обрабатываться новыми скриптами и совсем не правильно.
Создаём символьные ссылки:
sudo ln -s /opt/1C/v8.2/i386/libicudata.so.40 /usr/local/lib/libicudata.so.34
sudo ln -s /opt/1C/v8.2/i386/libicui18n.so.40 /usr/local/lib/libicui18n.so.34
sudo ln -s /opt/1C/v8.2/i386/libicuuc.so.40 /usr/local/lib/libicuuc.so.34
Сами файлы *.so.40 (или какие там будут) следует взять из /opt/1C/v8.2/i386/ (появится после установки 1C).
Перед компиляцией так же комментируем тест timestampz из postgresql-8.4.1C.spec,
что бы избежать ошибки на этапе тестирования при компиляции:
# %patch2 -p1
После этого запускаем компиляцию
$ rpmbuild -ba /home/Юзер_из_под_которого_компилировали/rpmbuild/SPECS/postgresql-8.4.1C.spec
Затем перходим в папку
/home/Юзер_из_под_которого_компилировали/rpmbuild/RPMS/i386/
и устанавливаем postgresql:
sudo rpm -i *.rpm
Так же символьные ссылки *.so.34 надо скопировать по пути /usr/lib/pgsql/:
sudo cp /usr/local/lib/libicudata.so.34 /usr/lib/pgsql/
sudo cp /usr/local/lib/libicui18n.so.34 /usr/lib/pgsql/
sudo cp /usr/local/lib/libicuuc.so.34 /usr/lib/pgsql/

четверг, 28 октября 2010 г.

Gnome переключение раскладок

/etc/X11/xorg.conf.d/10-evdev.conf

Ссылка раз
Ссылка два

Section "InputClass"
Identifier "evdev pointer catchall"
MatchIsPointer "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
EndSection

Section "InputClass"
Identifier "evdev keyboard catchall"
MatchIsKeyboard "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
EndSection

Section "InputClass"
Identifier "evdev touchpad catchall"
MatchIsTouchpad "on"
MatchDevicePath "/dev/input/event*"
Driver "synaptics"
EndSection

Section "InputClass"
Identifier "evdev tablet catchall"
MatchIsTablet "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
EndSection

Section "InputClass"
Identifier "evdev touchscreen catchall"
MatchIsTouchscreen "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
EndSection

вот этого достаточно чтобы все работало
раскладку клавиатуры можно прописать в нём же

Section "InputClass"
Identifier "Keyboard Defaults"
MatchIsKeyboard "yes"
Option "XkbLayout" "us,ru(winkeys)"
Option "XkbOptions" "terminate:ctrl_alt_bksp,grp:lwin_toggle,grp_led:scroll"
EndSection

пятница, 27 августа 2010 г.

Запуск/ остановка демонов на Fedora до перехода на systemd

http://www.redhat-club.org/Wiki/System/Services/General/Configuration

1. Запуск
   *    service SERVICE_NAME start
или
   *    /etc/init.d/SERVICE_NAME start
2. Остановка
    *    service SERVICE_NAME stop
или
    *    /etc/init.d/SERVICE_NAME stop
3. Перезапуск
    *    service SERVICE_NAME restart
или
    *    /etc/init.d/SERVICE_NAME restart
4. Просмотр параметров запуска
    *    chkconfig --list
5. Включение автоматического запуска
    *    chkconfig --level RUN_LEVELS SERVICE_NAME on
6. Отключение автоматического запуска
    *    chkconfig --level RUN_LEVELS SERVICE_NAME off
7. Графические утилиты
    *    system-config-services
    *    ntsysv
8. Примечания
    *    SERVICE_NAME - имя службы (например smb)
    *    RUN_LEVELS - уровни запуска: от 1 до 6 (например 35)

ThunderBird LDAP AddressBook

В настройках LDAP указать:
Закладка "Основное"
Название: LDAP (Произвольное)
Имя сервера: fs.bitza.lan
Корневой элемент (Base DN): OU=DomainUsers,DC=bitza,DC=lan
Порт: 3268
Имя пользователя (Bind DN): bitza\ars
Закладка "Дополнительно"
(&(objectClass=User)(mail=*))


Configure LDAP Attribute Mappings:

  1. Windows: From the Tools menu, select Options
    Macintosh: From the Thunderbird menu, select Preferences
  2. Click Advanced
  3. Select the General tab, and click the Config Editor button.
  4. In the Filter entry box type: default.att
    This will display all the LDAP attributes that Thunderbird uses, and the attribute name Thunderbird expects an LDAP server to return. ldap edit page
  5. For each of the following attributes double-click the entry and edit the entry so that it matches one of the attributes from above.
    Thunderbird attribute ending with
    Edit entry to read
    Company o,company
    Department wiscedudepartment,department,departmentnumber,orgunit,ou
    HomeAddress homePostalAddress,mozillaHomeStreet
    JobTitle wiscedualltitles,title
    NickName edupersonnickname,mozillaNickname,xmozillanickname
    WebPage1 labeledUri,mozillaWorkUrl,workurl
    WorkAddress postaladdress,street,streetaddress,postOfficeBox
    WorkCountry c,countryname
    WorkPhone  telephoneNumber
    Optional Entries
     
    SecondEmail mailRoutingAddress,mozillaSecondEmail,xmozillasecondemail
    Custom1 mozillaCustom1,custom1
  1. Close the About:config dialog box.
  2. Click OK to close the Options dialog box.

Compiz пропали заголовки.

Здесь кучка советов с gentoo.ru

Ставим layman добавляем оверлэй desktop-effects
размаскировываем
(/etc/portage/package.keywords)
x11-apps/fusion-icon **
dev-python/compizconfig-python **
x11-wm/compiz **
x11-wm/compiz-fusion **
x11-plugins/compiz-fusion-plugins-main **
x11-plugins/compiz-fusion-plugins-extra **
x11-plugins/compiz-fusion-plugins-unsupported **
x11-wm/emerald **
x11-themes/emerald-themes **
x11-apps/ccsm **
x11-libs/libcompizconfig **
x11-libs/compizconfig-backend-gconf **
x11-libs/compizconfig-backend-kconfig **
x11-libs/compiz-bcop **
емержим компиз смотрим чтоб емержилась врсия с гита =) радуемся работает "Из коробки"
проверено на i810 и nvidia
Даже если после установки ccsm -> Window Decoration -> Command в emerald --replace Emerald не запускается при входе в систему, выполните в оболочке следующую команду от простого пользователя:
echo "USE_EMERALD=yes" >> ~/.config/compiz/compiz-manager
А вообще поставить костыль compiz-fusion и не париться.

Изменить разрешение на папки или файлы

Изменение разрешений на все файлы включая файлы в поддиректориях:
find . -type f -exec chmod 644 {} \;

Изменение разрешений на все директории начиная с текущей:
find . -type d -exec chmod 755 {} \;
 

Pidgin отправка сообщений по ctrl-enter

nano ~/.gtkrc-2.0
 В нем записать
binding "my-bindings"
{
    bind "Return" { "insert-at-cursor" ("
") }
    bind "<ctrl>Return" { "message_send" () }
}
widget "*pidgin_conv_entry" binding "my-bindings"
 Перезапустить

Значки в языковом апплете преключения раскладок в Gnome

После добавления апплета на панель надо подсунуть изображения значков в
/usr/share/pixmaps (или ~/.icons/flags)
и настроить апплет:
gconf-editor: /desktop/gnome/peripherals/keyboard/indicator/showFlags

четверг, 26 августа 2010 г.

Смена названия сетевого интерфейса

 Названия устройствам, найденным в системе, задаёт udev
nano /etc/udev/rules.d/70-persistent-net.rules

Восстановление меню в Gnome

Пропало содержимое меню Приложения в Гноме.
проверить на наличие/корректность  ~/.config/menus,файл application.menu.
аналогичный лежит в /etc/xdg/menu.
выполнить
cp /etc/xdg/menus/application.menu ~/.config/menus