Debian, nat. Раздаём интернет с debian. Шлюз на debian — часть 2. « Debian.pro



Блог для пользователей и администраторов Debian

Debian, nat. Раздаём интернет с debian. Шлюз на debian — часть 2.

Мы уже настроили в своей сети dhcp сервер.

Теперь самое время раздать интернет компьютерам в нашей сети. Условимся, что eth0 у нас — внешний интерфейс, через который наш шлюз получает инет. eth1 — интерфейс, которым шлюз смотрит в нашу сеть.Если ваш сервер подключается к инету через pppoe — то eth0 следует заменить на ppp0. Ну и так далее.

Первым делом настроим систему так, чтобы она «умела» работать шлюзом. Для этого в файле /etc/sysctl.conf заменим строку net.ipv4.ip_forward=0 на net.ipv4.ip_forward=1

Если строчка закомментирована — то раскомментируйте её.

Ну и применим новый конфиг, чтобы не перезагружаться:

root@debian-gateway:~# sysctl -p

Как вариант — выполнить команду (будет работать только без перезагрузки):

root@debian-gateway:~# sysctl -w net.ipv4.ip_forward="1"

Теперь расскажем нашему серверу, куда собственно направлять трафик, который прилетает на наш сервер, как на шлюз (вместо eth0 укажите тот интерфейс, которым шлюз смотрит в инет):

root@debian-gateway:~# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Ну и теперь нам нужно поправить файл /etc/rc.local , для того, чтобы сервер сразу после загрузки «узнавал», куда ему бедному пинать пакетики.

Нужно привести файл к примерно следующему виду (только подумайте повнимательнее): # если используется pppoe (в другом случае эта строчка не нужна): pon your-ppp-name # включаем nat: iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE # дефолтная строчка, её удалять нельзя: exit 0

Напоминаю, что компы-клиенты должны находиться в той же подсети, что и шлюз (если вы настраивали dhcp по первому мануалу — вам даже думать об этом ненадо). IP адрес нашего сервера-шлюза должен быть указан в качестве шлюза в настройках сетевого подключения у клиентов.

Диагностика проблем. Проблемы тут могут быть по двум причинам. Первая — вы не настроили sysctl. Возвращаемся в начало мануала и перечитываем. Вторая — iptables. Чтобы попробовать решить эту проблему — добавьте iptables -F в файл /etc/rc.local первой строчкой.

Если ничего не получается — пишите мне, помогу.

18.11.2010 byinkvizitor68sl|Администрирование

Метки: debian, nat, шлюз

