Меню Рубрики

Установка debian для сервера по нулям

Записки IT специалиста

Технический блог специалистов ООО»Интерфейс»

Linux — начинающим. Часть 3. Установка Debian 7 для сервера

В прошлой части нашего цикла мы рассмотрели установку Ubuntu Server, сегодня мы бы хотели уделить внимание старшему родственнику Ubuntu — Debian. У этих систем действительно много общего, вплоть до пакетной базы. Также все наши решения на базе Ubuntu Server без проблем будут работать и на базе Debian. Установка и настройка обоих систем также практически одинакова и сначала мы хотели обойтись одной статьей, просто обращая внимание на некоторые различия, но затем все-таки решили, что две отдельные статьи помогут лучше подать материал для начинающих и избежать возможной путаницы.

Почему все-таки Debian? Основная причина — стабильность. Ubuntu Server LTS представляет на наш взгляд оптимальный баланс между актуальностью версий ПО и стабильностью. Debian в этом плане более консервативен, используя только проверенные, стабильные версии пакетов. В тоже время, к нашему сожалению, Ubuntu Server последних релизов содержит разного рода баги, которые проявляются, зачастую, только при определенных условиях. В этой ситуации наиболее оправданным будет переход на Debian, это позволит использовать весь имеющийся опыт работы с системой, в тоже время получив в распоряжение более стабильную платформу.

Данный материал во многом перекликается с нашей предыдущей статьей и часть текста будет повторяться. Это сделано сознательно, чтобы обеспечить целостность подачи материала, а не заставлять читателя изучать две статьи вместо одной.

Прежде всего получим дистрибутив системы. Его можно скачать как по HTTP: https://www.debian.org/CD/http-ftp/#stable, так и через BitTorrent: https://www.debian.org/CD/torrent-cd. Для серверной установки нам потребуется только первый CD, также рекомендуем использовать в серверных целях исключительно архитектуру amd64.

Загрузившись с установочного диска мы увидим экран-заставку, который предлагает нам различные способы установки. Выбираем первый пункт, который запустить текстовый режим установки.

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

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

Затем следует выбрать раскладку клавиатуры:

И комбинацию клавиш для ее переключения:

Мы не рекомендуем выбирать сочетания клавиш отличные от общепринятого Alt+Shift, не заставляйте тех, кто будет работать с сервером кроме вас, угадывать какую комбинацию вы выбрали во время установки.

Следующим шагом система попробует получить сетевые настройки, так как в большинстве сетей присутствует DHCP сервер, то уже на этом этапе система сконфигурирует сеть и получит доступ в интернет.

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

После этого вам потребуется указать имя компьютера и указать пароль суперпользователя root.

В отличие от Ubuntu в Debian используется иная модель административных прав, возможность настраивать систему имеет суперпользователь, а для работы будет предложено создать еще одну учетную запись. Также, по умолчанию, не предусмотрена возможность повышать права пользователя при помощи команды sudo. Помните о том, что Linux — регистрозависимая система, а правилом хорошего тона является использование в именах пользователей только строчных букв.

Затем укажите часовой пояс. Обратите внимание что в Debian указывается смещение не относительно GMT, а относительно Москвы (для России). К этой настройке следует подходить ответственно, так как неверно выставленная временная зона может приводить к некорректной работе ряда служб или привести к появлению недостоверной информации в приложениях, например, в календаре или планировщике задач, особенно если данные используются пользователями, находящимися в других временных зонах.

В российских реалиях может произойти так, что дистрибутив был выпущен раньше, чем были произведены изменения временных зон, и актуального пояса в списке нет, что мы и видим на рисунке выше. В этом случае следует выбрать тот пояс, который был до перевода часов и уже после установки и обновления системы воспользоваться рекомендациями из нашей статьи: Перевод часов в РФ 26 октября 2014 года — проблемы и решения.

После настройки времени мы переходим к наиболее ответственному этапу — настройке диска. Система предлагает несколько вариантов, среди которых автоматическая разметка. В большинстве случаев мы выбираем именно этот пункт. Если говорить о единственном диске, то мы не видим смысла разбивать его на разделы, за исключением настольных систем, где на отдельный раздел стоит вынести /home.

В нагруженных системах имеет смысл выносить разделы с данными, например, /var/www или /opt/zimbra, на отдельные дисковые массивы. Если вы хотите установить систему на программный RAID, то обратитесь к статье: Ubuntu Server. Настраиваем программный RAID.

