Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версияСледующая версияСледующая версия справа и слева |
nas_linux [2017/05/08 21:41] – [Выбор железа] kuld | nas_linux [2017/05/09 17:08] – [Антивирус] kuld |
---|
<note warning>Только не используйте один и тот же сервер для установки информационной базы и хранения ее резервных копий.</note> | <note warning>Только не используйте один и тот же сервер для установки информационной базы и хранения ее резервных копий.</note> |
| |
Почему Linux? Во-первых это бесплатно и при этом совершенно легально. Во-вторых Linux потребляет гораздо меньше аппаратных ресурсов, и даже старая, списанная в утиль техника отлично справится с задачей файлового хранилища. | Почему Linux? Во-первых это бесплатно и при этом совершенно легально. Во-вторых Linux потребляет гораздо меньше аппаратных ресурсов, и даже старая, списанная в утиль техника отлично справится с задачей файлового хранилища. В-третьих, хорошо настроенный Linux практически не нуждается во вмешательстве системного администратора, эксплуатируются по принципу "настроил и забыл". |
| |
И так, начнем... | И так, начнем... |
| |
===== Выбор железа ===== | ===== Выбор оборудования ===== |
| |
Как я уже написал, железо нам подойдет практически любое, но все же кое-какие пожелания у нас есть. Поскольку сервер будет файловый, то и пожелания наши будут касаться дисковой системы. Было бы неплохо найти машину с RAID контроллером на борту. Если мы делаем сервер для размещения рабочей файловой базы, было бы неплохо разместить ее на RAID-5, если хранилище резервных копий, отличным вариантом будет RAID-1. | Как я уже написал, оборудование нам подойдет практически любое, но все же кое-какие пожелания у нас есть. Поскольку сервер будет файловый, то и пожелания наши будут касаться дисковой системы. Было бы неплохо найти машину с RAID контроллером на борту. Если мы делаем сервер для размещения рабочей файловой базы, было бы неплохо разместить ее на RAID-5, если хранилище резервных копий, отличным вариантом будет RAID-1. |
| |
При этом у нас нет особых требований к оперативной памяти, хватит и 1 Гбайта. К процессору тоже нет особых требований, Linux будет работать на всем, что еще живо. | При этом у нас нет особых требований к оперативной памяти, хватит и 1 Гбайта. К процессору тоже нет особых требований, Linux будет работать на всем, что еще живо. |
| |
Пожалуй, самый оптимальный вариант - приобрести восстановленный сервер "с пробегом". Берите самый дешевый, главное, что бы перед этим он прошел профилактику, его очистили от пыли и прогнали все системные тесты. | Пожалуй, самый оптимальный вариант - приобрести восстановленный сервер "с пробегом". Берите самый дешевый, какой найдете, главное, что бы перед этим он прошел профилактику, его очистили от пыли и прогнали все системные тесты. |
| |
<note important>За неимением лучшего, можно использовать любой старый компьютер, но помните, что Вы это делаете на свой страх и риск. Самое уязвимое место файлового сервера - дисковая подсистема. Если она у Вас будет состоять из одного единственного старого диска, Вы очень сильно рискуете.</note> | <note important>За неимением лучшего, можно использовать любой старый компьютер, но помните, что Вы это делаете на свой страх и риск. Самое уязвимое место файлового сервера - дисковая подсистема. Если она у Вас будет состоять из одного единственного старого диска, Вы очень сильно рискуете.</note> |
| |
| <note tip>Если не удалось найти RAID-контроллер, можно попробовать настроить [[ubnt>программный_raid|программный RAID]] средствами операционной системы. Учтите, что это повысит требования к процессору и оперативной памяти.</note> |
===== Установка операционной системы ===== | ===== Установка операционной системы ===== |
| |
| Сначала определимся с архитектурой сервера. Если Вам известна марка процессора, установленного в сервер, ознакомившись с его спецификацией Вы узнаете, совместим ли он с архитектурой x86-64 (64 бит) или только i386 (32 бит). Косвенный признак - размер оперативной памяти, 32-битная архитектура не может работать с оперативной памятью объемом более 3 Гбайт, иногда в эту архитектуру устанавливали 4 Гбайт памяти, но в системе было видно только 3 Гбайт. |
| |
| Идем на [[https://www.ubuntu.com/download/server|страницу загрузки Ubuntu Server]] и скачиваем дистрибутив, соответствующей архитектуры. Дистрибутивы Ubuntu распространяются в виде образов загрузочных DVD дисков. |
| |
| Для установки Вам потребуется записать загрузочный DVD диск из скачанного образа, или, что как правило удобнее, подготовить загрузочную флешку [[https://rufus.akeo.ie/|специальной утилитой]]. Вставляйте диск или флешку в сервер и загружайтесь с нее. |
| |
| Выбирайте русский язык и в меню ''Установить Ubuntu Server''. |
| |
| Далее Вам предложат указать страну, выбрать раскладку клавиатуры, дать имя серверу, указать имя и пароль суперпользователя (аналог администратора в Ubuntu) и подтвердить временную зону. |
| |
| Некоторое затруднение может вызвать разметка диска. Если сомневаетесь, выбирайте автоматическую разметку и использовать весь диск. Но лучше выделить домашние папки пользователей в отдельные логические диски. |
| |
| {{ :samba_disk.png?600 }} |
| |
| Так будет удобнее обновлять операционную систему, когда выйдет новая LTS версия 18.04. |
| |
| Создавать или нет раздел подкачки зависит от объема оперативной памяти. Если у Вас ее немного, создайте раздел подкачки с таким же объемом. Впрочем, это не обязательно, можно после установки создать файл подкачки. |
| |
| Далее в процессе установки Вам нужно будет выбрать каким образом Вы хотите управлять обновлением системы. Рекомендую устанавливать обновления безопасности автоматически. |
| |
| И ближе к концу установки Вам предложат выбрать готовые наборы серверного программного обеспечения. Нам понадобятся: |
| |
| * Samba file server |
| * Standart system utilites |
| * OpenSSH server |
| |
| Инсталлятор завершит свою работу, перезапустит сервер, Вы увидите протокол загрузки операционной системы, который завершится приглашением ввести логин и пароль пользователя в консоль. |
| |
| Добро пожаловать в Linux! |
| |
| |
| ===== Настройка сервера ===== |
| |
| Вводите логин и пароль суперпользователя, созданного при установке операционной системы. Ввод пароля никак не отображается в командной консоли - это нормально. |
| |
| Первым делом настроем сетевое подключение. |
| |
| Во время установки инсталлятор продиагностировал установленное оборудование и определил имеющиеся в системе адаптеры. По умолчанию Ethernet адаптер настраивается на получение IP адреса через DHCP, нас это не устраивает, т.к. у нас не будет возможности обращаться к серверу по его логическому имени, мы настроим статический IP адрес. |
| |
| Откройте конфигурационный файл сетевых интерфейсов командой |
| |
| <code> |
| $ sudo nano /etc/network/interfaces |
| </code> |
| |
| <note>Здесь использована команда ''sudo'' - специальная конструкция deb-based дистрибутивов Linux для выполнения команд с правами root. Когда Вы делаете это первый раз система попросит Вас ввести пароль и на какое-то время запомнит его.</note> |
| |
| и приведите его к такому виду |
| |
| <code> |
| # The loopback network interface - этот раздел не трогаем, оставляем как есть |
| auto lo |
| iface lo inet loopback |
| |
| # The primary network interface - этот раздел настраивает Ethernet адаптер |
| auto enp0s3 # имя интерфейса оставляем без изменений |
| iface enp0s3 inet static # меняем опцию dhcp на static |
| address 192.168.1.9 # укажите свободный IP адрес в Вашей сети |
| # за пределами диапазона адресов, выдаваемых DHCP сервером, |
| # если таковой используется |
| netmask 255.255.255.0 # маска подсети |
| gateway 192.168.1.1 # шлюз по умолчанию, обычно IP адрес сетевого маршрутизатора |
| </code> |
| |
| Сохраните файл нажав Ctrl-O и закройте редактор Ctrl-X. После редактирования перезапустим сеть: |
| |
| <code> |
| $ sudo /etc/init.d/networking restart |
| </code> |
| |
| и проверим что у нас получилось |
| |
| <code> |
| $ ifconfig |
| </code> |
| |
| В выдаче этой команды внимательно смотрим на значения ''inet addr'' - в нашем примере там должен быть статический адрес 192.168.1.9. |
| |
| <note tip>Дальнейшую настройку удобнее производить с рабочей станции, подключившись по протоколу SSH. От сервера можно отключить монитор, клавиатуру и разместить его там, где он не будет никому мешать.</note> |
| |
| Для дистанционного управления сервером с рабочей станции Windows мы будем использовать [[http://www.putty.org/|PuTTy]]. Скачайте, установите и подключайтесь. Адрес сервера в нашем примере указывается так ''user@192.168.1.9'', где ''user'' - имя суперпользователя, порт по умолчанию ''22''. |
| |
| Мы не будем использовать анонимный доступ к нашему файловому серверу, для того, что бы что-то записать или прочитать с сервера потребуется указать логин и пароль. И нам потребуется создать пользователя на сервере, от имени которого будут производиться все соответствующие файловые операции в хранилище. |
| |
| <code> |
| $ sudo adduser storageuser |
| </code> |
| |
| При создании пользователя так же будут созданы одноименные группа и домашняя папка. В домашней папке этого пользователя мы и организуем сетевое файловое хранилище |
| |
| <code> |
| $ sudo -u storageuser mkdir /home/storageuser/nas |
| </code> |
| |
| <note tip>Пакет samba мы уже установили вместе с системой, дополнительно что-либо устанавливать не требуется.</note> |
| |
| Добавим пользователя в Samba |
| <code> |
| smbpasswd -a storageuser |
| </code> |
| - тут нужно указать пароль пользователя Samba, и включим пользователя |
| <code> |
| smbpasswd -e storageuser |
| </code> |
| |
| |
| Сделаем на всякий случай копию файла настроек и приступим к настройкам файлового сервера Samba. |
| |
| <code> |
| $ sudo cp /etc/samba/smb.conf /etc/samba/smb.bak |
| $ sudo nano /etc/samba/smb.conf |
| </code> |
| |
| Конфигурационный файл сопровождается подробными комментариями, можете пройтись по настройкам самостоятельно, а можете скопировать рекомендуемые настройки полностью |
| |
| <code> |
| [global] |
| workgroup = WORKGROUP # Здесь укажите имя рабочей группы одноранговой сети |
| server string = %h server (Samba, Ubuntu) |
| name resolve order = wins lmhosts hosts bcast |
| dns proxy = no |
| |
| wins support = yes # только если в сети нет Wins сервера (он может быть, например, в роутере) |
| ;wins server = 192.168.1.1 # только если wins support = no и по указанному адресу действительно есть Wins сервер |
| |
| log file = /var/log/samba/log.%m |
| max log size = 1000 |
| syslog = 0 |
| panic action = /usr/share/samba/panic-action %d |
| |
| server role = standalone server |
| passdb backend = tdbsam |
| obey pam restrictions = yes |
| |
| unix password sync = yes |
| |
| passwd program = /usr/bin/passwd %u |
| passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* . |
| |
| pam password change = yes |
| |
| security = user |
| username map = /etc/samba/smbusers |
| |
| map to guest = bad user |
| |
| usershare allow guests = yes |
| |
| |
| [storage] |
| comment = nas storage |
| writable = yes |
| browseable = yes |
| public = yes |
| path = /home/storageuser/nas |
| guest ok = no |
| directory mask = 755 |
| create mask = 644 |
| valid users = @storageuser |
| </code> |
| |
| Перезапустим службу |
| <code> |
| $ sudo service smbd restart |
| </code> |
| |
| Пробуем зайти с какой-либо рабочей станции Windows, указав в проводнике путь ''\\192.168.1.9''. |
| |
| <note> |
| В сетевом окружении сервер появится через какое-то время, когда служба Wins обновит свои данные. |
| </note> |
| |
| Windows сначала попробует открыть папку под своей локальной учетной записью, у нее это не получится и она запросит логин и пароль для доступа к сетевому ресурсу - это как раз тот пользователь, которого мы создали специально для доступа к сетевому хранилищу. |
| |
| {{ :winlogon.png |}} |
| |
| Готово! |
| |
| При необходимости можно добавить новых пользователей и новые разделы. Разграничение доступа к разделам производится через опцию ''valid users'' в соответствующем блоке конфигурационного файла Samba. |
| |
| ===== Антивирус ===== |
| |
| Операционные системы на базе Linux практически не подвержены риску заражения компьютерными вирусами, от части потому, что вирусов способных им навредить крайне мало, а в основном потому, что без получения привилегий суперпользователя эти вирусы ничем не могут навредить операционной системе. |
| |
| Но эти вирусы могут использовать файловый сервер Samba для распространения от одной Windows системы на другие. Что бы поддерживать наше файловое хранилище в чистоте, мы установим антивирус и настроим автоматическое сканирование. |
| |
| Установим антивирус ClamAV |
| |
| <code> |
| $ sudo apt install clamav |
| </code> |
| |
| Сразу же после установки в фоновом режиме запуститься обновление сигнатур, в дальнейшем мы настроим автоматическое обновление сигнатур по расписанию. |
| |
| Удалять подозрительные файлы мы сразу не будем, мы их будем перемещать в карантин, где они никому не навредят. Если среди этих файлов было что-то важное, администратор сможет найти их в карантине и что-то сделать. Создадим папку карантина и ограничим доступ к ней |
| |
| <code> |
| $ sudo mkdir /quarantine |
| $ sudo chmode 600 /quarantine |
| </code> |
| |
| Попробуем просканировать домашние папки пользователей |
| |
| <code> |
| $ sudo clamscan -i -r --move=/quarantine /home |
| </code> |
| |
| После сканирования получим протокол |
| |
| <code> |
| ----------- SCAN SUMMARY ----------- |
| Known viruses: 6278963 |
| Engine version: 0.99.2 |
| Scanned directories: 13 |
| Scanned files: 13 |
| Infected files: 0 |
| Data scanned: 4.79 MB |
| Data read: 1.59 MB (ratio 3.00:1) |
| Time: 22.176 sec (0 m 22 s) |
| </code> |
| |
| Все хорошо, вирусов не обнаружено. Если бы нашлось что-то подозрительное, оно было бы перемещено в папку карантина. |
| |
| Нам остается настроить автоматическое расписание обновления сигнатур и сканирования домашних папок. Редактируем файл расписания демона cron |
| |
| <code> |
| $ sudo crontab -e |
| </code> |
| |
| <note important>Для обновления сигнатур и сканирования нам потребуются привилегии суперпользователя, поэтому crontab запускается через sudo, сами команды в файле расписания нужно указывать без sudo.</note> |
| |
| Добавьте две строчки |
| <code> |
| 0 1 * * * freshclam |
| 0 2 * * * clamscan -i -r --move=/quarantine /home |
| </code> |
| |
| Каждый день в 1:00 ночи будет автоматически запускаться обновление сигнатур, а в 2:00 ночи будет запущено сканирование всех домашних папок пользователей, инфицированные файлы будут перемещены в папку карантина. |
| |
| ===== Мониторинг ===== |
| |
| Мониторить состояние сервера можно консольной утилитой ''top'' или ее более красочной версией ''htop''. Установим и запустим ее |
| |
| <code> |
| $ sudo apt install htop |
| $ htop |
| </code> |
| |
| {{ :htop.png?600 |}} |
| |
| <note tip>Есть вопросы, нужна консультация или помощь в настройке - [[https://lineris.bitrix24.ru/pub/form/4_obratnaya_svyaz/c4960i/|обращайтесь]], будем рады помочь.</note> |
| |
| ~~socialite~~ |