четверг, 26 июня 2008 г.

Ubuntu Mobile Internet Device Edition

Компания Canonical, коммерческий спонсор проекта Ubuntu, представила первую публичную версию операционной системы Ubuntu Mobile Internet Device Edition (Ubuntu MID), получившую индекс 8.04.


Программная платформа Ubuntu MID, как следует из названия, предназначена для
использования на мобильных интернет-устройствах. Новая ОС базируется на коде
Ubuntu Desktop Edition и содержит ряд приложений, специально адаптированных под
небольшие экраны гаджетов. В состав Ubuntu MID 8.04, в частности, входят
веб-браузер, построенный на основе движка Mozilla Gecko, клиент электронной
почты, книга контактов, календарь и медиаплеер. Кроме того, в Ubuntu MID 8.04
включена поддержка средств управления через сенсорные дисплеи.


Несмотря на то, что желающие уже могут загрузить операционную систему Ubuntu MID 8.04, ориентирована она, прежде
всего, на разработчиков и изготовителей комплектного оборудования. Первые
устройства на базе Ubuntu Mobile Internet Device Edition, как ожидается,
появятся на рынке ближе к концу текущего года.


Источник новости

Читать дальше.

четверг, 19 июня 2008 г.

Парад багов в популярных браузерах

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

среда, 18 июня 2008 г.

Wine 1.0!

Автор: Д. Шурупов

После 15 лет усиленной разработки проект по созданию свободной (лицензия GNU LGPL) реализации WinAPI объявил о выпуске первой стабильной версии — Wine (Wine Is Not an Emulator) 1.0.
Релиз Wine 1.0 является по большей частью формальностью, поскольку принципиальных отличий от версий 0.9.x нет. Это лишь отображение того факта, что проект наконец-то «созрел» до определенного уровня и теперь по праву считает свой программный продукт стабильным. Разработчики так представили выпуск Wine 1.0: «Хотя совместимость [с Windows] до сих пор нельзя назвать совершенной, есть подтвержденная информация о тысячах приложениях, которые работают очень хорошо» (речь идет о том, что уже сейчас благодаря Wine очень многие Windows-приложения могут нормально функционировать в таких операционных системах, как GNU/Linux, FreeBSD, Solaris, Mac OS X).
Стоит также напомнить, что критерий для Wine 1.0 был определен уже давно и заключался в том, что в этом релизе должны безупречно работать такие программы, как Adobe Photoshop CS2, Microsoft PowerPoint Viewer 97/2003, Microsoft Word Viewer 97/2003, Microsoft Excel Viewer 97/2003.
Перечень Windows-приложений с информацией о том, насколько хорошо они функционируют в Wine, доступна в Wine AppDB.

Читать дальше.

Контроллер домена на SAMBA за семь шагов

Нашел тут весьма интересную статью Сергея Воронцова о настройке контроллера домена под линуксом с помощью пакета samba.

На время начала работ по установке PDC Samba+OpenLDAP мой опыт работы с LINUX-системами был относительно невелик. Одна из причин, вызвавших затруднения в дальнейшем освоении – особенности источников сведений по этой тематике. Пишут их настоящие знатоки, поэтому некоторые аспекты, предельно простые для гуру и неясные для новичка в литературе найти не всегда легко. По многим причинам начальный этап в освоении POSIX-серверов нужно каким-то образом преодолевать.
Так или иначе это удалось, мой не самый маленький домен работает, и теперь могу предположить, что полученный опыт поможет кому-то еще.


Исходный рубеж – знания и практика работы с сетевыми службами в различных операционных средах, так же как и знания, позволяющие начать работать с POSIX-системами. Так как развертывать сервер в среде LINUX полностью из командной строки первый раз нелегко (и отпугивает многих – эта статья как раз для них), выбирается дистрибутив, имеющий графические инструменты основных настроек. В моем случае это OpenSUSE 10.3. С учетом возможностей оборудования использовал версию i386. Поскольку в дальнейшем нам нужно будет развертывать резервный контроллер, а также службы, требующие защищенного соединения, в том числе и за пределами локальной сети, предусмотрим возможность шифрования клиентских подключений на основе сертификатов, подписанных собственным СА.
Варианты с максимальным упрощением настроек не рассматриваем, чтобы избежать в дальнейшем существенных переделок и остановок сетевых служб в действующем домене. Возможности Samba по использованию перемещаемых профилей, логон-скриптов и т.п. пока не задействуем. Впрочем, можно эти опции настраивать заданным группам пользователей позднее. Следует отметить, что отказаться от перемещаемого профиля получается пока только правкой настроек на Windows-клиенте.




Подготовка рабочей станции к подключению в домен


В этом поможет оснастка MMC «Политика «Локальный компьютер» - Административные шаблоны – система – профили пользователей».