Комментарии (106):

  1. technomaniak1:

    На 1 пк стоит дебиан с настроенным интернетом (pptp) и настроенным iptables по вашему мануалу

    На 2 пк семерка работает только скайп и ничего больше)хотя и пишет в свойствах подключение ИНТЕРНЕТ уже и не знаю че делать…Заранее спасибо

  2. Попробуйте

    iptables -I FORWARD -p tcp —tcp-flags SYN,RST SYN -m tcpmss —mss 1400:1500 -j TCPMSS —clamp-mss-to-pmtu -o $IFACE

  3. technomaniak1:

    Вставил строчку в /etc/rc.local но увф все по прежнему(

  4. iface какой указывал, вставил ли строчку после того, как поднимается NAT, учел ли, что /etc/rc.local отрабатывает только при ребуте?

    Стучись в общем в Jabber, будем диагностировать что именно не работает.

  5. Dert:

    Спасибо, все работает! Но. Вместо sysctl -w надо прописывать sysctl -p . Долго удивлялся в чем проблема пока не нашел как проверить включен ли ипв4.айпи_форвардинг командой sysctl -a | grep forward . Сейчас буду dns делать.

  6. technomaniak1:

    все сам разобрался) оасталось тока с wifi помучиться

  7. Чего было то? добавлю в мануал.

  8. Поправил, про dns — поищите dnsmasq в поиске, я писал про него.

  9. Dert:

    Спасибо. Кстати, ваша статья уже хорошо просматривается через гугл (так и попал на нее). Очень простая и дельная статья в отличие от большинства встречающегося бреда, который пугает неуверенностью в нем и громоздкостью.

    Еще добавлю, что мой провайдер использует статические, а не динамические адреса, поэтому вместо «… MASQUERADE» я прописывал «… SNAT —to-source 1.2.3.4″, где 1.2.3.4 — адрес сервера провайдера, его айпи постоянный, поэтому не обязательно каждый раз его определять. Впрочем, это не суть важно, не думаю что это как-то повлияет на производительность, и даже думаю это не стоит добавлять в статью, т.к. ухучшит читаемость.

  10. Спасибо за замечание. Вписывать в статью не буду, действительно, но тут пусть обязательно живет)

  11. technomaniak1:

    да удали dhcp, удалил файервод, сброчилс все правила iptables и заработало)

    еще вопрос остался можно ли несколько правил типоiptables -t nat -A POSTROUTING -o eth0 -j MASQUERADEiptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE?

  12. Сделал все по выше описанному, но не хочет сервер раздавать инет на локальные машины (16 компьютеров, dhcp не устанавливал, т.к. мне нужны статические IP адреса). Максимально, чего я добился, так это работоспособность ICQ, а дальше ни в какую не хочет. При попытке что-либо изменить, вообще ничего не работает.

  13. dns проверь, с клиента nslookup yandex.ru

  14. dns проверь, с клиента nslookup yandex.ru. Также проверь на сервере

  15. dns я прописывал во время установки debian (dns провайдера). Самое интересное, что на одной машине, которая сейчас раздает инет — все нормально, быстро получилось настроить и работает. А вот на второй — никак (хочу сменить серверную машину).

  16. Помогло пока не помогли вот тут

    http://linuxforum.ru/viewtopic.php?id=13140

  17. 1pp:

    # включаем nat:

    iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

    Появляется интернет. на семерке пишет что в интернете. работает только скайп,яндекс,и сайт провайдера.

    хотя со шлюза все сайты пингуются нормально. в чем проблема?

  18. Влад:

    В MTU, скорее всего.

  19. 1pp:

    можно поточнее

  20. 1pp:

    че делать то?

  21. Влад:

    iptables -I FORWARD -p tcp —tcp-flags SYN,RST SYN -j TCPMSS —clamp-mss-to-pmtu

    как-то так примерно.

  22. 1pp:

    root@1pp:~# iptables -I FORWARD -p tcp .tcp-flags SYN,RST SYN -j TCPMSS .clamp-mss-to-pmtu

    Bad argument `.tcp-flags’Try `iptables -h’ or ‘iptables —help’ for more information.

  23. Влад:

    http://hastebin.com/kuhofanofe.hs

    Никогда ничего не копируйте бездумно.

  24. 1pp:

    ну наконецто) спасибо)!!! скорость 70/70мб ее)

  25. # дефолтная строчка, её удалять нельзя:

    exit 0

    Можно!

  26. Хым. Вообще да, уже можно. legacy старое.

  27. Имя:

    как раз таки -w нужно в

    »Как вариант — выполнить команду (будет работать только без перезагрузки):root@debian-gateway:~# sysctl -p net.ipv4.ip_forward=»1″«

  28. BeginnerAdmin:

    Подскажите, если мне нужно форвардинг портов сделать это все тоже прописывать в /etc/rc.local (как у меня сейчас) или можно все это засунуть в какой-нить файл, а в /etc/rc.local прописать путь к файлу и заведется? Если так возможно, какой должен быть формат файла, какие права на него?

  29. В sh-скрипт это вполне себе запихать можно.

    Как то так:sudo editor /usr/bin/blah.shsudo chmod +x /usr/bin/blah.sh

    И /usr/bin/blah.sh пишите в rc.local.

    В шапке sh-скрипта должен быть шабанг. Для баша — #/bin/bash.

  30. RomanS:

    господа хорошие, поясните, пожалуйста, как правильно настроить раздачу…

    ПРобывал данным методом и не выходит…что сейчас: Кабель от провайдера идет к роутеру (wl500Pv2) а с него на 2 сервера, на одном видеозапись, на 2м(основном) работает сайт и несколько серверов…В основном сервере стоит 2 сетевые и debian 6…что хочу: интернет от провайдера подключался к основному серверу, тот брал на свои нужды и раздавал остаток на роутер, а тот в свою очереднь отдавал на 2й сервер и несколько компьютеров…интернет напрямую на основном сервере настроить удалось…подключение к 2й сетевой проверял с помощь роутера…пинговалось и заходило на ип открывая дефолтную статическую страничку вебинтерфейса с сайта осного сервера, но интернет не работает…скорее всего это из-за того, что на основном сервере поднят вебхостинг и 80 порт перекрыт…подскажите,пожалуйста, как быть. Просто роутер клеит ласты при большем количестве подключений…сначала перестает отдавать на wifi, потом страдает lan

  31. @RomanS

    Напишите, что конкретно делали после «интернет напрямую на основном сервере настроить удалось». В какие порты что подключили, какие настройки где меняли.

  32. Water:

    Ув.Товарищ инквизитор, у меня следующая схема: в eth1 шлюза (192,168,10,254) от vdsl модема(192.168.10.253) переведенного в режим бридж воткнут кабель, на шлюзе поднял pppoe соединение, прошелся по инструкции на этой странице инет есть только на шлюзе.

    Уточните пожалуйста как все должно выглядеть (и поправьте меня если я не прав)модем 192,168,10,253шлюз 192,168,10,254 eth1 eth0 которая воткнута в коммутатор общей сети не присвоен вообще айпи, но сеть работает его из локалки видно и он видит, и если этот интерфейс вытащить, то пинг пропадает.

    Должна ли сработать эта инструкция в моей схеме? или есть какието особенности? машина из внутренней сети (linux crunch) говорит по англицки про недоступность СЕТИ, а если выключить выключить шлюз то недоступность УЗЛА.

  33. Настройте сначала внутреннюю сеть. Там вы сами вольны делать что угодно, главное, чтобы у всех хостов внутри сети появился доступ по L2 к eth0 сервера (т.е., адрес eth0 сервера и ip-адреса всех хостов внутри сети должны входить в одну подсеть).

    Инструкция актуальна, раздавать через MASQUERADE вам нужно интерфейс ppp0 (или какой у вас там поднимается), а не eth1.Адрес eth0 сервера на всех хостах внутри сети должнен быть прописан в качестве default gateway.

    Дальше рассуждать без конкретики бессмысленно. Давайте ifconfig, ip ro sh, пинги, трейсы со всех хостов, если не разберетесь.

  34. Water:

    Не разобрался, вчера, опять. Жаль не проверил ваш ответ, вчера вечером. Сегодня вечером доберусь до объекта «стрительства», выложу вам все конфиги. Спасибо.

  35. svida:

    inkvizitor68sl, возьметесь ли Вы за удаленную настройку через TeamViewer с благодарностью через wm?

  36. > inkvizitor68sl, возьметесь ли Вы за удаленную настройку через TeamViewer с благодарностью через wm?

    Кидайте подробности в почту (root@vlad.pro) — там видно будет.

  37. Water:

    gateway#ifconfig eth0      Link encap:Ethernet  HWaddr f8:d1:11:00:6e:92           inet addr:192.168.10.254  Bcast:19 root@gw:/home/master# 2.168.10.255  Mask:255.255.255.0           inet6 addr: fe80::fad1:11ff:fe00:6e92/64 Scope:Link           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1           RX packets:98 errors:0 dropped:0 overruns:0 frame:0           TX packets:42 errors:0 dropped:0 overruns:0 carrier:0           collisions:0 txqueuelen:1000           RX bytes:11628 (11.3 KiB)  TX bytes:6450 (6.2 KiB)           Interrupt:26 Base address:0x8000

    eth1      Link encap:Ethernet  HWaddr 8c:89:a5:11:09:9c

              inet addr:192.168.100.1  Bcast:192.168.100.255  Mask:255.255.255.0           inet6 addr: fe80::8e89:a5ff:fe11:99c/64 Scope:Link           UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1           RX packets:136 errors:0 dropped:0 overruns:0 frame:0           TX packets:281 errors:0 dropped:0 overruns:0 carrier:4           collisions:0 txqueuelen:1000           RX bytes:21387 (20.8 KiB)  TX bytes:28474 (27.8 KiB)           Interrupt:27

    lo        Link encap:Local Loopback

              inet addr:127.0.0.1  Mask:255.0.0.0           inet6 addr: ::1/128 Scope:Host           UP LOOPBACK RUNNING  MTU:16436  Metric:1           RX packets:0 errors:0 dropped:0 overruns:0 frame:0           TX packets:0 errors:0 dropped:0 overruns:0 carrier:0           collisions:0 txqueuelen:0           RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

    ppp0      Link encap:Point-to-Point Protocol

    ...skipped....           RX packets:109 errors:0 dropped:0 overruns:0 frame:0           TX packets:211 errors:0 dropped:0 overruns:0 carrier:0           collisions:0 txqueuelen:3           RX bytes:17245 (16.8 KiB)  TX bytes:15536 (15.1 KiB)

    user

    root@comp1:/home/jenny# ifconfig eth0      Link encap:Ethernet  HWaddr 00:25:22:1c:f6:07           inet addr:192.168.10.101  Bcast:192.168.10.255  Mask:255.255.255.0           inet6 addr: fe80::225:22ff:fe1c:f607/64 Scope:Link           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1           RX packets:710 errors:0 dropped:0 overruns:0 frame:0           TX packets:617 errors:0 dropped:0 overruns:0 carrier:0           collisions:0 txqueuelen:1000           RX bytes:188098 (183.6 KiB)  TX bytes:59491 (58.0 KiB)           Interrupt:26 Base address:0xe000

    lo        Link encap:Local Loopback

              inet addr:127.0.0.1  Mask:255.0.0.0           inet6 addr: ::1/128 Scope:Host           UP LOOPBACK RUNNING  MTU:16436  Metric:1           RX packets:40 errors:0 dropped:0 overruns:0 frame:0           TX packets:40 errors:0 dropped:0 overruns:0 carrier:0           collisions:0 txqueuelen:0           RX bytes:3808 (3.7 KiB)  TX bytes:3808 (3.7 KiB)

    root@comp1:/home/jenny# ping ya.ru

    ping: unknown host ya.ru root@comp1:/home/jenny#

  38. Water:

    у юзера 192,168,10,254 как шлюз прописан, на шлюзе eth1 смотрит в инет eth0 в сеть. почему пакеты не ходят не пойму. на шлюзе инет есть

  39. Water:

    ДОрогой товарищ, инквизитор, спасибо. Я перечитал внимательно ваш коммент и нашел свою ошибку (в том, что указывал на раздачу через маскарадинг не тот интерфейс. Сеть работает.) еще раз спасибо. Linux way — true way

  40. Water:

    и еще, затрите пожалуйста мой коммент с конфигом, я по тупости и поспешности показал айпи, спасибо.

  41. Стер адрес внешний.

    Не за что. Удачи)

  42. danil:

    Скажите мне обязательно писать строчки

    # если используется pppoe (в другом случае эта строчка не нужна):pon your-ppp-name# включаем nat:iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE# дефолтная строчка, её удалять нельзя:exit 0

    Использую PPPOE. и если вписывать. то интерфейс мне указывать тот на котором весит модем или же тот с которого интернет раздается уже пользователям?

  43. > Теперь расскажем нашему серверу, куда собственно направлять трафик, который прилетает на наш сервер, как на шлюз (вместо eth0 укажите тот интерфейс, которым шлюз смотрит в инет):

  44. danil:

    Хорошо. Указал я это. после того как применил правила в айпитаблес, интернет работать перестал. подскажите с правилами? Вот конфиг

    #!/bin/sh

    /sbin/depmod -a

    /sbin/modprobe ip_tables/sbin/modprobe ip_conntrack/sbin/modprobe iptable_filter/sbin/modprobe iptable_nat

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

    iptables -P INPUT ACCEPT

    iptables -P FORWARD ACCEPTiptables -P OUTPUT ACCEPTiptables -t nat -P PREROUTING ACCEPTiptables -t nat -P POSTROUTING ACCEPTiptables -t nat -P OUTPUT ACCEPTiptables -t mangle -P PREROUTING ACCEPTiptables -t mangle -P OUTPUT ACCEPT

    iptables -F

    iptables -t nat -Fiptables -t mangle -F

    iptables -X

    iptables -t nat -Xiptables -t mangle -X

    iptables -A INPUT -i eth0 -j ACCEPT

    iptables -A FORWARD -i ppp0 -j ACCEPT#iptables -A FORWARD -i ppp1 -j ACCEPT#iptables -t nat -A POSTROUTING -s 10.10.10.2 -o ppp0 -j MASQUERADEiptables -t nat -A POSTROUTING -s 10.10.10.10 -o ppp0 -j MASQUERADE#iptables -t mangle -A FORWARD -s 10.10.10.7 -j MARK —set-mark 103iptables -t nat -A POSTROUTING -s 10.10.10.3 -o ppp0 -j MASQUERADE#iptables -t mangle -A FORWARD -s 10.10.10.3 -j MARK —set-mark 106iptables -t nat -A POSTROUTING -s 10.10.10.4 -o ppp0 -j MASQUERADEiptables -t nat -A POSTROUTING -s 10.10.10.5 -o ppp0 -j MASQUERADEiptables -t nat -A POSTROUTING -s 10.10.10.6 -o ppp0 -j MASQUERADEiptables -t nat -A POSTROUTING -s 10.10.10.7 -o ppp0 -j MASQUERADE#iptables -t mangle -A FORWARD -s 10.10.10.9 -j MARK —set-mark 105#iptables -t mangle -A FORWARD -s 10.10.10.6 -j MARK —set-mark 101iptables -t nat -A POSTROUTING -s 10.10.10.8 -o ppp0 -j MASQUERADE#iptables -t mangle -A FORWARD -s 10.10.10.8 -j MARK —set-mark 102iptables -t nat -A POSTROUTING -s 10.10.10.9 -o ppp0 -j MASQUERADEiptables -t nat -A POSTROUTING -s 10.10.10.11 -o ppp0 -j MASQUERADEiptables -t nat -A POSTROUTING -s 10.10.10.12 -o ppp0 -j MASQUERADEiptables -t nat -A POSTROUTING -s 10.10.10.13 -o ppp0 -j MASQUERADE

  45. Долго-долго силился понеять, что вы сделать пытаетесь.

    Так и не понял смысла во всей писанине. Расскажите, зачем всё это?

  46. danil:

    уже все решил. Правила немного изменил

  47. Влад:

    Ооок.. О_о

  48. NurDus:

    Доброго времени суток.

    А у меня ругнулся вот так:

    root@hs-php:~# iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

    WARNING: Deprecated config file /etc/modprobe.conf, all config files belong into /etc/modprobe.d/.FATAL: Module ip_tables not found.iptables v1.4.8: can’t initialize iptables table `nat’: Table does not exist (do you need to insmod?)Perhaps iptables or your kernel needs to be upgraded.

    Попробовал:

    apt-get upgrade iptables

    Но ошибка повторилась.

    Не подскажите в чем может быть проблема?!

  49. Что за ядро то?

  50. NurDus:

    Debain 6, если вы про это..

  51. Мхм. Версию ядра смотрите командой uname -a

    Ну и сразу dpkg -l | grep " linux-" покажите.

    Не в виртуалке делаете всё это, случаем?

  52. NurDus:

    Linux hs-php 2.6.32-042stab081.5 #1 SMP Mon Sep 30 16:52:24 MSK 2013 x86_64 GNU/Linux

    иii syslinux-common 2:4.02+dfsg-7 collection of boot loaders (common files)Да, на виртуалке, доступа к управлению ядром нет.

  53. У вас openvz — внутри неё просто так nat не получится поднять.

    В конфиге виртуалки строчку нужно поправить:IPTABLES=»ip_tables iptable_filter iptable_mangle ipt_limit ipt_multiport ipt_tos ipt_TOS ipt_REJECT ipt_TCPMSS ipt_tcpmss ipt_ttl ipt_LOG ipt_length ip_conntrack ip_conntrack_ftp ipt_state iptable_nat ip_nat_ftp»

    И в man vzctl почитать про то, как разрешить виртуалке iptables использовать.

  54. NurDus:

    Ок, спасиб. =)

  55. ign:

    настроил раздачу с адсл-модема, все ок, но не могу настроить доступ к странице настройки модема, как это сделать? модем в режиме моста: 192.168.1.1, pppoe на шлюзе пдключается, 3 сетевых на нем для локальных компов. инет есть, все хосты на шлюзе пингуются, а вот на локальных — все кроме 192.168.1.1. Чувствую надо маршрут прописать, но не пойму какой.

  56. Влад:

    ip ro add 192.168.1.1 via dev

    Вы их скорее всего загнали все в 192.168.1.*

    Если они всё же в разных подсетях C — то на шлюзе нужно что-то в духе:

    iptables -t nat -A POSTROUTING -o ethX-j MASQUERADEгде ethX — сетевой интерфейс, к которому модем подключен.

  57. ign:

    iptables -t nat -A POSTROUTING -o ppo0 -j MASQUERADE — для инета такое есть. Да, подсети на сетевых такие: 192.168.10.0/24, 192.168.20.0/24 и 192.168.30.0/24

  58. ign:

    Добавил iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE и все заработало. Спасибо, Влад.

  59. Здравствуйте можете проверить мой Iptables тоже не могу дать нат

    вот Iptables.up.rules# Generated by iptables-save v1.4.14 on Sat May 10 14:22:05 2014*nat:PREROUTING ACCEPT [215:22000]:INPUT ACCEPT [41:5617]:OUTPUT ACCEPT [10:955]:POSTROUTING ACCEPT [7:420]-A PREROUTING -i eth1 -p tcp -m tcp —dport 3216 -j DNAT —to-destination 192.168.100.16:3389-A PREROUTING -i eth1 -p tcp -m tcp —dport 3501 -j DNAT —to-destination 192.168.100.10:3389-A POSTROUTING -s 192.168.100.16/32 -o eth1 -j MASQUERADE-A POSTROUTING -s 192.168.100.10/32 -o eth1 -j MASQUERADE-A POSTROUTING -o eth0 -j MASQUERADECOMMIT# Completed on Sat May 10 14:22:05 2014# Generated by iptables-save v1.4.14 on Sat May 10 14:22:05 2014*mangle:PREROUTING ACCEPT [13163704:8564550282]:INPUT ACCEPT [12603801:8502275800]:FORWARD ACCEPT [474453:51120198]:OUTPUT ACCEPT [12830558:8585643500]:POSTROUTING ACCEPT [12847255:8588164346]COMMIT# Completed on Sat May 10 14:22:05 2014# Generated by iptables-save v1.4.14 on Sat May 10 14:22:05 2014*filter:INPUT DROP [108334:7714915]:FORWARD DROP [474453:51120198]:OUTPUT ACCEPT [12830557:8585643388]-A INPUT -p icmp -f -j DROP-A INPUT -p tcp -m conntrack —ctstate NEW -m tcp ! —tcp-flags FIN,SYN,RST,ACK SYN -j DROP-A INPUT -p tcp -m conntrack —ctstate INVALID,NEW -m tcp —tcp-flags SYN,ACK SYN,ACK -j REJECT —reject-with tcp-reset-A INPUT -p tcp -m tcp —dport 22 -j ACCEPT-A INPUT -p tcp -m tcp —dport 8080 -j ACCEPT-A INPUT -p tcp -m tcp —dport 10000 -j ACCEPT-A INPUT -p tcp -m tcp —dport 901 -j ACCEPT-A INPUT -p icmp -m icmp —icmp-type 8 -j ACCEPT-A INPUT -m state —state RELATED,ESTABLISHED -j ACCEPT-A INPUT -p tcp -m tcp —dport 110 -j ACCEPT-A INPUT -p tcp -m tcp —dport 995 -j ACCEPT-A INPUT -p tcp -m tcp —tcp-flags FIN,SYN,RST,ACK RST -m limit —limit 1/sec -j ACCEPT-A INPUT -p tcp -m state —state RELATED,ESTABLISHED -j ACCEPT-A INPUT -p udp -m state —state RELATED,ESTABLISHED -j ACCEPT-A INPUT -p tcp -m tcp —dport 22 —tcp-flags FIN,SYN,RST,ACK SYN -m recent —update —seconds 30 —hitcount 3 —name dmitro —rsource -j DROP-A INPUT -p tcp -m tcp —dport 20 -j ACCEPT-A INPUT -p tcp -m tcp —dport 21 -j ACCEPT-A INPUT -p tcp -m tcp —dport 25 -j ACCEPT-A INPUT -p udp -m udp —sport 53 -j ACCEPT-A INPUT -p tcp -m tcp —dport 80 -j ACCEPT-A INPUT -p tcp -m tcp —dport 110 -j ACCEPT-A INPUT -p tcp -m tcp —dport 143 -j ACCEPT-A INPUT -p tcp -m tcp —dport 443 -j ACCEPT-A INPUT -p tcp -m tcp —dport 13000 -j ACCEPT-A INPUT -p tcp -m tcp —dport 13001 -j ACCEPT-A INPUT -p tcp -m tcp —dport 14001 -j ACCEPT-A INPUT -p tcp -m tcp —dport 14000 -j ACCEPT-A INPUT -p tcp -m tcp —dport 9080 -j ACCEPT-A INPUT -p icmp -m icmp —icmp-type 3 -j ACCEPT-A INPUT -p icmp -m icmp —icmp-type 11 -j ACCEPT-A INPUT -p icmp -m icmp —icmp-type 12 -j ACCEPT-A INPUT -i eth0 -p tcp -m tcp —dport 53 -j ACCEPT-A INPUT -i lo -j ACCEPT-A INPUT -p tcp -m tcp —dport 5901 -j ACCEPT-A INPUT -p tcp -m tcp —dport 5900 -j ACCEPT-A INPUT -i eth0 -p udp -m multiport —ports 135,136,137,138,139,445 -j ACCEPT-A INPUT -i eth0 -p tcp -m multiport —ports 135,136,137,138,139,445 -j ACCEPT-A INPUT -s 192.168.100.0/24 -p udp -m udp —sport 123 —dport 123 -m state —state NEW -j ACCEPTCOMMIT# Completed on Sat May 10 14:22:05 2014

    Вот ifconfig

    eth0 Link encap:Ethernet HWaddr 00:15:17:12:21:2c

    inet addr:192.168.100.3 Bcast:192.168.100.255 Mask:255.255.254.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:8087263 errors:0 dropped:12223 overruns:0 frame:0 TX packets:8427180 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:941299779 (897.6 MiB) TX bytes:8220386452 (7.6 GiB) Interrupt:18 Memory:b8820000-b8840000

    eth1 Link encap:Ethernet HWaddr 00:15:17:12:21:2d

    inet addr:89.218.196.195 Bcast:89.218.196.207 Mask:255.255.255.240 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:6364370 errors:0 dropped:0 overruns:0 frame:0 TX packets:4872712 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:8002488559 (7.4 GiB) TX bytes:663066312 (632.3 MiB) Interrupt:19 Memory:b8800000-b8820000

    lo Link encap:Local Loopback

    inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:957 errors:0 dropped:0 overruns:0 frame:0 TX packets:957 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:52515 (51.2 KiB) TX bytes:52515 (51.2 KiB)Заранее спасибо

  60. Откуда опус этот скачали?

    Пишите правила сами. Те, которые нужны.

  61. Добрый день. Пробую настроить офисную сеть на Vmware Workstation 10. итого:

    1. Debian + nat + dhcp — должна раздавать ip адреса и работать как шлюз в интернет.2. Windows 8 — динамически получает ip адрес от dhcp (Debian) и должна выходить в интернет.На данный момент DHCP работает отлично, сам Debian выходит в интернет и пинги проходят на ya.ruНо вот Windows 8 получает ip но не может выходить в интернет — настройки Debian такие:/etc/resolv.conf # DNSdomain localdomainsearch localdomainnameserver 192.168.182.2nameserver 192.168.182.100nameserver 8.8.8.8/etc/rc.local # FIREWALLiptables -t nat -A POSTROUTING -0 eth0 -j MASQUERADEexit 0/etc/network/interfaces # ИНТЕРФЕСЫ: eth0 мир-инет, eth1 lan dhcpauto loiface lo inet loopbackauto eth0iface eth0 inet staticaddress 192.168.182.100netmask 255.255.255.0network 192.168.182.0broadcast 192.168.182.255gateway 192.168.182.2auto eth1iface eth1 inet staticaddress 192.168.109.7netmask 255.255.255.0network 192.168.109.0broadcast 192.168.109.255gateway 192.168.182.100/etc/dhcp/dhcpd.conf # DHCPauthoritative;option domain-name «honey.in.ua»;option domain-name-servers 192.168.182.2, 192.168.182.100, 8.8.8.8;default-lease-time 259200;max-lease-time 518400;Server-identifier 192.168.109.7;ddns-update-style none;log-facility local7;subnet 127.0.0.1 netmask 255.255.255.255 {}subnet 192.168.100.0 netmask 255.255.255.0 {}subnet 192.168.109.0 netmask 255.255.255.0 {option routers 192.168.182.100; # Шлюз по умолчаниюoption broadcast-address 192.168.109.255; # Широковещательный адресrange 192.168.109.20 192.168.109.50;}Windows 8 получает такие настройки для своей сетевой:ip: 192.168.109.20mask: 255.255.255.0gw: 192.168.182.100dhcp: 192.168.109.7dns: 192.168.182.2 , 192.168.182.100, 8.8.8.8Прошу помощи в настройке, что я где не так сделал.Вроде бы всё как в этой статье — но инет на Windows 8не проходит, а это значит что в Debian шлюз не работает.

    P/S я по ошибке постнул вопрос свой на первую часть по dhcp — можно его от туда удалить, а тут оставить?

  62. Нашёл трабл — iptables -t nat -A POSTROUTING -0 eth0 -j MASQUERADE должно быть -o а не -0 в этой строчке и всё инет стал бегать на Windows 8

  63. там и стоит буква о..

  64. Там 0 стоит а не буква о )))

  65. Влад:

    ctrl-f думает по-другому.

    Настройте себе шрифты =)

  66. «Ну и теперь нам нужно поправить файл /etc/rc.local»

    Зачем изобретать костыль? Нельзя всё сделать правильно? vpn подключение настроить как положено через /etc/network/interfaces, а правило для nat просто сохранить в iptables.

  67. Max:

    Так, НАТ настроен, пакеты бегают. А как теперь разделить канал поровну, скажем между 10-ю клиентами?

    Да так, чтобы динамически всё изменялось раз в 2 секунды (чтобы канал не пропадал зря)

  68. > Зачем изобретать костыль?

    Затем, чтобы статья была универсальной. Те, кто могут настроить своё подключение через /etc/network/interfaces — welcome. А отвечать 100500 раз «у вас pptp, оно в interfaces по другому настраивается, мой пример не подходит» — глупо.К тому же, rc.local — вполне себе штатное место, куда нужно вписывать то, что хочется запускать после старта машины.Всякие iptables-persistense — не то, чтобы меньшие костыли. Да ещё и нередко непонятные человеку новому.

  69. > А как теперь разделить канал поровну, скажем между 10-ю клиентами?

    Что-то в районе man tc читать нужно.http://linux.die.net/man/8/tc — но вообще про это лучше у NOC спросить.

  70. Доброго времени суток.

    Выручайте ребят.В общем на сервере стоит Ubuntu с 2 сетевыми картами:1) Карта 1 eth1 со статическим ip:192.168.10.200 — принимает интернет2) Карта 2 eth0 раздает через dhcp адреса (10.2.10.15+x), все успешно, все хорошо.Интернет ни в какую не хочет. Прописывал все по мануалу на компьютерах в локальной сети инернет не появился…что может быть нет так.Выручайте, спасибо.

  71. iptables-save покажи сюда

  72. *nat

    :PREROUTING ACCEPT [140:11487]:INPUT ACCEPT [38:6267]:OUTPUT ACCEPT [119:9877]:POSTROUTING ACCEPT [12:2038]-A POSTROUTING -o eth1 -j MASQUERADECOMMIT

  73. На машинах в локалке тазик шлюзом прописан, я надеюсь?

  74. На локальных машинах получение адресов автоматом прописано…и dns и ip…или я не так Вас понял?

  75. Шлюзом на локальных машинах что выдаётся?

  76. Шлюз выдает 10.2.10.1

  77. А этот адрес — это адрес сетевухи на шлюзе?

    forwarding в sysctl включен?

    И define «интернет не работает» — пинги вообще не ходят?

  78. Адрес сетевухи 10.2.10.10, пакеты гуляют хорошо.

  79. Или адрес сетевухи, должен быть шлюзом?

  80. > Шлюз выдает 10.2.10.1

    > Адрес сетевухи 10.2.10.10, пакеты гуляют хорошо.

    %)

  81. 😀 Смешно, понятное дело, но просто первый раз с этим столкнулся…От этого и вот так получается 🙂

  82. Поэтому как котенок слепой не могу врубиться, что да как…

  83. В общем настроил, все замечательно…правда вот по каким причинам не пойму, если выдает адрес dhcp — интернет пропадает, необходимо задавать ручками, тогда все хорошо, в чем может быть причина?

  84. В конфиге dhcpd gateway смените на правильный

  85. В общем все решил спасибо большое. Дело было в dns адресах прописанных в resolv.conf .

  86. София:

    День добрый. Такая проблема. Есть интернет на сервере, там реализован прокси, к серверу подключается 2 маршрутизатора, каждый со своей подсетью. На маршрутизаторах интернет появляется, а на клиентах никак не получается настроить) Хелп

  87. В jabber лучше.

    В общих чертах ответ — «нужно каждый из роутеров настроить так, как описано в посте». Но вообще это гадание на кофейной гуще, нужен или доступ или вся конфигурация и нормальное описание проблемы.

  88. Константин:

    Здравствуйте,

    Настроил себе интернет-шлюз на Debian. Поднял L2TP-клиент и пропустил траффик на другие компы с помощью Вашей статьи. Download-скорость на компьютере такая же, как и на шлюзе, а вот с Upload-скоростью непонятно. На компьютере через шлюз она вдвое меньше, чем в реальности. На самом шлюзе проверить ее никак не получается. Пробовал speedtest-cli, но он показывает совершенно далекие от реальности цифры. Локальная скорость между шлюзом и компьютером равняется пропускной способности канала. Что можете посоветовать в данной ситуации? Речь идет о разности в 200 мбит/c.

    Заранее спасибо!

  89. С нагрузкой на CPU на обоих железках что происходит?

  90. Константин:

    Нагрузка никая. На шлюзе 0.00, 0.03, 0.05, если смотреть через uptime.

  91. Константин:

    Проверил еще раз скорость через iperf на публичный сервер. Получается, что я ошибся и скорость Download-а также в два раза ниже на компьютере, чем на шлюзе.

    Посмотрел также загрузку процессора с помощью ps aux на шлюзе.root 2343 1.9 0.0 12592 892 pts/0 Ss+ Apr18 48:50 /usr/sbin/xl2tpdЕсть еще пару kworker-ов с 1.6%. Процессор стоит i7, поэтому проблем таких не ожидал. На компьютере тоже все тихо.

    ethtool и ifconfig залил сюда — http://pastebin.com/DNukm0Cr

    eth1 — интерфейс, который смотрит в локальную сеть, а он по сути и нужен, так как скорость на шлюзе соответствует заданной.Заметил dropped пакеты на интерфейсе.

  92. В общем, такие проблемы удаленно анализировать я не возьмусь. Там 100500 причин может быть на любом уровне.

  93. Константин:

    Если несложно, опишите хотя бы самые частые из проблем.

  94. Физика, xl2tp уперся в свою логику/не успевает шифровать трафик/накрутили бредовых правил в iptables/conntrack забился/свичи не успевают/меряете скорость по wifi.

  95. Константин:

    Физика. Передача файлов в локальной сети проходит на скорости 111 мбайт/c в обе стороны, что примерно 888 мбит/c, а значит отпадает.

    xl2tpd. Шлюз тянет данную скорость. Мерил нагрузку процессора несколькими командами. Везде нагрузка не превышает пары процентов. Когда происходит тест компьютера, шлюз полностью свободен. Получается это тоже отпадает.iptables. Мои правила: -A POSTROUTING -o ppp0 -j MASQUERADE и -A FORWARD -p tcp -m tcp —tcp-flags SYN,RST SYN -j TCPMSS —clamp-mss-to-pmtuconntrack. Его у меня вообще нет.Свитч. Также отпадает по причинам из физики.Wi-Fi. Компьютер подключен в неуправляемый гигабитный свитч, в который также воткнут шлюз.

  96. lsmod | grep conntrack

    что говорит?

    > Мерил нагрузку процессора несколькими командами.

    xl2tp может упереться не в cpu, а в свою логику.

  97. Константин:

    Вроде что-то нашел:

    nf_conntrack_ipv4 14078 3 nf_nat,iptable_natnf_defrag_ipv4 12483 1 nf_conntrack_ipv4nf_conntrack 52720 4 nf_conntrack_ipv4,nf_nat,iptable_nat,ipt_MASQUERADE

    Ну ведь, если упирается в логику, то это же должно где-то писаться в логи?

  98. Не должно.

    conntrack включен, кстати.

  99. Константин:

    Все равно не понимаю, каким боком тут xl2tpd, если скорость на самом шлюзе (wget) соответствует заявленной, а на компе нет.

    Не найду никак, как conntrack очистить.

    Спасибо за потраченное время.

  100. Да не за что

  101. Krafft:

    Привет. Уже неделю бьюсь с шлюзом, не могу почту пропустить может подскажиш где читать, в какую сторону копать? Выглядит это по моему как-то так (

    #!/bin/shiptables -Fiptables -t nat -Fiptables -A INPUT -i lo -j ACCEPTiptables -A FORWARD -i eth2 -o eth0 -j ACCEPT#

    MAIL=mail1.ru.com

    LOCALNET=192.168.10.0/24LOCALNET1=192.168.2.0/24#MAILiptables -A FORWARD -p tcp -s $LOCALNET -d $MAIL —dport 25 -j ACCEPTiptables -A FORWARD -p tcp -s $MAIL -d $LOCALNET —sport 25 -j ACCEPTiptables -A FORWARD -p tcp -s $LOCALNET -d $MAIL —dport 110 -j ACCEPTiptables -A FORWARD -p tcp -s $MAIL -d $LOCALNET —sport 110 -j ACCEPT#natiptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE#iptables -t nat -A POSTROUTING -o eth0 -s $LOCALNET1 -j MASQUERADE#iptables -t nat -A POSTROUTING -o eth0 -s $LOCALNET -j MASQUERADEiptables -t nat -A POSTROUTING -p tcp -s $LOCALNET —dport 110 -j MASQUERADEiptables -t nat -A POSTROUTING -p tcp -s $LOCALNET —dport 25 -j MASQUERADE) но из локалки бат не отправляет не принимает. почту. Нет главное везде есть да шлюз еще делит сеть на две логики через дшсп .

  102. А зачем вся эта конструкция, расскажи?

    А вообще, судя по всему, ты просто накопипастил что-то из рандомных мест. Предлагаю для начала понять, что делает каждая из строчек, потом наложить это на свою задачу, потом будет видно, где ошибка.

  103. Krafft:

    Все нашол скрипту вменяемую на понятном языке ка для меня мал правки и вуаляп

    делюсь не корысти раде#!/bin/sh# Закрываем изначально ВСЁ (т.е. изначально все что не разрешено — запрещено):#iptables -P INPUT DROP#iptables -P OUTPUT DROP#iptables -P FORWARD DROP# Состояние ESTABLISHED говорит о том, что это не первый пакет в соединении.# Пропускать все уже инициированные соединения, а также дочерние от нихiptables -A INPUT -p all -m state —state ESTABLISHED,RELATED -j ACCEPT# Пропускать новые, а так же уже инициированные и их дочерние соединенияiptables -A OUTPUT -p all -m state —state NEW,ESTABLISHED,RELATED -j ACCEPT# Разрешить форвардинг для новых, а так же уже инициированных и их дочерних соединенийiptables -A FORWARD -p all -m state —state NEW,ESTABLISHED,RELATED -j ACCEPT###iptables -P INPUT DROPiptables -P OUTPUT DROP####iptables -P FORWARD DROP

    ##*********************************************************************

    # Тут в принципе может и не надо этого всего но не помеха# вдруг какой модуль не подгружен или форвардинг не включен#echo «1″ > /proc/sys/net/ipv4/ip_forwardecho «1″ > /proc/sys/net/ipv4/ip_dynaddr#modprobe iptable_nat#modprobe ip_conntrack_ftp#modprobe ip_nat_ftp

    # Объявление переменных

    IPT=»iptables»

    # Интерфейс который смотрит в интернет

    WAN=eth0

    # Локальная сеть

    LAN=eth1LAN_IP_RANGE=192.168.10.0/24LAN_IP2_RANGE=192.168.2.0/24

    # Очистка всех цепочек iptables

    $IPT -F$IPT -F -t nat$IPT -F -t mangle$IPT -X$IPT -t nat -X$IPT -t mangle -X

    # Закрываем изначально ВСЁ (т.е. изначально все что не разрешено — запрещено):

    $IPT -P INPUT DROP$IPT -P OUTPUT DROP$IPT -P FORWARD DROP

    # разрешаем локальный траффик для loopback и внутренней сети

    $IPT -A INPUT -i lo -j ACCEPT$IPT -A INPUT -i $LAN -j ACCEPT$IPT -A OUTPUT -o lo -j ACCEPT$IPT -A OUTPUT -o $LAN -j ACCEPT

    # Состояние ESTABLISHED говорит о том, что это не первый пакет в соединении.

    # Пропускать все уже инициированные соединения, а также дочерние от них$IPT -A INPUT -p all -m state —state ESTABLISHED,RELATED -j ACCEPT# Пропускать новые, а так же уже инициированные и их дочерние соединения$IPT -A OUTPUT -p all -m state —state NEW,ESTABLISHED,RELATED -j ACCEPT# Разрешить форвардинг для новых, а так же уже инициированных# и их дочерних соединений$IPT -A FORWARD -p all -m state —state NEW,ESTABLISHED,RELATED -j ACCEPT

    # Включаем фрагментацию пакетов. Необходимо из за разных значений MTU

    $IPT -I FORWARD -p tcp —tcp-flags SYN,RST SYN -j TCPMSS —clamp-mss-to-pmtu

    # Отбрасывать все пакеты, которые не могут быть идентифицированы

    # и поэтому не могут иметь определенного статуса.$IPT -A INPUT -m state —state INVALID -j DROP$IPT -A FORWARD -m state —state INVALID -j DROP

    # Приводит к связыванию системных ресурсов, так что реальный

    # обмен данными становится не возможным.$IPT -A INPUT -p tcp ! —syn -m state —state NEW -j DROP$IPT -A OUTPUT -p tcp ! —syn -m state —state NEW -j DROP

    # Разрешаем доступ из внутренней сети наружу

    $IPT -A FORWARD -i $LAN -o $WAN -j ACCEPT

    # Запрещаем доступ снаружи во внутреннюю сеть

    $IPT -A FORWARD -i $WAN -o $LAN -j REJECT

    # Маскарадинг

    $IPT -t nat -A POSTROUTING -o $WAN -s $LAN_IP_RANGE -j MASQUERADE$IPT -t nat -A POSTROUTING -o $WAN -s $LAN_IP2_RANGE -j MASQUERADE

    # Далее дано как пример открытие портов извне:

    # **********************************************************************# Открываем порт для ssh#$IPT -A INPUT -i $WAN -p tcp —dport 22 -j ACCEPT

    # Открытие портов для торрентов (такие же указать в torrent-клиенте)

    #$IPT -A INPUT -i $WAN -p tcp -m multiport —ports 49152:65535 -j ACCEPT

    # Открытие 443 порта

    $IPT -A INPUT -p tcp —dport 443 -j ACCEPT

    # Открываем 80 порт для веб сайтов

    $IPT -A INPUT -i $WAN -p tcp —dport 80 -j ACCEPT$IPT -A INPUT -i $WAN -p udp —dport 80 -j ACCEPT

    # Открытие портов для игровых серверов

    $IPT -A INPUT -i $WAN -p tcp —dport 27010:27030 -j ACCEPT$IPT -A INPUT -i $WAN -p udp —dport 27010:27030 -j ACCEPT

    # Открытие порта для голосового сервера Team Speak

    $IPT -A INPUT -i $WAN -p tcp —dport 9987 -j ACCEPT$IPT -A INPUT -i $WAN -p udp —dport 9987 -j ACCEPT# Открываем почтовые порты$IPT -A INPUT -i $WAN -p tcp —dport 25 -j ACCEPT$IPT -A INPUT -i $WAN -p udp —dport 25 -j ACCEPT$IPT -A INPUT -i $WAN -p tcp —dport 110 -j ACCEPT$IPT -A INPUT -i $WAN -p udp —dport 110 -j ACCEPT# **********************************************************************

    #

    ##iptables -A INPUT -i lo -j ACCEPT#iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT#iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j MASQUERADE#iptables -t nat -A POSTROUTING -o eth0 -s 192.168.10.0/24 -j MASQUERADE#

Написать комментарий

Имя (обязательно)

Почта (скрыто) (обязательно)

Сайт

Notify me of followup comments via e-mail

Debian, nat. Раздаём интернет с debian. Шлюз на debian — часть 2.

Губарь Маргарита Александровна