Автоматическая разметка в Debian предложит вам несколько вариантов: использовать весь диск, вынести на отдельный раздел /home или разбить диск на несколько разделов. Мы остановимся на первом варианте:

После разметки диска будет произведена установка базовой системы.

По окончании этого процесса система предложит вставить другой диск. Отвечаем отказом.

А с предложением использовать сетевое зеркало архива пакетов соглашаемся.

Затем выбираем страну и наиболее подходящее зеркало, мы, например, выбираем зеркала от Яндекса.

После обновления списка ПО вам будет предложено выбрать один из готовых наборов. Можно выбрать необходимые роли и получить готовую к настройке систему. Разве это плохо, особенно для начинающего администратора? Плохо! И вот почему: при таком подходе система остается для администратора «черным ящиком», нет представления о назначении отдельных пакетов, их роли и влиянии на систему в целом. Поэтому мы рекомендуем отказаться от предлагаемых вариантов и устанавливать требуемые пакеты вручную. Это поможет вам глубже понять систему и взаимодействие между ее компонентами. А когда вы станете чувствовать себя в среде Linux как рыба в воде, вы сами решите нужно ли вам устанавливать софт автоматически.

Читайте также:  Установка блокираторов законно ли это

По умолчанию предлагается установить графическую оболочку и принт-сервер, убираем все опции (используя Пробел), оставив только Стандартные системные утилиты.

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

Затем последует предложение установить загрузчик, если вы не собираетесь делать систему с «хитрой» загрузкой, то следует согласиться.

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

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

Прежде всего следует правильно настроить сеть. Несмотря на то, что сеть была настроена на этапе установки и есть возможность установить дополнительные пакеты, мы не будем пока ничего устанавливать и научимся редактировать файлы конфигурации встроенными средствами.

Так как пользователь в Debian не может повышать свои права, то переключимся на суперпользователя root, для этого выполним команду:

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

Теперь откроем файл конфигурации сети встроенным редактором nano:

и приведем его к следующему виду:

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

Допустим мы хотим получать настройки второго сетевого адаптера eth1 по DHCP, для этого добавим секцию:

Немного остановимся на опциях auto и auto-hotplug. Первая указывает инициировать подключение при загрузке, а вторая запускает механизм отслеживания горячего переподключения и инициировать получение адреса при наступлении данного события.

Закончив редактировать файл следует выйти из редактора по Ctrl + X, утвердительно (Y) ответив на предложение записать файл.

После чего перезагрузите компьютер:

Если все сделано правильно, то система получит доступ к сети и интернет. Проверить это можно командой ping:

Прервать выполнение команды следует комбинацией Ctrl + С, запомните эту комбинацию, она еще не раз вам пригодится.

Просмотреть настройки сетевых интерфейсов можно командой

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

Этой же командой можно выяснить, какие именно сетевые карты видит система и под какими именами, для этого воспользуйтесь параметром HWaddr, который представляет MAC-адрес сетевой платы.

Перед тем, как приступить к дальнейшей настройке, систему следует обновить, но перед этим необходимо откорректировать список источников пакетов:

В этом файле закомментируем строки, относящиеся к СD-дискам, иначе при каждом обновлении или установке пакетов система будет просить вставить диск.

Сохраним изменения, после чего можно обновить список пакетов командой:

А затем обновить систему командой:

Теперь самое время разобраться с административными правами. На наш взгляд, принятая в Ubuntu система, когда учетная запись root отключена, а администратор может повышать полномочия своего собственного аккаунта, наиболее удобна и безопасна. Поэтому установим утилиту sudo:

Затем добавим вашего пользователя в группу sudo:

где вместо andrey укажите имя вашего пользователя. После чего перезагрузите систему.

Теперь попробуем повысить права до суперпользователя:

Если все прошло успешно, то учетную запись root можно отключить:

Следующим шагом установим утилиты для облегчения администрирования: пакет ssh для удаленного доступа к серверу и файловый менеджер mc, который значительно упрощает работу с системой.

Для запуска mc используйте простую команду:

если хотите запустить его с правами суперпользователя.

Работа с ним довольно проста, те кто работал в DOS с менеджерами Norton Commander или Volkov Commander вообще не должны испытывать затруднений.

