Установка Linux Red Hat 7.1

         

Безопасность и Linux Red Hat 7.1 как эффективный маршрутизатор


Глава 31. Безопасность и Linux Red Hat 7.1 как эффективный маршрутизатор

  • Проблемы базовой безопасности


  • Конфигурирование брандмауэра в ходе установки
  • Конфигурирование брандмауэра после установки
  • Создание маршрутизатора на основе Linux

Эта глава посвящена двум взаимосвязанным темам: безопасность и связь сетей с Internet.

Мы проанализируем несколько уровней безопасности Linux. Рассмотрим, как сохранить надежность автономных систем Linux и обсудим более широкие проблемы обеспечения безопасности ЛВС, которые имеют выход в Internet. Мы также разберем, как построить брандмауэр для защиты системы в ходе установки и после нее.

Мы ознакомимся с работой Linux Router Project (Проект Маршрутизатора Linux), который позволяет использовать простую дискету со специальным дистрибутивом Linux для создания Linux-маршрутизатора, работающего как шлюз между локальной сетью и соединением с Internet.

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

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

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

Безопасность автономной системы

При работе с автономной системой Linux необходимо обеспечить самую общую безопасность. Поскольку система не соединена с локальной сетью, а связь с Internet, предположим, осуществляется лишь в короткие промежутки времени по модему, то требования к безопасности системы относительно невысоки.

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

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

Примечание

Существует ряд программ, предназначенных именно для разгадывания паролей. Если пароль представляет собой просто слово из словаря, то его можно распознать в течение нескольких минут, даже располагая всего лишь ресурсами обычного персонального компьютера. Пароль, состоящий из смеси букв разных регистров и цифр потребует для разгадывания на таком же компьютере уже нескольких недель. Один из простых способов построения сложных (но не забываемых!) паролей основан на использовании базовой фразы. Например, устойчивый к угадыванию пароль OM15lftP легко построить как аббревиатуру по первым буквам слов фразы "On March 15, I'm flying to Paris."

  • • Убедитесь, что компьютер достаточно хорошо защищен физически. Если компьютер содержит важные данные, не следует оставлять его в открытом офисе, когда идете обедать. Не следует выходить на прогулку, если выполнен вход в систему, особенно если это вход в режиме администратора (root) в консоли или в окне терминала.
  • • Не создавайте ненужные счета пользователей. Если постоянно систему используют только два человека, создайте счета только для них. Это позволит отслеживать, кто использует систему, и где происходят нарушения защиты.
  • • Самое ваясное - не сообщать никому пароли (пользователей и администратора), даже людям, которые уполномочены регулярно использовать систему. Следите за надежностью пароля администратора (root). Если он попадет в руки пользователя-злоумышленника, то система может быть разрушена в течение одного дня.
  • • Поскольку не существует полностью защищенной системы, следует кодировать особо важные данные. Существует много инструментов кодирования, включая кодирование PGP. Руководство по PGP можно найти в Internet по адресу: http: //www. linuxdoc .org/HOWTO/MuttGnuPG-PGP-HOWTO. html. Старая версия документа доступна на узле Linux Focus по адресу http://www.linuxfocus.org/English/Novemberl997/article7.html .

Безопасность систем Linux в ЛВС

Новые аспекты безопасности возникают в момент соединения системы Linux с локальной сетью. Даже если следовать всем приведенным правилам для автономной системы (которые необходимо соблюдать и в случае, когда система находится в локалвной сети), для хакера остается возможность получения доступа к системе Linux благодаря слабости сетевой защиты.

Две простых ограничения помогут уменьшить существующую опасность.

  • • Не следует запускать ненужные сетевые сервисы. Если нет необходимости в доступе к системе через telnet, то убедитесь, что демон Telnet (вероятно, /usr/sbin/in. telnetd) не инсталлирован и в /etc/ inetd. conf нет записи для него. Аналогично, если компьютер не работает как почтовый сервер, не следует запускать демон sendmail, который может приоткрыть некоторые нежелательные пути проникновения в систему. Те же правила действуют и для большинства сетевых серв-исов: FTP, finger, news, DNS и многих других. Запускайте демонов только тех сетевых сервисов, которые необходимы для соединения с сетью и выполнения ваших задач.

Совет

Если вы используете файл /etc/inetd. conf, обычный для других версий Linux (включая Red Hat Linux 6.x), можете сконвертировать его в формат Red Hat 7.1 xinetd с помощью команды /usr/sbin/inetdconvert.

