Восстанавливаем загрузчик GRUB с помощью Ubuntu (Linux)  24.06.2009

Допустим вы установили Windows на свою любимый ноутбук работающий всю сознательную жизнь под каким нибудь Linux дистрибутивом. Самая популярная операционная система подошла к вопросу загрузки ОС как первокурсник к женщине (ни ума, ни опыта :) ) и исключила возможность использования какой либо ОС, кроме себя любимой. Рассказываю как вернуть все на свои места...

Качаем (или достаем с полки) популярный Linux-дистрибутив Ubuntu и загружаемся в режим LiveCD. Открываем консоль (приложение "Терминал") и командуем следующее для входа в интерактивный режим управления загрузчиком: sudo grub

Теперь нам надо найти загрузочный раздел Linux, чтобы сделать это с помощью grub в появившейся строке командуем: find /boot/grub/stage2

В ответ появится строка похожая на эту (цифры в скобках будут ваши): (hd0,4)

Остается показать загрузчику где находится root-раздел с помощью команды root (hd0,4) и установить загрузчик на диск командой setup (hd0)

Готово! Командуем quit и перезагружаемся...

P.S. Если вам всё таки нужно иногда пользоваться Windows (не зря же вы её устанавливали), придется добавить в файл /boot/grub/menu.lst следующие строки (предварительно заменив число в скобках на номер вашего Windows-раздела):
# Windows XP
title Windows XP
rootnoverify (hd0,0)
chainloader +1

Samba 3 — клиент в домене Windows (Linux, Windows, О работе)  13.12.2008

Давно собирался написать небольшой manual на эту тему, но каждый раз меня что нибудь останавливало. Сегодня же передо мной в очередной раз встала такая задача, поэтому писать я буду прямо по ходу действия.

Имеем:

  1. Будущий прокси-сервер на CentOS 5.2 с установленным samba-client и krb5-workstation
  2. Ныне живущий контроллер домена Active Directory на базе Windows 2003 (для примера буду указывать домен MAIN.LAN с сервером server.main.lan)
  3. Устойчивое желание иметь на линукс-машине авторизацию доменных пользователей
  4. Банку кабачковой икры, батон, кофе (опционально) :)

Шаг первый: "Время Kerberos"

Правим /etc/krb5.conf указывая имя домена и сервера который будет нас авторизовывать.

[realms]
MAIN.LAN = {
kdc = server.main.lan
admin_server = server.main.lan
}

Теперь пробуем авторизоваться под учетной записью администратора домена командой:
# kinit Administrator@MAIN.LAN
если в ответ на эту команду появляются ошибки, типа: kinit(v5): Cannot find KDC for requested realm while getting initial credentials или kinit(v5): KDC reply did not match expectations while getting initial credentials - ищем ошибку в файле /etc/krb5.conf . Если напротив все прошло без ошибок, смотрим что получилось командой:
# klist
Если в результате проверки появляется ошибка kinit(v5): Clock skew too great while getting initial credentials - часы на linux-машине и windows-сервере помнят разное время. Решить это можно установкой ntp-сервера и синхронизацией часов с серверами точного времени в интернете, но мне этот метод кажется не совсем "прямым". Ведь концептуально наша задача не получить точное время, а получить время одинаковое на обоих машинах. Я в качестве решения выполняю команду
# net time set -S server.main.lan
Так же эту команду можно дописать в файл /etc/rc.d/rc.local .

Шаг второй: "Samba и Winbind"

Если вы в будущем хотите каким либо образом работать с samba в качестве файл-сервера, то файл /etc/samba/smb.conf вам придется изучить в любом случае, но сегодня нас интересует только следующий его блок:
[global]
workgroup = MAIN
realm = MAIN.LAN
security = ads
password server = *
encrypt passwords = yes
netbios name = proxy
idmap uid = 10000-20000
idmap gid = 10000-20000
winbind enum users = yes
winbind enum groups = yes

