Сетевые настройки · 4 min read · Feb 12, 2026

CentOS 5 - Домашний шлюз брандмауэр с DHCP сервером для совместного использования подключения

CentOS 5 - Домашний шлюз брандмауэр с DHCP сервером для совместного использования подключения

Версия 1.0
Автор: Кэмерон Кэмп
Последнее редактирование: 16 янв. 2008

Если вы пытаетесь настроить домашнюю сеть, вы, вероятно, хотите установить компьютер, обращенный к периметру, подключенный к вашему DSL/кабельному модему, а затем поместить все ваши компьютеры за этим брандмауэром, чтобы защитить их. Этот учебник покажет вам, как использовать одно внешнее соединение на шлюзовом компьютере (используя брандмауэр Iptables) и второе внутреннее соединение на том же устройстве, чтобы вы могли подключить компьютеры внутри вашего дома/офиса к нему и автоматически предоставить им IP-адреса, когда вы их подключаете (используя DHCP сервер). Iptables может быть очень сложным, мы настроим только базовый брандмауэр, вы можете добавить больше безопасности позже, не нарушая работу. В Linux есть много способов сделать это, этот, надеюсь, достаточно прост и научит вас основам. Я делал это на компьютере с CentOS 5, хотя это будет работать и на вариантах Debian с небольшими изменениями. Во время этого учебника я вошел как root, что вы обычно НЕ должны делать, но это упрощает учебник, но если вы предпочитаете делать это более безопасно, добавьте “sudo” перед каждой командой, и это сработает.

схема_шлюза

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

Первое, что нужно сделать на вашем шлюзовом сервере, это настроить и включить Iptables, стандартный брандмауэр, который идет с CentOS. Мы скажем ему разрешить исходящий трафик с вашего интерфейса eth1 в интернет. Вам нужно добавить запись Iptables, сохранить ее и перезапустить Iptables.

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE  
service iptables save  
service iptables restart

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

echo 1 > /proc/sys/net/ipv4/ip_forward

Это будет работать только до перезагрузки, поэтому давайте сделаем это постоянным, используя ваш редактор по выбору, добавьте следующую строку в /etc/sysconfig/network:

FORWARD_IPV4=YES

Теперь нам нужно настроить DHCP сервер, чтобы выдавать IP-адреса компьютерам внутри LAN. Мы делаем это, устанавливая DHCP сервер следующим образом:

yum install dhcp

По умолчанию будет создан файл образца DHCP, который мы отредактируем, а затем заменим реальный:

cd /usr/share/doc/dhcp-whateverversionyouhave/  
vi dhcpd.conf.sample

Вы можете скопировать/вставить тот, который я использую, или просто отредактировать свой, чтобы он соответствовал вашим потребностям. Слово предостережения, ваша сеть может отличаться от моей. Этот файл даст вашим внутренним компьютерам диапазон IP-адресов от 192.168.0.128 до 192.168.0.254 с маской подсети 255.255.255.0, измените по мере необходимости. Вам также нужно будет сделать так, чтобы информация о IP соответствовала статическому IP на eth1 позже, если вы используете свои собственные значения здесь.

ddns-update-style none; # оставим это простым на данный момент
ignore client-updates;  # здесь тоже
DHCPARGS=eth1;          # указывает, на каком интерфейсе слушать
subnet 192.168.0.0 netmask 255.255.255.0 {
# --- шлюз по умолчанию
       option routers                  192.168.0.1;   # шлюз на вашем внутреннем интерфейсе eth1
       option subnet-mask              255.255.255.0; # маска подсети
       option domain-name              "example.com" # доменное имя, предоставляемое клиенту
       option domain-name-servers      209.242.10.10; # IP-адреса DNS-серверов вашего провайдера
       option time-offset              -18000;        # Восточное стандартное время - установите на то, что у вас
       range 192.168.0.128 192.168.0.254;             # диапазон IP-адресов, которые получат ваши клиенты
       default-lease-time 21600;                      # как долго клиенты будут сохранять один и тот же IP
       max-lease-time 43200;
       # мы хотим, чтобы DNS-сервер отображался по фиксированному адресу
       host ns {
               next-server ns1.ispserver.net;         # измените на DNS-серверы вашего провайдера
               hardware ethernet 00:09:5B:8E:05:67;   # аппаратный MAC
               fixed-address 209.242.10.10;           # IP-адрес DNS-сервера вашего провайдера
      }
}

Теперь создайте резервную копию вашего текущего конфигурационного файла dhcp и скопируйте только что созданный файл:

mv /etc/dhcpd.conf /etc/dhcpd.conf.old  
cp dhcpd.conf.sample /etc/dhcpd.conf

Теперь мы перезапускаем DHCP сервер (после проверки конфигурации на наличие ошибок, если есть ошибки, вы найдете их в /var/log/messages), чтобы изменения вступили в силу

service dhcpd configtest  
service dhcpd restart

Теперь нам нужно настроить интерфейс eth1 (внутренний) так, чтобы он соответствовал тому, что мы только что сделали на DHCP сервере, поэтому отредактируйте файл /etc/sysconfig/network-scripts/ifcfg-eth1, чтобы он выглядел примерно так:

DEVICE=eth1
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.0.1
NETMASK=255.255.255.0
GATEWAY=10.1.10.43

Вам нужно будет отредактировать хотя бы IP-адрес GATEWAY, это просто IP-адрес моего интерфейса eth0, измените его на тот, который у вас есть, который вы можете узнать, выполнив:

ifconfig

Он должен сказать что-то вроде: eth0 inet addr:10.1.10.43, это тот, который вам нужен.

Теперь вам нужно сказать вашему компьютеру слушать за характерным запросом DHCP, который приходит по внутренней сети. Когда клиентский компьютер ищет DHCP-адрес, он отправляет сигнал всем, кто будет слушать, с IP-адресом 255.255.255.255, поэтому вам нужно сказать вашему DHCP серверу слушать этот IP:

route add -host 255.255.255.255 dev eth1

Теперь мы тестируем настройку. Вы должны быть в состоянии подойти к одному из клиентских компьютеров, подключить его к коммутатору, к которому подключен ваш шлюз (в моем случае это дешевый домашний коммутатор Netgear за $30, модель FS608), и он должен найти IP, используя ваш новый DHCP сервер, и вы должны иметь возможность просматривать интернет.

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

setup

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

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.