Debian, nat

Ми вже налаштували в своїй мережі dhcp сервер.
Тепер саме час роздати інтернет комп'ютерів в нашій мережі. Домовимося, що eth0 у нас - зовнішній інтерфейс, через який наш шлюз отримує інет. eth1 - інтерфейс, яким шлюз дивиться в нашу мережу.






Якщо ваш сервер підключається до інету через pppoe - то eth0 слід замінити на ppp0. Ну і так далі.

Ну і застосуємо новий конфіг, щоб не перезавантажуватися:
root @ debian-gateway:

Як варіант - виконати команду (буде працювати тільки без перезавантаження):
root @ debian-gateway:

# Sysctl -w net.ipv4.ip_forward = "1"

Тепер розповімо нашого сервера, куди власне направляти трафік, який прилітає на наш сервер, як на шлюз (замість eth0 вкажіть той інтерфейс, яким шлюз дивиться в інет):
root @ debian-gateway:

# Iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Діагностика проблем. Проблеми тут можуть бути з двох причин. Перша - ви не налаштували sysctl. Повертаємося в початок мануала і перечитуємо. Друга - iptables. Щоб спробувати вирішити цю проблему - додайте iptables -F в файл /etc/rc.local першим рядком.
Якщо нічого не виходить - пишіть мені, допоможу.

Дякую за зауваження. Вписувати в статтю не буду, дійсно, але тут нехай обов'язково живе)

да видали dhcp, видалив файервод, сброчілс всіх правил iptables і запрацювало)
ще питання залишилося чи можна кілька правил нібито
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
?

@RomanS
Напишіть, що саме робили після «інтернет прямо на основному сервері налаштувати вдалося». В які порти що підключили, які налаштування де міняли.

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

Чи повинна спрацювати ця інструкція в моїй схемі? або є якісь особливості? машина з внутрішньої мережі (linux crunch) говорить по англицкий про недоступність МЕРЕЖІ, а якщо вимкнути вимкнути шлюз то недоступність УЗЛА.

Далі міркувати без конкретики немає сенсу. Давайте ifconfig, ip ro sh, пінг, Трейсі з усіх хостів, якщо не розберетеся.


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 в мережу. чому пакети не ходять не зрозумію. на шлюзі інет є

Добре. Вказав я це. після того як застосував правила в айпітаблес, інтернет працювати перестав. підкажіть з правилами? ось конфиг
#! / 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

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)
Заздалегідь дякую

Звідки опус цей скачали?
Пишіть правила самі. Ті, які потрібні.

P / S я помилково постнул питання свій на першу частину по dhcp - можна його звідти видалити, а тут залишити?

Перевірив ще раз швидкість через 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, тому проблем таких не очікував. На комп'ютері теж все тихо.

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

# Інтерфейс який дивиться в інтернет
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
#







Схожі статті