Не могу гарантировать абсолютной повторяемости результата, так как итог зависит от неопределенного множества факторов для каждой конкретной реализации. Ничто не мешает инициативному и знающему администратору выбрать свой набор инструментов, схему каталога и т.д. Гипотетические альтернативные методы/способы/решения не рассматриваем – это только личный опыт для возможного повторения теми, кому нужен действующий результат и нет возможности теоретизировать, натыкаясь на многие и многие неясности.


Выражаю благодарность авторам использованных программных пакетов, а также авторам публикаций по рассматриваемому вопросу.


По тексту далее. Группы и пользователей, создаваемых нами в linux, будем называть «Posix-группы или пользователи», встроенные бюджеты (учетные записи служб и т.д.) определим как «системные», учетные записи, создаваемые в samba (в форме базы данных OpenLDAP) – samba-пользователи (группы).


Шаг1. Развертывание серверной платформы.


Сервер назовем asles.bgiki.local. Начальный метод регистрации пользователя – локальный, и кроме root никаких учетных записей не создаем. При установке выбираем KDE, файловый сервер, DNS, DHCP, LDAP, в разделе «разработка – базовая разработка» - Perl. Необходимо установить пакеты из состава дистрибутива: openldap2-devel, openssl-certs, pam_cifs, pam_smb, pam-config, pam-modules, pam_ldap, perl-Authen-SASL, Perl-BerkeleyDB, perl-OpenCA-CRL, OpenCA-REQ, perl-OpenCA-X509, perl-Unicode-String, все perl-Crypt, perl-IO-String, perl-ldap, perl-ldap-ssl, Perl-IO-Socket-SSL, perl-Net_SSLeay, perl-Unicode-Map8, libgcrypt, libxcrypt, libnscd, libacl, libmsrpc, libsmbsharemodes, libmspack, компоненты cyrus-sasl, tls, и по желанию - mc, kdeaddons3-kate, gvim. Дополнительные пакеты из репозитория SUSE: openldap2-back-perl, ldapsmb, samba-doc. Вероятно, этот перечень может быть скорректирован путем проб и ошибок.


Примечание: Учитывая README к пакету smbldap-tools версии 0.9.2, а именно фразу: «In the future, some other function may come (like … compliance to RFC2307...)…» нам предстоит сделать выбор схемы каталога – nis.shema – либо более прогрессивная rfc2703bis.schema, но без использования smbldap-tools. Для простоты был выбран вариант с использованием smbldap-tools.


При установленном samba-doc элементы пакета smbldap-tools находим в папке /usr/share/doc/packages/samba/examples/LDAP/smbldap-tools-0.9.2, вероятно, их можно использовать, но по ряду причин мне показалось целесообразным использовать свежую версию пакета, которую можно найти на http://opensuse.org.


Версии smbldap-tools могут несколько отличаться, в том числе по порядку установки. В варианте 0.9.4-3.2 имеются зависимости - 3 компоненты Perl, это rpm-пакет perl-Jcode-2.06-5.1.noarch.rpm и пакеты в исходных текстах Unicode-Map-0.112.tar.gz и Unicode-MapUTF8-1.11.tar.gz.


RPM-пакет найден поиском в Google, тарболы нашлись с помощью http://search.cpan.org.


Конфигурируем сетевую карту для внутренней зоны, IP-адрес статический. Открываем в брэндмауэре серверы LDAP, samba, dns, а также те порты, что могут быть необходимы в нашей конфигурации. Настроим сервер DNS.


Шаг2. Установка smbldap-tools.


Устанавливаем perl-Jcode:


#rpm -Uvh perl-Jcode-2.06-5.1.noarch.rpm


Распаковываем вышеуказанные пакеты Unicode-*.tar.gz в /usr/src/packages/sources, в раздельные каталоги и далее поступаем согласно документу INSTALL, где указано, что сборка и установка заключается в последовательном выполнении четырех команд:


#perl Makefile.PL

#make

#make test ;-соответственно проследим, нет ли ошибок,

#make install


При установке из исходных текстов в базе RPM сведений о пакетах не будет, поэтому при


#rpm -Uvi smbldap-tools-0.9.4-3.2.noarch.rpm


получим ответ:


error: Failed dependencies:

perl(Unicode::Map) is needed by smbldap-tools

perl(Unicode::MapUTF8) is needed by smbldap-tools


Важно убедиться, что RPM не затребовал еще каких-нибудь зависимостей. Если
нет, то повторяем установку с опцией --nodeps:


#rpm -Uvi --nodeps smbldap-tools-0.9.4-3.2.noarch.rpm


Чистим каталог …/sources/… по завершении установки пакетов.


Шаг3. Настройка SSL.


Корректируем /etc/ssl/openssl.conf – сведения о организации – чтобы меньше заполнять впоследствии при формировании подчиненных сертификатов. Правда, при создании корневого сертификата (СА) придется их все же один раз набрать. В YaST «пользователи и безопасность - управление СА» создадим корневой сертификат. Указываем необходимые опции - страну, город, срок действия сертификата. В том числе нужно определить общее имя (common name) как имя машины, на которой и в дальнейшем будет запускаться Центр сертификации. В закладке «дополнительные параметры – Key Usage» отметим опцию «digital Signature»:




Готовим сертификат для сети учебного учреждения


Указываем пароль, и отрабатываем «далее» - до закрытия вкладки. Корневой сертификат будет сформирован. При повторном открытии того же инструмента требуется выделить CA в дереве CA tree, и нажать клавишу «Enter CA», после чего будет предложено набрать пароль корневого сертификата. В открывшейся форме, перейдя во вкладку «Сертификаты» формируем сертификат для компьютера, на котором развернем PDC («добавить – добавить сертификат сервера»). Общее имя сертификата должно соответствовать полному имени сервера, переименовывать потом машину – обладатель сертификата будет нежелательно. Сертификат сохраняем в файл, выбрав клавишу «Экспорт» например, /root/docs/security/asles.p12, причем в формате «как PKCS12 и включая СА цепочку» (и закрыт паролем). На будущем PDC используя вкладку YaST «пользователи и безопасность - общий сертификат сервера» импортируем asles.p12 из файла.


Примечания:



  1. Те же результаты могут быть достигнуты средствами командной строки.

  2. Возможности получения CA, подписанного авторитетным центром сертификации рассмотрены в работе Ивана Максимова [8].


Шаг4 . Запуск LDAP.


Открываем вкладку YaST «сетевые службы - сервер LDAP - настройка - общие настройки - файлы схем». Установим опцию автозапуска сервера при загрузке. Добавляем или проверяем наличие схем - core.schema, cosine.schema, nis.schema, inetorgperson.schema, misc.schema, samba3.schema, yast.schema, ppolicy.schema. Последняя – только по причине того, что она есть в данном дистрибутиве, - отчего бы не использовать.


Перейдем на вкладку «базы данных - добавить базу данных», создаем базу, dn базы, например, dc=bgiki,dc=edu, dc=ru, далее dn корневого объекта - dn=Administrator,dc=bgiki,dc=edu,dc=ru, строкой ниже задаем ему пароль. Выбрав клавишу «Принять» сохраним созданную корневую конфигурацию LDAP. Снова включаем YaST «сетевые службы- сервер LDAP - конфигурирование – общие настройки - TLS настройки - TLS Активация» - выбираем «Да» в ее настройках. Для TLS-шифрования нужен ключ и сертификат к нему, поэтому выбираем в той же вкладке опцию «Выбрать сертификат» - настраиваем на использование общего сертификата сервера. YaST сформирует эти файлы и поместит их:



  • корневой сертификат: /etc/ssl/certs/YaST-CA.pem

  • сертификат сервера LDAP: /etc/ssl/servercerts/servercert.pem

  • ключ сервера LDAP: /etc/ssl/servercerts/serverkey.pem


Запустим демон LDAP:


#rcldap start


и по выводу сообщения «done» убедимся, что он запущен.


Открываем вкладкуYaST «сетевые службы - клиент LDAP» и устанавливаем подключение к нашему серверу:




Настройка клиента LDAP в графической форме


В закладке «дополнительная настройка - настройки администратора» впишем (или проверим наличие) DN администратора LDAP. В этой же закладке указываем опцию «Создать конфигурационные объекты по умолчанию», в результате будет создан контейнер LDAP «ou=ldapconfig,dc=…». В закладке «настройки клиента» проверим контекст именования:



  • отражение пользователя(user map) ou=people,…

  • отражение пароля (password map) ou=people,…

  • отражение группы (group map) ou=group,…


Клавишей «принять» сохраняем конфигурацию клиента. При открытии инструмента «сервер LDAP» настраиваем политику паролей (добавить политику – место хранения – в контейнере ou=ldapconfig…) и определяем срок действия пароля в днях, таймаут блокировки при заданном количестве ошибок набора пароля и другие. Скажу сразу, что объект политики в каталоге не виден, но соответствующая строка в slapd.conf появится.


Открываем вкладкуYaST «сетевые серверы - Обозреватель LDAP», проверяем открытие каталога.


Создаем файл /etc/ldap.secret, и вносим в него пароль корневой учетной записи базы cn=Administrator,dc=bgiki,dc=edu,dc=ru:


#echo "пароль" > /etc/ldap.secret


Тестируем созданное:


#rcldap restart ;-перезапуск ldap

#ps aux | grep slapd ;-вернет сведения о запущенном демоне

#netstat -nap | grep slapd ;-вернет информацию о готовности к соединению демона slapd, нас интересует факт открытия tcp-порта 389 из источников 0.0.0.0 и 127.0.0.1 с докладом «LISTEN».


Наличие графических инструментов не отменяет необходимости чтения системных руководств, например:


#man slapd.conf


Вышеуказанные конфигурации текстуально отображены в скриптах /etc/openldap/slapd.conf – сервера LDAP и /etc/ldap.conf – клиента LDAP. Приведем наиболее существенные строки из их содержания.


slapd.conf:


pidfile /var/run/slapd/slapd.pid

argsfile /var/run/slapd/slapd.args

# ссылка на динамические модули:

modulepath /usr/lib/openldap/modules

#Начальные настройки доступа к каталогу

access to attrs=SambaLMPassword,SambaNTPassword

by dn="cn=Administrator,dc=bgiki,dc=edu,dc=ru" write

#; by dn="cn=root,ou=People,dc=bgiki,dc=edu,dc=ru" write

#; by dn="cn=proxyuser,ou=People,dc=bgiki,dc=edu,dc=ru" read

by * none

## Yast2 samba hack ACL done

access to dn.base=""

by * read



access to dn.base="cn=Subschema"

by * read



access to attrs=userPassword,userPKCS12

by self write

by * auth



access to attrs=shadowLastChange

by self write

by * read



access to *

by * read

###########################################################

# BDB database definitions – определения базы данных

###########################################################

loglevel 0 #может быть до 10, если нужно

TLSCipherSuite :SSLv3

#переименовал YaST-CA.pem, это необязательное действие

TLSCACertificateFile /etc/ssl/certs/CA.pem

TLSCertificateFile /etc/ssl/servercerts/servercert.pem

TLSCertificateKeyFile /etc/ssl/servercerts/serverkey.pem

database bdb

suffix "dc=bgiki,dc=edu,dc=ru"

rootdn "cn=Administrator,dc=bgiki,dc=edu,dc=ru"

#;rootdn "cn=root,ou=People,dc=bgiki,dc=edu,dc=ru"

rootpw "{ssha}хеш сгенерируется автоматически при настройке сервера"

directory /var/lib/ldap/

checkpoint 1024 5

cachesize 10000

#параметры поиска объектов в какталоге

index objectClass,uidNumber,gidNumber eq

index member,mail eq,pres

index cn,displayname,uid,sn,givenname sub,eq,pres

index sambaSID eq

index sambaPrimaryGroupSID eq

index sambaDomainName eq

#

overlay ppolicy

ppolicy_default "cn=Default Policy,ou=ldapconfig,dc=bgiki,dc=edu,dc=ru"



ldap.conf:

#URL хоста,-не IP-адрес, потому что работает с сертификатом

host asles.bgiki.local

base dc=bgiki,dc=edu,dc=ru

uri ldap://127.0.0.1/

#uri ldaps://127.0.0.1/ #сможем включить позднее

#uri ldapi://%2fvar%2frun%2fldapi_sock/

ldap_version 3

#;binddn cn=proxyuser,ou=People,dc=bgiki,dc=edu,dc=ru

#;bindpw пароль проксиюзера открытым текстом наберем позднее



# Password is stored in /etc/ldap.secret

rootbinddn cn=Administrator,dc=bgiki,dc=edu,dc=ru

#;rootbinddn cn=root,ou=People,dc=bgiki,dc=edu,dc=ru

port 389

#без этих таймлимитов возникают ошибки nss_ldap, с ними тоже, но реже

timelimit 30

bind_timelimit 30



# Reconnect policy и прочие policy,

bind_policy soft

nss_connect_policy persist

idle_timelimit 3600

nss_paged_results yes

pagesize 1000



# Filter to AND with uid=%s

pam_filter objectclass=account

pam_login_attribute uid



# диапазон разрешенных UID

pam_min_uid 1000

pam_max_uid 60000



pam_password exop



nss_initgroups_ignoreusers root,ldap



# Enable support for RFC2307bis (distinguished . . .

#nss_schema rfc2307bis – и все же когда-нибудь мы это включим...



# NDS mappings

nss_map_attribute uniqueMember member



# OpenLDAP SSL mechanism – пока это главное

ssl start_tls

pam_filter objectclass=posixAccount

#следующие три строки сгенерируются при соответствующей настройке

#клиента LDAP, а в конечном варианте ?one ограничивает глубину запроса:

nss_base_passwd ou=People,dc=bgiki,dc=edu,dc=ru?one

nss_base_shadow ou=People,dc=bgiki,dc=edu,dc=ru?one

nss_base_group ou=Group,dc=bgiki,dc=edu,dc=ru?one

#позволяет работать с самоподписанным сертификатом:

tls_checkpeer no

#ssl on

# OpenLDAP SSL options

# Пока нас устраивает только start_tls, SSL в чистом виде не включаем,

# следовательно ниже закомментировано

#tls_checkpeer yes

# CA certificates for server certificate verification

# At least one of these are required if tls_checkpeer is "yes"

#tls_cacertfile /etc/ssl/CA.pem

#tls_cacertdir /etc/ssl/certs



# Seed the PRNG if /dev/urandom is not provided

#tls_randfile /var/run/egd-pool



# Client certificate and key. Пока задействуем уже созданную

# ключевую пару, скопировав ее в папку /etc/ssl/ldap/:

tls_cert /etc/ssl/ldap/servercert.pem

tls_key /etc/ssl/ldap/serverkey.pem


Конфигурационный файл, где указан порядок поиска учетных записей - nsswitch.conf:


passwd: compat #в соответствии с определением passwd_compat

