NAT и iptables (Как раздать интернет через вторую сетевую карту)

Дано:
Сетевая карточка eth0 подключенная с помощью PPPoE к интернету и
eth1 подключенная к сети с адресом 192.168.0.1 к которой подключена сеть с адресами 192.168.0.* в которой нужно раздать интернет.

Для начала включим форвардинг:

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

Чтобы форвардинг автоматически включался при запуске системы

Открываем файл:

sudo nano /etc/sysctl.conf

и добавляем в него строчку:

net.ipv4.ip_forward = 1

Затем включаем NAT
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

Где ppp0 название вашего интерфейса через который выходите в интернет.

Чтобы NAT работал после перезагрузки делаем следующее:

сохраняем настройки iptables в файл

sudo iptables-save > /etc/iptables.up.rules

И добавляем в конец файла:

sudo nano /etc/networks/interfaces

эту строчку, для автоматической подгрузке правил

pre-up iptables-restore < /etc/iptables.up.rules

Так же в этот файл добавляем правила роутинга:

up route add -net 192.168.0.0 netmask 255.255.255.0 dev eth1
up route add -net 0.0.0.0 netmask 255.255.255.255 dev eth0

Комментарии (68)

0
Flameflower - 2 Август, 2011 - 10:48
Изображение пользователя Flameflower.

Лучше вывод
ip a
ip r
А там будем дальше двигаться.

0
balamutick - 2 Август, 2011 - 10:58
Изображение пользователя balamutick.
0
Flameflower - 2 Август, 2011 - 11:11
Изображение пользователя Flameflower.

И так.
В кач-ве vpn-сервера был взят openvpn.
eth0 и еще 4 алиаса, что на него навешаны смотрят во внешюю сеть.
tap0 - есть бридж с eth0.
eth1??

0
balamutick - 2 Август, 2011 - 11:37
Изображение пользователя balamutick.

ifconfig - eth1 не выводит. Я на него внимания и не обращал. Скорее всего ещё одна сетевая карта, которая нигде не задействована.
В кач-ве vpn-сервера был взят openvpn. Да.
eth0 и еще 4 алиаса, что на него навешаны смотрят во внешюю сеть.Верно.
tap0 - есть бридж с eth0. Да.
Клиент подключается к OpenVPN серверу. Получает команду использовать шлюзом по умолчанию шлюз-внутренний_ip_удалённого сервера и через него выходит в сеть (из под внешнего ip сервера).

Я не запутал ? Короче банальный VPN шлюз

0
Flameflower - 2 Август, 2011 - 12:05
Изображение пользователя Flameflower.

Допустим:
Я зацепился к тебе.
У тебя должен будет подняться tun-интерфейс уже для маршрутизации ip пактов.
Трафик у тебя будет вылетать через eth0, если верно понял. Таки полагаю на нем и надо натить.
# echo 1 > /proc/sys/net/ipv4/ip_forward
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

С маршрутами, на мой взгляд, более ничего писать не надо.
Так же хотелось бы узреть:
# iptables -nvxL
# iptables -nvxL -t nat
# iptables -nvxL -t mangle

0
balamutick - 4 Август, 2011 - 19:40
Изображение пользователя balamutick.

У меня сейчас вот в этом проблема: http://openvpn.net/index.php/open-source/documentation/howto.html#redirect не работает при запуске клиента из под windows 7 (нужно настроить клиента под неё, запускаю по администратором).

Кусок лога:

это по iptables ****

Кстати, у меня сейчас нет eth0:5, я его удалил, так как у меня был два раза один внешний IP прописан (не мной), и теперь их у меня с eth0 по eth0:4.

0
balamutick - 20 Сентябрь, 2011 - 23:59
Изображение пользователя balamutick.

Люди, а где-нибудь журналируется активность NAT клиентов ?

0
Mike - 21 Сентябрь, 2011 - 06:05
Изображение пользователя Mike.

если в правилах иптабли задашь логирование - будет логироваться.

0
balamutick - 21 Сентябрь, 2011 - 09:22
Изображение пользователя balamutick.

Но если "я ничего не трогал" (тм) - то оно по умолчанию не включается в стандартном дебиане\(К)убунте ?

0
Mike - 21 Сентябрь, 2011 - 09:38
Изображение пользователя Mike.

я даже больше скажу - оно по умолчанию вообще нигде не включается. Чтобы включалось - это надо цепочку прописывать с явным указанием ключа. Но Катя права - этим логом ты моментально застрешь винт. Если тебе надо просто побыстрому посмотреть, ходят или не ходят пакеты, то лучше грепать tcpdump.

0
Flameflower - 21 Сентябрь, 2011 - 09:44
Изображение пользователя Flameflower.

Не совсем соглашусь с тем, что винт быстро засрется.
Все завист от кол-ва трафика, ну и logrotate'ом тоже можно немного побаловаться.

0
Жюстина - 21 Сентябрь, 2011 - 07:39
Изображение пользователя Жюстина.

