пятница, 21 января 2011 г.

Домашний сервер - немножко безопасности

Будем считать что с администрированием сервера мы тоже разобрались - сложного ничего нет.
Теперь прошу обратить внимание на следующие моменты.
По умолчанию пользователь который подключился к удаленному рабочему столу имеет право выключить или перезагрузить сервер на залогиневшись в системе. Данная кнопка находится в правом нижнем углу экрана.

Так же вызывает интерес следующий факт - окно приветствия отображает ВСЕХ заведенных пользователей в системе - точнее их логины. По мне это не правильно...

И еще вот что - в нашей текущей конфигурации отсутствует экранная заставка, которая просит пароль как в ОС Windows.
Вы конечно можете возразить - мол какая разница - сервер то домашний. На что я отвечу - хоть и домашний, но сервер.

И так, кому интересно - читаем дальше.

Для решения задачи по несанкционированному выключения сервера и отображения имеющихся пользователей системы необходимо скачать и установить утилиту Ubuntu Tweak

и устанавливаем

sudo dpkg -i '/home/USERNAME/ubuntu-tweak_0.5.10-1_all.deb'

после чего заходим
Applications->system tools->ubuntu tweak

в раздел Startup->login settings

и ставим нужные галки

В итоге при логине машина требует ручного указания логина и пароля, и отсутствует кнопка потушить/перезагрузить сервер.

PS по идее, данная задача решается с помощью смены темы GDM - но в нашей версии разработчик не дает возможности ее заменить.

Теперь про экранную заставку и пароль:

sudo apt-get install gnome-screensaver

System->Preferences->Screensaver

выставляем нужные нам параметры и радуемся результату.

Удаленное администрирование (ssh, vnc, webmin)

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

Один из основных инструментов это конечно же консоль SSH. В качестве клиента рекомендуется использовать программу Putty
Единственное имейте ввиду, если у Вас Ubuntu "переведена" на русский язык, то в консоли могут появляться кракозыбры. Данную проблему легко решить, если в программе сделать следующие настройки
Window->Translation и там поставить кодировку UTF-8

Второй способ это подключение к удаленному рабочему столу с помощью RDP или VNC.
Для реализации данного способа подключения необходимо установить программу Remote Desktop и разрешить с помощью нее подключение к рабочему столу Вашего сервера.
Теперь про RDP - для меня это был бы оптимальный вариант, но проблема в том, что RDP поддерживаемый в Ubuntu имеется на ОС Windows 2000(Prof)/Windows 2003 (XP). В Windows 7 используется новая версия RDP которая с Ubuntu не работает.
По этому наш выбор VNC.
Правда и здесь есть 1 тонкий момент - нам нужно что бы VNC сервер установленный в Ubuntu работал как служба и загружался автоматически вместе с ОС. К сожалению я не нашел способов заставить работать в данном режиме штатный VNC сервер, но нашел очень хорошую альтернативу

Итак, удаляем vino (если он у Вас есть):

sudo apt-get remove vino

Устанавливаем x11vnc

sudo apt-get install x11vnc

Генерируем пароль для доступа:

x11vnc -storepasswd

После этого пароль по-умолчанию сохраняется в /home/USERNAME/.vnc/passwd (где USERNAME – имя пользователя, под которым вы выполнили команду).
Теперь нам надо осуществить автозагрузку сервера, для этого под рутом редактируем файл /etc/gdm/Init/Default (sudo nano /etc/gdm/Init/Default), где почти в самом конце перед строкой ‘exit 0′ добавляем следующую строку:

/usr/bin/x11vnc -dontdisconnect -notruecolor -noxfixes -shared -forever -rfbport 5900 -bg -o /var/log/x11vnc.log -rfbauth /home/USERNAME/.vnc/passwd

