Сеть

Настройка сетевых интерфейсов

Введение

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

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

Для работы с сетью в дистрибутиве Junior можно использовать как общие для всех UNIX-подобных систем команды (например, ifconfig, ping, traceroute и т. д.), так и систему сценариев, написанную специально для облегчения работы с сетью (например, описанную ниже утилиту draknet).

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

/etc/sysconfig/network

Этот файл содержит общие настройки сети, в частности имя компьютера (hostname) и имя домена (domainname).

/etc/sysconfig/network-scripts

В этом каталоге расположены файлы настроек и сценарии для работы с различными типами сетевых устройств и подключений. Например, файл /etc/sysconfig/network-scripts/ifcfg-eth0 содержит информацию о настройке сетевой Ethernet-карты с интерфейсом eth0, /etc/sysconfig/network-scripts/ifcfg-ppp0 содержит информацию о настройке модемного соединения по протоколу PPP.

/etc/ppp

В этом каталоге расположены файлы настройки для удалённого доступа к Интернету по протоколу PPP.

/etc/init.d/

Это каталог с различными сценариями, активируемыми при загрузке системы, среди которых network, firewall и некоторые другие отвечают за настройку сети в момент загрузки и выключения компьютера.

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

# /etc/init.d/network start

Для остановки и перезапуска используются параметры stop и restart соответственно.

Для запуска отдельно взятого интерфейса можно дать команду вида # ifup интерфейс — например, # ifup ppp0.

Для выключения интерфейса можно применить команду # ifdown интерфейс.

Настройка сети

В системе Linux полностью реализован протокол TCP/IP (Transport Control Protocol/Internet Protocol). Протокол TCP/IP оказался наиболее успешным средством объединения компьютеров всего мира в единую сеть. Имея компьютер с системой Linux и адаптер Ethernet (сетевую карту), можно подключить компьютер к локальной сети или (при наличии соответствующего подключения) к сети Интернет, являющейся всемирной сетью, где обмен данными происходит по протоколу TCP/IP.

В системе Linux можно использовать протокол TCP/IP без каких-либо сетевых устройств, поскольку режим работы с сетевой «заглушкой» или «петлёй» (loopback interface) позволяет вести диалог с самим собой. Это необходимо для некоторых программ и игр, в которых используется «заглушка».

Прежде чем настраивать TCP/IP, нужно узнать определённую информацию о параметрах сети. Потребуются следующие параметры.

IP-адрес

Это уникальный адрес компьютера в формате четырёх трёхзначных десятичных чисел, разделенных точками, например, 128.253.153.54.

Если настраивается только режим работы с заглушкой (loopback mode), т. е. когда не предполагается подключение к удалённым компьютерам и нет сетевого адаптера, а только моделируется подключение TCP/IP компьютера к самому себе, то IP-адресом будет 127.0.0.1.

Маска имён в сети (netmask)

Формат маски аналогичен формату IP-адреса. Маска определяет, какая часть IP-адреса соответствует номеру локальной (под)сети (subnetwork number), а какая═ — номеру компьютера в сети[8]. Маска представляет собой битовый шаблон. При наложении этого шаблона на адрес компьютера (хоста) можно узнать номер того участка сети, к которому относится этот адрес. Это очень важно для рассылки сообщений, поэтому если вдруг окажется, например, что можно установить связь с кем-либо вне локальной сети, а внутри сети такая связь не устанавливается, то может оказаться, что маска указана неверно.

Маска выбиралась администратором сети при её проектировании, поэтому он должен её точно знать. Большинство локальных сетей имеют класс C и используют маску 255.255.255.0. Сети класса B имеют маску 255.255.0.0. Программа NET-3 выбирает маску автоматически, предполагая по умолчанию, что подсети отсутствуют, если они не указаны.

То же относится и к адресу заглушки. Поскольку адрес в этом случае всегда 127.0.0.1, то и маска всегда 255.0.0.0. Это можно указать явно или положиться на маску, выданную по умолчанию.

Адрес сети (network address)