shadow: files #теневые пароли – см. [4]

group: files ldap

hosts: files mdns4_minimal [NOTFOUND=return] dns

networks: files dns

services: files ldap

protocols: files

rpc: files

ethers: files

netmasks: files

netgroup: files ldap

publickey: files

bootparams: files

automount: files nis

aliases: files ldap

passwd_compat: ldap


Шаг5. Запуск Samba - сервера.


Открываем вкладку YaST «сетевые службы - сервер Samba», во вкладке «загрузка» установим опцию автозапуска сервера, во вкладке «общие ресурсы» проверим наличие netlogon, во вкладке «идентификация» установим имя домена и роль контроллера – PDC. Там же перейдем в «дополнительные настройки-способ идентификации пользователя» и выставим параметр LDAP и значение – ldap://127.0.0.1. Настройки сохранятся при закрытии инструмента, при этом будет предложено набрать пароль администратора samba-сервера.


После завершения работы в графической утилите используем текстовый редактор для правки секции глобальных настроек файла smb.conf:


[global]

workgroup = BGIKI

server string = BGIKI_PDC

map to guest = Bad User

security = user

domain logons = Yes

domain master = Yes

logon path = ""

logon home = ""

os level = 255

preferred master = Yes

# пока разрешаем заходить только из нашей сетки

hosts allow = 10.31.99. 127.0.0.

# так как нет другого wins, включим свой:

wins support = yes

log level = 1

log file = /var/log/samba/log.%m

max log size = 100000

socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192



# опции для LDAP

passdb backend = ldapsam:ldap://127.0.0.1/

ldap admin dn = cn=Administrator,dc=bgiki,dc=edu,dc=ru

#;ldap admin dn = cn=root,ou=People,dc=bgiki,dc=edu,dc=ru

ldap suffix = dc=bgiki,dc=edu,dc=ru

ldap group suffix = ou=Group

ldap idmap suffix = ou=Idmap

ldap machine suffix = ou=Computers

ldap user suffix = ou=People

ldap passwd sync = Yes

ldap ssl = Start_tls

ldap timeout = 15

ldap delete dn = No

#manage users from Win tools

add machine script = /usr/sbin/smbldap-useradd -a -w "%u"

add user script = /usr/sbin/smbldap-useradd -a -m "%u"

delete user script = /usr/sbin/smbldap-userdel "%u"

add group script = /usr/sbin/smbldap-groupadd -p "%g"

delete group script = /usr/sbin/smbldap-groupdel "%g"

add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g"

delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g"

set primary group script = /usr/sbin/smbldap-usermod -g '%g' '%u'


Добавим пароль корневой записи администратора ldap в samba:


#smbpasswd -wЕгоПароль


Проверяем конфигурационный файл smb.conf с помощью команды testparm и
перезапустим демон:


#rcsmb restart


проверим, какие порты прослушивает smbd:


#netstat -nap | grep smbd


проверим доступность ресурсов samba:


#smbclient -L localhost –U administrator


вернет информацию о доступных ресурсах samba (если ошибка – ставим log level
= 2 и читаем сообщения из /var/logs/).


Шаг 6. Подготовка конфигурационных файлов smbldap-tools.


Сертификаты, сформированные для LDAP-TLS временно используем и для
smbldap-tools. Для этого из папки /etc/ssl/servercerts файлы servercert.pem и
serverkey.pem копируем в /etc/smbldap-tools. Попытки использовать указанные
server*.pem из общего каталога совместно smbldap-tools и slapd к успеху не
привели, поэтому и используются те же сертификаты, но для smbldap-tools они
будут использоваться из отдельного каталога.


Получим SID домена:


#net getlocalsid – вернет SID домена


Используем файл configure.pl. Для этого его из /usr/share/doc/packages/smbldap-tools
копируем в /usr/sbin - и запускаем. На консоль будут выводиться вопросы и в
большинстве пунктов значение параметра по умолчанию - если мы согласны с этим
значением, то просто нажимаем "Enter". В результате сформируются
конфигурационные файлы в каталоге /etc/smbldap-tools. Проверяем текст
smbldap.conf и smbldap_bind.conf, при этом:



  • SID домена должен соответствовать выводу команды net getlocalsid

  • Slave и Master LDAP server - это один и тот же наш сервер, его IP- адрес
    127.0.0.1


ldapTLS="1" -потому что мы TLS уже включили,

cafile="/etc/ssl/certs/CA.pem",

clientcert="/etc/smbldap-tools/servercert.pem"

clientkey="/etc/smbldap-tools/serverkey.pem"

suffix="dc=bgiki,dc=edu,dc=ru"

#dn, где мы собираемся учитывать компьютеры, группы, пользователей:

usersdn="ou=People,${suffix}"

computersdn="ou=Computers,${suffix}"

groupsdn="ou=Group,${suffix}"

idmapdn="ou=Idmap,${suffix}",

#Размещение счетчика UID/GID:

sambaUnixIdPooldn="sambaDomainName=BGIKI,${suffix}"

