среда, 15 сентября 2010 г.

Настройка программного RAID1 на работающей системе

В этой статье описывается настройка RAID1-массива на уже установленном и запущенном Debian etch/lenny с конфигурацией загрузчика GRUB для корректной загрузки системы даже в том случае, если один из винчестеров поврежден.

sendEmail - отправка почты с консоли

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

lighttpd и аутентификация с помощью htpasswd

lighttpd не поддерживает файлы .htaccess, так что вам нужно указывать все настройки в файле lighttpd.conf, или в файлах, к нему подключенным. Он понимает файлы пользователей Apache для простой и общей аутентификации, но поддержка групповых файлов ещё не реализована.

Установка и настройка lighttpd+lightsquid

lightsquid - анализатор логов squid с подбором статистики пользования прокси-сервером, альтернатива SARG.

Так как ставить на шлюз тяжеловесный apache2 только ради статистики мне показалось неправильным, поднимать будем lighttpd.

Установка и настройка OpenVPN

VPN – Virtual Private Network, Виртуальная Частная Сеть – технология, позволяющая соединять между собой локальные сети и отдельные компьютеры, находящиеся на расстоянии тысяч километров друг от друга; подключаться к локальной сети через Интернет, используя шифрованный канал связи, организовывать безопасный туннель для передачи важных данных... Возможности применения VPN безграничны! Вам необходимо соединить офисы в разных концах страны единой сетью, не прокладывая километры кабелей? Вы хотите подключаться к домашней локальной сети из Интернет-кафе? Требуется передать важные данные на большое расстояние без риска утечки информации? Может быть, большинство данных, которые вы передаете через Интернет, составляют тайну, и их необходимо обезопасить? Если вы хотя бы на один вопрос ответили утвердительно, VPN – это именно то, что вам нужно!

Настройка OpenSSH с авторизацией по паре ключей

Под обычным пользователем:
$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
$ cd ~/.ssh
Мы сгенерируем нашу пару ключей, публичный и секретный ключи.

rsnapshot - ошибки в debian lenny

rsnapshot в логах пишет что-то типа "... WARNING: Could not lchown() symlink ..."

Это происходит, потому что перл версии 5.10.x не может получить доступ к системному вызову lchown()

Решение проблемы:
# sudo cpan
[...]
> install Lchown
Должен быть установлен пакет build-essential

Установка и настройка rkhunter

Простенькая, но эффективная программа для отслеживания руткитов.

вторник, 14 сентября 2010 г.

Установка и настройка ntp-сервера

NTP-сервер нам нужен для синхронизации времени на компьютерах и серверах локальной сети.

Установка и настройка NFS

Вводные данные

  • NFS Server: server.example.com, IP address: 192.168.0.100
  • NFS Client: client.example.com, IP address: 192.168.0.101

NFS и проброс портов

Для открытия портов необходимо:
  1. Заставить NFS использовать статичные порты
  2. Открыть соответствующие порты в файрволе

MySQL и разрешение имён

Была проблема - mysql перед отдачей данных очень надолго задумывается (до нескольких минут).

Проблема наблюдается при подключении к MySQL-серверу более одного человека при отсутствии в локальной сети DNS-сервера. Решение заключается в запрещении MySQL резолвить имена.

Необходимо в /etc/mysql/my.cnf в секцию [mysqld] прописать строку:
skip_name_resolve

Основы создания и управления LVM

Менеджер логических томов (LVM – англ. Logical Volume Manager) — предоставляет собой дополнительный уровень абстракции между физическими/логическими дисками (привычными разделами, с которыми работает fdisk и аналогичные программы) и файловой системой. Это достигается путём разбивки изначальных разделов на небольшие блоки (экстенты, обычно 4—32 МБайт) и объединения их в единый виртуальный том, точнее группу томов (volume group), которая далее разбивается на логические тома (logical volume). Для файловой системы логический том представлен как обычное блочное устройство, хотя отдельные экстенты тома могут находиться на разных физических устройствах (и даже сам экстент может быть распределён подобно RAID). LVM увеличивает гибкость файловой системы, однако, являясь просто промежуточным слоем, не отменяет ограничения и использование других слоёв и усложняет работу. То есть, по-прежнему нужно создавать и изменять разделы, форматировать их.

Отключение IPv6 в Debian Lenny

Есть несколько способов отключить поддержку IPv6 в Debian Lenny:
  1. Пересобрать ядро, отключив поддержку IPv6. Метод не слишком простой, поэтому можно воспользоваться другим решением.
  2. Добавить строку "blacklist ipv6" в файл /etc/modprobe.d/blacklist.
  3. Отредактировать файл /etc/modprobe.d/aliases, закомментировать строку "alias net-pf-16-proto-13 ip6_queue" и добавить две строки:
    alias net-pf-10 off
    alias ipv6 off

При использовании второго метода, в логи периодически сыпятся сообщения вида:
modprobe: WARNING: not loading blacklisted module ipv6
Ничего страшного в этом нет.

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

Принудительный запуск fsck при следующей перезагрузке

В данной заметке я покажу как сделать чтобы ваша Linux система выполнила проверку раздела утилитой fsck во время следующей перезагрузки. По умолчанию это происходит автоматически, в зависимости от конфигурации файловой системы: либо один раз в определенное число дней, либо после определенного количества монтирования файловой системы.