Это адрес является результатом побитовой операции И двух аргументов: IP-адреса компьютера и маски. Например, если маска имеет вид 255.255.255.0, IP-адрес равняется 128.253.154.32, то адрес сети будет 128.253.154.0. Если маска равняется 255.255.0.0, то адрес сети будет равняться 128.253.0.0.

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

Широковещательный адрес (broadcast address)

Этот адрес используется для трансляции пакетов сообщений по всем компьютерам, объединенным в (под)сеть. Следовательно, если IP-адрес компьютера в сети определяется последним байтом (иными словами, если маска равна 255.255.255.0), то широковещательный адрес является результатом побитовой операции ИЛИ выражения 0.0.0.255 с IP-адресом компьютера. Например, если IP-адрес компьютера 128.253.154.32, а маска 255.255.255.0, то широковещательный адрес будет равен 128.253.154.255.

Исторически сложилось, что в некоторых сетях в качестве широковещательного используется адрес сети. Этот факт следует знать, и если по этому вопросу возникают сомнения, надо обращаться к системному администратору. Разумеется, во многих случаях для конфигурирования сети достаточно будет взять соответствующие файлы с других компьютеров в той же сети и изменить в них только IP-адрес компьютера. Если используется только заглушка, широковещательный адрес отсутствует.

Адрес шлюза (gateway address)

Это адрес компьютера, который является действительно «шлюзом» во внешний мир (т. е. к компьютерам вне локальной сети). Во многих случаях адрес шлюза получается из IP-адреса компьютера заменой последних групп цифр на .1. Например, если IP-адрес компьютера равняется 128.253.154.32, то адрес шлюза может иметь значение 128.253.154.1.

Шлюзов может быть несколько. В действительности шлюз═ — это компьютер, который находится в двух различных сетях (т. е. имеет IP-адреса в различных подсетях). Шлюз занимается тем, что пересылает пакеты сообщений между этими двумя сетями. Многие сети имеют единственный шлюз во «внешний мир» (который представляет собой непосредственно примыкающую сеть). Однако в некоторых случаях к локальной сети примыкает несколько других сетей, и для каждой из них имеется свой шлюз.

Если используется только заглушка, адрес шлюза отсутствует. То же верно и в случае, когда локальная сеть изолирована от всех остальных.

Адрес сервера имён (name server address)

У большинства компьютеров в сети имеется сервер, который преобразует имя компьютера в IP-адрес (Domain Name Server, сокращённо DNS). Адрес этого сервера должен сообщить администратор сети или провайдер, предоставляющий доступ в Интернет. Такой сервер можно также запустить на собственном компьютере (программа называется named); в этом случае адрес сервера имен в сети равняется 127.0.0.1. Кроме тех случаев, когда абсолютно необходимо иметь собственный сервер имен, лучше воспользоваться тем, который имеется (если имеется).

При использовании только заглушки адрес сервера имён отсутствует.

Наиболее распространённые варианты настройки сети в Junior можно произвести с помощью утилиты draknet — поэтому рекомендуется сначала попробовать воспользоваться ей, а если фукнциональности этой утилиты вам будет недостаточно, попробовать произвести требуемые настройки вручную.

Сразу после запуска draknet предлагает попробовать определить автоматически сетевые устройства, установленные на вашем компьютере. После этого вам будет предложено настроить один из сетевых адаптеров, причём устройства, найденные автоматически, будут отмечены особо; далее необходимо ответить на вопросы (указать требуемые параметры), после чего ваша сеть будет настроена.

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