И не дай бох увидеть этот лог дважды в жизни, оно работает как сниффер... Забьёт диск очень быстро (((

0
Flameflower - 21 Сентябрь, 2011 - 09:43
Изображение пользователя Flameflower.

Ну не совсем уж как снифер. Хотя, конечно, смотря с какими ключами, к примеру, tcpdump запускать. :)
Вот небольшой кусок лога.

Развернуть/свернуть скрытый текст.
tail -10 ipt_nat_post.log.1
Sep  9 01:10:59 pro-magnit kernel: [913944.427179] ipt_nat_postrouting: IN= OUT=eth0 SRC=192.168.10.224 DST=80.244.33.142 LEN=75 TOS=0x00 PREC=0x00 TTL=249 ID=2927 PROTO=UDP SPT=8016 DPT=53 LEN=55
Sep  9 01:11:19 pro-magnit kernel: [913964.433553] ipt_nat_postrouting: IN= OUT=eth0 SRC=192.168.10.224 DST=80.244.33.142 LEN=75 TOS=0x00 PREC=0x00 TTL=249 ID=2932 PROTO=UDP SPT=40191 DPT=53 LEN=55
Sep  9 01:11:29 pro-magnit kernel: [913974.412376] ipt_nat_postrouting: IN= OUT=eth0 SRC=192.168.10.224 DST=80.244.33.142 LEN=75 TOS=0x00 PREC=0x00 TTL=249 ID=2937 PROTO=UDP SPT=8143 DPT=53 LEN=55
Sep  9 01:11:34 pro-magnit kernel: [913979.430641] ipt_nat_postrouting: IN= OUT=eth0 SRC=192.168.10.223 DST=80.244.32.180 LEN=75 TOS=0x00 PREC=0x00 TTL=249 ID=64033 PROTO=UDP SPT=22871 DPT=53 LEN=55
Sep  9 01:11:34 pro-magnit kernel: [913979.430853] ipt_nat_postrouting: IN= OUT=eth0 SRC=192.168.10.223 DST=195.54.3.2 LEN=75 TOS=0x00 PREC=0x00 TTL=249 ID=64034 PROTO=UDP SPT=22871 DPT=53 LEN=55
Sep  9 01:11:39 pro-magnit kernel: [913984.441735] ipt_nat_postrouting: IN= OUT=eth0 SRC=192.168.10.224 DST=80.244.33.142 LEN=75 TOS=0x00 PREC=0x00 TTL=249 ID=2942 PROTO=UDP SPT=65452 DPT=53 LEN=55
Sep  9 01:11:59 pro-magnit kernel: [914004.448289] ipt_nat_postrouting: IN= OUT=eth0 SRC=192.168.10.224 DST=80.244.33.142 LEN=75 TOS=0x00 PREC=0x00 TTL=249 ID=2947 PROTO=UDP SPT=6229 DPT=53 LEN=55
Sep  9 01:12:19 pro-magnit kernel: [914024.455791] ipt_nat_postrouting: IN= OUT=eth0 SRC=192.168.10.224 DST=80.244.33.142 LEN=75 TOS=0x00 PREC=0x00 TTL=249 ID=2952 PROTO=UDP SPT=59632 DPT=53 LEN=55
Sep  9 01:12:34 pro-magnit kernel: [914039.453935] ipt_nat_postrouting: IN= OUT=eth0 SRC=192.168.10.224 DST=80.244.33.142 LEN=75 TOS=0x00 PREC=0x00 TTL=249 ID=2957 PROTO=UDP SPT=11470 DPT=53 LEN=55
Sep  9 01:12:54 pro-magnit kernel: [914059.471402] ipt_nat_postrouting: IN= OUT=eth0 SRC=192.168.10.224 DST=80.244.33.142 LEN=75 TOS=0x00 PREC=0x00 TTL=249 ID=2962 PROTO=UDP SPT=23366 DPT=53 LEN=55
0
ma9g0t - 14 Октябрь, 2011 - 17:29
Изображение пользователя ma9g0t.

Блин ощущаю себя полным нубом... Имеется:

eth0 (dhcp) для инета. На ней vpn с именем Nlink (собственно, подключение к интернету)
eth1 (static) смотрит в локалку. Ip 192.168.0.1
На втором компе (под хрюшей): ip 192.168.0.3 Gateway 192.168.0.1 и dns от провайдера

После выполнения инструкции на втором компе инет не появился (ping ya.ru превышен интервал ожидание запроса), зато доступный локально сайт моего провайдера прекрасно пингуется. То есть, подключение по eth0 я-таки расшарил. Но теперь главный вопрос - как расшарить висящее на нём vpn? Подскажите, пожалуйста!

0
Flameflower - 15 Октябрь, 2011 - 15:32
Изображение пользователя Flameflower.

sudo -i
iptables -A POSTROUTING -o ppp0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward

Должно будет достаточно.

0
Гость - 25 Ноябрь, 2011 - 09:25

Начитавшись кучу статей все таки сделал.
Спасибо.

Еще мне помогла вот эта статья:
http://jakeroid.com/nastraivaem-nat-v-linux.html
Там про DNS и DHCP тоже написано.

0
Flameflower - 25 Ноябрь, 2011 - 13:56
Изображение пользователя Flameflower.

По мне так в кач-ве DNS-сервера куда лучше BIND использовать.

0
dyug - 25 Ноябрь, 2011 - 14:37

для домашней сети на 5 компов городить дхцпсервер и бинд смысла не вижу.
как показывает мой опыт (с 1998 года), использование днсмаска удобно при постановке роутера на машин от 3 до 30-50
больше - обычно начинают появляться потребности которые проще удовлетворить дхцпд и биндом.
так по магазинам, где у мен по 10-20 машин - стоят днсмск, а вот в офисе уже дхцпд и бинд.
Но и задачи центра посложнее.