Перезапускаем samba и winbind:
# service smb restart
# service winbind restart

Добавляем linux-машину в домен командой
# net ads join -U Administrator@MAIN.LAN

Получаем ошибку Failed to set servicePrincipalNames. Please ensure that the DNS domain of this server matches the AD domain, Or rejoin with using Domain Admin credentials. Deleted account for 'proxy' in realm 'MAIN.LAN'. Failed to join domain: Type or value exists ....и удивляемся. :)
Маленькая хитрость: в момент выполнения команды net ads join домен резолвится исключительно по файлу /etc/hosts , который про этот домент само собой и слухом не слыхивал. Добавляем туда соответствующую запись и заводим наконец в домен наш linux-компьютер указанной выше командой. Если все прошло успешно, то ответ на команду:
# wbinfo -t

должен быть - checking the trust secret via RPC calls succeeded. Теперь можно посмотреть список пользователей и групп домена командами:
# wbinfo -u
# wbinfo -g

На этой радостной ноте я закончу этот рассказ, т.к. его продолжение индивидуально для каждой задачи: NTLM-авторизация в Squid на этом этапе уже работает, нужно только поставить этот самый Squid; PAM-авторизацию нужно немного подкрутить, но в моей практике она не всегда необходима; чтобы использовать нашу linux-машину как файл-сервер нужно только описать доступные папки....дальше выбор за вами....

Драйвер WiFi для ASUS Z99Le (вторая серия) (Linux)  23.06.2008

Сегодня я опишу еще один вариант установки драйверов для WiFi-адаптера на чипе AR5006EG (именно этот адаптер стоит в моем ноутбуке ASUS Z99Le) на примере системы Ubuntu 7.10 с помощью NDISwrapper (подробнее о NDISwrapper тут: http://ru.wikipedia.org/wiki/NDISwrapper ). Способ описанный мной ранее ( http://antonborisov.ru/2008/03/16/drajver-wifi-dlya-asus-z99le/ ) не является универсальным, т.к. с последними версиями ядра работать отказывается.
И так... (далее…)

Postfix как frontend для Exchange 2007 (Linux, Windows, О работе)  02.06.2008

Некоторое время назад перевел корпоративную почту на Exchange 2007, но пускать Exchange напрямую в интернет у меня нет ни малейшего желания. Сугубо моё ИМХО, но Linux в плане безопасности намного надежнее (спорить по этому поводу не хочу). В связи с этим было принято решение оставить Linux (а соответственно и Postfix) в качестве шлюза и фаервола. Плюсы (помимо безопасности) в дополнительной фильтрации на спам (и вирусы) на уровне Postfix и отсутствием дополнительных затрат на ПО (если в качестве альтернативы рассматривать дополнительный пограничный сервер на Win2k3+ADAM и Exchange в роли Edge Transport). Опишу только необходимые изменения исходя из того, что Postfix и Exchange 2007 уже установлены и работают. (далее…)

Драйвер WiFi для ASUS Z99Le (Hardware, Linux)  16.03.2008

Предисловие

Недавно я стал счастливым обладателем ноутбука ASUS Z99Le. Аппарат очень приятный во всех смыслах, меня его конфигурация устраивает полностью.

Я встречал в природе ASUS Z99Le с различными конфигурациями, но мне досталась по видимому самая последняя:
Процессор: Intel Celeron M540 (1,86 GHz)
Жесткий диск: 120 Gb
Оперативная память: 2 Gb
Экран: 14'' WXGA
Привод: DVD Super Multi
Операционка: FreeDOS ( :-) на данный момент уже Ubuntu 7.10)
Коммуникации: LAN 100 Mbit, факс-модем 56К, встроенный модуль Bluetooth и wifi 802.11b/g
О последнем (модуле wifi) сейчас и пойдет речь... (далее…)

Skype 2.0 в Linux (Linux)  16.03.2008