Если вы пользуетесь другой версией Linux, в которой нет файла /etc/xinetd.conf, убедитесь, что для демона нет записи в файле /etc/inetd. conf (запись можно закомментировать символом [#] в первой позиции соответствующей строки).

  • • Убедитесь в эффективном использовании файлов /etc/hosts. allow и /etc/hosts .deny (см. гл. 28). Необходимо не только не позволять доступ с любого IP-адреса ко всем сервисам, которые не выполняются на данной системе, но и проверять, что разрешается лишь входящий доступ к сервисам, выполняемым на хост-компьютерах, при наличии соответствующего разрешения. Например, если выполняется сервер FTP для входящего доступа только двум пользователям, следует позволить доступ к FTP-сервису именно с двух систем, а не позволять FTP-соединение любому пользователю ЛВС.

xinetd

В Red Hat, начиная с версии Red Hat Linux 7.0, входит расширенный демон сервиса Internet xinetd, заменяющий inted. "Суперсервер" inetd управляет Internet-доступом access к Unix/Linux-компьютерам через порт. Чтобы дать возможность неопытным пользователям быстро запускать сервисы, подобные Telnet, FTP, POP e-mail и другие, inetd изначально устанавливается с несколькими открытыми портами. Как описано выше, вы можете использовать файлы hosts . allow и hosts . deny, чтобы управлять доступом к своему компьютеру. К сожалению, разрешая стороннему компьютеру доступ только к FTP для выполнения загрузки, вы тем самым разрешаете доступ ко всем службам на вашем компьютере.

Демон xinetd позволяет управлять доступом с помощью сервиса. Другими словами, если вы хотите предоставить кому-либо доступ к вашему FTP-серверу, вы не обязаны предоставлять ему доступ к другим сервисам, подобным Telnet или NFS. Единственный способ проникновения в компьютер будет в этом случае лежать через открытый вами FTP-сервис.

Другое достоинство xinetd состоит в том, что он способен защищать вас от атак типа отказ в обслуживании (DoS - Denial of Service). DoS представляет собой ситуацию, в которой некто посылает на ваш сервер поток сообщений (возможно, совсем простых, наподобие ping), но настолько интенсивный, что другие пользователи не могут получить доступ к вашему серверу.

Более подробные сведения о xinetd доступны по адресу http: / /www. xinetd. огд. На этом сайте хранится документация и примеры необходимых конфигурационных файлов.

Сохранение безопасности в сети

Даже если отдельная система Linux в локальной сети хорошо защищена, в случае, когда ЛВС имеет выход в Internet, оставшаяся часть локальной сети открыта для самых разнообразных атак.

Защита сети - сложная работа, требующая детальных знаний о сетевой безопасности. В основе обеспечения минимальной безопасности сети лежат две технологии (и их вариации).

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

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

Использование брандмауэра (firewall), фильтрующего пакеты. Фильтрация пакетов - это задача, которую способен выполнить любой маршрутизатор. Каждый раз, когда маршрутизатор получает пакет информации из Internet, предназначенный для компьютера в ЛВС, IP-адрес отправителя, IP-адрес адресата и порт соединения проверяются и сравниваются с таблицей, чтобы проверить может ли ЛВС получить пакет. Если пакет получить нельзя, он уничтожается. В рамках этого подхода соединения указанных хост-компьютеров с указанными хост-компьютерами или для специфических портов (а также их комбинаций) можно разрешить или запретить.

Использование прокси-брандмауэра. Прокси-брандмауэр (Proxy firewall) - другой подход, основанный на предотвращении прямых соединений между компьютерами с внутренней стороны брандмауэра и со стороны Internet. Если хост-компьютер локальной сети соединяется с хост-компьютером Internet, то он соединяется с прокси-системой. Прокси-система выполняет соединение с системой в Internet, осуществляя переключение для всех передающихся данных. Proxy играет аналогичную роль посредника тогда, когда разрешены любые входящие соединения с ЛВС. Для защиты локальной сети и полного отделения от Internet прокси-бранд-мауэр имеет возможность фильтрации пакетов. Его можно сконфигурировать для поддержки определенных типов трафика через брандмауэр в каждом направлении или для запрета соединений на основе различных переменных, включая IP-адрес отправителя, IP-адрес адресата и используемый порт соединения.

Чтобы понять основы безопасности в сети, ознакомьтесь с Linux Security НОWTO на http: / / www.linuxdoc.org/HOWTO/Security-HOWTO.html.

Систему Linux легко сконфигуриронать как маршрутизатор между локальной сетью и Internet С поддержкой соединения через стандартный аналоговый телефонный модем или линии ISDN. Этот маршрутизатор можно сконфигурировать как фильтр пакетов или прокси-брандмауэр. Установка маршрутизатора на основе Linux дешевле, чем покупка полного аппаратного решения для обеспечения маршрутизации и предлагает больше опций защиты, чем многие аппаратные маршрутизаторы.

Конфигурирование брендмауэра в ходе установки

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

В ходе инсталляции Red Hat Linux 7.1 можно сконфигурировать брандмауэр для устанавливаемой системы Linux, как показано на рис. 31.1. Позже мы разберем, как пользоваться утилитой lokkit для создания новой конфигурации брандмауэра. В завершение вы познакомитесь с простым брандмауэром и оцените его возможности.

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

В TCP/IP — языке Internet - предусмотрено ди 65 536 портов. Каждый из этих портов подобен "двери", через которую осуществляются определенные разновидности обмена данными. Для выполнения базовых коммуникаций вашему компьютеру потребуется ряд таких дверей. Программа инсталляции Red Hat Linux 7.1 позволяет устанавливать брандмауэры с высоким или средним уровнем защиты, причем вы можете настраивать порты, открываемые для обмена.

Примечание

В TCP/IP все 65536 портов делятся на три категории. Полностью определенные порты (от О до 1023) используются для сервисов, подобных Web-страницам, e-mail и чатам Internet. Зарегистрированные порты (от 1024 до 49151) включают прочие сервисы, подобные Internet-телефонии и NIFS. Можно использовать и другие порты (от 49152 до 65535) в специальных

целях. Официальный список доступен через Internet Assigned Numbers Authority no адресу www. iana. org/assignments/port-numbers. Многие из ЭТИХ портов перечислены в файле /etc/services.


Рис. 31.1. Конфигурирование брандмауэра в ходе установки Linux

Надежные устройства

Все обнаруженные сетевые платы перечислены в окне Firewall Configuration (Конфигурирование брандмауэра). На рис. 31.1 показаны две сетевых платы eth0 и eth1. Предположим, что компьютер выполняет функции маршрутизатора между двумя сетями. Адаптер eth0 подключен к локальной сети, a ethl подключен к Internet. Если вы определите одну из этих плат как надежное устройство (trusted device), установив соответствующую опцию, то брандмауэр для этого адаптера будет отключен.

Если вы доверяете всем пользователям всех компьютеров в локальной сети, выберите опцию Customize (Настройка). Это позволит вам определить eth0 как надежное устройство.

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

Высокий уровень защиты

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

Кроме запрашиваемых объектов, наподобие Web-страниц, установленный по умолчанию брандмауэр Red Hat Linux 7.1 с высоким уровнем защиты допускает две разновидности входного трафика: адресные сведения с DNS-серверов и конфигурационные сведения с DHCP-серверов.

DNS. В гл. 21 мы разбирали, что сервер имен, известный также как Domain Name Service (DNS), представляет собой базу данных доменных имен Web-сайтов, наподобие www. Sybex. com, и соответствующих им IP-адресов, наподобие 192.168.0.131. Компьютеру нужен IP-адрес, чтобы сообщить в Internet, где искать необходимый вам Web-сайт. Если вы задали IP-адрес хотя бы одного DNS-сервера в ходе инсталляции (проверьте файл /etc/resolv. conf), брандмауэр оставит для вас порт 53 открытым.

DHCP. В главе 4 мы разбирали, что сервер Dynamic Host Configuration Protocol (DHCP) конфигурирует IP-адресную информацию в локальной сети. Если вы пользуетесь внешним DHCP-сервером, вы должны дать ему возможность обращаться к компьютерам локальной сети через брандмауэр. Если вы разрешили DHCP в разделе Allow Incoming (Разрешить вход) на рис. 31.1, то брандмауэр оставит для вас порты 67 и 68 открытыми.

Брандмауэр с высоким уровнем защиты не допускает никакого другого трафика. Вы не сможете пользоваться обычными Internet-утилитами, наподобие RealAudio, и большинством чат-программ. Вы даже не сможете разделять NFS-файлы через такой брандмауэр. Если на вашем компьютере установлен Web-сервер, никто не сможет найти ваши Web-страницы.

Средний уровень защиты

При среднем уровне защиты число открытых каналов в брандмауэре больше. Открываются полностью определенные порты (от 0 до 1023), а также порты для NFS (2049), X Server (6000-6009) и X Fonts (7100). Открываются порты, необходимые для обслуживания DNS и DHCP, как описано выше. Другими словами, при среднем уровне защиты большинство зарегистрированных портов остаются открытыми, что автоматически позволяет вам получать доступ к множеству спец. услуг, подобных передачам RealAudio.

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

Настройка конфигурации

ЕСЛИ вы считаете, что и высокая и средняя степень защиты слишком ущемляют ваши интересы, можете установить исключения для выбранных портов. В окне, показанном на рис. 31.1, выберите опцию Customize (Настроить). Это позволит вам открыть в брандмауэре каналы для необходимых данных. Список Allow Incoming включает типовые трафики, которые могут потребоваться для доступа к Internet. Текстовое поле Other Ports (Другие порты) позволяет открыть другие порты по выбору.

Входной трафик

В списке Allow Incoming (Разрешен входной трафик) шесть типов портов. Они соответствуют разновидностям данных, которые вы собираетесь получить при подключении к Internet, или когда к вашему компьютеру подключаются другие, а он играет роль Web-, e-mail- или FTP-сервера:

DHCP. Разрешен по умолчанию в ходе инсталляции Red Hat Linux. Как мы ранее обсуждали, цель состоит в том, чтобы позволить DHCP-серверам, расположенным вне вашей сети конфигурировать компьютеры в ней.

SSH. Аббревиатура для Secure Shell (Безопасная оболочка). Когда используется SSH, вся процедура входа в сеть шифруется. Если вы хотите использовать пакет Secure Shell для администрирования вашего компьютера с удаленного сайта, вам необходимо будет подключаться через установленный вами брандмауэр. Разрешение SSH открывает порт 22, который предназначен для входов Secure Shell. Чтобы использовать SSH, вам потребуется пакет opensshserver-2.5.2р2-5.1386.rpm.

Telnet. Telnet представляет незащищенный способ входа и ввода команд для удаленного компьютера. Подключившись к удаленному компьютеру через Telnet, вы можете пользоваться интерфейсом командной строки так же, как будто вы локальный пользователь. Поскольку операции обмена Telnet не зашифрованы, любой пользователь, располагающий средством прослушивания вашей сети (оно называется sniffer (анализатор)), может записать пароль и другие передаваемые сведения.

WWW (HTTP). Если вы установили на своем компьютере Web-сервер, вы должны разрешить эту опцию. В противном случае пользователи, пытающиеся получить Web-страницы с вашего компьютера, не получат ничего. Эта опция не нужна для получения Web-страниц из Internet.

Mail (SMTP). Если вы установили на своем компьютере почтовый сервер, вы должны разрешить эту опцию. Пользователи, посылающие сообщения e-mail, посылают их на mail-сервер. Если Mail-порт (25) закрыт, то почтовые сообщения не смогут пройти через брандмауэр.

FTP. Если на вашем компьютере установлен один из типов FTP-серверов, следует разрешить эту опцию. Стандартный пакет организации FTP-сервера: wu-ftpd-2 . 6 .1-16 .1386 .rpm, доступный на компакт-диске CD-ROM, прилагаемом к данной книге.

Настройка трафика порта

Перечисленных в раздел Allow Incoming портов недостаточно для полного набора услуг, необходимых всем пользователям. Например, если вы хотите обеспечить разделяемый доступ к каталогам от других Linux- и Unix-компьютеров через брандмауэр, вы должны открыть каналы распределения по портам (portmap) и NFS, соответствующие портам 111 и 2049.

Далее необходимо проверить разновидности трафика, осуществляемого через каждый порт. Откроите файл /etc/services или указанную выше Web-страницу. Соответствующие сведения выглядят так:

sunrpc 111/tcp portmapper #RPC 4.0 portmapper TCP

sunrpc 111/udp portmapper #RPC 4.0 portmapper UDP

nfs 2049/tcp nfsd

nfs 2049/udp nfsd

Опираясь на эти сведения, вы можете открыть соответствующие каналы в окне Firewall Configuration, показанном на рис. 31.1. Щелкните на опции Customize (Настройка) и введите в текстовое поле Other Ports (Прочие порты):

111:tep,lll:udp,2049ttcp,2049:udp

Тем самым открываются порты 111 и 2049, которые используются для разделяемого доступа через NFS к TCP- и UDP-трафику. Можете добавить тем же способом и другие порты. Не забывайте в списке разделять порты запятыми и не вводите пробелы между элементами списка.

Конфигурирование брандмауэра после установки

После инсталляции Red Hat Linux 7.1 настройки брандмауэра можно изменить с помощью утилиты lokkit. Если потребуется, монтируйте инсталляционный компакт-диск CD-ROM в каталоге /mnt/cdrom и выполните следующие команды установки пакета:

# rpm -i /Mnt/cdrom/RedHat/RPMS/lokkit-0.43-6.1386.rpm

Установив утилиту lokkit, ее можно запустить из командной строки следующей командой:

# /usr/sbin/lokkit

После запуска утилиты lokkit, на экране появится окно Firewall Configuration, показанное на рис. 31.2. В нем можно установить защиту высокого или среднего уровня или вообще отказаться от услуг брандмауэра па пашем компьютере. В рамках lokkit можно переключаться между опциями с помощью шшиши Tab и устанавливать опции клавишей пробела.


Рис. 31.2. Окно утилиты lokkit конфигурирования Firewall Configuration

Выберите опцию High (Высокий) или Medium (Средний) уровня защиты и щелкните на кнопке Customize (Настроить). На экране появится меню Firewall Configuration - Customize, подобное показанному на рис. 31.3.

В этом меню представлен ряд опций настройки, которые были доступны в меню Firewall Configuration, использовавшемся в ходе инсталляции Red Hat. Опции сетевой платы содержат инфракрасное устройство (irlanO) и обычный Ethernet-адаптер (ethO). Выберите необходимые опции, как это описывалось выше, и нажмите ОК. В результате вы вернетесь в исходное окно, показанное на рис. 31.2. Далее можно нажать ОК. и утилита lokkit сохранит конфигурацию брандмауэрав файле /etc/sysconf ig/ipchains.

Примечание

Если вы используете утилиту lokkit после инсталляции, брандмауэры с высоким и средним уровнями защиты не открывают DHCP-порт.

 

Настройка брандмауэра

Примечание

По умолчанию командой брандмауэра для Red Hat Linux 7.1 является ipchains. Новая команда для ядра 2.4.x - iptables. Можно заблокировать ipchains, и команда iptables будет автоматически использоваться брандмауэром. Однако утилита lokkit не поддерживает конфигурирование iptables. Документация для iptables еще не закончена; свежее HOWTO-руководство можно найти по адресу http: / /va. samba. org/netf ilter/unreliable-guides/packet-f iltering-HOwro/index.html. Как только документация будет готова, а будет доступна по адресу www. linuxdoc. org Web.

Примечание

Доступна еще одна утилита конфигурирования брандмауэра, /usr/sbin/firewall-config, но она несколько сложнее, чем lokkit.

Можно настроить порты, которые открываются по IP-адресу. Другими словами, можно разрешить операцию доступа к определенному каналу только для компьютера с заданным IP-адресом (только он сможет пересылать вам данные). Но методика подобного конфигурирования лежит вне области, рассматриваемой в этой книге. Более подробные сведения о брандмауэрах и сетевом конфигурировании можно почерпнуть из написанной Робертом Циглером книги "Брандмауэры Linux" ("Linux Firewalls" Robert Ziegler (New Riders, 1999)).

В следующем разделе, вы построите брандмауэр на основе версии Linux, базирующейся на гибком диске. Эта конфигурация включает возможности выполнения подмены (masquerading), которую можно использовать совместно с брандмауэром, построенным на утилите lokkit. Подмена скрывает адреса компьютеров в вашей сети.

Создание маршрутизатора на основе Linux

В этом параграфе описаны этапы создания маршрутизатора на основе Linux-системы с использованием дистрибутива Linux Router Project.

Разработанный как минимальная инсталляция Linux, дистрибутив Linux Router Project размещается на единственной дискете 1,44 Мбайт и содержит компоненты, необходимые для маршрутизации между двумя сетями Ethernet или между Ethernet и Internet, соединенными посредством РРР. Модули add-on реализуют поддержку дополнительного аппаратного обеспечения в глобальных сетях. Доступны и другие возможности, например управление SNMP.

Удобство установки маршрутизатора с использованием дистрибутива Linux Router Project вместо полномасштабных версий Linux (таких, как Red Hat) в том, что вся предварительная работа уже выполнена. Не нужно определять то, что должно быть инсталлировано для маршрутизации. Программное обеспечение включает простую, управляемую через меню систему конфигурирования, которая позволяет проверить, все ли необходимые настройки выполнены.

Программное обеспечение Linux Router Project доступно на Web-сайте этой книги (http: / / linux. juxta. com/). Для полной информации, обновления и получения модулей add-on посетите Web-сайт Linux Documentation Project (http:./ /www. linuxrouter. org/).

Ниже приведен подробный пример конфигурирования маршрутизатора между защищенной и незащищенной сетями. К сожалению, программное обеспечение Linux Router Project (LRP) построено на базе версии 2.0 и 2.2 ядра Linux. LRP для ядра версии 2.0 включает устаревшую команду ipfwadm, содержащую брешь в защите. LRP для ядра версии 2.2 включает ipchains, надежность которой выше. Полная поддержка команды iptables для версии 2.4 ядра Linux пока не реализована.

Что вы будете создавать

Программное обеспечение Linux Router Project используется для создания маршрутизатора, который служит в качестве брандмауэра, защищая личные области ЛВС от Internet. При этом мы делаем два предположения.

  • • Имеется соединение с Internet, вероятнее всего, по выделенному каналу и маршрутизатору или по ISDN-соединению и ISDN-маршрутизатору.
  • • Необходимо разрешить некоторый входящий доступ на серверы сети. Например, имеется Web-сервер, который должен быть доступен извне, но не должно бьггь доступа извне к файлам, приложениям и серверам баз данных в оставшейся части сети.

Примечание

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

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

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

Именно второй маршрутизатор (между незащищенной и защищенной локальными сетями) реализует возможности программного обеспечения Linux Router Project.

 

Типичная сеть с защитой брандмауэром

Подготовка

Ниже приведена процедура, позволяющая подготовить гибкий диск Linux Router Project в рамках системы Linux. На момент написания книги необходимые файлы можно было загрузить с одного из сайтов, перечисленных по адресу http: / /www. linuxrouter. org/download. shtml.

  1. Загрузите файл образа Linux и сохраните его, где вам удобно, например, в / tup/. На момент написания книги самый свежий образ диска idipt-image_1440KB_FAT_2.9.8_Linux_2.2. gz.
  2. Смените текущий каталог на каталог, в котором находится загруженный файл, командой cd /tmp.
  3. Разверните архив. Образ диска хранится в gz ip-формате, который можно развернуть командой; gunzip idiot-image_1440KB_FAT_2.9.8_Linux_2.2.gz
  4. Скопируйте файл образа диска на флоппи-диск, используя команду dd if=idiot-image_1440KB_FAT_2.9.8_Linux_2.2 of=/dev/fd0

Теперь у вас есть загрузочный диск для дистрибутива Linux Rquter Project. Но это еще не все Необходимы также драйверы сетевых плат, использующие ту же версию ядра (в данном случае - 2.2.16-1).

Повторите описанный процесс для файла 2.2.16-1. tar. gz, доступного на том же сайте Скопируйте его в каталог /tmp. Разверните и разархивируйте его с помощью команды tar xzvf 2.2.16-1. tar.gz. Скопируйте сетевые модули из развернутого подкаталога /tmp

2.2.16-1/modules/net-, на второй гибкий диск. В дальнейшем вам понадобятся оба диска.

Примечание

На момент, написания книги версия 2.9.8 Linux Router Project находилась в стадии бета-тестирования. Другими словами, до тех, пока она не перейдет в категорию финальной реализации, не рекомендуется использовать ее в производственном оборудовании.

Убедитесь, что аппаратное обеспечение достаточно для решения поставленных задач. Хотя компьютер 386SX с оперативной памятью 8 Мбайт можно использовать как маршрутизатор, а компьютер 486DX2 66 МГц с 12 Мбайт ОЗУ - еще лучше, сегодня желательно работать с Pentium 100 МГц или более мощной системой с оперативной памятью объемом не менее 16 Мбайт. Если происходит загрузка с дискеты, то нет необходимости в жестком диске. Если желательно добавить много модулей add-on в конфигурацию Linux Router Project, то объем программного обеспечения может превысить емкость дискеты и придется рассмотреть возможность загрузки с жесткого диска или загрузочного Zip-диска и увеличить объем оперативной памяти до 32 Мбайт. Подробности загрузки с других носителей описаны на домашней странице Linux Router Project.

Предупреждение

Если вы используете компьютер на базе Intel-процессора типа 386 или 486, то наилучший вариант - использование образов дисков с устаревшей командой ipfwadm, базирующейся на ядре версии 2.0.36. В рамках приведенной выше процедуры используйте файл образа диска idiot-image_1440KB_FAT_2.9.8_Linux2.0.gz И файл модуля ядра 2.0.36prel5-l. tar.gz.

Примечание

фирма Slackware предлагает вариант своего дистрибутива Linux, который ориентирован на

Использование С Zip-ДраЙВОМ. Подробнее СМ. ПО адресу http : / /www . Slackware . com zipslack.

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

Рабочая среда

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

В первую очередь необходимо определить IP-адреса. В незащищенной сети используются адреса от 200.200.200.0 до 200.200.200.255 с маской сети 255.255.255.0. Маршрутизатор, который соединяет сеть с внешним миром, имеет адрес 200.200.200.1, а маршрутизатор, который создается, на своей незащищенной стороне имеет адрес 200.200.200.254. Это подлинные IP-адреса, они уникальны и вся сеть Internet знает об их существовании. Если маршрутизатор для внешнего мира позволяет, то компьютер из Internet может соединяться с любым хост-компьютером в незащищенной локальной сети.

Защищенная сеть использует адреса с 10.10.10.0 до 10.10.10.255 с маской сети 255.255.255.0. Маршрутизатор, соединяющий защищенную локальную сеть с незащищенной, на своей защищенной стороне использует IP-адрес 10.10.10.1. Это ложные, немаршрутизируемые IP-адреса. Внешний мир не знает о существовании хост-компьютеров в локальной сети, у него с ними нет прямой связи. Маршрутизатор (в роли брандмауэра) скрывает существование безопасной сети от остального мира (включая незащищенную сеть).

В создаваемом маршрутизаторе устройство eth0 будет соединено с незащищенной локальной сетью (IP-адрес 200.200.200.254), а устройство ethl будет соединено с защищенной сетью (IР-адрес 10.10.10.1).

Из защищенной сети можно выполнять только исходящие, но ни в коем случае не входящие

соединения. Более того, будет использоваться возможность ядра Linux, известная как IP masquerading (IP-подмена), для использования механизма защиты network address translation (трансляция сетевого адреса). При трансляции сетевого адреса маршрутизатор не только выполняет маршрутизацию данных из защищенной ЛВС и обратно, но, когда компьютер со стороны защищенной ЛВС соединяется через маршрутизатор, он также скрывает IP-адрес соединяющегося компьютера и транслирует его в адрес незащищенной ЛВС. Соединение нельзя отследить обратно, к действительному IP-адресу хост-компьютера, что помогает скрыть хост-компьютеры защищенной сети от остального мира.

Поскольку защищенная сеть использует немаршрутизируемые IP-адреса, хост-компьютеры незащищенной сети не знают о существовании защищенных хост-компьютеров и не могут связаться с ними. Аналогично, маршрутизатрр, соединяющий незащищенную сеть с Internet, не знает о существовании внутренней, защищенной сети, и никогда не направляет пакеты прямо к хост-компьютерам внутренней сети.

Запуск маршрутизатора Linux

Чтобы загрузиться в режиме Linux-маршрутизатора, достаточно вставить дискету и перезагрузить компьютер.

Программное обеспечение Linux Router Project создаст диск RAM и загрузит содержимое диска начальной загрузки на диск RAM. Затем с RAM-диска загрузится и остальное программное обеспечение маршрутизатора. Любые изменения в конфигурации могут записываться на загрузочный диск и использоваться при следующей загрузке.

После загрузки на экран выводится приглашение для входа в систему. Следует войти в систему как администратор (root-пользователь) без пароля и запустить программное обеспечение маршрутизатора Linux. На экране появится меню конфигурирования (см. рис. 31.5). рассмотрим этапы создания простейшей сети, описанной ранее.

  1. Модули сетевых плат: возьмите второй гибкий диск из созданных вами. Предположим, что вы смонтировали его в каталоге /mnt/ floppy. Скопируйте необходимые для каждой из ваших сетевых плат модули из каталога /mnt /floppy в каталог /lib/modules.
  2. Основные настройки: конфигурирование IP-адресов, масок сети и маршрутов для двух плат Ethernet.
  3. Основы безопасности: конфигурирование параметров безопасности сети, необходимое для трансляции адреса сети.
  4. Дальнейшее конфигурирование: конфигурирование дополнительных параметров сети, таких как серверы имен и хост-таблицы.

 

Главное меню Linux Router Project

Меню конфигурирования полностью цифровое и доступ к пунктам меню осуществляется вводом выбранного номера меню и нажатием Enter. Например, ввод 1 для Network Settings (Сетевые установки) в главном меню конфигурирования выводит на экран подменю настроек сети. Выбор пункта подменю открывает файл для редактирования (конфигурирования) в простом редакторе. Чтобы эффективно использовать редактор, достаточно знать, как сохранить файл (нажать Ctrl+W и затем нажать Enter для подтверждения имени файла) и выйти из программы (нажать Ctrl+C). Можно использовать редактор, способный выполнить более обширный набор операций, но в данном случае достаточно простого редактирования.

Установка сетевых модулей

Загрузочный диск Linux Router Project, первый из числа созданных, вами, не включает никаких модулей сетевых плат. Они расположены на втором гибком диске. Ниже приведена процедура копирования необходимых модулей с гибкого диска на RAM-диск, который создан с помощью загрузочного диска Linux Router Project.

  1. Нажмите клавишу Q , чтобы выйти из меню Linux Router Project.
  2. Вставьте и смонтируйте второй гибкий диск (с модулями сетевых плат) с помощью команды mount /dev/fdO /rant.
  3. Скопируйте необходимые модули в каталог /lib/modules на RAM-диске. Например, если для ваших плат нужны драйверы пе2000 и pcnet32, выполните команды ср /mnt/ne. о /lib/modules и ср /mnt/pcnet32.о /lib/modules.
  4. Вернитесь в конфигурационное меню Linux Router Project с помощью команды /usr / sbin/ Ircfg.
  5. Сконфигурируйте файл /etc/modules, чтобы включить драйверы сетевых плат. Чтобы получить доступ к этому файлу, выберите в первом меню 3, во втором меню 2, а в третьем - 1. Добавьте имя модуля, например, pcnet32 и пе при необходимости, включая необходимые порты и адреса, например, irq=10 и io=0x3 00. Нажмите F1, чтобы получить доступ к списку команд редактора по умолчанию.
  6. Установите IP-подмену для необходимых модулей. Например, если вам необходимо установить FTP-доступ через данный маршрутизатор, удалите символ диеза (#) перед ip_masq_f tp.
  7. Запишите файл с помощью команды Alt+S. Выйдите из редактора с помощью команды Alt+Q. Вернитесь в главное меню с помощью двух команд Q.
  8. В завершение, для проверки построенной конфигурации перезагрузите систему. Оставьте загрузочный диск Linux Router Project в накопителе. Компьютер должен распознать установленные сетевые платы.

Конфигурирование основных настроек сети

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

Для этого отредактируйте файл главных настроек сети - опция 1 в подменю настроек сети (доступно при выборе опции 1 в главном меню конфигурирования). Файл главных настроек сети открывается в редакторе.

Настраиваемый маршрутизатор будет пересылать сообщения из одной сети в другую. Поэтому необходимо сконфигурировать опции IP Forwarding, т.е. в следующих строках заменить NO на YES.

IPFWDING_KERNEL=YES IPFWDING_FW=YES

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

CONFIG_HOSTNAME=YES

Укажите IP-адреса и сетевые маски плат Ethernet. Найдите строки

#IFO_IFNAME=eth0 IFO_IPADDR=dhcp

IFO_NETMASK=255.255.255.255

IFO_BROADCAST=255.255.255.255

IFO_IP_SPOOF=YES

Откорректируйте настройки для eth0 и активизируйте интерфейс, удалив # перед первой строкой.

IFO_IFNAME=eth0

IFO_IPADDR=200.200.200.254

IFO_NETMASK=255.255.255.0

IFO_BROADCAST=200.200.200.255

IFO_IP_SPOOF=YES

Найдите следующие строки.

#IFl_IFNAME=ethl

IF1_IPADDR=192.168.0.20

IF1_NETMASK=255.255.255.0

IF1_BROADCAST=192.168.0.255

IF1_IP_SPOOF=YES

Измените их для ethl (для внешней, защищенной сети) и удалите знак диеза.

IFl_IFNAME=ethl

IF1_IPADDR=10.10.10.1

IF1_NETMASK=255.255.255.0

IF1_BROADCAST=10.10.10.255

IF1 IP SPOOF=YES

Так конфигурируются соответствующие платы Ethernet маршрутизатора для связи с подключенными к ним сетями (убедитесь, что платы Ethernet физически соединены с нужными сетями).

Далее, закомментируйте хост-информацию. Добавьте знаки диезов на первых позициях соответствующих строк. Поскольку данный компьютер работает только как маршрутизатор, хост-информация вообще не нужна.

#HOSTO_IPADDR=192,168.7.123

#HOSTO_GATEWAY_IF=default

#HOSTO_GATEWAY_IP=192.168.1.200

#HOSTO_IPMASQ=NO

#HOSTO_IPMASQ_IF=default

Теперь убедитесь в правильности указания сетевых адресов для внешней и внутренней сети. Исходный файл содержит следующие строки для каждой сети:

#NETO_NETADDR-192.168.0.0

NETO_NETMASK= $IF1_NETMASK

NETO_dkTEWAY_IF=$IFl_IFNAME

NETO_GATEWAY_IP-default

NETO_IPMASQ=YES

NETO_IPMASQ_IF=$IFOllFNAME

Внесите изменения, отражающие конфигурацию защищенной и незащищенной сета:

NETO_NETADDR=200.200.200.0

NETO_NETMASK=$IFO_NETMASK

NETO_GATEWAY_IF=$IFO_IFNAME

NETO_GATEWAY_IP=default

NETO_IPMASQ=NO

# Нет необходимости маскировать реальные IP адреса

NETO_IPMASQ_IF=$ IFO_IFNAME

NET1_NETADDR=10.10.10.0

NET1_NETMASK=$IF1_NETMASK

NETl_GATKWAY_IF=$IPl_IFNftME

NETl_GATEWAX_IP=default

NET1_IPMASQ=YES

# Вы должны маскировать личные IP адреса

NETl_IPMASCi_IF=$IFl_IFNftME

В заключение сконфигурируйте шлюз, который служит каналом связи вашей сети с Internet по умолчанию.

GWO_IPADDR=200.200.200.1

GWO_IFNAME=$IFO_IFNAME GWO_METRIC=1

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

HOSTNAME=tourettes

Сохраните измененный файл. Нажмите Ctrl+W и Enter для сохранения, а затем нажмите Ctrl+C, чтобы вернуться в меню конфигурирования сети. Нажмите 2 в этом меню, чтобы войти в файл /etc/network_direct. conf для установки базовой безопасности.

Настройка базовой безопасности

Добавьте в файл /etc/network_direct. conf следующую строку:

[ "IF$" ] && ipfwadm -F -a -m -S "$NETWORKl"/24 -D 0.0.0.0/0

He поясняя синтаксис команды ipfwadm (с которым можно ознакомиться на Web-странице http://www.dreamwvr.com/ipfwadm/ipfwadm-faq.html) , отметим, что эта команда выполняет следующее,

  • • Позволяет осуществлять IP-пересылку для исходящих соединений из защищенной сети во внешний мир.
  • • Позволяет выполнять IP-подмену (IP masquerading) так, что исходным адресом всех исходящих соединений будет внешний IP-адрес маршрутизатора, а не настоящий адрес хост-компьютера в защищенной сети. Поскольку извне защищенной сети IP-адрес внутри нее не виден, отсутствует возможность использовать этот адрес для проникновения в систему.
  • • Обрабатывает все возвращаемые соединения так, что данные в ответе на исходящее соединение возвращаются на нужный хост-компьютер.

Теперь сохраните файл (Ctrl+W) и выйдите из редактора (Ctrl+C).

Примечание

Рассмотрение базовой безопасности для более современной утилиты ipchains выходит за рамки этой книги. Для получения более подробных сведений обращайтесь к ссылкам по вопросам безопасности из документации Linux Router Project на сайте irp. cOwz. com. Неплохой пример по этим сценариям приведен в "Seattle Firewall" на сайте seawall.source-forge, net.

Дальнейшее конфигурирование сети

Другие настройки сети конфигурировать не нужно. В завершение заметим: файлы hosts. allow и hosts. deny созданы для того, чтобы маршрутизатор мог защитить себя от нежелательных атак, пресекая попытки удаленного входа в систему через сеть. Маршрутизатор необходимо конфигурировать в консоли, а не через сетевой login. Возможно, лучшее решение - не изменять данные файлы.

Сохранение изменений

После конфигурирования маршрутизатора сохраните изменения на дискете. Для этого выберите Ь в основном меню конфигурирования. Достаточно перезаписать только модуль etc, поскольку файлы изменены лишь в каталоге /etc. Чтобы выполнить копирование, выберите пункт 2 в мелю backup.

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

Не останавливайтесь на достигнутом

Изложенные принципы помогут вам организовать работу с дистрибутивом Linux Router Project для создания (кроме всего прочего) более совершенных маршрутизаторов, способных поддерживать соединения ISDN, пользователей коммутируемого соединения РРР и TnLernet-соединения по выделенной линии. Для этого потребуются дополнительные комбинации модулей и особые конфигурации систем. Необходимую информацию можно получить на Web сайте http://www.linuxrouter.org .

Что дальше

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

В гл. 32 продолжен обзор Linux в сетевой среде и подробно рассмотрено использование Linux как Web-сервера Intranet. Linux продолжает приобретать популярность как платформа для Web-серверов Internet и Intranet. Это обусловлено доступностью эффективного, стандартизованного программного обеспечения для Web-сервера, выполняемого на недорогом аппаратном обеспечении.

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

Если у читателя нет подготовки в области развития и разработки Web, то в следующей главе предоставлены базовые сведения, безусловно, полезные для настройки собственного Web-сервера.



Содержание раздела