# Алгоритм шифрования:

hash_encrypt="SSHA"

#Опция, повышающая криптостойкость хеша – в просторечии «соль»

crypt_salt_format="%s"



#Настройки шаблонов – например, простейшие:

userSmbHome="".""

userProfile="".""

userHomeDrive="''"

userScript=""


И последнее – в файле smbldap-bind.conf будет текущий пароль администратора каталога для ведомого и ведущего сервера, и так как у нас это один и тот же сервер – то и повторится он дважды, в формате plain-text.


Теперь используя YaST нужно создать Posix-группы для домена, с корректировкой GID - ntadmins gid=512, mashines gid=515, ntguests gid=514, ntusers gid=513.


Примечание: posix-группы «nt*» и «mashines» будут «привязываться» (mapping) к созданным в каталоге LDAP объектам домена. Известно, что у Windows – группы имеется SID (идентификатор Microsoft), этот SID в целях эмуляции контроллера Windows “привязывается” к posix-группе командой net groupmap add. При определении gid posix-группам со значением по умолчанию у меня как раз и не получалось исполнить этот mapping – пока не вписал posix gid равным последним трем цифрам windows- классификатора, как и указано выше, в результате привязка упростилась.


Шаг7. Заполнение каталога openldap.


Выполняем команду из комплекта smbldap-tools:


#smbldap-populate


Далее увидим список созданных объектов, в завершение утилита предложит сформировать пароль нового администратора домена (его dn: cn=root,ou=People.. и т.д.).


Примечание: Если что-либо не выходит, чаще всего ошибка заключается в настройках TLS.


Проверив привязку групп, убедимся, что mapping получился автоматически:


#net groupmap list

Domain Admins (S-1-5-21-. . .111-512) -> ntadmins


и т.д.


Даём группе Domain Admins необходимые права:


#net rpc rights grant

"Domain Admins"

SeMachineAccountPrivilege

SeTakeOwnershipPrivilege

SeBackupPrivilege

SeRestorePrivilege

SeRemoteShutdownPrivilege

SePrintOperatorPrivilege

SeAddUsersPrivilege

SeDiskOperatorPrivilege -Uroot


Используя YaST, создаем posix-пользователя с именем - для примера - adminchik, проверяем, что ему присвоен uidNumber 1000 , включаем его в posix-группу ntadmins и в командной строке создаем для него учетную запись samba:


#smbldap-useradd -m "adminchik"


С этой учетной записью сможем выполнять административный вход на клиентские машины. Cоздадим posix – запись контроллера домена, имя заканчивается знаком $.


#adduser -n -g machines -d /dev/null -s /bin/false asles$


Добавим контроллер в домен:


#net join


запросит пароль администратора.


Производим конфигурирование модулей pam последовательно двумя вызовами команды pam-config:


#pam-config -a --unix2

#pam-config -a --ldap


после чего утилитой YaST "система - управление службами" включим amsmbd.
Перезапустим ldap и smbd, проверим:


#getent passwd


вернет список пользователей.


Сформируем хеш для пользователя proxyuser:


# slappasswd -v -s ParolProxyUzera -h {SSHA} –c %s


используем его для параметра userPassword при создании файла proxy.ldif, вот его текст:


dn: cn=proxyuser,ou=people,dc=bgiki,dc=edu,dc=ru

cn: proxyuser

sn: proxyuser

objectclass: top

objectclass: person

userPassword: {SSHA}U0k4II20PybууUwAlDxRееhGW4diAI5+


Модифицируем каталог:


#ldapmodify -a –v -f proxy.ldif -D "cn=administrator,dc=bgiki,dc=edu,dc=ru"
-x –W


В соответствующей ветке каталога появится запись, с помощью которой схема авторизации будет читать пароли. У нас появится возможность не указывать пароль администратора каталога простым текстом в файле ldap.secret при повседневной работе сервера. К сожалению, эта уязвимость еще остается в smbldap_bind.conf.


Произведем смену администратора LDAP в конфигурации, для этого:


а) Используя YaST «сетевые службы - сервер LDAP - настройка – база данных –…», изменим dn администратора на имя cn=root,ou=People…и введем новый пароль.


б) Правим файл slapd.conf, текстовым редактором в подразделе # Yast2 samba hack ACL — изменим на dn нового администратора, и добавим права proxyuser:


access to attrs=SambaLMPassword,SambaNTPassword

by dn="cn=root,ou=people,dc=bgiki,dc=ru" write

by dn="cn=proxyuser,ou=people,dc=bgiki,dc=ru" read

by * none


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


в) Правим файл ldap.conf:



  • изменим запись rootbinddn

  • раскомментируем строку binddn, где указан proxyuser, не забываем указать
    его пароль строкой ниже.


г) Правим файл smb.conf, где изменим значение ldap admin dn.


Бюджет нового администратора нужно учесть в базе учетных записей samba:


#smbpasswd –wЕго_Пароль


после чего перезапустим smbd и slapd.


д) Правим файл smbldap_bind.conf путем редактирования dn администратора и его пароля.


