В связи с различными пертурбациями этот сервер от нас уезжает в регион, взамен него купили сервер - SuperMicro, на который планировалось поставить линукс и плавно перенести туда все функции.
Скажу честно, лучше всего с его RAID-массивом справился Ubuntu Server 9.04, поэтому он и был выбран в качестве основной ОС. Что бы там ни говорили про несовместимость Webmin и Ubuntu, я на него решительно поставил Webmin. Зачем? Элементарно - администрировать его не мне одному, адекватных спецов по Линуксу кроме меня нет, и чтобы по ночам не будили с глупыми вопросами для бытовых нужд и ставился Webmin. В конечном итоге все равно все конфигурировать руками пришлось. А вот наглядно поработать с пользователями и группами удобнее все же через веб-консоль.
На Ubuntu в ходе всех плясок был предустановлен следующий софт: Apache+MySQL+PHP для веб, Samba (практически все доступные потроха от нее, обязательно с winbind и kerberos 5), ProFTPD и SSH сервер (само собой).
Причем ProFTPD на стандартном компакт-диске не идет, его надо будет тянуть с инета.
Поскольку LAMP под Ubuntu настраивается довольно тривиально, я писать про это не буду.
Интернет для обновлений сервера у меня идет через прокси, поэтому первым делом после установки сервера чтобы работал apt-get через прокси создаем файл proxy в папке командой
sudo touch /etc/apt/apt.conf.d/proxy
внутри которого пишем одну единственную строку:
Acquire::http::Proxy "http://10.115.1.250:3128";
(конечно же, подставляем свой айпи и свой порт вместо моих). Не забываем учитывать большие и маленькие буквы и не забываем точку с запятой в конце.
Следующим шагом (да, я сентиментален) делаем
sudo apt-get update
чтобы получить с сервера список пакетов
sudo apt-get install mc
и установить Midnight commander. Конечно, кому-то он нахрен не нужен, но я настоятельно рекомендую его новичкам, чтобы они понимали, что делают и визуально хотя бы приблизительно запоминали пути и файлы.
Кстати, еще один плюс Midnight Commander'а в том, что его можно запустить командой
sudo mc
и совершенно не парясь получить как рутовый доступ к файлам через панельки, так и рутовую консоль (Ctrl+O работает идеально), без необходимости повторно подтверждать пароль после некоторого простоя. В дальнейшем я писать слово sudo не буду, подразумевая, что все команды должны выполняться с правами суперпользователя, через консоль mc.
Кстати, если вы работаете через putty то (во избежания мусора на экране) слева в пункте меню Translation выберите в выпадающем списке вместо KOI8-R привычный для убунты UTF-8.
Следующим шагом добавляем пару необходимых репозиториев - для этого редактируем файл
/etc/apt/sources.list
и вносим в него две строки:
deb http://download.webmin.com/download/repository sarge contrib
- правильно, это webmin, после чего сохраняем файл и выполняем команды
apt-get install webmin
конечно же, соглашаясь и нажимая "да" везде, где потребуется. Одновременно с этим ставим Иксы, если надо, и простенький менеджер окон:
apt-get install xorg blackbox
чтобы blackbox запускался автоматически по команде
xinit
делаем следующее: в папке своего пользователя (того единственного, которого Вы завели когда ставили систему), например, /home/iamuser создаем соответствующий rc-файл
touch /home/iamuser/.xinitrc
да, с точкой впереди. В этом файле пишем строку:
exec blackbox
и сохраняем. Теперь для того, чтобы запустить иксы, надо будет лишь набрать xinit и все. Кстати, включать их лишний раз не рекомендую - они нужны лишь для того, чтобы наглядно управлять виртуальной машиной на стадии установки-настройки, дабы сильно не заморачиваться с командной строкой.
Но это все была лирика. Теперь - самое главное и страшное: надо настроить Samba таким образом, чтобы она принимала всю регистрационную информацию с виндового контроллера домена. Честно говоря, настраивать самбу через вебмин - ну, разве что кроме создания расшаренных ресурсов - это извращение. Вручную редактируем файлы и сразу пишем туда всю необходимую информацию. Объясню подробно на своих конфигах:
/etc/samba/smb.conf
[global]
log file = /var/log/samba/log.%m #файл лога
restrict anonymous = 2
idmap gid = 10000-20000
socket options = TCP_NODELAY
client use spnego = no
null passwords = yes
encrypt passwords = yes
realm = SIBRC.MCHS.RU #домен, в котором мы будем регистрироваться
template shell = /bin/bash
dns proxy = no
netbios name = SERV2 #netbios имя этого сервера
idmap uid = 10000-20000
password server = 10.115.1.100 #адрес сервера, на котором будут проверяться пароли
path = /home #базовый путь к домашней папке
template homedir = /home/%D/%U #формат шаблона для автоматического создания папок
workgroup = VSRC #netbios-название домена
os level = 20
security = ads
syslog = 0
usershare allow guests = yes
max log size = 1000
[parus] #шара бухгалтеров, туда смогут писать и читать только они
writeable = yes
user = @VSRC\obu #на самом деле это не пользователь, это ГРУППА
only user = yes
write list = @VSRC\obu #на самом деле это тоже группа
path = /home/parus
[ftproot] #это путь к корню ftp, для внутреннего пользования, общедоступен
writeable = yes
public = yes
path = /home/ftp
На этом с самбой вроде все. Но на самом деле для того, чтобы это все заработало, надо еше настроить kerberos. Поэтому второй конфиг, который мы правим -
/etc/krb5.conf
В нем у меня дословно следующее:
[logging]
default = FILE:/var/log/krb5.log
[libdefaults]
default_realm = SIBRC.MCHS.RU #Большими буквами пишем свой домен
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24000
clock_skew=150
[realms] #Здесь мы его еще раз описываем
SIBRC.MCHS.RU = {
default_domain = SIBRC.MCHS.RU #Большими буквами пишем свой домен
kdc = dc.sibrc.mchs.ru #полное название контроллера домена
admin_server = 10.115.1.100 #айпи адрес контроллера домена
}
[domain_realm] #Тут тавтология какая-то, но без нее не работает:
.SIBRC.MCHS.RU = SIBRC.MCHS.RU
SIBRC.MCHS.RU = SIBRC.MCHS.RU
После этого перезагружаем все запчасти строкой
/etc/init.d/winbind stop && /etc/init.d/samba restart && /etc/init.d/winbind start
Проверяем/обновляем радости кербероса следующей последовательностью команд:
kinit winadmin
(winadmin - имя администратора домена)
Он запросит пароль для авторизации на вашем контроллере домена. Вводите, и все ок.
После этого самый трогательный момент (на этом месте у многих не получается что-то - в основном из-за лишних строк в конфигах) - включение нашего сервера в домен винды:
net ads join -u webadmin
Он опять запросит пароль - дайте - и если он не написал что-то про неверную роль сервера, то полдела сделано!
Запрашиваем списки пользователей и групп контроллера домена windows командами
wbinfo -u
wbinfo -g
- он вывалит на экран все группы и всех пользователей. Чувствуете радость? Правильно :)
Теперь еще несколько конфигов перед началом работы (обычно меняются только пара строк, остальное остается нетронутым, что поменялось - я выделил в комментарии):
/etc/nsswitch.conf
passwd: compat winbind #тут должно быть так
group: compat winbind #тут должно быть так
shadow: compat
hosts: files dns
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
/etc/pam.d/common-account
добавляем строку
account sufficient pam_winbind.so
/etc/pam.d/common-auth
добавляем строки
auth sufficient pam_winbind.so
auth sufficient pam_unix.so nullock_secure use_first_pass
auth required pam_deny.so
/etc/pam.d/common-session
добавляем строку
session required pam_mkhomedir.so umask=0022 skel=/etc/skel
/etc/pam.d/sudo
добавляем строки
auth sufficient pam_winbind.so
auth sufficient pam_unix.so use_first_pass
auth required pam_deny.so
В общем-то и все.
Еще раз делаем
/etc/init.d/winbind stop && /etc/init.d/samba restart && /etc/init.d/winbind start
и у нас все должно работать! :)
Конечно же, следите за тем, чтобы все папки, указанные в конфигах, существовали. Кстати, создайте папку с нетбиос-именен домена в домашней папке, которая указана в конфиге самбы.
В моем случае это папка
/home/VSRC
Откровенно говоря, не факт, что она ему понадобится, но быть должна.
Следующий трудный момент - настройка ProFTP
Для начала установим его командой
apt-get install proftpd
Надо сказать, что и его НЕ НАДО настраивать через вебмин - замаетесь. Вебмин нужен лишь как руль, а конфигурировать лучше руками.
В случае с Ubuntu ProFTP имеет два файла конфига - основной, /etc/proftpd/proftpd.conf и тот, где по идее должны быть прописаны все виртуальные ftp-сервера - /etc/proftpd/modules.conf
Кстати, перед установкой я настоятельно рекомендую взять вот эти файлы, распаковать архив в какую-нибудь отдельную папочку и выполнить в ней команду
dpkg -i *.deb
Эти файлы содержат необходимые исправления для того, чтобы русские буквы в proftpd отображались корректно.
Итак, мои конфиги (остановился я на принципиальных моментах):
/etc/proftpd/proftpd.conf
Include /etc/proftpd/modules.conf
UseIPv6 off #выключаем адреса IPv6
IdentLookups off
ServerName SERV2 #netbios-имя сервера
ServerType standalone
DeferWelcome off
CharsetLocal UTF-8 #важный момент - кодировка на сервере одна...
CharsetRemote CP1251 #...а пользователю дается другая
MultilineRFC2228 on
DefaultServer on
ShowSymlinks on
TimeoutNoTransfer 600
TimeoutStalled 600
TimeoutIdle 1200
DisplayLogin welcome.msg
DisplayChdir .message true
ListOptions "-l"
DenyFilter \*.*/
Port 21
MaxInstances 30
User proftpd #пользователь по умолчанию
Group serv2 #группа по умолчанию
Umask 022 022
AllowOverwrite on
TransferLog /var/log/proftpd/xferlog
SystemLog /var/log/proftpd/proftpd.log
QuotaEngine off
Ratios off
DelayEngine on
ControlsEngine off
ControlsMaxClients 2
ControlsLog /var/log/proftpd/controls.log
ControlsInterval 5
ControlsSocket /var/run/proftpd/proftpd.sock
AdminControlsEngine off
Вносите свои изменения, и можно использовать этот конфиг.
Второй же содержит информацию об открытых папках, я особо модули не отключал, просто дописал в конце свои строки, где подробно об анонимном пользователе ftp:
/etc/proftpd/modules.conf
ModulePath /usr/lib/proftpd
ModuleControlsACLs insmod,rmmod allow user root
ModuleControlsACLs lsmod allow user *
LoadModule mod_ctrls_admin.c
LoadModule mod_tls.c
LoadModule mod_quotatab.c
LoadModule mod_quotatab_file.c
LoadModule mod_wrap.c
LoadModule mod_load.c
LoadModule mod_ban.c
LoadModule mod_wrap2.c
LoadModule mod_wrap2_file.c
LoadModule mod_dynmasq.c
LoadModule mod_ifsession.c
AnonRequirePassword off #не требуем пароль
User anonymous #пользователь в системе, от имени которого будет идти запись
Group VSRC\domain users #группа, от имени которой будет идти запись (заметьте - группа принадлежит контроллеру домена windows)
DisplayLogin welcome.msg
DisplayChdir .message
AllowRetrieveRestart on #разрешаем докачку
MaxClients none #не ограничиваем в количестве подключений - сетка-то локальная
DefaultChdir /home/ftp #тоже надо, корень анонима
LoginPasswordPrompt off #не запрашиваем пароль
AllowAll
AllowOverwrite on
GroupOwner VSRC\domain users
RootLogin off
AuthUsingAlias off
AllowRetrieveRestart on #разрешаем дописывать файлы
AllowStoreRestart on
AllowAll #разрешаем гадить в папке как только ему хочется
AllowOverwrite on
Все. Безумный анонимный доступ готов.
net ads join -U
ОтветитьУдалить