Настройка сети происходит в несколько этапов.

  1. Определение сетевых устройств (network interface)

    Для того, чтобы система работала с сетью, необходимо в файл /etc/sysconfig/network вписать строку NETWORKING=yes (обычно это делается при установке). Сетевые устройства, найденные системой при загрузке, могут участвовать, а могут и не участвовать в работе сети.

  2. Привязка устройств к IP-сетям

    Если устройство используется системой, оно должно быть зарегистрировано: в каталоге /etc/sysconfig/network-scripts/ должен быть файл ifcfg-имя_устройства (как правило ifcfg-eth0, ifcfg-eth1 и т. д.). В этом файле указываются построчно сетевые настройки устройства. Параметры IPADDR, NETWORK и NETMASK отвечают за адрес компьютера, адрес сети и сетевую маску соответственно. Если эти параметры система получает автоматически, вместо них указывается строка BOOTPROTO=способ_получения ( =dhcp для настройки по DHCP). Строка ONBOOT=yes означает, что настройка должна происходить при старте системы (это обычный способ работы с сетями Ethernet).

    Обратите внимание, что в файле /etc/sysconfig/network-scripts/ifcfg-имя_устройства обязательно присутствует строка DEVICE=имя_устройства. Дело в том, что содержимое этого файла служит параметрами для утилиты настройки сетевых устройств ifconfig. Среди параметров этой утилиты, конечно, должно быть и наименование устройства.

    В системе всегда существует сетевое устройство lo0 (loopback, заглушка) с адресом 127.0.0.1. Это устройство предназначено для соединения по сети с собственным компьютером. Так что программы, использующие сеть, могут без затруднений работать, даже если никакого подключения к сети нет.

  3. Настройка IP (маршрутизация)

    Для того, чтобы передавать информацию за пределы локальных сетей, доступных с компьютера, необходимо настроить маршрутизацию. Маршрутизация в системе устроена таблично: любому IP-адресу и любому адресу подсети адресата может соответствовать адрес компьютера-маршрутизатора, который должен пересылать этому адресату данные. Чем больше единиц в сетевой маске, тем выше приоритет записи в таблице маршрутизации. Таким образом, при определении маршрутизатора для очередного пакета, адресат которого находится за пределами локальной сети, система сначала будет искать его среди записей вида компьютер — компьютер (сетевая маска 255.255.255.255), затем — среди записей вида подсеть — компьютер (в порядке уменьшения сетевой маски), и, наконец — в записи вида 0.0.0.0 — компьютер (сетевая маска 0.0.0.0 означает всю сеть).

    Просмотреть таблицу маршрутизации можно командой netstat -rn. В этой таблице, кроме того, каждой локальной сети соответствует имя подключённого к ней сетевого устройства. В самом простом виде такая таблица должна содержать по одной записи вида подсеть — устройство на каждую локальную сеть (обычно — для lo0 и eth0) и одну запись вида 0.0.0.0 — компьютер для указания маршрутизатора по умолчанию.

    Адрес маршрутизатора по умолчанию указывается в файле /etc/sysconfig/network строкой GATEWAY=адрес.

    Более подробно о параметрах настройки сети и сетевых устройств можно прочитать в файле /etc/sysconfig/network-scripts/README.

  4. Настройка DNS

    Компьютер, подлключённый к сети Интернет, может воспользоваться службой доменных имён (DNS) для преобразования символьных IP-адресов (доменных имён) в числовые IP-адреса и обратно. Например, доменному имени www.ru соответствует адрес 194.87.0.50, что можно узнать, выполнив команду host www.ru. Адрес используемого для этой операции DNS-сервера указывается в файле /etc/resolv.conf в строке вида nameserver адрес (таких строк может быть несколько). В виде domain=имя_домена или search=имя_домена1 имя_домена2 ... в этом же файле указываются имена доменов, в которых будет производиться поиск символьного IP-адреса. Например, если в /etc/resolv.conf указано search=school.altlinux.ru, команда host student2 будет сначала пытаться определить адрес student2, а затем — адрес student2.school.altlinux.ru.

    Преобразование IP-адресов необходимо доже если ни один DNS-сервер не доступен. Вместо того, чтобы вызывать службу DNS, система может обратиться к файлу /etc/hosts, строки которого (вида IP-адрес имя1 имя2 ...) как раз и задают соответствие символьных и числовых IP. Файл /etc/hosts можно использовать для автономной локальной сети. В файле /etc/nsswitch.conf, среди прочих записей, есть строчка, начинающаяся на hosts:, например, такая hosts: files dns. Она означанет, что для превращения одного вида IP-адреса в другой система сначала попытается обратиться к файлу /etc/hosts, а если соответствующей записи там не найдётся, отправит DNS-запрос.

  5. Настройка имеющихся сетевых служб

    Как правило, настройка определённой сетевой службы (почты, www-сервера и т. п.) описывается в документации этой службы. Однако «лёгкие» сетевые службы (такие как cups-lpd или tftpd) могут не разбираться в тонкостях сетевой настройки, а запускаться посредством сетевого метадемона inetd (xinetd). Метадемон устроен так, что он принимает сетевой запрос на соединение, предназначенный для любой из этих служб, настраивает соединение и запускает службу, которая только принимает и передаёт данные. Для работы таких служб необходимо, чтобы метадемон запускался при старте системы и в файле настройки службы /etc/xinetd.d/имя_службы было указано disable=no. Кроме того, возможностью доступа к сервису из внешней сети управляет строка only_from=адрес_сети в этом файле и в /etc/xinetd.conf (общие настройки xinetd).