Поиск файлов определённого пользователя с помощью find

Находит все файлы/каталоги пользователя в данном месте:
find <ГДЕ_ИСКАТЬ> -user <ИМЯ_ПОЛЬЗОВАТЕЛЯ>

Считает количество файлов пользователя в данном месте:
find <ГДЕ_ИСКАТЬ> -user <ИМЯ_ПОЛЬЗОВАТЕЛЯ> ! -type d | wc -l

Поиск и удаление файлов по расширению

Рекурсивно находит файлы с расширением avi в текущем каталоге и удаляет их:
find . -name "*.avi" -exec rm -f {} \;

Отдельный лог для dhcpd

Не знаю где как, а в debian lenny по дефолту dhcpd пишет логи в syslog, что мне не очень нравится.

Итак, чтобы dhcpd не мусорил в логах необходимо
  • создать файл /etc/rsyslog.d/dhcpd.conf с содержимым:
  • local7.* /var/log/dhcpd.log
  • Для ротации логов в файл /etc/logrotate.d/rsyslog вставить строку
  • /var/log/dhcpd.log
    в секцию со списком файлов логов.

Установка и настройка dhcp3-server

Настроим dhcp3-server на debian lenny для автоматической раздачи IP-адресов, с возможностью привязки mac -> IP и передачей настроек подключения клиентам.

Удалённое обновление ядра

Иногда может возникнуть ситуация, когда при обновлении ядра на сервере, стоящем в дата-центре и последующей перезагрузке, сервер не поднимается. Как избежать этого, как обеспечить его перезагрузку в старое ядро в случае сбоев с новым ядром?

Настройка программ для работы через локальный прокси

Понадобилось мне сделать, чтобы apt-get и freshclam на шлюзе ходили в инет через прокси, установленный на нём же (с целью кеширования обновлений).

Не перезагружается компьютер под управлением linux

Система - debian lenny.

Симптомы: при команде reboot останавливает все службы и виснет.

Частенько при таком рекомендют запускать с параметром ядра "acpi=off". В моём случае это не помогло.

Лечение: в /boot/grub/menu.lst в параметрах ядра указать "reboot=bios".

Безопасный рестарт при зависании linux-систем

Удерживая кнопки Alt+SysRq (PrintScreen) нажимайте последовательно следующие кнопки: R, E, I, S, U, B.
  • R - возвращает управление мышке и клавиатуре.
  • E - посылает сигнал SIGTERM всем запущенным процессам, кроме init. Другими словами производится попытка безопасного (с сохранением данных) завершения всех процессов, кроме процесса init.
  • I - посылает сигнал SIGKILL всем запущенным процессам, кроме init. Это значит, что все процессы кроме init будут уничтожены и данные будут утеряны.
  • S - переписывает все данные из кэш-памяти на жесткий диск, происходит синхронизация, уменьшает шанс повреждения данных.
  • U - перемонтирует все примонтированные файловые системы в режиме только чтение. После использования этого ключа вы можете перезагружать систему нажатием Alt + SysRq + B без ущерба для системы.
  • B - перезагрузка системы. Использование этого ключа без использования других ключей равноценно «холодной» перезагрузке.

BIND 9.5 и сообщение "too many timeouts resolving"

В версии BIND 2.5.0-P2 начал сыпать в логи много лишней информации. Например такой:
Sep 8 05:23:15 cosmos named[20534]: too many timeouts resolving 'DNS1.MRSE.COM.AR/AAAA' (in 'MRSE.COM.AR'?): disabling EDNS
Решение этой проблемы сводится к более точной настройке, что помещать в логи, а что нет.

В конфигурационном файле сервера /etc/bind/named.conf , в раздел logging надо добавить следующее (если раздела нет, добавить его перед всем!):
logging {
category lame-servers {null; };
category edns-disabled { null; };
};
Тут заодно запрещаются сообщения о lame-серверах.

Настройка кеширующего DNS-сервера (BIND)

Если рассматривать функции кэширующего сервера с точки зрения архитектуры DNS то это "умный" resolver. А точнее, "умный" независимый resolver, который выполняет рекурсивные запросы прикладных программ.

Главное назначение - принимать запросы от клиентов и опрашивать другие (авторитативные) серверы доменных имен на предмет поиска необходимой клиентам информации и хранение найденной информации (записей описания ресурсов) к своем кэше в течение времени жизни этой информации. При этом в кэш должна попадать не только информация о конечном соответствии IP-адреса и доменного имени, но и информация найденная в процессе поиска конечного соответствия, например, информация об авторитативных серверах зон доменных имен.

При этом данный сервер не будет поддерживать никакой зоны, т.е. он не будет авторитативным для какой-либо зоны пространства доменных имен Интернет.

Всплывающее сообщение после завершения консольной команды

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

Добавить в ~/.bashrс
alias alert='notify-send -i /usr/share/icons/gnome/32x32/apps/gnome-terminal.png "[$?] $(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/;\s*alert$//'\'')"'
Как видно, требует только notify-send.

Пример использования:
wget www.webupd8.org; alert

Источник