Главная > В помощь sysadmin'y, Статьи > NAT и DHCP настройка в Debian

NAT и DHCP настройка в Debian

NAT и DHCP настройка в Debian

Есть две сетевые. Одна eth1 — интернет, вторая eth0 — внутренняя подсеть 192.168.0.0/28.
Собственно, пакеты из внешней подсети должны перенаправляться во внутреннюю и наоборот.
Для начала, нужно включить ip forwarding. Проверим, не включен ли он:
$ cat /proc/sys/net/ipv4/ip_forward
Если выдаст 0 — выключен, 1 — соответственно включен.
Чтобы включить:
$ echo 1 > /proc/sys/net/ipv4/ip_forward
А чтобы включит навсегда в файл /etc/sysctl.conf добавляем следующие строчки:
net.ipv4.conf.default.forwarding=1
net.ipv4.conf.all.forwarding=1

Создаем файл в /etc/network/if-pre-up.d/NAT и делаю исполняемым:
$ chmod +x /etc/network/if-pre-up.d/NAT
Теперь, при подъёме интерфейсов в up запускается наш «NAT». Собственно, всё делается через iptables. Содержание файла NAT:


# Первым делом очистим существующую таблицу правил:
iptables -F

# Добавляем первое правило которое позволит нам не потерять удаленный контроль над сервером
iptables -A INPUT -p tcp -i eth1 --dport 22 -j ACCEPT

# Прописываем политики по умолчанию:
# Принимать все пакеты, которые инициированы из уже установленного соединения, и имеющим признак ESTABLISHED.
# Состояние ESTABLISHED говорит о том, что это не первый пакет в соединении.
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#Запрешаем на передачу всё, что не разрешено.
iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

# Разрешаем хождение трафика по localhost
iptables -A INPUT -i lo -j ACCEPT

#Разрешаем пинг(DROP - запретить)
iptables -A INPUT -i eth1 -p icmp --icmp-type 8 -j ACCEPT

#NAT
#Должен быть включен ip forwarding
iptables -A FORWARD -i eth1 -o eth0 -s 192.168.0.0/28 -j ACCEPT
iptables -A POSTROUTING -t nat -j MASQUERADE
iptables -A INPUT -i eth0 -p icmp --icmp-type 8 -j ACCEPT

Теперь, настроем наш eth0, сделав его шлюзом /etc/network/interfaces:

address 192.168.0.1
netmask 255.255.255.240
broadcast 192.168.0.15

Всё, готово. Но, чтобы не вбивать каждый раз адрес и dns вручную, особенно, если компьютеров несколько, поднимем ещё и dhcp сервер.
Для начала установим его:
$ apt-get install dhcp3-server
Настройка dhcp, правим файл конфигурации /etc/dhcp/dhcpd.conf
Конфиг приблизительно такой:

#Опция динамического обновления для dns
ddns-update-style none;

#Домен и dns’ы
option domain-name "admin-pc";
option domain-name-servers <ip dns серверов, если несколько — через запятую>;

#Время жизни адресов
default-lease-time 600;
max-lease-time 7200;

# # Для логирования в отдельный файл
log-facility local7;

#Подсеть из которой выдаются ip
#диапазон
#шлюз
#brodcast
#интерфейс на котором работает
subnet 192.168.0.0 netmask 255.255.255.240 {
range 192.168.0.2 192.168.0.14;
option routers 192.168.0.1;
option broadcast-address 192.168.0.15;
interface eth0;
}

Запускаем демона:
$ /etc/init.d/isc-dhcp-server start
Проверяем, работает, радуемся!
Но, по умолчанию, логируется всё в /var/log/syslog, что не очень удобно если вам нужно работать с логами.
Предлагаю, можно всё в отдельный файл.
Создадим файл /etc/rsyslog.d/dhcpd.conf с содержимым:

local7.* /var/log/dhcpd.log

Для ротации логов в файл /etc/logrotate.d/rsyslog вставить строку:

/var/log/dhcpd.log

Перезапускаемся:
$ /etc/init.d/isc-dhcp-server restart
$ /etc/init.d/rsyslog restart

Теперь, смотрим лог в /var/log/dhcpd.log
Взято с Habrahabr.ru

Читаем еще:

  1. Пока что нет комментариев.
  1. Пока что нет уведомлений.
Необходимо войти на сайт, чтобы написать комментарий.
#

//