Рубрики
network \ сеть

debian USB-Модем\ шлюз \ linux \ NAT \ gateway \ DHCP \ DNS

Источник:

http://selfdefend.ru/page/drugoy-shlyuz-na-linux-debian.html

Дано:

сеть - Debian Squeeze и Windows. 

Для windows:

На Windows в свойствах протокола интернета версии 4 (TCP/IPv4) выставлены следующие настройки:
IP-адрес: 192.168.0.2;
маска подсети: 255.255.255.0;
Основной шлюз: 192.168.0.1;
Предпочитаемый DNS-сервер: 192.168.0.1

Для debian

В конфигурационном файле сети /etc/network/interfaces для сетевой карты записаны следующие данные:
auto eth0
iface eth0 inet static
address 192.168.0.1
netmask 255.255.255.0
Это значит, что интерфейс eth0, обращенный в локальную сеть, при загрузке компьютера 
стартует автоматически и ему задается статический адрес 192.168.0.1 и маски сети 255.255.255.0

После изменения файла пере запускаем сетевой интерфейс:
sudo /etc/init.d/networking restart
ppp0 - внешний интерфейс, обращенный в интернет.

debian dhcp:


Для того, чтобы локальные компьютеры автоматически получали параметры, 
необходимые для работы в сети TCP/IP, устанавливаю DHCP-сервер.
sudo aptitude install dnsmasq

Теперь редактируем конфигурационный файл DHCP-сервера:
nano /etc/dnsmasq.conf

Добавляю в файл следующие строки:
interface=eth0
dhcp-range=192.168.0.2,192.168.0.150,255.255.255.0,12h
где dhcp-range - диапазон выдаваемых адресов от 192.168.0.2 до 192.168.0.150, 
маска под сети 255.255.255.0, сроком на 12 часов.

Пере запускаем сервер:
sudo /etc/init.d/dnsmasq restart

debian NAT и iptables

Следующий шаг - запуск и настройка службы NAT, 
которая позволяет преобразовывать IP-адреса транзитных пакетов. 
Можно вручную отредактировать конфигурационные файлы, 
а можно сделать командный файл, выбираю второй вариант. 
Создаем файл с именем "gateway" в директории "/etc/init.d". 
sudo touch /etc/init.d/gateway
sudo nano /etc/init.d/gateway

Записываем в него следующие строки:
#!/bin/sh
iptables -F INPUT
iptables -F FORWARD
iptables -F OUTPUT

iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
echo "1" > /proc/sys/net/ipv4/ip_forward

Где строки с параметром: 
"F" - это сброс правил
"P" - политики по умолчанию
INPUT - для входящих пакетов
FORWARD - для проходящих через данную машину к другой
OUTPUT - для исходящих
ppp0 и MASQUERADE - означает, что интернет получаем динамически через ppp0 интерфейс

Делаем файл исполняемым:
sudo chmod +x /etc/init.d/gateway

Запускаем его:
sudo /etc/init.d/gateway

Добавляю файл в автозагрузку:
insserv gateway

(На всякий случай: удаление скрипта из автозагрузки insserv -r gateway)