5 марта увидела свет версия Skype 2.0.0.63 для ОС Linux. Главным среди новшеств этой версии стали видео-звонки, которые давно уже присутствуют в версиях для Windows и Mac OS X.

Я новинку уже скачал и опробовал на своем ноутбуке - работает отлично!
Skype 2.0 в Linux

(далее…)

Автоматический факсоприемник своими руками (Linux, О работе)  11.09.2007

Задача: принимать факсы в автоматическом режиме, сохранять в электронном виде на файл-сервере windows.

Решение:
В качестве базы у меня был CentOS 4.4 и старенький системник с факс-модемом Acorp 56K подключенным на ком порт.
Качаем последнюю версию Hylafax (на момент написания статьи последней была версия 4.4.1). (далее…)

Смена имени интерфейса после подключения (Linux)  19.06.2007

Столкнулся с необходимостью привязать имя интерфейса к ip-адресу при входящем подключении VPN.

Нашел вот такое решение:
/etc/ppp/ip-up дописать следующее:
if [ $5 = "remote_ip_addr" ];
then
/sbin/ifconfig $1 down
/sbin/ip link set $1 name iface_name
/sbin/ifconfig iface_name up
fi

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

Тривиальная задачка — Squid / MySQL / Postfix / Courier-IMAP / ClamAv / SpamAssassin (Linux, О работе)  07.05.2007

Внимание задача:

  1. Авторизация и учет трафика по каждому пользователю
  2. Почтовый сервер и почтовые ящики каждому пользователю
  3. Возможность самостоятельно добавлять пользователей и ящики не обладая специальными навыками
  4. Разумная стоимость решения
  5. Возможность масштабирования
  6. Отсутствие привязки к домену Windows

Внимание решение:
Сервер на базе ОС Linux

  1. Прокси Squid с авторизацией через базу MySQL
  2. SMTP-сервер Postfix с хранилищем данных в базе MySQL и администрированием через веб-интерфейс PostfixAdmin
  3. Фильтрация спама (SpamAssassin) и вирусов (ClamAv)
  4. IMAP-сервер Courier-IMAP с авторизацией через MySQL базу
  5. Веб-интерфейс для работы с почтой с функциями Groupware работающий по с сервером по протоколу IMAP
  6. Инсталляция и настройка всего комплекса обошлась заказчику в 10 т.р. (+ средней мощности персональный компьютер, используемый в качестве сервера)
  7. Масштабирование ограничено лишь фантазией заказчика и аппаратным обеспечением (Celeron 1,8 Ггц/1024 мб оперативной памяти/80 Ггб свободного пространства на жестком диске – хватило без проблем на 200 пользователей)

В дополнение ко всему сделал импорт таблицы логинов и паролей из файла Excel (база пользователей изначально была создана секретарем в экселе). Сейчас дописываю скрипт веб-интерфейса для управления учетными записями доступа к Интернету через прокси-сервер.

Теперь подробнее о том, как я это сделал.
Установку Squid, MySQL и Courier-IMAP я описывать не буду, т.к. она ничем не отличается от установки любого другого ПО в ОС Linux. Для авторизации пользователей использовался squid helper написаный на C (взять можно здесь).
Postfix обязательно должен быть собран с поддержкой MySQL. В процессе настройки main.cf я использовал следующие конфиги связей с mysql (не забудте изменить пароли и логины MySQL пользователя).

Для осуществления фильтрации почты на спам и вирусы необходимо взять скрипт прописав в нем свои пути к clamav и сокету spamd, и указать его в master.cf следующим образом:
smtp inet n - n - - smtpd -o content_filter=clamassassin
clamassassin unix - n n - - pipe
flags=Rq user=clamav argv=/etc/postfix/clamassassin.sh -f ${sender} -- ${recipient}

Основные тезисы я изложил. Дальше писать сейчас не времени.
Если буду вопросы по описанной мной схеме, буду писать более детальное продолжение...