Эту же самую строку необходимо добавить в самый конец файла /etc/gdm/PreSession/Default – sudo nano /etc/gdm/PreSession/Default (то есть команда запуска сервера должна присутствовать в обоих этих файлах). Да, и не забывайте в этой строке изменить ‘USERNAME’ в пути к паролю, на адрес вашей домашней папки (ну или любой другой путь, куда вы положите cгенерированный вами файл с паролем).

И теперь последний штрих: нам необходимо добавить одну строку в файл /etc/gdm/custom.conf (sudo nano /etc/gdm/custom.conf):

KillInitClients=true

После этих несложных инструкций x11vnc должен автоматически запускаться со стартом X Window System (то есть для того, чтобы эти параметры вступили в силу – надо перезагрузить систему или непосредственно X11). Всё это проверено и актуально для Ubuntu 9.04, 9.10, 10.04, 10.10 и, возможно, более поздних версий.

PS спасибо авторам этой статьи за решение

Кстати имейте ввиду, если Ваш сервер будет работать без подключенного монитора (как это и должно быть) необходимо установить проприетарные драйвера на видеокарту (по крайней мере на моем HP Microserver это сработало)- в противном случае Ubuntu может не загрузиться .... Если что, смотрим что советуют на профильных форумах

В качестве клиента VNC можно использовать программу VNC Viewer

Так же необходимо разрешить удаленное подключение к Вашему рабочему столу на Ubuntu server, иначе VNC клиент не сможет Вас соединить с сервером.

Ну и последний способ удаленного администрирования - пакет Webmin
Данное решение позволяет администрировать Вашу Ubuntu с помощью WEB браузера - очень удобно :)

Открываем консоль и вперед :)
загружаем пакет Webmin
sudo wget http://www.webmin.com/download/deb/webmin-current.deb

устанавливаем
sudo dpkg -i webmin-current.deb

устанавливаем дополнительное ПО
sudo apt-get -f install

теперь мы можем обратится к нашему серверу из браузера по следующему адресу
https://адрессервера:10000

Джентельменский набор приложений

Теперь, когда у нас есть графическая среда для администрирования нашего сервера, часть задач по сопровождению Ubuntu стала легче и приятнее. Почти как Windows :)
Осталось поставить необходимые утилиты с помощью Ubuntu Software Center :



Language support - позволяет добавлять необходимые языки в систему
7ZIP - архиватор
Archive Manager - архиватор
File Sharing - создание общих папок
Gnome Partition Editor - управление разделами жестких дисков
Personal File Sharing - создание общих папок (персональных)
Hardware Drivers (jockey-gtk) - управление драйверами железа
Network Manager - управление сетевыми подключениями
Disk Utility - управление жесткими дисками
Sysinfo - информация о системе
Back in Time - резервное копирование
Virtual Box - виртуализация
ClamTK (Virus Scaner) - графическая надстройка над антивирусом ClamAV
Firefox - интернет браузер

К сожалению я не нашел эту утилиту через Ubuntu Software Center, но поставить ее нужно

apt-get install gnome-system-tools

это установка системных утилит, в том числе управление пользователями сервера
это была обязательная часть (по крайней мере для меня)

В принципе можно дополнительно поставить утилиты для монтирования ISO файлов и какой-нибудь файловый менеджер, а так же торрент, но я еще не смотрел что есть интересного для решения данных задач.
Кстати, не забудьте после установки всех утилит обновить систему с помощью Update Manager (System->Administration) и перезагрузить сервер

Минимальный набор приложений

Если у Вас установка ОС прошла удачно - поздравляю, если нет - значит ищем пути решения возникших проблем.
Будем считать что ОС Ubuntu 10.04 server X64 успешно установлена и теперь необходимо поставить минимальный набор приложений. Напомню, что здесь я упомянул о желании администрировать свой сервер из графической среды, а к консоли буду обращаться когда это действительно нужно. Кстати имейте ввиду - нам опять нужен интернет.
Начнем :
Устанавливаем графическую оболочку Gnome. Есть 2 варианта :
1) установка всего что есть в версии Desktop

