Настройка сети и удаленного доступа в Debian’е

Второй обзор из нашего цикла по Debian Lenny будет посвящен нескольким вещам. Мы с вами разберем свойства сетевых адаптеров, научимся их настраивать, затем немного поговорим об удаленном доступе к нашему серверу Debian.
Другие обзоры смотрите по ссылкам:
Часть 1 — Установка Debian 5.0 Lenny
[этот обзор] Часть 2 — Настройка сети и удаленного доступа в Debian’е

Однако, прежде чем что-либо делать, мы настоятельно рекомендуем сменить пароль root’а на что-нибудь достаточно сложное, чтобы враги не смогли манипулировать вашим сервером по SSH. Делается это консольной командой passwd.
Для просмотра и редактирования файлов мы будем использовать файловый менеджер Midnight Commander, который можно запустить командой mc.

Сетевые интерфейсы

Чтобы просмотреть список всех включенных сетевых интерфейсов достаточно набрать в консоли команду ifconfig без каких-либо параметров. Как минимум должен отобразиться интерфейс обратной петли (loopback), здесь он называется lo. Кроме него будут отображены сетевые адаптеры, в linux’e они обычно называются eth0eth1 и т.д. На нашей подопытной машине есть только один сетевой адаптер eth0, соответственно результат будет выглядеть примерно вот так:

Как видно из скриншота, для каждого адаптера отображается некоторая дополнительная информация: MAC, IP, маска, размер MTU, количество переданных/отправленных данных и пр.
Первоначально Debian хранит все настройки сетевых адаптеров в файле /etc/network/interfaces:

Здесь предоставлены оба наших интефейса: lo и eth0. Как правило в настройках lo ничего менять не нужно, поэтому рассмотрим более подробно настройку eth0. Команда allow-hotplug eth0 активирует интерфейс каждый раз при подключении Ethernet-кабеля, а команда iface eth0 inet dhcp говорит о том, что все настройки IP адресации и маршрутизации будут получены от DHCP-сервера.
Если при установке системы вы указали IP-адрес вручную, то конфигурационный файл будет несколько иным:

Думаю, что параметры и их значения не должны у вас вызвать вопросов.
Чаще всего Debian устанавливается для выполнения серверных ролей, поэтому как правило IP-адрес прописывается жестко. Можно это делать через конфигурационный файл, а можно написать свой скрипт, с помощью которого инициализировать сетевые адаптеры. Этот вариант особенно удобен, когда наша машина имеет несколько сетевых интерфейсов и выступает в роли шлюза в локальной сети. Другой случай, когда на один физический интерфейс, допустим eth0, нужно повесить несколько виртуальных, которые будут работать в отдельных VLAN’ах. Здесь тоже проще все настраивать скриптом. Затем, необходимые скрипты ставятся в автозагрузку системы.
Прежде чем это реализовать, необходимо рассказать немного о том, как происходит загрузка в linux. В каталоге /etc есть несколько каталогов rc[X].d, где Х это цифра от 0 до 6. В них хранятся ссылки на скрипты для разных режимов запуска системы. Более подробно об этом можно ознакомиться в Wiki. Все ссылки тоже пронумерованы и начинаются либо с буквы K00 либо с буквы S00. Нумерация в ссылках отвечает за очередность запуска скриптов.

Если мы установили Debian для использования в качестве сервера согласно инструкции приведенной в первой части, то наш режим запуска по умолчанию будет rc2.d, т.е. все ссылки на наши скрипты мы будем складывать туда.
Теперь перейдем к созданию нашего скрипта.
Большая часть скриптов хранится в каталоге /etc/init.d. А для своих скриптов я обычно создаю папку rc.d без цифры в названии. Получается вот так:
<
Далее копируем какой-нибудь скрипт из init.d (я выбрал файл rcS) в наш каталог rc.d. При копировании указываем новое имя файла, пусть будет intefaces:

Затем открываем наш файл interfaces и стираем в нем все кроме самой первой строки. Должно получиться вот так:

Всё. Заготовка для нашего скрипта готова. Первая строка в нем обозначает то, что текст написанный ниже будет обрабатываться интерпретатором командной строки sh.
<Простой скрипт будет выглядеть примерно так:
ifconfig eth0 down ifconfig eth0 192.168.1.2 netmask 255.255.255.0 up
Первая команда выключает сетевой адаптер, чтобы сбросить все его настройки. Вторая команда присваивает IP-адрес и маску, а параметр up отвечает за включение:

Чтобы базовые настройки сети не мешали работе нашего скрипта, необходимо в файле /etc/network/interfaces закоментировать символами # у каждого сетевого адаптера кроме lo все строки за исключением allow-hotplug ххх и сохранить:

Самое главное — не забыть поставить его в автозагрузку, иначе при перезапуске системы сетевые интерфейсы останутся не настроенные. В консоли прописываем следующую команду (регистр важен):
ln -s /etc/rc.d/interfaces /etc/rc2.d/S90interfaces
Эта команда делает символьную ссылку на наш скрипт в каталог rc2.d. После этих действий не спешите перезагружаться, чтобы посмотреть результат. Предварительно нам нужно сделать еще несколько вещей.
Если мы больше не будем получать от DHCP-сервера настройки, то нам как минимум нужно прописать еще два параметра: шлюз по умолчанию и DNS-сервер.
Начнем с последнего. DNS-сервера вписываются в файл /etc/resolv.conf. Одна строчка в файле = одному серверу. В нашем примере мы вписали два сервера:

Теперь что касается шлюза. Если наша машина будет работать маршрутизатором в локальной сети, где возможно будут существовать еще статические маршруты до нужных сетей, то в этом случае я рекомендую для этих целей сделать еще один скрипт. По образу и подобию создаем заготовку скрипта в /etc/rc.d с названием route и вписываем туда наш шлюз:
route add default gw 192.168.1.1
Получится вот так:

Затем добавляем этот скрипт в автозагрузку:
ln -s /etc/rc.d/route /etc/rc2.d/S91route
Если же кроме шлюза по умолчанию ничего больше не предвидится, то смысла городить отдельный скрипт под маршрутизацию нет, а команду route add можно вписать в конец нашего скрипта, отвечающего за инициализацию сетевых интерфейсов. Вот так:

После этих действий можно перезагрузить наш комп и посмотреть на результат отработки скриптов. Помимо того, что скрипты обрабатываются при старте, нам ничего не мешает их запускать вручную при необходимости. Выбираем его mc и нажимаем Enter или пишем путь в консоли до файла скрипта и тоже жмем Enter.
Второй случай, который мы рассмотрим — создание виртуальных сетевых адаптеров для работы в разных VLAN’ах. Для реализации этого функционала нам необходимо доустановить в систему один пакет. Делаем это:
apt-get install vlan

Теперь по порядку рассмотрим процесс создания и настройки виртуальных сетевых интерфейсов. Для пример создадим две сетевухи в VLAN 10 и 15.
Первым делом мы включаем физический сетевой адаптер командой
ifconfig eth0 up
Затем создаем виртуальные адаптеры на физическом eth0 командами
vconfig add eth0 10
vconfig add eth0 15
и настраиваем на них нужные адреса:
ifconfig eth0.10 192.168.10.1 netmask 255.255.255.0 up
ifconfig eth0.15 192.168.15.1 netmask 255.255.255.0 up
Вот собственно и всё.

Удаленный доступ

Для удаленного доступа на linux используется SSH. Устанавливаем его, для этого набираем следующее:
apt-get install ssh
Нам будем предложено установить сам SSH и несколько сопутствующих пакетов. Соглашаемся и устанавливаем. Чтобы получить доступ к машине удаленно нужно воспользоваться каким-нибудь SSH-клиентом, например, putty.
Интерфейс основного окна putty представлен на скриншоте ниже. Первым делом вводим IP-адрес нашего сервера, куда будем подключаться. Затем в левой панели в меню Translation указываем кодировку UTF-8 (она является родной для linux), возвращаемся в меню Session и для большего удобства сохраняем эти установки под каким-нибудь именем — в поле Saved Session вводим желаемое имя подключения и жмем кнопку Save.
Для подключения нажимаем кнопку Open:

На этом пока всё. Продолжение следует…

admin

Нужно войти чтобы оставить комментарий.