Для проверки работоспособности сети TCP/IP можно воспользоваться следующей схемой.

Для начала убедитесь в работоспособности только что настроенного вами интерфейса при помощи команды $ ping ip_адрес_интерфейса

При получении ответов от него можно проверить командой ping доступность любого внешнего интерфейса из той же подсети, что и только что настроенный. После этого необходимо проверить работоспособность серверов DNS с помощью команды $ host имя_хоста имя_сервера_DNS.

Для проверки возможности доступа к Интернету необходимо дать команду ping интернет_сервер, например, ping www.altlinux.ru.

Подключение к Интернет

Прежде всего необходимо установить и включить модем. Если модем установлен и включен,переходите к пункту Установка удаленного доступа к сети.

Установка модема

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

  1. Запустите утилиту kppp (Меню Сеть->Удаленный доступ->KPPP или посто набрав команду kppp в терминале). Появится окно программы с полями Соединение, Имя пользователя, Пароль (пока пустыми).

  2. Далее нажмите на кнопку Настройка

  3. Перейдите на вкладку Модем.

  4. Нажмите на кнопку Опросить модем. Если через некоторое время появилось окно с результатами опроса модема, то можете расслабиться, нажать на кнопку Закрыть и дальше этот пункт не читать.

  5. Если же появилось сообщение о том, что модем не найден, то проследуйте на вкладку Устройство

  6. В выпадающем меню Устройство модема, выберите порт на котором установлен ваш модем, используя следующую таблицу:

    Обозначение порта в windows: Com1

    Обозначение порта в Linux: /dev/ttyS0

    Обозначение порта в windows: Com2

    Обозначение порта в Linux: /dev/ttyS1

    Обозначение порта в windows: Com 3

    Обозначение порта в Linux: /dev/ttyS2

    Обозначение порта в windows: Com 4

    Обозначение порта в Linux: /dev/ttyS3

  7. Если после этого модем у вас не заработал, то убедитесь, что у вас установлен не win (soft) модем, или прочтите подробную справку по KPPP в Центре помощи KDE.

  8. Если же у вас установлен так называемый winmodem, то приготовьтесь к определённым и неизбежным проблемам и посетите сайт http://www.linmodems.org/.

Установка удаленного доступа к сети

  1. Запустите kppp и нажмите на кнопку Настройка.

  2. В появившемся окне нажмите на кнопку Создать.

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

  4. В поле Имя соединения введите любое название, по которому вы будете обращаться к вашему соединению, а нажав на кнопку Добавить, добавьте номер телефона. Аналогичным образом здесь вы можете добавить альтернативные номера телефонов, если ваш провайдер предоставляет более одного номера для дозвона. Для удаления номера нажмите на кнопку Удалить.

  5. Если ваш провайдер если ваш провайдер требует явного указания сервера DNS для выхода в Интернет, перейдите на вкладку DNS Серверы, в поле IP-адрес сервера DNS введите адрес DNS-сервера. Нажмите на кнопку Добавить. Обычно провайдер предоставляет два адреса DNS-серверов, поэтому потребуется повторить процедуру для второго адреса. Затем нажмите на кнопку OK. Чаще всего сервера DNS назначаются провайдерами автоматически и этот шаг выполнять не требуется.

  6. Нажмите еще раз на кнопку OK.

  7. Теперь введите имя пользователя (Login), пароль (Password) и нажмите на кнопку Подключиться.

  8. Когда произойдет соединение, в нижнем правом углу эрана появится индикатор подключения. Теперь можно запустить броузер (Mozilla), и путешествовать по Интернету.