sudo apt-get install ubuntu-desktop

но мне этот вариант не интересен - проще было поставить версию Desktop :)

2) установка Gnome в минимальной конфигурации

sudo apt-get install gnome-core gdm

ждем пока ОС скачает и установит необходимые пакеты, после чего выполняем команду

sudo reboot

после чего сервер загружается с установленным Gnome в минимальной конфигурации. Минимальная конфигурация на столько минимальна, что дальше некуда :)



Устанавливаем пакет Synaptic

sudo apt-get install synaptic

Устанавливаем пакет Ubuntu Software Center для установки пакетов из графической оболочки

sudo apt-get install software-center

Устанавливаем пакет SSH для удаленного доступа из консоли

sudo apt-get install openssh-server

Устанавливаем пакет SAMBA для организации доступа к файловым ресурсам нашего сервера с Windows машин

sudo apt-get install samba

Устанавливаем пакет ClamAV антивирусная защита

sudo apt-get install clamav-daemon clamav-freshclam

Минимальный набор софта мы установили, осталось обновить систему с помощью Update Manager (System->Administration) и перезагрузить сервер.

PS как мы видим без консоли все равно никуда. Но это не значит что ей необходимо пользоваться постоянно.

четверг, 20 января 2011 г.

Устанавливаем Ubuntu 10.04 server X64 - тонкие моменты

Для установки ОС нам потребуется :

1) Дистрибутив Ubuntu 10.04 server X64
2) USB флешка или DVD-ROM
3) Настроенный доступ к интернету
4) Сервер или иной ПК куда будет устанавливаться ОС
5) DHCP или свободный IP адрес в сети


Способов поставить Ubuntu несколько :
1) Загрузиться с DVD-ROM где установлен диск с записанным дистрибутивом
2) Загрузиться с USB флешки записав на нее дистрибутив с помощью Universal USB Installer
3) Загрузиться с USB флешки записав на нее дистрибутив с помощью UltraISO версии 9 и выше

Теперь некоторые комментарии :
Загрузка и установка с DVD-ROM является самым тривиальным способом - в принципе никаких подводных камней быть не должно. ISO образ прекрасно записывается с помощью UltraISO или ImageBurn.

C загрузкой и установка с USB флешки для 2 варианта есть следующая проблема :
ОС устанавливается без проблем, но загрузчик GRUB 2 записывается на саму флешку - в итоге как только вынимаете флешку из сервера, загрузка становится не возможна.
Как восстановить загрузчик можно поискать в сети.

C загрузкой и установка с USB флешки для 3 варианта есть следующая проблема :
установка успешно проходит только для редакции DESKTOP. В редакции Server на этапе определения CD-ROM (при инсталляции Ubuntu 10.04 server) появляется ошибка что данное устройство не смонтировано. Как победить эту ошибку я не знаю - если подскажите, буду благодарен.

В ходе ваших экспериментов с записью дистрибутива на флешку, может случиться ситуация, что часть объема флешки будет не доступна. Решение простое - отформатировать флешку. Если не удается это сделать штатными средствами ОС Windows - на помощь придет утилита HP USB Disk Storage Format Tool

Собственно процесс установки описывать смысла особого нет, в сети полно инструкций с картинками, единственное на что стоит обратить внимание - разметка диска.
Я сделал так :
Системный раздел - 40 Gb
Swap - 4 Gb
Home - 500 Gb
Все остальное пространство от 2 Tb отдал под раздел data. На нем будут хранится расшаренные папки, FTP и торренты

Еще тонкий момент, вернее даже 2 :
1) директорию home лучше хранить на выделенном разделе жесткого диска
2) если Вы не сделаете нужные Вам разделы на этапе разметки дисков и захотите их сконфигурировать потом - придется настраивать автоматическое монтирование разделов (fstab) - операция не сложная, как это сделать можно поискать в сети, но если есть возможность разметить диски под Ваши потребности сразу - лучше сделать.

