TLDR — для debian 10+ не актуально.
Мы уже настроили в своей сети 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
первой строчкой.
Если ничего не получается — пишите мне, помогу.
На 1 пк стоит дебиан с настроенным интернетом (pptp) и настроенным iptables по вашему мануалу
На 2 пк семерка работает только скайп и ничего больше)
хотя и пишет в свойствах подключение ИНТЕРНЕТ уже и не знаю че делать…
Заранее спасибо
Попробуйте
iptables -I FORWARD -p tcp —tcp-flags SYN,RST SYN -m tcpmss —mss 1400:1500 -j TCPMSS —clamp-mss-to-pmtu -o $IFACE
Вставил строчку в /etc/rc.local но увф все по прежнему(
iface какой указывал, вставил ли строчку после того, как поднимается NAT, учел ли, что /etc/rc.local отрабатывает только при ребуте?
Стучись в общем в Jabber, будем диагностировать что именно не работает.
Спасибо, все работает! Но. Вместо sysctl -w надо прописывать sysctl -p . Долго удивлялся в чем проблема пока не нашел как проверить включен ли ипв4.айпи_форвардинг командой sysctl -a | grep forward . Сейчас буду dns делать.
все сам разобрался) оасталось тока с wifi помучиться
Чего было то? добавлю в мануал.
Поправил, про dns — поищите dnsmasq в поиске, я писал про него.
Спасибо. Кстати, ваша статья уже хорошо просматривается через гугл (так и попал на нее). Очень простая и дельная статья в отличие от большинства встречающегося бреда, который пугает неуверенностью в нем и громоздкостью.
Еще добавлю, что мой провайдер использует статические, а не динамические адреса, поэтому вместо «… MASQUERADE» я прописывал «… SNAT —to-source 1.2.3.4», где 1.2.3.4 — адрес сервера провайдера, его айпи постоянный, поэтому не обязательно каждый раз его определять. Впрочем, это не суть важно, не думаю что это как-то повлияет на производительность, и даже думаю это не стоит добавлять в статью, т.к. ухучшит читаемость.
Спасибо за замечание. Вписывать в статью не буду, действительно, но тут пусть обязательно живет)
да удали dhcp, удалил файервод, сброчилс все правила iptables и заработало)
еще вопрос остался можно ли несколько правил типо
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
?
Сделал все по выше описанному, но не хочет сервер раздавать инет на локальные машины (16 компьютеров, dhcp не устанавливал, т.к. мне нужны статические IP адреса). Максимально, чего я добился, так это работоспособность ICQ, а дальше ни в какую не хочет. При попытке что-либо изменить, вообще ничего не работает.
dns проверь, с клиента nslookup yandex.ru
dns проверь, с клиента nslookup yandex.ru. Также проверь на сервере
dns я прописывал во время установки debian (dns провайдера). Самое интересное, что на одной машине, которая сейчас раздает инет — все нормально, быстро получилось настроить и работает. А вот на второй — никак (хочу сменить серверную машину).
Помогло пока не помогли вот тут
http://linuxforum.ru/viewtopic.php?id=13140
# включаем nat:
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
Появляется интернет. на семерке пишет что в интернете. работает только скайп,яндекс,и сайт провайдера.
хотя со шлюза все сайты пингуются нормально. в чем проблема?
В MTU, скорее всего.
можно поточнее
че делать то?
iptables -I FORWARD -p tcp —tcp-flags SYN,RST SYN -j TCPMSS —clamp-mss-to-pmtu
как-то так примерно.
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.
http://hastebin.com/kuhofanofe.hs
Никогда ничего не копируйте бездумно.
ну наконецто) спасибо)!!! скорость 70/70мб ее)
Не за чт
# дефолтная строчка, её удалять нельзя:
exit 0
Можно!
Хым. Вообще да, уже можно. legacy старое.
как раз таки -w нужно в
»
Как вариант — выполнить команду (будет работать только без перезагрузки):
root@debian-gateway:~# sysctl -p net.ipv4.ip_forward=»1″
«
Подскажите, если мне нужно форвардинг портов сделать это все тоже прописывать в /etc/rc.local (как у меня сейчас) или можно все это засунуть в какой-нить файл, а в /etc/rc.local прописать путь к файлу и заведется? Если так возможно, какой должен быть формат файла, какие права на него?
В sh-скрипт это вполне себе запихать можно.
Как то так:
sudo editor /usr/bin/blah.sh
sudo chmod +x /usr/bin/blah.sh
И /usr/bin/blah.sh пишите в rc.local.
В шапке sh-скрипта должен быть шабанг. Для баша — #/bin/bash.
господа хорошие, поясните, пожалуйста, как правильно настроить раздачу…
ПРобывал данным методом и не выходит…
что сейчас: Кабель от провайдера идет к роутеру (wl500Pv2) а с него на 2 сервера, на одном видеозапись, на 2м(основном) работает сайт и несколько серверов…В основном сервере стоит 2 сетевые и debian 6…
что хочу: интернет от провайдера подключался к основному серверу, тот брал на свои нужды и раздавал остаток на роутер, а тот в свою очереднь отдавал на 2й сервер и несколько компьютеров…
интернет напрямую на основном сервере настроить удалось…подключение к 2й сетевой проверял с помощь роутера…пинговалось и заходило на ип открывая дефолтную статическую страничку вебинтерфейса с сайта осного сервера, но интернет не работает…скорее всего это из-за того, что на основном сервере поднят вебхостинг и 80 порт перекрыт…
подскажите,пожалуйста, как быть. Просто роутер клеит ласты при большем количестве подключений…сначала перестает отдавать на wifi, потом страдает lan
@RomanS
Напишите, что конкретно делали после «интернет напрямую на основном сервере настроить удалось». В какие порты что подключили, какие настройки где меняли.
Ув.Товарищ инквизитор, у меня следующая схема: в eth1 шлюза (192,168,10,254) от vdsl модема(192.168.10.253) переведенного в режим бридж воткнут кабель, на шлюзе поднял pppoe соединение, прошелся по инструкции на этой странице инет есть только на шлюзе.
Уточните пожалуйста как все должно выглядеть (и поправьте меня если я не прав)
модем 192,168,10,253
шлюз 192,168,10,254 eth1
eth0 которая воткнута в коммутатор общей сети не присвоен вообще айпи, но сеть работает его из локалки видно и он видит, и если этот интерфейс вытащить, то пинг пропадает.
Должна ли сработать эта инструкция в моей схеме? или есть какието особенности? машина из внутренней сети (linux crunch) говорит по англицки про недоступность СЕТИ, а если выключить выключить шлюз то недоступность УЗЛА.
Настройте сначала внутреннюю сеть. Там вы сами вольны делать что угодно, главное, чтобы у всех хостов внутри сети появился доступ по L2 к eth0 сервера (т.е., адрес eth0 сервера и ip-адреса всех хостов внутри сети должны входить в одну подсеть).
Инструкция актуальна, раздавать через MASQUERADE вам нужно интерфейс ppp0 (или какой у вас там поднимается), а не eth1.
Адрес eth0 сервера на всех хостах внутри сети должнен быть прописан в качестве default gateway.
Дальше рассуждать без конкретики бессмысленно. Давайте ifconfig, ip ro sh, пинги, трейсы со всех хостов, если не разберетесь.
Не разобрался, вчера, опять. Жаль не проверил ваш ответ, вчера вечером. Сегодня вечером доберусь до объекта «стрительства», выложу вам все конфиги. Спасибо.
inkvizitor68sl, возьметесь ли Вы за удаленную настройку через TeamViewer с благодарностью через wm?
> inkvizitor68sl, возьметесь ли Вы за удаленную настройку через TeamViewer с благодарностью через wm?
Кидайте подробности в почту (root@vlad.pro) — там видно будет.
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#
у юзера 192,168,10,254 как шлюз прописан, на шлюзе eth1 смотрит в инет eth0 в сеть. почему пакеты не ходят не пойму. на шлюзе инет есть
ДОрогой товарищ, инквизитор, спасибо. Я перечитал внимательно ваш коммент и нашел свою ошибку (в том, что указывал на раздачу через маскарадинг не тот интерфейс. Сеть работает.) еще раз спасибо. Linux way — true way
и еще, затрите пожалуйста мой коммент с конфигом, я по тупости и поспешности показал айпи, спасибо.
Стер адрес внешний.
Не за что. Удачи)
Скажите мне обязательно писать строчки
# если используется pppoe (в другом случае эта строчка не нужна):
pon your-ppp-name
# включаем nat:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# дефолтная строчка, её удалять нельзя:
exit 0
Использую PPPOE. и если вписывать. то интерфейс мне указывать тот на котором весит модем или же тот с которого интернет раздается уже пользователям?
> Теперь расскажем нашему серверу, куда собственно направлять трафик, который прилетает на наш сервер, как на шлюз (вместо eth0 укажите тот интерфейс, которым шлюз смотрит в инет):
Хорошо. Указал я это. после того как применил правила в айпитаблес, интернет работать перестал. подскажите с правилами? Вот конфиг
#!/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 ACCEPT
iptables -P OUTPUT ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t mangle -P PREROUTING ACCEPT
iptables -t mangle -P OUTPUT ACCEPT
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -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 MASQUERADE
iptables -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 103
iptables -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 106
iptables -t nat -A POSTROUTING -s 10.10.10.4 -o ppp0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.10.10.5 -o ppp0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.10.10.6 -o ppp0 -j MASQUERADE
iptables -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 101
iptables -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 102
iptables -t nat -A POSTROUTING -s 10.10.10.9 -o ppp0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.10.10.11 -o ppp0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.10.10.12 -o ppp0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.10.10.13 -o ppp0 -j MASQUERADE
Долго-долго силился понеять, что вы сделать пытаетесь.
Так и не понял смысла во всей писанине. Расскажите, зачем всё это?
уже все решил. Правила немного изменил
Ооок.. О_о
Доброго времени суток.
А у меня ругнулся вот так:
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
Но ошибка повторилась.
Не подскажите в чем может быть проблема?!
Что за ядро то?
Debain 6, если вы про это..
Мхм. Версию ядра смотрите командой uname -a
Ну и сразу
dpkg -l | grep " linux-"
покажите.Не в виртуалке делаете всё это, случаем?
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)
Да, на виртуалке, доступа к управлению ядром нет.
У вас 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 использовать.
Ок, спасиб. =)
Не за чт.
настроил раздачу с адсл-модема, все ок, но не могу настроить доступ к странице настройки модема, как это сделать? модем в режиме моста: 192.168.1.1, pppoe на шлюзе пдключается, 3 сетевых на нем для локальных компов. инет есть, все хосты на шлюзе пингуются, а вот на локальных — все кроме 192.168.1.1. Чувствую надо маршрут прописать, но не пойму какой.
ip ro add 192.168.1.1 via dev
Вы их скорее всего загнали все в 192.168.1.*
Если они всё же в разных подсетях C — то на шлюзе нужно что-то в духе:
iptables -t nat -A POSTROUTING -o ethX-j MASQUERADE
где ethX — сетевой интерфейс, к которому модем подключен.
iptables -t nat -A POSTROUTING -o ppo0 -j MASQUERADE — для инета такое есть. Да, подсети на сетевых такие: 192.168.10.0/24, 192.168.20.0/24 и 192.168.30.0/24
Добавил iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE и все заработало. Спасибо, Влад.
Не за что
Здравствуйте можете проверить мой 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 MASQUERADE
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
*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 ACCEPT
COMMIT
# 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)
Заранее спасибо
Откуда опус этот скачали?
Пишите правила сами. Те, которые нужны.
Добрый день. Пробую настроить офисную сеть на 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 # DNS
domain localdomain
search localdomain
nameserver 192.168.182.2
nameserver 192.168.182.100
nameserver 8.8.8.8
/etc/rc.local # FIREWALL
iptables -t nat -A POSTROUTING -0 eth0 -j MASQUERADE
exit 0
/etc/network/interfaces # ИНТЕРФЕСЫ: eth0 мир-инет, eth1 lan dhcp
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.182.100
netmask 255.255.255.0
network 192.168.182.0
broadcast 192.168.182.255
gateway 192.168.182.2
auto eth1
iface eth1 inet static
address 192.168.109.7
netmask 255.255.255.0
network 192.168.109.0
broadcast 192.168.109.255
gateway 192.168.182.100
/etc/dhcp/dhcpd.conf # DHCP
authoritative;
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.20
mask: 255.255.255.0
gw: 192.168.182.100
dhcp: 192.168.109.7
dns: 192.168.182.2 , 192.168.182.100, 8.8.8.8
Прошу помощи в настройке, что я где не так сделал.
Вроде бы всё как в этой статье — но инет на Windows 8
не проходит, а это значит что в Debian шлюз не работает.
P/S я по ошибке постнул вопрос свой на первую часть по dhcp — можно его от туда удалить, а тут оставить?
Нашёл трабл — iptables -t nat -A POSTROUTING -0 eth0 -j MASQUERADE должно быть -o а не -0 в этой строчке и всё инет стал бегать на Windows 8
там и стоит буква о..
Там 0 стоит а не буква о )))
ctrl-f думает по-другому.
Настройте себе шрифты =)
«Ну и теперь нам нужно поправить файл /etc/rc.local»
Зачем изобретать костыль? Нельзя всё сделать правильно? vpn подключение настроить как положено через /etc/network/interfaces, а правило для nat просто сохранить в iptables.
Так, НАТ настроен, пакеты бегают. А как теперь разделить канал поровну, скажем между 10-ю клиентами?
Да так, чтобы динамически всё изменялось раз в 2 секунды (чтобы канал не пропадал зря)
> Зачем изобретать костыль?
Затем, чтобы статья была универсальной. Те, кто могут настроить своё подключение через /etc/network/interfaces — welcome. А отвечать 100500 раз «у вас pptp, оно в interfaces по другому настраивается, мой пример не подходит» — глупо.
К тому же, rc.local — вполне себе штатное место, куда нужно вписывать то, что хочется запускать после старта машины.
Всякие iptables-persistense — не то, чтобы меньшие костыли. Да ещё и нередко непонятные человеку новому.
> А как теперь разделить канал поровну, скажем между 10-ю клиентами?
Что-то в районе man tc читать нужно.
http://linux.die.net/man/8/tc — но вообще про это лучше у NOC спросить.
Доброго времени суток.
Выручайте ребят.
В общем на сервере стоит Ubuntu с 2 сетевыми картами:
1) Карта 1 eth1 со статическим ip:192.168.10.200 — принимает интернет
2) Карта 2 eth0 раздает через dhcp адреса (10.2.10.15+x), все успешно, все хорошо.
Интернет ни в какую не хочет. Прописывал все по мануалу на компьютерах в локальной сети инернет не появился…что может быть нет так.
Выручайте, спасибо.
iptables-save покажи сюда
*nat
:PREROUTING ACCEPT [140:11487]
:INPUT ACCEPT [38:6267]
:OUTPUT ACCEPT [119:9877]
:POSTROUTING ACCEPT [12:2038]
-A POSTROUTING -o eth1 -j MASQUERADE
COMMIT
На машинах в локалке тазик шлюзом прописан, я надеюсь?
На локальных машинах получение адресов автоматом прописано…и dns и ip…или я не так Вас понял?
Шлюзом на локальных машинах что выдаётся?
Шлюз выдает 10.2.10.1
А этот адрес — это адрес сетевухи на шлюзе?
forwarding в sysctl включен?
И define «интернет не работает» — пинги вообще не ходят?
Адрес сетевухи 10.2.10.10, пакеты гуляют хорошо.
Или адрес сетевухи, должен быть шлюзом?
> Шлюз выдает 10.2.10.1
> Адрес сетевухи 10.2.10.10, пакеты гуляют хорошо.
%)
:-D Смешно, понятное дело, но просто первый раз с этим столкнулся…От этого и вот так получается :-)
Поэтому как котенок слепой не могу врубиться, что да как…
В общем настроил, все замечательно…правда вот по каким причинам не пойму, если выдает адрес dhcp — интернет пропадает, необходимо задавать ручками, тогда все хорошо, в чем может быть причина?
В конфиге dhcpd gateway смените на правильный
В общем все решил спасибо большое. Дело было в dns адресах прописанных в resolv.conf .
День добрый. Такая проблема. Есть интернет на сервере, там реализован прокси, к серверу подключается 2 маршрутизатора, каждый со своей подсетью. На маршрутизаторах интернет появляется, а на клиентах никак не получается настроить) Хелп
В jabber лучше.
В общих чертах ответ — «нужно каждый из роутеров настроить так, как описано в посте». Но вообще это гадание на кофейной гуще, нужен или доступ или вся конфигурация и нормальное описание проблемы.
Здравствуйте,
Настроил себе интернет-шлюз на Debian. Поднял L2TP-клиент и пропустил траффик на другие компы с помощью Вашей статьи. Download-скорость на компьютере такая же, как и на шлюзе, а вот с Upload-скоростью непонятно. На компьютере через шлюз она вдвое меньше, чем в реальности. На самом шлюзе проверить ее никак не получается. Пробовал speedtest-cli, но он показывает совершенно далекие от реальности цифры. Локальная скорость между шлюзом и компьютером равняется пропускной способности канала. Что можете посоветовать в данной ситуации? Речь идет о разности в 200 мбит/c.
Заранее спасибо!
С нагрузкой на CPU на обоих железках что происходит?
Нагрузка никая. На шлюзе 0.00, 0.03, 0.05, если смотреть через uptime.
Проверил еще раз скорость через 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 пакеты на интерфейсе.
В общем, такие проблемы удаленно анализировать я не возьмусь. Там 100500 причин может быть на любом уровне.
Если несложно, опишите хотя бы самые частые из проблем.
Физика, xl2tp уперся в свою логику/не успевает шифровать трафик/накрутили бредовых правил в iptables/conntrack забился/свичи не успевают/меряете скорость по wifi.
Физика. Передача файлов в локальной сети проходит на скорости 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-pmtu
conntrack. Его у меня вообще нет.
Свитч. Также отпадает по причинам из физики.
Wi-Fi. Компьютер подключен в неуправляемый гигабитный свитч, в который также воткнут шлюз.
lsmod | grep conntrack
что говорит?
> Мерил нагрузку процессора несколькими командами.
xl2tp может упереться не в cpu, а в свою логику.
Вроде что-то нашел:
nf_conntrack_ipv4 14078 3 nf_nat,iptable_nat
nf_defrag_ipv4 12483 1 nf_conntrack_ipv4
nf_conntrack 52720 4 nf_conntrack_ipv4,nf_nat,iptable_nat,ipt_MASQUERADE
Ну ведь, если упирается в логику, то это же должно где-то писаться в логи?
Не должно.
conntrack включен, кстати.
Все равно не понимаю, каким боком тут xl2tpd, если скорость на самом шлюзе (wget) соответствует заявленной, а на компе нет.
Не найду никак, как conntrack очистить.
Спасибо за потраченное время.
Да не за что
Привет. Уже неделю бьюсь с шлюзом, не могу почту пропустить может подскажиш где читать, в какую сторону копать? Выглядит это по моему как-то так (
#!/bin/sh
iptables -F
iptables -t nat -F
iptables -A INPUT -i lo -j ACCEPT
iptables -A FORWARD -i eth2 -o eth0 -j ACCEPT
#
MAIL=mail1.ru.com
LOCALNET=192.168.10.0/24
LOCALNET1=192.168.2.0/24
#MAIL
iptables -A FORWARD -p tcp -s $LOCALNET -d $MAIL —dport 25 -j ACCEPT
iptables -A FORWARD -p tcp -s $MAIL -d $LOCALNET —sport 25 -j ACCEPT
iptables -A FORWARD -p tcp -s $LOCALNET -d $MAIL —dport 110 -j ACCEPT
iptables -A FORWARD -p tcp -s $MAIL -d $LOCALNET —sport 110 -j ACCEPT
#nat
iptables -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 MASQUERADE
iptables -t nat -A POSTROUTING -p tcp -s $LOCALNET —dport 110 -j MASQUERADE
iptables -t nat -A POSTROUTING -p tcp -s $LOCALNET —dport 25 -j MASQUERADE
) но из локалки бат не отправляет не принимает. почту. Нет главное везде есть да шлюз еще делит сеть на две логики через дшсп .
А зачем вся эта конструкция, расскажи?
А вообще, судя по всему, ты просто накопипастил что-то из рандомных мест. Предлагаю для начала понять, что делает каждая из строчек, потом наложить это на свою задачу, потом будет видно, где ошибка.
Все нашол скрипту вменяемую на понятном языке ка для меня мал правки и вуаляп
делюсь не корысти раде
#!/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 DROP
iptables -P OUTPUT DROP
####
iptables -P FORWARD DROP
##*********************************************************************
# Тут в принципе может и не надо этого всего но не помеха
# вдруг какой модуль не подгружен или форвардинг не включен
#echo «1» > /proc/sys/net/ipv4/ip_forward
echo «1» > /proc/sys/net/ipv4/ip_dynaddr
#modprobe iptable_nat
#modprobe ip_conntrack_ftp
#modprobe ip_nat_ftp
# Объявление переменных
IPT=»iptables»
# Интерфейс который смотрит в интернет
WAN=eth0
# Локальная сеть
LAN=eth1
LAN_IP_RANGE=192.168.10.0/24
LAN_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
#
есть кабельный ввод интернета (оптоволоконка от провайдера) на этаж с кучей комнат. Стоит задача раздать интернет между комнатами, но чтоб в каждой комнате была своя подсеть. Как лучше реализовать?
Зависит от того, что в наличии есть.
Свичи с поддержкой вланов есть?
в наличии обычные свичи и комп с установленным Debian 7
Тогда большого смысла в делении на подсети нет, всё равно любая машина сможет получить адрес из любой сети.
а вот у меня дебиан 9, настройки как в статье, на сервере и-нет есть, а клиент не хочет получать и-нет, хотя в nethogs видно его ip.
примерно как работает сеть:
интернет
|
маршрутизатор раздающий готовый интернет
|
сервер debian 9
|
активный коммутатор
|
пассивный коммутатор
|
клиент win7
если из цепочки убрать сервер, то всё работает без косяков. На клиенте win7 прописан шлюз на сервер. При том что прописан шлюз, без сервера в цепочке интернет всё равно есть.
На всякий случай: сервер нужен просто мониторить трафик. Вместо маршрутизатора вставлять не хочется, всё настроено, и хотелось бы так же безболезненно его потом извлечь из цепочки, при необходимости. Нужно чтоб он просто пропускал через себя всё что есть, но это было видно.
В почту скидывай все конфиги и адресацию. Цепочка ни о чём не говорит.
И проверь, что по ману именно всё сделал.
Приветствую, сделал все по мануалу. DHCP отрабатывает и даёт IP. Маршрутизация не работает, etc/rc.local нет такого файла (Debian 10. Создал файл сам воткнул и не помогло. Куда капать ?
Для десятки мануал вообще не подойдет, емнип.
Вместо rc.local можно использовать @reboot в кроне или oneshot-unit в systemd
Значит настало время обновить мануал
Всё может быть.
во многих источниках пишут что необходимо применить команду
up route add -net 192.168.10.0/24 gw 192.168.10.1 eth0 (пример из https://itproffi.ru/nastrojka-setevoj-marshrutizatsii-linux-komanda-route/)
но я не понимаю, чем она отличается от прямого указания шлюза при описании сетевки «gateway»
в моем случае 192.168.1.50 смотрит в инет
192.168.2.1 смотрит в локалку
для меня было логично для локальной сетевки указать gateway 192.168.1.50
но не тут то было, интерфейс отказался перезагружаться с ошибкой
и еще одно обстоятельство которое взрывает мой мозг: с компа который подсоединен к локалке пингуются обе сетевки.
Еще правда есть проблема, что днс у меня не робит на локальную сетевку