Электронная почта

В данном разделе описано, как организовать обмен электронной почтой с Интернет и внутри локальной сети — для этого служит сервер электронной почты postfix. Здесь не описывается, как создавать и читать почтовые сообщения (см. об этом раздел Электронная почта главы 4.). Однако даже если у вас отдельный компьютер, подключённый к Интернет через обычное модемное соединение, вам стоит ознакомиться с данным разделом.

Возможно, вас удивит то, что сервер передачи электронной почты postfix рекомендуется к установке в любой конфигурации ALT Linux. Это объясняется тем, что в UNIX-подобных системах возможность отправлять почту с помощью простого вызова команды из командой оболочки практически обязательна. Некоторые программы (например, сервис cron) пользуются этим для отправки сообщений пользователям. Пересылкой всей электронной почты, проходящей через машину, занимается MTA (Mail Transport Agent), в нашем случае это postfix. Хотя многие почтовые программы способны отправлять сообщения на удалённый SMTP-сервер, имеет смысл поручить и эту задачу системному серверу электронной почты, чтобы не было необходимости следить за отсылкой отправленных писем. Существуют и другие популярные MTA (например qmail, exim), но они по разным причинам не вошли в данную версию дистрибутива. Sendmail, ветеран Интернета, проигрывает postfix по ряду параметров, в том числе в безопасности, к тому же он неоправданно сложен в настройке. В данном руководстве мы ограничимся рекомендациями по настройке postfix для нескольких типичных ситуаций. Более полные сведения можно получить из превосходной документации на английском языке, которая входит в состав пакета postfix.

Пакеты postfix

Базовый RPM-пакет для установки сервера postfix в ALT Linux носит, как нетрудно догадаться, имя postfix. Есть также несколько дополнительных пакетов, предоставляющих сервисы по приёму и доставке сообщений по сети с различной степенью защищённости. Один из пакетов SMTP-серверов, postfix-smtpd либо postfix-smtpd-sasl, нужен postfix для того, чтобы принимать сообщения по протоколу SMTP (или ESMTP) как извне, так и локально. Второй из этих пакетов реализует расширения SASL; подробнее об этом см. далее. Есть также пакет postfix-sasl, который расширяет возможности доставки сообщений на случай, если какие-либо принимающие серверы, с которыми взаимодействует данный сервер, пользуются авторизацией по методу SASL.

Конфигурационные файлы

Файлы настройки postfix располагаются в каталоге /etc/postfix. Основные параметры определяются в файле main.cf; в частности, все параметры, о которых говорится далее в этой главе, устанавливаются именно в этом файле, если это не оговаривается специально.

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

Доменная информация

Имя хоста и домена, которые считаются локальными при обработке email-адресов, необходимы для функционирования почтового сервера. Если эти имена для postfix должны быть отличны от того, что выдаёт команда hostname, установите их с помощью параметров myhostname и mydomain.

Postfix на dialup-машине

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

defer_transports = smtp

Доставка активизируется командой /usr/sbin/sendmail -q, которая в ALT Linux исполняется автоматически при установке PPP-соединения.

Будучи полноценным MTA, postfix способен находить серверы, обслуживающие получателей сообщений, при помощи DNS. Тем не менее, для dialup-машин непосредственная доставка сообщений нежелательна, поскольку время соединения ограничено. К тому же это излюбленная тактика распространителей спама, поэтому многие серверы сверяют IP-адрес отправителя с базой известных адресов провайдерских пулов, после чего сообщения с таких адресов отвергаются. Поэтому целесообразно доверить доставку исходящей почты SMTP-серверу провайдера. Этим управляет параметр relayhost, например:

relayhost = [smtp.provider.net]

Postfix на клиентской машине локальной сети