Навигация осуществляется стрелками, переход между панелями клавишей Tab, а выделение клавишей Insert. Основные действия указаны внизу, цифры рядом с ними обозначают номер функциональной клавиши, отвечающей за это действие, так, например, F4 — Правка, F8 — Удаление, F10 — Выход. Вы всегда можете свернуть, а затем развернуть, mc сочетанием клавиш Ctrl + O и получить доступ к консоли.

Также советуем сразу произвести некоторые настройки, нажимаем F9 для переключения на верхнее меню, выбираем Настройки — Конфигурация.

В открывшемся окне стрелками перейдите на опцию Встроенный редактор и выберите ее при помощи клавиши Пробел. Для подтверждения настроек и выхода нажмите Далее.

Это позволит сразу использовать для редактирования конфигурационных файлов более удобный чем nano встроенный редактор.

В заключение проверим возможность удаленного подключения, для этого будем использовать популярную утилиту PuTTY (скачать). В последней версии просто достаточно указать IP-адрес или доменное имя сервера:

Однако, на всякий случай, проверьте в Window — Translation кодировку соединения, там должно быть указано UTF-8.

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

источник

Базовая настройка сервера Debian после установки

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

Данная статья является частью единого цикла статьей про сервер Debian.

Введение

Любая работа с сервером после установки чаще всего начинается со стандартных обязательных действий, без которых либо не получится продвинуться дальше, либо будет неудобно работать. Например, вам в любом случае необходимо выполнить сетевые настройки, желательно обновить систему и установить часовой пояс. Рекомендуется сразу настроить автообновление времени, подрихтовать параметры sshd, установить midnight commander и выполнить другие настройки.

Читайте также:  Установка камер на прадо 120

Об этом я хочу рассказать в статье. Я буду делиться своим реальным опытом работы. Это не значит, что нужно делать так, как я. Я могу в чем-то ошибаться, что-то делать не так удобно, как можно было бы сделать. Это просто советы, которые кому-то помогут узнать что-то новое, а кто-то возможно поделится со мной чем-то новым для меня, либо укажет на мои ошибки. Мне бы хотелось, чтобы это было так. Своими материалами я не только делюсь с вами знаниями, но и сам узнаю что-то новое в том числе и из комментариев и писем на почту.

Указываем сетевые параметры

Итак, у нас в наличии только что установленная система. Узнать или проверить ее версию можно командами:

Очень подробно про настройку сети в Debian я написал в отдельной статье. Рекомендую с ней ознакомиться. Здесь же кратко выполним основное. Для настройки сети, необходимо отредактировать файл /etc/network/interfaces. Сделаем это:

Для получения IP адреса по dhcp достаточно будет следующего содержания:

Если у вас статический адрес, то его настроить можно следующими параметрами в файле:

Сохраняем файл. Теперь нужно выполнить перезапуск сети. В Debian это делается командой:

В системном логе /var/log/syslog при этом будут записи:

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

К сетевым настройкам я отношу установку пакета net-tools, в состав которого входят старые и привычные утилиты для работы с сетью — ifconfig, netstat, route и другие. В современных дистрибутивах их заменили одной командой ip, но лично мне вывод некоторых старых команд, конкретно, netstat, нравится больше, поэтому я иногда ими тоже пользуюсь.

На этом настройка сети закончена.

Обновление системы, отличие apt upgrade от dist-upgrade и full-upgrade

Сеть настроили, теперь можно обновить систему и пакеты. В Debian это делается достаточно просто. Воспользуемся несколькими командами. Сначала обновим локальный индекс пакетов до последних изменений в репозиториях:

Посмотреть список пакетов, готовых к обновлению, можно с помощью команды:

Теперь выполним простое обновление всех пакетов системы:

Ключ upgrade выполняет только обновление одной версии пакета на другую, более свежую. Он не будет устанавливать или удалять пакеты, даже если это необходимо для обновления других. Это наиболее безопасный и надежный вариант обновления, но он может обновить не все. Например, с ее помощью не обновить ядро до более свежей версии.

Ключ dist-upgrade или full-upgrade (это одно и то же) в дополнение к upgrade обрабатывает все изменения зависимостей для новых пакетов и во время работы может удалять ненужные и ставить необходимые пакеты для обновления. Вот выдержка из документации по поводу этих двух ключей.

Так что после обычного обновления, делаем еще full-upgrade.

