Статьи / Linux


раздаем интернет в локалку iptables, просейшее соединение

Самая простая раздача интернета в локальную сеть.

Настройка с network manager или что то из GUI (виджет сетевые интерфейсы или любой другой).



ip4v

1. Настраиваем карту смотрящую в сеть: настройки вашего провайдера.

2. Настраиваем карту смотрящую в локальную сеть.
IP / маска подсети

Например так:
192.168.0.1 / 255.255.0.0 (255.255.255.0)
Или так:
172.16.0.1 / 255.0.0.0

можете писать свои, главное чтобы они не совпадали с тем что написано в карте смотрящей на вашего провайдера (в интернет)

Далее узнаем сетевые интерфейсы:
http://tftf.ru/stati/linux/linux_eth_uznat_setevye_interfejsy/

Это важно, т.к. у вас могут быть другие.

Запомните название смотрящей в локальную сеть, это может быть:
eth1

а может быть
enodo238s

Понять какое название можно увидев свои настройки, например
eth1 192.168.0.1 / 255.255.0.0

или
enodo238s 172.16.0.1 / 255.0.0.0


Далее, добавляем или редактируем файл, если он уже есть:

/etc/rc.local
#!/bin/sh -e

/usr/local/bin/inet.up
exit 0


Поднимаем internet:
/usr/local/bin/inet.up

#!/bin/sh

iptables -F
iptables -t nat -F

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

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT
iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT


В нем важны три последнии строчки, где мы заменяем названия на свои:
Для eth1 192.168.0.1 / 255.255.0.0 строчки такие
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT
iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT

Карта 192.168.0.1 диапазон 192.168.0.0/24

и для enodo238s 172.16.0.1 / 255.0.0.0 строчки такие
iptables -t nat -A POSTROUTING -o enodo238s -j MASQUERADE
iptables -A FORWARD -s 172.16.0.0/24 -j ACCEPT
iptables -A FORWARD -d 172.16.0.0/24 -j ACCEPT


Карта 172.16.0.1 диапазон 172.16.0.0/24

Не забываем сделать inet.up исполняемым файлом


Инструкция для настройки без network manager (без GUI):


Дано:
eth0 - смотрит в интернет
eth1 - смотрит в локальную сеть

/etc/network/interfaces
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

auto eth1
iface eth1 inet static
address 192.168.0.1
netmask 255.255.255.0


eth0: автоматическое получение ip адресов (у вас может быть статическое, подобно как у локальных, см. ниже)
auto eth0
iface eth0 inet dhcp


eth1:
ip:192.168.0.1 
маска:255.255.255.0


локальные компьютеры:
ip:192.168.0.2 
маска:255.255.255.0
шлюз:192.168.0.1


маска раздающего и принимающих в локальной сети компьютеров должна совпадать!

шлюз это ip раздающей карты (компьютера) они должны совпадать!
На локальных компьютерах можно указать 192.168.0.2 или 192.168.0.3 и так далее

/etc/rc.local
#!/bin/sh -e

/usr/local/bin/inet.up
exit 0


Поднимаем internet:
/usr/local/bin/inet.up

#!/bin/sh

iptables -F
iptables -t nat -F

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

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT
iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT


Это самая простая настройка, представлена как пример. Более подробная настройка iptables с запретом портов и т.д. смотрим здесь.