Рабочие станции в локальной сети или машины в провайдерской сети, отделённой от Интернета с помощью межсетевого экрана/NAT, должны переправлять исходящую почту на почтовый сервер, обслуживающий данную сеть. Для этого также используется параметр relayhost, описанный выше. Если сервер задан IP-адресом, можно отключить использование DNS для ускорения работы:

disable_dns_lookups = yes

Для того, чтобы в доменной части адреса отправителя фигурировал домен сети, а не имя конкретной машины, установите параметр myorigin в имя домена:

myorigin = $mydomain

Если почтовые ящики пользователей монтируются с сервера по NFS, postfix на клиентских машинах служит лишь для отправки почты. В такой конфигурации следует отключить агенты local и smtp в файле /etc/postfix/master.cf.

Почтовый сервер для небольших доменов и сетей

Домены, для которых сервер получает почту, отличные от значения mydomain и не сконфигурированные как виртуальные домены postfix (см. ниже), нужно перечислить с помощью параметра mydestination, либо в дополнительном файле, на который ссылается этот параметр. Аналогичным образом параметр mynetworks описывает блоки IP-адресов, которые считаются внутренними и с которых разрешён приём исходящих сообщений. Не следует записывать в mynetworks блоки адресов, не принадлежащих сети, которую обслуживает сервер, поскольку этим могут воспользоваться распространители спама.

Для SMTP-аутентификации внешних пользователей, желающих отправлять сообщения через данный сервер, можно использовать поддержку авторизации SASL. Пакет postfix-smtpd-sasl предоставляет альтернативу postfix-smtpd с включенной поддержкой SASL; возможный недостаток этого расширения — включение кода, в меньшей степени проверенного в плане безопасности. Настройка аутентификации SASL описана в файле SASL_README в документации postfix.

Преобразование глобальных адресов в локальные адреса назначения устанавливается с помощью таблиц типа virtual (см. virtual(5)):

virtual_maps = hash:/etc/postfix/virtual

Пример содержимого /etc/postfix/virtual:

      domain1.ru # Домен в стиле postfix (текст здесь игнорируется)
      name1@domain1.ru user1
      name2@domain2.ru user2@otherbox
      @domain2.ru user3

После редактирования оттранслируйте таблицу в рабочий образ командой postmap /etc/postfix/virtual.

Если каким-либо пользователям сети почта должна доставляться по SMTP на их рабочие станции (это предполагает, что на их машинах работают MTA), подставляйте в доменной части их адресов имена машин в таблицах virtual либо aliases (см. ниже).

Алиасы и преобразования адресов

Имена локальных адресатов либо совпадают с именами пользователей системы, либо подставляются из таблицы aliases (см. aliases(5)):

      alias_maps = hash:/etc/postfix/aliases
      alias_database = hash:/etc/postfix/aliases 

При установке postfix «с нуля» в этой таблице создаётся алиас на имя root для доставки всей корреспонденции, предназначенной администратору и поступающей на другие системные адреса, на имя реального пользователя, который осуществляет функции администратора. Изначально им становится первый зарегистрированный в системе реальный пользователь. Таблица алиасов отличается от остальных таблиц, используемых postfix; имена слева, которые являются ключами для поиска, отделяются от значений справа двоеточиями. Адресаты справа перечисляются через запятую и могут быть адресами, командами (обозначаются символом | в начале правой части; сообщение подаётся на стандартный поток ввода команды) и именами файлов:

      John.Smith: john
      chief: chief@bosscomputer
      trio: stock, hausen, walkman
      robot: | /usr/bin/robot --process-mail
      filebox: /dir/file

Рабочий образ таблицы строится с помощью команд postalias /etc/postfix/aliases или newaliases. При отправке сообщения postfix генерирует адрес отправителя из имени пользователя и собственного домена (или значения myorigin). Даже если почтовый клиент выставил заголовок From:, этот адрес попадает в служебную информацию сообщения и может быть использован получателем, что не всегда желательно. Преобразование адресов отправителей к глобальным адресам можно задать в таблице типа canonical (см. canonical(5)):

      sender_canonical_maps = hash:/etc/postfix/sender_canonical