Создадим posix- учетную запись клиентского компьютера, подключаем его в домен – если операционная система Windows, то так же, как в домене Microsoft, с учетной записью «root». И для компьютеров и для пользователей требуется создавать posix-учетные записи, после чего можно заполнять данные в samba. С клиентской машины посредством утилиты Usrmgr.exe производства Microsoft (из дистрибутива NT4.0 –сервера – на сайте производителя тоже есть) администрируем учетные записи samba.


Создадим группу для последующего допуска к некоторому ограниченному ресурсу. Для этого сначала создадим posix-группу:


#groupadd konsplususers


Или выполним ту же процедуру инструментом YaST.


Создадим группу в samba:


#smbldap-groupadd -p konsplususers


используя YaST убедимся, что gid в перечне ldap и posix совпадают, если нужно, поправим.


Другой способ – создадим группу в каталоге ldap, запросит пароль администратора


#net rpc group add konsplususers

Password:


и свяжем ее с заранее созданной posix-группой


#net groupmap add rid=1003 ntgroup="konsplususers" unixgroup=konsplususers

Unix group konsplususers already mapped

to SID S-1-5-21-147838798-37688190-2313965735-1097


Добавим posix-пользователя в созданную posix-группу, создадим его бюджет в сервере samba, и уже в файл-сервере он получит права на предоставленный группе ресурс – чего и добивались.


Если это получилось, значит, еще один боец IT-фронта готов к выходу из под пресса монополистов проприетарного ПО.


Теперь самым насущным делом становится укрепление защищенности сервера, резервное копирование, развертывание на POSIX-платформе файл-сервера и почтового сервера, конечная цель - система управления учреждением на базе Open Source.


Литература:


1. Григорьев Михаил Настраиваем OpenLDAP сервер и клиент с поддержкой SSL.

Date: Tue, 19 Apr 2005

http://www.unixdoc.ru/print.php?print_id=123


2. Vsevolod Stakhov <cebka[at]jet[dot]msk[dot]su>

Настройка OpenLDAP и его взаимодействиия с сетевыми сервисами. Date: Mon, 5 Dec
2005 Оригинал:
http://cebka.pp.ru/my/openldap.txt
. Статья впервые опубликована в журнале "Системный Администратор".


3. From: CoderInside <coder@linuxportal.vrn.ru.>Date: Mon, 24 Apr 2007
Subject: SAMBA PDC - установка, настройка, управление (Slackware) Оригинал: Воронежский Linux портал.


4. Алексей Барабанов <alekseybb at mail dot ru>. Размещение пользовательских бюджетов в LDAP. Москва, октябрь-декабрь 2006.


5. Настройка OpenLDAP и его клиентов.

http://www.freesource.info/wiki/ALTLinux/Dokumentacija/OpenLDAP


6. Настройка Samba 3 (PDC) с пользователями в LDAP каталоге.

From: Crux Date: Mon, 20 Sep 2004 Оригинал:

http://www.unix.nordcomp.ru/articles.html?page=2&id=17


7. OpenLDAP и TLS/SSL,

http://www.freesource.info/wiki/ALTLinux/Dokumentacija/OpenLDAP/TLS


8. Иван Максимов. Организуем сетевой календарь в корпоративной среде. Журнал "Системный Администратор" №2- 2008 год.


Читать дальше.

суббота, 7 июня 2008 г.

Акция "Эксклюзивные RSS-иконки для всех и каждого!"

Эксклюзивные RSS-иконки!

Наткнулся тут в сети на очень любопытную акцию: дизайнер Миша 'Designfreak' Квакин сделает эксклюзивную иконку для RSS-ленты совершенно бесплатно.

Подробности под катом.


Для этого всего лишь надо:
1) Отписать о желании получить иконку у него в комментах
2) Разместить ссылку на его статью у себя в блоге или на сайте.

Для перехода на его пост, посвященный этой акции, кликните на заголовок моей статьи или сюда.

Вот еще пара картинок:
Эксклюзивные RSS-иконки!
Эксклюзивные RSS-иконки!
Все права на изображения, естественно, принадлежат автору.


Читать дальше.

четверг, 5 июня 2008 г.

Доля Линукс на европейских десктопах достигла 1%!

В исследовании, регулярно проводимом компанией xitimonitor, учитывающей посещаемость 170 тысяч веб-сайтов (по-видимому, западноевропейских), доля Linux составила в среднем 1% за февраль-апрель 2008 (год назад было около 0.75%).

В то же время, согласно другим источникам, доля Linux ниже в России (0.6%) и в США (0.7%); w3counter.com показывает для Linux 2%.

Европа: http://www.xitimonitor.com/en-us/inte...
Европа год назад: http://www.xitimonitor.com/en-us/inte...
Россия: http://gs.spylog.ru/r/?reportId=13&am...
в основном США: http://marketshare.hitslink.com/repor...
http://www.w3counter.com/globalstats.php


