Блог об openSUSE » NAT http://sapfeer.ru Блог по созданию и настройке openSUSE безопасного хамелеона Tue, 15 Mar 2011 12:04:30 +0000 ru-RU hourly 1 http://wordpress.org/?v=3.4.2 Создание простейшего роутера из компьютера с openSUSE на борту http://sapfeer.ru/2010/11/10/707 http://sapfeer.ru/2010/11/10/707#comments Wed, 10 Nov 2010 14:50:25 +0000 Сергей http://sapfeer.ru/?p=707 Сегодня хочу показать как сделать простейший роутер из компьютера с ОС openSUSE в течении нескольких минут. Сделать это сможет каждый, кто хоть немного знаком с консолью и понимает для чего нужны IP адреса :) . На моей машине внутренним интерфейсом является eth0(192.168.1.1), а внешним eth1.

Начнем по порядку:

I) Настройка сервера DNS:

Устанавливаем:
user@opensuse:~> sudo zypper install bind
Теперь просто правим конфигурационный файл. Здесь я хочу сказать, что я изменил всего несколько строк в стандартном файле, привожу их здесь:
user@opensuse:~>sudo mcedit /etc/named.conf
# Слушаем на порту 53 на интерфейсах 127.0.0.1 и 192.168.1.1
listen-on port 53 { 127.0.0.1; 192.168.1.1; };
# Не слушаем на ipv6
listen-on-v6 { none; };
# Уменьшаем уровень логирования ошибок:
logging {
channel syslog_errors {
syslog user;
severity error;
};
category default { syslog_errors; };
};

Готово! Теперь ставим named в автозапуск:
user@opensuse:~>sudo chkconfig named on
Ставим права на рабочую директорию named
user@opensuse:~>sudo chown -R named:named /var/lib/named/
Запускаем DNS сервер
user@opensuse:~>sudo /etc/init.d/named start
Можно прописать его в resolv.conf для использования по умолчанию, но, мне кажется, лучше оставить DNS провайдера на сервере.

II) Настройка сервера DHCP

Устанавливаем его в систему
user@opensuse:~> sudo zypper install dhcp-server
Убираем текущий /etc/dhcpd.conf и создаем его заново
user@opensuse:~> sudo mv /etc/dhcpd.conf /etc/dhcpd.conf.old && sudo touch /etc/dhcpd.conf
В него вписываем следующие строки:
user@opensuse:~> sudo mcedit /etc/dhcpd.conf
# IP сервера указано тут потому что мы подняли собственный DNS. Вы можете использовать тут DNS провайдера.
option domain-name-servers 192.168.1.1;
# Отключаем динамические обновления DNS
ddns-update-style none;
ddns-updates off;
log-facility local7;
# Наша подсеть
subnet 192.168.1.0 netmask 255.255.255.0 {
# Диапазон выдаваемых IP адресов.
range 192.168.1.2 192.168.1.254;
# Дефолтный gateway
option routers 192.168.1.1;
# Время обновления адресов(12 часов).
default-lease-time 43200;
max-lease-time 86400;
}

*UPDATE*
Необходимо указать интерфейс, на котором будет слушать DHCPD - в /etc/sysconfig/dhcpd:
DHCPD_INTERFACE=»ethX»

Все, теперь запускаем сервис
user@opensuse:~>sudo /etc/init.d/dhcpd start
И добавляем его в автозагрузку.
user@opensuse:~>sudo chkconfig dhcpd on

III) Настройка NAT

Все необходимые настройки заключены в одном файле /etc/sysconfig/SuSEfirewall2. Открываем его с помощью любимого текстового редактора и начинаем править ( в моем случае - mcedit ):
user@opensuse:~> sudo mcedit /etc/sysconfig/SuSEfirewall2

В секции 2 вам нужно указать ваши интерфейсы, какие из них будут внешними, какие внутренними:
# Внешние ( в принципе можно не указывать, по умолчанию все интерфейсы являются внешними):
FW_DEV_EXT="any eth1"
# Внутренние:
FW_DEV_INT="eth0"

В секции 5 находятся еще два нужных нам параметра:
# Включаем роутинг в ядре
FW_ROUTE="yes"
# Разрешаем маскардинг
FW_MASQUERADE="yes"

В секции 6 указываем вашу подсеть, в моем случае - это 192.168.1.0/24:
FW_MASQ_NETS="192.168.1.0/24"

Готово! Теперь осталось применить правила и насладиться результатом:
user@opensuse:~> sudo /etc/init.d/SuSEfirewall2_setup restart

После выполнения данных действий все ваши компьютеры в сети смогут получать автоматический IP адрес, будут использовать ваш собственный DNS сервер и иметь доступ в интернет. В принципе, я потратил на это все минут 20, канал в интернет не очень широкий :-) В следующий раз расскажу о подсчете траффика для клиентов, я еще сам разобраюсь с данной темой. Если вдруг вы увидите какую-то ошибку в статье или выполняя все инструкции вы не получили желаемого результата, пишите, я постараюсь помочь.

]]>
http://sapfeer.ru/2010/11/10/707/feed 22