Аналогичная таблица recipient_canonical и соответствующий параметр recipient_canonical_maps могут быть использована для преобразования адресов назначения. Для актуализации изменений таблиц используйте команду postmap имя_таблицы.

Борьба со спамом и почтовыми вредителями

Противодействие спаму (массовым рассылкам непрошеной корреспонденции) — отдельная большая тема, которую невозможно полностью раскрыть в этом руководстве; здесь даны лишь несколько практических советов применительно к конфигурации postfix. По умолчанию сервер сконфигурирован так, что отвергает попытки переслать сообщения извне на другие удалённые серверы. Со спамом, адресованным локальным получателям, дело обстоит сложнее. Хорошо зарекомендовали себя служба MAPS RBL и ей подобные, организованные по принципу «чёрного списка» IP-адресов; чтобы задействовать эти сервисы, предварительно ознакомившись с условиями их использования, занесите имена доменов, работающих по принципу RBL, в конфигурацию:

      smtpd_client_restrictions = permit_mynetworks, reject_maps_rbl
      maps_rbl_domains = relays.ordb.org, blackholes.mail-abuse.org

В некоторых случаях требуется адресная работа с отдельными нарушителями почтового этикета. Адресная работа заключается в блокировании SMTP-соединений с их адресов, сетей либо доменов. Для этого предусмотрены таблицы типа access (см. access(5)):

      smtpd_client_restrictions = permit_mynetworks, hash:/etc/postfix/access

Пример таблицы:

      1.2.3.4 550 No more canned meat, please
      1.2.5 REJECT
      goodguy.generallybad.com OK
      .generallybad.com REJECT

Как и с другими таблицами, после редактирования приведите кары в действие командой postmap /etc/postfix/access.

Прочие настройки

По умолчанию размер файла почтового ящика при локальной доставке ограничен 51200000 байтами. Это ограничение можно изменить с помощью параметра mailbox_size_limit. Установка параметра в 0 снимает ограничение.

Использование Postfix

После того, как postfix настроен и запущен как сервис с предсказуемым именем postfix, в настройках почтовых клиентов можно указывать имя или адрес машины (например, localhost) как SMTP-сервер. Программа fetchmail работает в связке с postfix, опрашивая внешние почтовые ящики пользователей по протоколам POP3 или IMAP и передавая полученные сообщения системному MTA для локальной доставки. Лог-файлы postfix находятся в каталоге /var/log/mail.

Удалённый доступ и удалённое администрирование

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

Для решения этой задачи используется ставший уже традиционным протокол SSH (Secure Shell). В отличие от устаревших протоколов, таких как telnet и rsh/rlogin/rcp, которые передают данные прямым текстом и подвержены обыкновенному прослушиванию и различным атакам, SSH реализует соединение с удалённым компьютером, защищающее от:

  • прослушивания данных, передаваемых по этому соединению;

  • манипулирования данными на пути от клиента к серверу;

  • подмены клиента либо сервера путём манипулирования IP-адресами, DNS либо маршрутизацией.

В дополнение к отличным характеристикам в области обеспечения безопасного клиент-серверного соединения, SSH обладает следующими возможностями:

  • сжатие передаваемых данных;

  • туннелирование каналов внутри установленного соединения — в т. ч. соединений с X-сервером, что позволяет запускать графические приложения на удалённой машине;

  • широкая распространённость: существуют реализации SSH для самых различных аппаратных платформ и операционных систем.

OpenSSH — это входящая в дистрибутив реализация SSH, поддерживающая версии 1.3, 1.5 и 2.0 протокола SSH, и распространяемая на условиях лицензии BSD. Эта реализация включает в себя:

  1. Клиентские программы ssh, scp и sftp (используются для запуска программ на удалённых серверах и копирования файлов по сети).

  2. Серверные программы sshd, sftp-server (используются для предоставления доступа по протоколу SSH).

  3. Вспомогательные программы make-ssh-known-hosts, rescp, ssh-keygen, ssh-add, ssh-agent, ssh-copy-id, ssh-keyscan.



[8] Если вас пугают эти термины, вам предлагается прочесть какой-либо вводный материал по администрированию сетей.