Сетевые настройки · 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чтобы сказать брандмауэру, что блокировать. Правило хорошего тона - блокировать все, а затем разрешать только то, что вам нужно, но вы можете прочитать об этом в другом месте в пугающей глубине, если захотите.
Get new posts in your inbox
No spam. Unsubscribe anytime.