Давным-давно я любил nod32 и Avast. Трудно сказать, чем именно они мне нравились - наверное тем, что они были все такие из себя альтернативные набившим оскомину гигантам.
Но когда пришла беда - сначала в виде Sality а потом в виде Conficker, я резко изменил свое мнение. Теперь у меня другая любовь: Symantec Corporate Edition и Avira Antivir. Касперского я не то, чтобы не уважаю как антивирус - но он не эффективнее симантека, зато в четыре раза жирнее. Доктора Веба я тоже, кстати, люблю, но он дискомфортен в повседневной работе и не все ловит, зато его модуль CureIt! спасал меня неоднократно - только им можно эффективно почистить комп из безопасного режима.
Итак, что меня отвратило от нода и аваста.
Прежде всего хочу заметить, что вирус вирусу рознь, и хотя какой-нибуть там Almanache быть может и лидировал по количеству зараженных по безалаберности, но только Sality и Conficker умудрились поставить на колени наши сервера и оказались чертовски трудны в искоренении, посему эти имена навсегда останутся в моих ночных кошмарах.
Во-первых, сначала пришел вирус Sality. Вирус жестко режет антивирусы, блокирует редактирование реестра и диспетчер задач, еще портит безопасный режим. Вирус не очень трудно поймать, но он очень грамотный и идет с правами system.
Так вот - только авира и симантек могли его поймать ДО того, как он искорежет систему. Нод32 хоть и блокировал дальнейшее распространение заразы, но какая-то особенность движка позволяла вирусу сначала поглумиться над реестром, только потом его резал антивирус. Аваст вообще не замечал присутствие Sality, пока неожиданно сам для себя не умирал.
Второй вирус - кошмар на улице вязов, Conficker. Он же Downadup. Размножается по сети, подбирает пароли, спамит по жизненно важным портам, на зараженной машине организует мини-сервер имени себя. В общем, полная паника. Симантек, красивый симантек смог справиться с ним даже при установке антивируса на уже зараженную машину. Остальные же, если вирус все-таки попадал на винт, открывали безрезультатную войну, стремясь очистить тело вируса и всегда безуспешно, потому что всегда антивирусу чуть-чуть не хватало прав, чтобы победить. Пользователь наблюдал это как жуткие тормоза на своей машине. Опять же, эффективно справлялись только авира и симантек - но не потому, что они круче, просто только эти два антивируса успевали пресечь вирус до того, как он успеет окуклиться с правами system на компе.
Кстати, несколько слов об Avira Antivirus. Это не реклама, просто я его люблю, как админ.
Во-первых, он бесплатный. Для домашнего пользования. Правда, бесплатна только версия на английском языке.
Во-вторых, он легко обновляется из интернета (понимает прокси), а еще (при отключенной защите файлов) его можно обновлять тупо перезаписав четыре файла с антивирусными базами.
В-третьих, он никогда ни с кем не конфликтует. Поставьте его поверх своего любимого антивируса, и увидите своими глазами, кто именно первый перехватит заразу.
Есть, правда, и один злой нюанс в нем - он не умеет лечить файлы, он их удаляет. То есть ставить его на зараженную машину имеет смысл только после того, как она будет пролечена более демократичным но менее эффективным CureIt, иначе все закончится переустановкой системы.
вторник, 24 ноября 2009 г.
понедельник, 23 ноября 2009 г.
RDP/VNC клиенты под иксы
Под свою любимую ubuntu я нашел как минимум три заслуживающих внимания клиента:
1. grdesktop - ориентированный для gnome клиент. Работает только с протоколом rdp, одна копия программы запускает только один сеанс. Умеет идти через SSH туннель, запоминает пароль (где-то у себя), умеет запускать программу после коннекта. Из плюсов то, что достаточно быстр, из минусов - сильно много сообщений о всевозможных мелких ошибках (когда бы не закончил работу - обязательно вылезет какое-нибудь окошко).
1. grdesktop - ориентированный для gnome клиент. Работает только с протоколом rdp, одна копия программы запускает только один сеанс. Умеет идти через SSH туннель, запоминает пароль (где-то у себя), умеет запускать программу после коннекта. Из плюсов то, что достаточно быстр, из минусов - сильно много сообщений о всевозможных мелких ошибках (когда бы не закончил работу - обязательно вылезет какое-нибудь окошко).
2. Krdc - более удобная для админа утилитка. Поддерживает и VNC, и RDP. Главная прелесть в том, что поддерживает несколько сеансов одновременно, открывая их в отдельных вкладках. Очень красивое решение, между прочим. Запоминает пользователей и пароли и хранит их в KWallet, что делает процесс подключения к удаленному столу почти моментальным. Позволяет делать скриншоты удаленных сеансов. Утилита идеальна для админских будней, мне кажется, хотя настроек в ней маловато.
3. grdc - утилита еще более профессиональная, чем предыдущая, написана на GTK+. По организации своей работы очень напоминает remote administrator ранних версий: имеется некое центральное окошко, которое позволяет управлять соединениями, сами же соединения открываются в новых, независимых окнах (эти окна тоже не лишены некоего базового функционала вроде перехода в полноэкранный режим и организации sftp передачи). Соединения могут объединяться для наглядности в группы. Менеджер этот чуден еще тем, что поддерживает все возможные протоколы - RDP, VNC (как исходящие, так и входящие подключения) и SSH. Последнее - удивительно полезная функция, поскольку одновременно с этим поддерживается sftp (а для конкретного соединения с RDP данный менеджер позволяет расшаривать ресурс для обмена файлами). Ну и туннелирование через SSH. В общем, полный фарш. Еще бы поддерживал прокси для своих соединений - вообще бы цены не было этому приложению.
Настройка сети без DHCP
Для того, чтобы настроить сеть на Debian/Ubuntu без участия сервиса DHCP выполняем три простых коман:
1. sudo ifconfig eth0 10.110.9.2 netmask 255.255.255.0 (настраиваем адрес и маску)
2. sudo route add -net 10.110.9.254 netmask 255.255.255.0 dev eth0 (добавляем сетевую карту и адрес, доступный через нее в список маршрутов)
3. sudo route add default gw 10.110.9.254 (устанавливаем маршрут по умолчанию)
1. sudo ifconfig eth0 10.110.9.2 netmask 255.255.255.0 (настраиваем адрес и маску)
2. sudo route add -net 10.110.9.254 netmask 255.255.255.0 dev eth0 (добавляем сетевую карту и адрес, доступный через нее в список маршрутов)
3. sudo route add default gw 10.110.9.254 (устанавливаем маршрут по умолчанию)
воскресенье, 1 ноября 2009 г.
Файловый сервер Ubuntu 9.04 в домене Windows 2003 пошаговое руководство
Исходная ситуация была такая: есть некий сервер, на базе windows 2000 сервер (признаться честно - сомнительной лицензии, скорее всего пиратская), и этот сервер выполняет три основные функции: ftp-сервер (в основном, анонимный), файл-сервер и веб-сервер (простые html-страницы).
В связи с различными пертурбациями этот сервер от нас уезжает в регион, взамен него купили сервер - 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
Все. Безумный анонимный доступ готов.
В связи с различными пертурбациями этот сервер от нас уезжает в регион, взамен него купили сервер - 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
Все. Безумный анонимный доступ готов.
Подписаться на:
Сообщения (Atom)