Доля Mac - 7.8% ~США, 4% Европа, 0.86% Россия.
Доля BSD (десктоп) - 0.00% ~США, 0.01% Европа, 0.02% Россия.

За последний год доля Windows снизилась на 1.1% (Европа) и на 1.8% (~США).

Автор новости: Linux.org.ru

Читать дальше.

вторник, 3 июня 2008 г.

Цикл "Легализация офиса: нет пиратам, даешь линукс!". Глава 1.

Уважаемые читатели. Информация, излагаемая в этом цикле является абсолютно субъективным опытом и не претендует на академичность. Многое из описанного наверняка можно сделать быстрее/лучше/удачнее (нужное подчеркнуть). Комментируйте, предлагайте свои варианты, спорьте - и вместе мы найдем наилучшее решение. :)

Заранее благодарю авторов всех прочитанных мною статей по данной тематике. Без вас бы у меня ничего не получилось. Конкретных людей и конкретные статьи я буду упоминать по ходу повествования.


Пролог. Затяжная война линукса с нашими системными администраторами.

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

В понимании шефа идеальный офис должен  выглядеть так:
9 машин:

  • 1 сервер (файловый+контроллер домена+ежик из 1С'овских ключей)
  • 1 SQL сервер 1С:Предприятия 8.1 Управление Производственным Предприятием
  • 1 интернет-шлюз
  • 6 рабочих станций (офис+почтовый клиент+интернет через биллинг+1С:Предприятие различных версий и конфигураций+индивидуальныепрограммы)
Только две машины - рабстанции должны иметь на своем борту Windows. Остальные, включая сервер и шлюз - линукс.

Максимальное, чего удалось добиться предыдущим сисадминам - по две системы (линукс+ХР) на каждой рабочей станции, причем линуксовые системы даже не были введены в домен. Причин неудачи своих предшественников я не знаю - может недостаточное знание предмета, может элементарная лень. Сейчас уже не разберешься.

Зачем я сейчас веду эти записи?
  • Чтобы четко спланировать сроки и последовательность работ.

  • Чтобы определиться с конкретными программными решениями.

  • Чтобы обсудить содержание и возможные варианты реализации работ с разбирающимися людьми.

    Глава 1. Исходное расположение сил.


    Ситуация на 3.06.2008.

    Итак, на данный момент в офисе имеется:

    • Файловый сервер/Контроллер домена-нелицензионныйWindows 2003 Enterprise Server,который еле-еле стоит на ногах. Он же выполняет роль интернет-шлюза.

    • 6 рабочих станций с пиратской ХР на борту

    • УППшный SQL сервер на ASP Linux 11.2 - вроде вполне живой

    • Дитя моих тренировок - машина с CentOS 5, включенная в домен. На этой машине я тренировался в установке, настройке и обновлении сервера 1С:Предприятия и сервера баз данных.

  • После проведения легализации, компьютерная начинка офиса должна приобрести приблизительно такой вид:
  • Файловый сервер/Контроллер домена - CentOS

  • Интернет-шлюз - CentOS (не факт...)

  • Сервер УПП - ASP Linux/CentOS

  • Рабочие станции линукс - CentOS/Debian (может еще чего...)

  • Рабочие станции windows - MS Windows XP Professional/Home (смотря сколько денег начальство выделит)

  • Почтовый клиент - Mozilla Thunderbird (кроссплатформенно+вполне удобно)

  • Офисный пакет - OpenOffice (линукс) + MS Office (windows). Не думаю, что буду использовать OpenOffice под виндами.

  • Антивирус - Касперский (windows). Под линуксом я не вижу в антивирусе особого смысла.

  • С биллинговой системой я пока не решил. В данный момент фирма использует Lan2Net, но он не кросплатформенный, хотя под wine идет прекрасно. В крайнем случае можно использовать и его.

    Этапы выполнения работ.
    1) Доводка машины с CentOS до состояния полноценной рабочей станции. Установка 1С, почтового клиента, биллинговой службы. Постепенное обучение персонала работе под линуксом, устранение недоработок, неизбежно всплывающих в процессе обучения.

    2) Перевод еще 1-2 рабочих станций на линукс. Скорее всего, эксперименты с различными дистрибутивами вышеназванной системы.

    3) Перевод сервера на линукс. Апробирование различных биллинговых систем. Функция шлюза остается пока висеть на сервере.

    4) Легализация оставшихся рабочих станций. Офис начинает работать в полноценном режиме и следуя букве закона.

    5) Установка интернет-шлюза - файрвол, брандмауэр и прочее-прочее-прочее... Защищаемся от угроз извне.

    6) Торжественная сдача работ. Все рады и пьют пиво. :) 

    Анонс.
    Глава 2. Линукс. Эксперименты над отдельно взятой рабстанцией.
    В следующей главе я расскажу:

  • как настроить линуксовую машину для работы в домене с контроллером под windows

  • установка и настройка PostgreSQL сервера и серверной части 1С под линукс

  • основные заморочки с установкой различных приложений под линукс
    Читать дальше.

  •