Вот собственно и вся установка. Дальше будем настраивать ОС под свои потребности.

Домашний сервер - что нужно в итоге ?

И так продолжим.

Требуемые сервисы:

1) Файловое хранилище с общими папками
2) Торрент качалка с web доступом
3) FTP server
4) Медиасервер
5) Проверка HTTP трафика на вирусы (актуально для компьютеров с ОС Windwos, коих у меня 2 в домашней сети)
6) Виртуализация
7) Возможно что-то еще :)

Для начала необходимо определиться с дисковой подсистемой - точнее с использованием встроенного RAID контроллера. Вариантов по сути 3 :

1) ACHI режим
2) RAID 0
3) RAID 1


как всегда у каждого режима есть свои + и - расписывать их я не буду, я выбирал между ACHI и RAID 1. В итоге остановился на ACHI.

С одним вопросом вроде как закончили. Теперь про ОС и необходимый софт.
Здесь тоже не однозначная ситуация и опять несколько вариантов :

1) MS Windows 7
2) MS Windows 2008 R2
3) MS Windows Home Server
4) VMware ESXi 4.1
5) Ubuntu 10.04

Все вышеперечисленные системы прекрасно работают на HP ProLiant MicroServer, особых проблем ни с чем не возникало, кроме выбора ОС.

Первые 3 пункта отпали по причине лицензионной чистоты и отсутствия интереса в данном разрезе к этим ОС. На ОС от MS, сервер был практически полностью настроен через 3 часа после установки ОС (практически со всем нужным мне софтом)- не интересно :). Это самый главный + данных вариантов.

VMware ESXi 4.1 показался мне дома не интересным вариантом для постоянного использования - зато прекрасная платформа для тестов в моих условиях по выбору ОС.

Победила Ubuntu 10.04
Осталось решить :
какую версию ставить Server или Desktop
какую разрядность использовать X32 или X64

В итоге после тестирования Server и Desktop дистрибутива остановился на Ubuntu 10.04 server X64

Единственное что огорчало в Ubuntu Server - постоянная работа с консолью. Сейчас наверное меня будут ругать, но я решил максимально приблизить серверную версию к ОС от MS - хочу управлять и настраивать свой сервер и все его сервисы в GUI.
Как говорится нет препятствий Патриотам :)
Сейчас наверное спросите - а чем тогда версия Desktop не угодила - там и так все в графике ?
Отвечаю - ее здесь слишком много. Вернее тех программ которые там установлены по умолчанию. Мне же нужны только те программы, которые действительно нужны. Опять же следует учесть, что всю свою сознательную жизнь, я работал с продуктами MS - а в Linux делаю первые шаги.
Продолжение следует :)

Домашний сервер - начало

По случаю приобрел для домашнего использования сервер HP Micro Server N36L.



Сервер планировался использоваться как домашняя файлопомойка, но постепенно в голове возникали идеи, что на него можно "повесить" кроме роли NAS.
К серверу была докуплено:
оперативная память DDR3 2048Mb PC3-10600 Kingston KVR1333D3N9/2G - 2 шт.
жесткий диск Seagate2Tb ST32000542AS 5900rpm 32Mb SATA-II 300 - 1 шт.
внешний DVD-RW Iomega SuperSlim DVD Portable Writer, Dual Layer (34427)- 1 шт.

По поводу железа :
штатный диск на 160 GB выкинул сразу, заменив зеленым сигейтом. Есть мысль приобрести еще один жесткий диск - либо такой же, либо Hitachi HDS721010CLA332.
штатную оперативная память 1 GB также вытащил без зазрения совести поставив 2 планки по 2 GB. Если есть возможность покупайте память объемом 4 GB на планку.
внешний DVD-RW купить хотелось давно, да повода особого не было. А тут и для сервера пригодится и для нетбука. Ставить в сервер обычный DVD-RW смысла нет, ибо планируется что сервер будет стоять на шкафу. Но это так - лирика.

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