Хорошо, к этому моменту на ваш шлюзовой компьютер установлен Linux. Вы даже, наверное, настроили одну из сетевых карт и сконфигурировали выход в Интернет. Однако мы предположим, что у вас ничего не настроено, и начнем с "чистого листа".
Зайдите в компьютер root-ом. Все инструкции в этом документе приводятся с предположением, что вы вошли в компьютер в качестве root-а.
Ядро Linux называет ваши сетевые карты как eth0 и eth1, поэтому я буду с этого момента называть их так же. Проблема состоит в том, которая из них eth0, а которая eth1? Существует "простой" способ выяснить это, работающий как минимум в 50% случаев: положите компьютер на стол, чтобы материнская плата была горизонтальна и задняя панель "смотрела" на вас (так, как будто вы собираетесь открыть кожух и внести какие-то изменения). Левая карта будет eth0 -- вы можете ее чем-нибудь пометить, например, липкой лентой. Теперь запишите на листе бумаги производителей и модели обеих карт.
Хорошо, давайте теперь проверим, распознаются ли eth0 и eth1 ядром автоматически. Наберите команды ifconfig eth0 и ifconfig eth1. В обоих случаях, если ядро распознало вашу карту, вы должны увидеть примерно следующее (не учитывая цифры):
eth0 Link encap: Ethernet HWaddr 00:60:67:4A:02:0A inet addr:0.0.0.0 Bcast:0.0.0.0 Mask:255.255.255.255 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:466 errors:0 dropped:0 overruns:0 frame:0 TX packets:448 errors:0 dropped:0 overruns:0 carrier:0 collisions:85 txqueuelen:100 Interrupt:10 Base address:0xe400
Если ядро не смогло распознать вашу карту, вы увидите следующее:
eth0: error fetching interface information: Device not found.
Вы можете пропустить этот раздел, если обе ваших карты удачно распознаны ядром. В противном случае, эта секция для вас.
Так, значит одна из ваших карт не распознана ядром. На самом деле в этом нет ничего страшного. Что вам надо сделать, так это дать ядру немного более подробную информацию о том, как обнаружить ваши карты. В этом вопросе существует много хитростей и тонкостей, и я не собираюсь описывать их все. Запомните, если с этим возникнут трудности, то обращайтесь к "Ethernet HOWTO". Вот несколько обобщенных советов:
У вас сетевая карта на шине PCI. Скорее всего причина в том, что несмотря на то, что у вас такая новая и хорошая карта, драйверов к ней в ядре до сих пор нет. Много интересного вы узнаете, прочитав о своей сетевой карте (и других устройствах) в каталоге /proc/pci, записывая их производителей и модели.
У вас сетевая карта на шине ISA. Видимо, вам придется узнать адрес и IRQ, на которых работает карта. У вас ведь есть документация, не так ли? Если нет, то, наверное, вам стоит в поисках документации посетить web-сайт производителя карты (или чипа на ней: примечание переводчика). Или же у вас должна быть DOS-дискета - загрузите DOS и поищите на ней программу настройки, которая и укажет либо настроит необходимые адрес и IRQ.
У вас ISA PnP сетевая карта. Вам придется настроить эту карту -- как это сделать, подробно описано в "Plug'n'Play HOWTO". К счастью, когда вы настроите карту, вы будете точно знать адрес порта и IRQ сетевой карты.
Теперь, когда вы знаете производителя и модель сетевой карты eth0 и eth1, вы можете перейти к разделу "Совместимость" документа "Ethernet HOWTO" и найти в нем свою карту. Запишите название рекомендуемого драйвера и любую информацию о дополнительных параметрах, которые вам могут понадобиться.
Теперь наступило время редактировать конфигурационный файл! Мы будем править файл /etc/conf.modules. Откройте этот файл любым текстовым редактором. В этом файле может существовать много различных вариантов настроек и их комбинаций, поэтому я приведу здесь пример, основанный на моем шлюзе. У меня PCI 10/100Мбит-карта на чипе VIA Rhine, и обычная 10Мб ISA NE2000-совместимая карта. Я использую 100Мб для внутренней сети и 10Мб для внешнего соединения. Мой файл /etc/conf.modules выглядит примерно так:
alias parport_lowlevel parport_pc alias eth0 ne options ne io=0x300 irq=10 alias eth1 via-rhine
В нем проделывается примерно следующее:
Первая строчка указывает, что мой параллельный порт предназначен для печати. У вас, наверно, тоже есть такая строчка. Оставьте ее без изменений.
Вторая строчка (alias eth0 ne) указывает ядру использовать драйвер "ne" для устройства eth0.
В третьей строчке(options ne io=0x300 irq=10) написано, какой порт и IRQ использовать драйверу "ne" для работы с ISA-картой. Если у вас тоже ISA-карта, то вам тоже придется использовать эту директиву. Просто подставьте имя драйвера, соответствующий порт и номер IRQ.
В четвертой строке (alias eth1 via-rhine) указано использовать для устройства eth1 драйвер "via-rhine". Моя карта eth1 установлена на шине PCI, поэтому я не указываю номер порта или IRQ: шина PCI настраивает карту автоматически.
Вам обязательно надо убедиться в наличии строчек в файле conf.modules для обеих карт, а также строчек, задающих опции ISA-карт. Эти строчки уже могут присутствовать в файле conf.modules, если вы задавали их параметры в процессе инсталляции системы.
Когда вы закончите редактировать conf.modules, попробуйте снова запустить команды ifconfig eth0 и ifconfig eth1. Вы можете снова получить на экране различные предупреждения или ошибки, если перепутали адреса портов ввода-вывода или IRQ.
Итак, мои дорогие умники - купили две одинаковые сетевые карты для Linux-шлюза и не можете заставить их работать вместе? Не волнуйтесь - их работа зависит лишь от написания правильных опций в файле /etc/conf.modules. В этом примере я использовал придуманные адреса портов и номера IRQ, и предположил, что вы купили пару NE2000-совместимых карт (что очень распространено). Ваш файл /etc/conf.modules должен выглядеть примерно так:
alias eth0 ne alias eth1 ne options ne io=0x330,0x360 irq=7,9
Опции адреса порта и номера IRQ задаются в одной строке, и каждое первое число соответствует eth0, а второе, соответственно - eth1.
"Внутренняя сеть" - это сеть, в которой будут общаться ваши домашние или офисные компьютеры. "Внешняя сеть" - это большой и страшный Интернет по другую сторону вашего Linux-а. В общем и целом внутренняя сеть будет полностью защищена от внешней при помощи Linux, который будет играть роль firewall среднего класса.
Теперь драйверы ваших карт работают, и вы видите eth0 и eth1 в команде ifconfig - теперь наступило время настроить внутреннюю сеть. Я предполагаю, что ваша внутренняя сеть подключена к eth1, а внешнее устройство подключено к eth0.
Ваша внутренняя сеть будет частной, и поэтому мы используем для нее специальный номер сети, зарезервированный для внутренних частных сетей: 192.168.1.0. Это будет "частная сеть класса C" - вы можете хвалиться этим названием перед своими друзьями.
Во-первых, необходимо убедиться в том, что поддержка сети включена. Откройте файл /etc/sysconfig/network и найдите в нем следующие строки (если их нет, создайте):
NETWORKING=yes FORWARD_IPV4=yes
Первая строка указывает, что мы хотим, чтобы сетевые устройства стартовали в процессе загрузки системы. Во второй строке разрешается пересылка IP-пакетов. Эта строка будет нам необходима в процессе настройки маскарадинга в разделе 4.
Замечание для пользователей Redhat версии 6.2: Чтобы система Red Hat 6.2 нормально поддерживала IP-пересылку и маскарадинг, необходимо отредактировать файл /etc/sysctl.conf. Убедитесь в наличии следующих строчек и проставьте в них соответствующие значения:
net.ipv4.ip_forward = 1 net.ipv4.ip_always_defrag = 1
Все настройки сетевых интерфейсов в Red Hat и его производных находятся в файлах в каталоге /etc/sysconfig/network-scripts. Зайдите в этот каталог и создайте в нем файл ifcfg-eth1. В этом файле напишите следующее:
DEVICE=eth1 IPADDR=192.168.1.1 ONBOOT=yes
Таким образом, загрузочный скрипт, отвечающий за настройку сети, будет инициализировать eth1 в процессе загрузки и отведет ему конкретный IP-адрес. Активизируйте свою сеть с учетом этих новых настроек командой /etc/rc.d/init.d/network restart
Сервер DHCP будет автоматически снабжать IP-адресами сетевые устройства компьютеров вашей внутренней сети. Это достаточно удобно, особенно при использовании Notebook-ов: можно просто подключить свою машину к сети, и она сразу автоматически будет настроена. Если вам не нужен DHCP-сервер, то просто пропустите эту главу.
Во-первых, вам надо установить DHCP-сервер. Подключите CD-ROM с вашим дистрибутивом Linux CD и установите RPM-пакет dhcp. Затем откройте файл /etc/dhcpd.conf и напишите в нем следующее (удалив все остальное):
subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.2 192.168.1.60; default-lease-time 86400; max-lease-time 86400; option routers 192.168.1.1; option ip-forwarding off; option broadcast-address 192.168.1.255; option subnet-mask 255.255.255.0; }
Если ваш Linux будет и кэширующим DNS-сервером, то добавьте следующую строку:
option domain-name-servers 192.168.1.1;
Если вы знаете адреса внешних DNS-серверов и не собираетесь использовать свой Linux в качестве DNS-сервера, то добавьте следующую опцию (где x.x.x.x и y.y.y.y - это IP-адреса внешних DNS-серверов):
option domain-name-servers x.x.x.x, y.y.y.y;
Если вы собираетесь использовать Samba-сервер для доступа к файлам Linux с ваших компьютеров с Windows, то добавьте следующие строки, чтобы Linux был WINS-сервером и сервером поиска машин по умолчанию:
option netbios-name-servers 192.168.1.1; option netbios-dd-server 192.168.1.1; option netbios-node-type 8; option netbios-scope "";
Процедура настройка Samba и WINS не входит в этот документ. Если вам нужны подсказки или советы по этому поводу - читайте "SMB HOWTO".
Осталась еще пара шагов. Откройте файл /etc/rc.d/init.d/dhcpd и найдите в нем следующую строку:
/sbin/route add -host 255.255.255.255 dev eth1
DHCP-клиентам Windows необходим специальный широковещательный адрес в DHCP-запросах, и эта команда добавляет данный адрес в настройки TCP/IP вашего Linux. Если вы не нашли эту строку, то добавьте ее. Если же вы ее нашли, то убедитесь в том, что она ссылается на устройство eth1.
Следующий шаг будет состоять в том, чтобы указать в файле /etc/rc.d/init.d/dhcpd использовать по умолчанию устройство eth1. Замените строку:
daemon /usr/sbin/dhcpd
На строку:
daemon /usr/sbin/dhcpd eth1
Итак, вы готовы к запуску DHCP. Сначала запустите DHCP-сервер командой: /etc/rc.d/init.d/dhcpd start.
И последнее - вам надо убедиться в том, что DHCP-сервер загрузится после перезагрузки системы. Некоторые RPM-пакеты с DHCP-сервером не включали директив, которые бы его запускали после перезагрузки системы, поэтому мы подстрахуем себя командой chkconfig dhcpd on.
Эта команда заставляет RedHat указать запуск dhcpd в некоторых уровнях загрузки в каталоге /etc/rc.d. На уровнях 3 и 5 (многопользовательская консоль и многопользовательские X) DHCP-сервер запускается. На уровнях 0, 1 и 6 (отключение, однопользовательский режим и перезагрузка) DHCP-сервер останавливается.
Если вы включили DHCP, то настройка ваших клиентских компьютеров будет очень простой - просто разрешите автоконфигурирование при помощи DHCP. В Windows это делается примерно так - откройте "Панель управления", в ней опцию "Сеть". Найдите протокол "TCP/IP" и нажмите на нем "Свойства". Установите галочку около надписи "Получить IP-адрес автоматически", нажмите OK и перезагрузите компьютер.
Перед тем, как вы его перезагрузите, вы можете использовать в Linux следующую команду: tail -f /var/log/messages. Таким образом, вы будете видеть сообщения, поступающие в системный журнал Linux. Если все пойдет хорошо, вы увидите в этом журнале запрос на IP-адрес и ответ DHCP-сервера. Выйти из команды tail -f можно клавишами Ctrl+C.
Если у вас не включен DHCP, то настройка также достаточно проста. Итак, снова откройте "Сеть" в "Панели Управления" и выберите свойства протокола TCP/IP. Вы можете давать вашим компьютерам любые адреса в сети 192.168.1.0, кроме 192.168.1.0 (собственно сама сеть), 192.168.1.255 (широковещательный адрес) и 192.168.1.1 (ваш Linux-сервер). Никогда не давайте двум компьютерам одинаковые IP-адреса. Установите "Шлюз по умолчанию" в 192.168.1.1, чтобы весь ваш исходящий трафик шел через Linux-шлюз.
В "HOWTO: IP-маскарадинг" в главе Configuration Section приведена очень подробная информация о настройке клиентских компьютеров.
Одним словом, чтобы настроить клиентский компьютер, вам необходимо либо включить использование DHCP, либо вручную указать любой адрес в сети 192.168.1.X и шлюз 192.168.1.1. DNS-сервером будет 192.168.1.1 (если вы используете кэширующий DNS-сервер(см. ниже) или укажите адрес сервера DNS, данный вашим провайдером.
Настройка вашего Linux в качестве DNS-сервера ускорит (правда ненамного) скорость вашей работы с внешней сетью, потому что часто используемые DNS-адреса будут находиться в кэше внутри вашей сети и не будут запрашиваться наружу.
Если вам интересна настройка "полноразмерного" DNS, то вам придется изучить очень много сложной документации. На этот предмет существует DNS HOWTO и книга DNS и BIND.
Для работы с DNS клиентские машины должны использовать Linux-шлюз в качестве своего главного DNS-сервера. Директивы DHCP, описанные в разделе 3.2.2 - это один из способов этого достичь. Если вы настраивали ваши компьютеры вручную, то вы должны настроить свойства DNS почти там же, где вводили IP-адрес машины.
Для установки DNS-сервера, сначала установите RPM-пакет bind, а затем RPM-пакет caching-nameserver. К этому моменту у вас почти все готово.
После стандартной установки кэширующий DNS-сервер будет работать прекрасно, но если вы знаете IP-адрес DNS-сервера вашего провайдера, то вы можете немного ускорить работу сети немного подредактировав файл /etc/named.conf, добавив в него следующую строку после опции directory (x.x.x.x и y.y.y.y - это первичный и вторичный DNS-сервера провайдера):
forwarders { x.x.x.x; y.y.y.y; };
После этих изменений ваш DNS-сервер сначала будет запрашивать адрес у DNS-серверов провайдера, и только затем в общем Интернете. У провайдеров обычно бывает большой запас готовой DNS-информации, и он может ответить значительно быстрее, чем через обычный запрос.
У демона named были проблемы с безопасностью, продолжавшиеся последние 12 месяцев, поэтому очень важно иметь наиболее свежую версию и внести некоторые изменения в стандартные настройки для повышения безопасности.
Проверьте версию пакета bind - она должна быть минимум 8.2.2. Проверьте сайты Обновления Red Hat или Обновления Mandrake на наличие новых версий.
Ограничьте доступ к вашему DNS-серверу только с локальной сети, добавив строку allow-query { 192.168.1/24; 127.0.0.1/32; };; в файл /etc/named.conf после строки с опцией forwarders.
Избегайте запуска вашего DNS-сервера в качестве root-а. Если вы запустите ваш DNS-сервер под root-ом, то при его использовании запрашивающему будут даны привилегии администратора. Если же вы запустите сервер под безобидным пользователем, таким как nobody, то вы можете снизить риск недопустимого использования DNS-сервера. Чтобы ваш DNS-сервер запускался с правами пользователя nobody, отредактируйте файл /etc/rc.d/init.d/named, исправив в нем строку daemon named на daemon named -u nobody -g nobody.
Убедитесь в том, что DNS-сервер запустится в процессе загрузки: chkconfig named on. Таким образом, DNS-сервер будет автоматически запускаться на стандартных уровнях (3 и 5).
Итак, теперь вы можете запустить свой DNS-сервер: /etc/rc.d/init.d/named start start
Пока мы не настроим внешнюю сеть, DNS работать не будет (ему надо связываться с внешними DNS-серверам), но мы можем проверить простое подключение командой ping.
Откройте окно MSDOS на одном из ваших клиентских компьютеров, затем наберите ping 192.168.1.1. Эта команда будет посылать пакеты на ваш Linux через определенные интервалы, а ваш Linux будет посылать их обратно. Если все работает нормально, то вы увидите список со временем хождения пакетов по сети.
Теперь мы готовы к настройке внешней сети. Иногда этот процесс бывает довольно сложным - это зависит от того, насколько хорошо ваш провайдер поддерживает Linux. Если у вас возникли трудности, читайте "ADSL mini-HOWTO". Если я смогу обнаружить где-нибудь Мини-HOWTO по кабельным модемам, то я добавлю здесь ссылку и на него.
Одной из основных проблем, возникающей с внешними соединениями, является получение IP-адреса. Некоторые провайдеры выделяют статические IP-адреса кабельным или ADSL-клиентам - в этом случае настройка будет достаточно простой. Однако, большинство провайдеров перешли на динамическую настройку при помощи (вы уже наверное угадали...) DHCP. Это означает, что скорее всего ваш Linux будет DHCP-сервером на интерфейсе eth1, и, одновременно, DHCP-клиентом на интерфейсе eth0.
Более того, некоторые провайдеры применяют специализированные нестандартные методы, предполагая, что их клиенты будут использовать Windows. Некоторые из таких случаев будут описаны в конце раздела 3.3.2.
Если ваш провайдер выделил вам статический IP-адрес, то у вас все достаточно просто. Во-первых, создайте новый файл конфигурации интерфейса /etc/sysconfig/network-scripts/ifcfg-eth0 и внесите в него следующее:
DEVICE=eth0 IPADDR=x.x.x.x NETMASK=y.y.y.y ONBOOT=yes
Подставьте вместо x.x.x.x и y.y.y.y значения, данные вашим провайдером. Затем отредактируйте файл /etc/resolv.conf, внеся в него следующее:
search provider_domain_here nameserver n.n.n.n nameserver m.m.m.m
Значение поля "домен_провайдера" должно быть предоставлено провайдером. Вместо m.m.m.m и n.n.n.n подставьте адреса первичного и вторичного DNS-сервера провайдера соответственно. Если вы настроили свой Linux в качестве кэширующего DNS-сервера, то добавьте перед строками nameserver строку nameserver 127.0.0.1. В результате этого ваш Linux будет сначала обращаться к своему кэширующему DNS-серверу перед обращением к внешним серверам.
Если ваш провайдер использует автоконфигурирование при помощи DHCP, то вам надо создать новый файл конфигурации интерфейса /etc/sysconfig/network-scripts/ifcfg-eth0, и написать в нем следующее:
DEVICE=eth0 BOOTPROTO=dhcp ONBOOT=yes
Теперь убедитесь в том, что клиентский демон dhcpcd установлен в вашей системе. Перейдите на CD с дистрибутивом вашего Linux и установите RPM-пакет dhcpcd.
Наступило время испытать вашу новую конфигурацию сети. Дайте команду /etc/rc.d/init.d/network restart. Попробуйте увидеть внешний компьютер в Интернете, например, www.yahoo.com и посмотрите, получаете ли вы ответ.
В вашем конкретном случае ситуация может отличаться от вышеописанной. Ниже приведены несколько коротких примечаний о различных сложностях, а также ссылки на более авторитетные ресурсы по этой теме. Спасибо John Mellor за предоставленные ссылки и настойчивые требования написать эту главу.
Некоторые ADSL-провайдеры (например Bell Atlantic) с недавних пор начали настаивать на том, чтобы их новые пользователи подключались к ним при помощи протокола "PPP по Ethernet" (PPPoE). К этому они прилагают клиентскую программу для Windows: это не совсем удобно для пользователей Linux. К счастью, PPPoE - достаточно простой протокол, и существует несколько способов его поддержки и в Linux.
PPPoE-клиент "Рев пингвина" - его очень настойчиво рекомендует наш читатель Kerr First
PPPoE на Linux для Sympatico (Общая информация) (Информация по применению в Linux)
Одним из излюбленных глуповатых трюков сетевых провайдеров является привязывание вашего сервиса к конкретному имени машины или даже к конкретной сетевой карте. Это делается обычно ради того, чтобы вы не подключали к интернету через хаб несколько компьютеров (конечно, использование Linux и маскарадинга вам позволит это сделать и без ведома компании-провайдера, к тому же значительно более защищенным образом!).
Если провайдер дал вам имя машины и настаивает на том, чтобы вы назвали свой Windows именно этим именем в сети для использования сервиса подключения к интернету, то вы должны сделать так, чтобы ваш Linux посылал это имя при запросе адреса с DHCP-сервера.
Клиент DHCP в Red Hat вызывается в том случае, если вы установите в файле конфигурации интерфейса переменную BOOTPROTO в значение "dhcp", но это производится без предоставления DHCP-серверу имени машины. Чтобы предоставить ему такое имя, отредактируйте файл /etc/sysconfig/network и измените строку:
HOSTNAME=
на
HOSTNAME=your_isp_assigned_name
В некоторых вариантах Red Hat это может и не сработать. Если такой вариант не пройдет, откройте скрипт /sbin/ifup, найдите в нем вызов dhcpcd и pump и добавьте к ним опцию -h $HOSTNAME. Если таких строк в нем нет, то добавьте их: /sbin/dhcpcd -i $DEVICE -h $HOSTNAME и /sbin/pump -i $DEVICE -h $HOSTNAME.
В кабельном сервисе "Road Runner" для получения возможности использования сервера должна запускаться специальная процедура входа. К счастью, существует детально описывающий эту тему "Linux Road Runner HOWTO".
Теперь вы можете полюбоваться своей сетью. Запустите команду ifconfig, чтобы увидеть настройку всех ваших сетевых устройств. На моем шлюзе это выглядит примерно так:
eth0 Link encap:Ethernet HWaddr 00:60:67:4A:02:0A inet addr:24.65.182.43 Bcast:24.65.182.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:487167 errors:0 dropped:0 overruns:0 frame:0 TX packets:467064 errors:0 dropped:0 overruns:0 carrier:0 collisions:89 txqueuelen:100 Interrupt:10 Base address:0xe400 eth1 Link encap:Ethernet HWaddr 00:80:C8:D3:30:2C inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:284112 errors:0 dropped:0 overruns:0 frame:1 TX packets:311533 errors:0 dropped:0 overruns:0 carrier:0 collisions:37938 txqueuelen:100 Interrupt:5 Base address:0xe800 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:3924 Metric:1 RX packets:12598 errors:0 dropped:0 overruns:0 frame:0 TX packets:12598 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0
Заметьте, что у eth0 имеется красивый внешний IP-адрес, а у eth1 - частный внутренний.
Вы также можете взглянуть на маршруты пакетов командой route. На моем шлюзе это выглядит примерно так:
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 255.255.255.255 * 255.255.255.255 UH 0 0 0 eth1 192.168.1.0 * 255.255.255.0 U 0 0 0 eth1 24.65.182.0 * 255.255.255.0 U 0 0 0 eth0 127.0.0.0 * 255.0.0.0 U 0 0 0 lo default 24.65.182.1 0.0.0.0 UG 0 0 0 eth0
Теперь у нас настроена внешняя и внутренняя сети, сетевые устройства, специальный широковещательный адрес 255.255.255.255, и маршрут по умолчанию указывает на шлюз провайдера. Великолепно!
Теперь у вас есть внешняя и внутренняя стороны. Все что осталось настроить - это дверь между ними. Самое главное - мы должны убедиться в том, что чудовища извне к нам не проникнут.
Одним из самых больших недостатков постоянного соединения с Интернетом при помощи ADSL или кабеля является то, что ваш компьютер открыт для потенциальных атак на систему защиты 24 часа в день, 7 дней в неделю. Использование Linux в качестве шлюза снижает этот риск, потому что он скрывает все ваши компьютеры - по мнению всех внешних компьютеров все соединения устанавливает ваш Linux. Это означает что ваша сеть защищена ровно настолько, насколько защищен ваш Linux, поэтому здесь я дам немного советов о том, как защитить Linux.
Во-первых, надо отключить доступ всем нехорошим парням. Чтобы сделать это, откройте файл /etc/hosts.deny и убедитесь что он выглядит примерно так:
# # hosts.deny Этот файл описывает имена хостов, которым # *запрещено* использовать локальные сервисы INET, вызываемые # при помощи '/usr/sbin/tcpd'. # # Строка portmap в настройке устарела, но она напоминает вам, # что новая защищенная версия portmap использует hosts.deny и hosts.allow. В частности, # вы должны знать, что NFS использует portmap! ALL: ALL
Здесь указано, чтобы "TCP-wrapper", контролирующий примерно 95% входящих соединений, отказывал во входе всем соединениям со всех машин. Достаточно полезное правило! Но в результате этого правила ваша внутренняя сеть также не сможет соединиться с Linux, что неправильно - поэтому мы внесем пару исключений. Откройте файл /etc/hosts.allow и напишите в нем следующее:
# # hosts.allow Этот файл описывает имена хостов, которым # *разрешено* использовать локальные сервисы INET, вызываемые # при помощи '/usr/sbin/tcpd'. # ALL: 127.0.0.1 ALL: 192.168.1.
Здесь указано, чтобы "TCP-wrapper" разрешал все виды соединений с локальной машины (127.0.0.1) и с внутренней сети (192.168.1.).
Теперь вы отгородились от внешних чудищ достаточно прочным заграждением с хорошим замком. Если вам еще нужна сигнализация, ров и вал, то все намного усложняется. Читайте "HOWTO: Защита" - это хороший первый шаг к большей защищенности вашего Linux-а.