Мне предлагается удалить старые пакеты, которые больше уже не нужны. Это зависимости от старых версий софта, который уже обновился и получил новые пакеты из зависимостей, а эти ему больше не нужны. Очистим их командой:

Рекомендую делать это регулярно после обновлений, чтобы старые пакеты не занимали лишнее место на диске.

На этом обновление системы закончено. Если вы хотите обновить версию релиза, например Debian 9 обновить до Debian 10 Buster, то читайте отдельный материал.

Настройка ssh

Теперь внесем некоторые изменения в настройки сервера ssh. Я рекомендую его запускать на нестандартном порту для исключения лишних общений с ботами, которые регулярно сканируют интернет и подбирают пароли пользователей по словарям.

Существует расхожее мнение, что менять порт ssh это наивность, а не защита. Надо просто настроить сертификаты, fail2ban или еще каким-то образом защитить ssh порт, к примеру, с помощью ограничений iptables, и т.д. Тем не менее, я все же рекомендую порт сменить на нестандартный. Даже если у вас все защищено от подбора паролей, так как вы используете сертификаты, лишние запросы к ssh порту тратят ресурсы сервера, хоть и не очень большие. Идет установка соединения, обмен рукопожатиями и т.д. Зачем вам это нужно?

По-умолчанию в Debian, впрочем как и в любом другом дистрибутиве Linux, ssh сервер работает на 22 порту. Изменим этот порт, к примеру, на 23331. Так же я еще изменяю конфигурацию для разрешения подключения по ssh пользователя root с использованием пароля. В Debian из коробки пользователь root по ssh паролем авторизовываться не может. Изменим и это. Открываем файл настроек:

И изменяем там следующие строки. Приводим их к виду:

Сохраняем изменения и перезапускаем сервер ssh следующей командой:

Все в порядке, сервер слушает 23331 порт. Теперь новое подключение будет осуществлено только по порту 23331. При этом, после перезапуска ssh, старое подключение не будет разорвано.

Я знаю, что многие возражают против подключения рутом к серверу. Якобы это небезопасно и т.д. и т.п. Мне эти доводы кажутся не убедительными. Не понимаю, в чем может быть проблема, если у меня нормальный сложный пароль на root, который не получится подобрать или сбрутить. Ни разу за всю мою работу системным администратором у меня не возникло проблем с этим моментом. А вот работать так значительно удобнее, особенно, когда необходимо оперативно куда-то подключиться по форс мажорным обстоятельствам.

Отдельно тему подключения к серверу под root я рассмотрел в статье про sudo. Кому интересно, переходите в нее и делитесь своим мнением на этот счет.

Установка утилит mc, htop, iftop

Следующим шагом я настраиваю некоторые полезные утилиты, которыми регулярно пользуюсь в повседневной работе. Первая из них это всем известный двухпанельный файловый менеджер Midnight Commander. Установим mc на наш сервер:

Читайте также:  Установка ut2 для prepar3d

И сразу же для него включаю подсветку синтаксиса всех файлов, которые не обозначены явно в файле /usr/share/mc/syntax/Syntax синтаксисом для sh и bash скриптов. Этот универсальный синтаксис нормально подходит для конфигурационных файлов, с которыми чаще всего приходится работать на сервере. Перезаписываем файл unknown.syntax. Именно этот шаблон будет применяться к .conf и .cf файлам, так как к ним явно не привязано никакого синтаксиса.

Я сразу же ставлю редактором по-умолчанию mcedit. Для этого просто выбираю его из меню при первом редактировании какого-нибудь файла. Если у вас такое меню не появляется, можете вызвать его сами и выбрать необходимый редактор по-умолчанию:

Так же я рекомендую очень удобный диспетчер задач — htop. Мне он помог, к примеру, решить проблему Взлома сервера CentOS. Ставим его на сервер:

Полезной утилитой, позволяющей смотреть сетевую загрузку в режиме реального времени, является iftop. Очень рекомендую. Более простого и удобного инструмента мне не попадалось, хотя я много перепробовал подобных вещей. Устанавливаем iftop на сервер:

Настройка и обновление времени в Debian

Теперь проверим установленный часовой пояс, время и включим автоматическую синхронизацию времени с удаленного сервера. Очень подробно этот вопрос я рассмотрел в отдельной статье — настройка времени в Debian.

Узнать дату, время, часовой пояс можно командой date:

Если все указано верно, то менять ничего не нужно. Если же у вас неправильное время или указан часовой пояс не соответствующий вашему, то настроить это можно следующим образом. Сначала обновим часовые пояса:

Теперь выберем правильный часовой пояс с помощью команды:

Выбирая соответствующие пункты визарда, указываете свой часовой пояс.

Дальше синхронизируем время с сервером времени в интернете. Для разовой или ручной синхронизации понадобится отдельная утилита. Установим ntpdate на сервер:

Значит у вас уже работает служба ntp. Ее нужно остановить и обновить время вручную. Хотя если она работает, то у вас и так должно быть все в порядке.

Для того, чтобы время автоматически синхронизировалось без вашего участия с определенной периодичностью, используется инструмент ntp. Установим его:

После установки он сам запустится и будет автоматически синхронизировать часы сервера. Проверим, запустился ли сервис ntpd:

Настройка firewall (iptables) в Debian

В качестве firewall в Debian по-умолчанию используется iptables, его и будем настраивать. Изначально фаервол полностью открыт и пропускает весь трафик. Проверить список правил iptables можно следующей командой:

Создадим файл с правилами iptables:

Очень подробно вопрос настройки iptables я рассмотрел отдельно, рекомендую ознакомиться. Хотя в примере другая ОС linux, принципиальной разницы нет, настройки iptables абсолютно одинаковые, так как правила одни и те же.

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

Даем файлу права на запуск:

Проверяем, что правила записались в файл /etc/iptables_rules. Если их там нет, то записываем их вручную.

Правила применились и произошла их запись в файл /etc/iptables_rules. Теперь нужно сделать так, чтобы они применялись при загрузке сервера. Для этого делаем следующее. Открываем файл /etc/network/interfaces и добавляем в него строку pre-up iptables-restore Настройка логов cron

По-умолчанию, в Debian нет отдельного лог файла для событий cron, они все сыпятся в общий лог /var/log/syslog. Лично мне это не очень нравится, я предпочитаю выводить эти события в отдельный файл. Об этом я написал отдельно — вывести логи cron в отдельный файл. Рекомендую пройти по ссылке и настроить, если вам это необходимо. Там очень кратко и только по делу, не буду сюда копировать эту информацию.

Установка и настройка screen

Я привык в своей работе пользоваться консольной утилитой screen. Изначально она задумывалась как инструмент, который позволяет запустить что-то удаленно в консоли, отключиться от сервера и при этом все, что выполняется в консоли продолжит свою работу. Вы сможете спокойно вернуться в ту же сессию и продолжить работу.

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

Позже я решил подробнее ознакомиться с этим инструментом и обнаружил, что там есть несколько удобных моментов, которые можно использовать в ежедневной работе. Вот как использую утилиту screen я. При подключении к серверу у меня запускается screen с тремя окнами 1, 2, 3. Первое окно автоматически переходит в каталог /, второе в /etc, третье в /var/log. Я осмысленно назвал эти окна: Main, etc, logs соответственно. Внизу находится строка состояния, в которой отображен список всех открытых окон и подсвечено активное окно.

С помощью горячих клавиш я очень быстро переключаюсь между окнами в случае необходимости. Вот как выглядит мое рабочее окно ssh подключения:

Переключаюсь между окнами с помощью стандартных горячих клавиш screen: ctrl+a 1, ctrl+a 2, ctrl+a 3. Я специально изменил нумерацию, чтобы она начиналась не с 0 по-дефолту, а с 1. Так удобнее на клавиатуре переключать окна. Кнопка 0 находится слишком далеко от 1 и 2.

Чтобы настроить такую же работу screen, как у меня, достаточно выполнить несколько простых действий. Сначала устанавливаем screen:

Создаем в каталоге /root конфигурационный файл .screenrc следующего содержания:

Для знакомства с настройками, горячими клавишами и вариантами применения утилиты screen можно по адресу http://itman.in/ssh-screen/ Мне помог этот материал. Написано кратко, по делу и доходчиво.

Заключение

Теперь можно перезагрузить сервер и проверить, все ли в порядке. У меня все в порядке, проверил 🙂 На этом базовая настройка сервера debian окончена. Можно приступать к конфигурации различных сервисов, под которые он настраивался. Об этом я рассказываю в отдельных статьях.

Напоминаю, что данная статья является частью единого цикла статьей про сервер Debian.

источник