Linux за българи: Форуми

Linux секция за начинаещи => Настройка на програми => Темата е започната от: versicolor в Aug 12, 2005, 18:13



Титла: Игра с IPTABLES
Публикувано от: versicolor в Aug 12, 2005, 18:13
Исках да пусна нет на един компютър в моя подмрежа и написах това :

iptables -t nat -A POSTROUTING -o eth0 -s 10.1.0.5 -j SNAT --to 192.168.0.2

То хубаво обаче обърках ип адресите :
10.1.0.5  ми е адреса на външната мрежа с нета
192.168.0.2 ми е вътрешната мрежа

Та усетих се какво съм направил и написах вярното нещо :

iptables -t nat -A POSTROUTING -o eth0 -s 192.168.02  -j SNAT --to 10.1.0.5

При което и него го прие , но нямам вече никакъв интернет  ??? Те предполагам че съм направил голямо мазало с пакетите. Как мога да го оправя ?
Мерси предварително


Титла: Игра с IPTABLES
Публикувано от: Soulstealer в Aug 12, 2005, 18:24
Ами просто flush-ни iptables и на ново:
iptables -t nat -F
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to 10.1.0.5


Титла: Игра с IPTABLES
Публикувано от: versicolor в Aug 12, 2005, 19:02
Мерси , стана :)
Поне пак имам нет .
Но на клиентската машина няма.  ???  Какви трябва да са настройките на нея ?


Титла: Игра с IPTABLES
Публикувано от: Soulstealer в Aug 12, 2005, 19:35
На клиентската машина трябва да има следното (ако си написал това което ти дадох за пример)
IP (което и да е между 192.168.0.2 и 192.168.0.254)
netmask 255.255.255.0
GW 192.168.0.1 (ако това е IP-то на вътрешният ти interface)
DNS който си искаш (работещ и "отворен за света") или 192.168.0.1 ако имаш bind конфигуриран на твоята машина
и да не забравиш единичката в ip_forward :)
echo 1 > /proc/sys/net/ipv4/ip_forward


Титла: Игра с IPTABLES
Публикувано от: elmo в Aug 12, 2005, 21:27
Ако пак не стане пробвай така:
iptables -P FORWARD ACCEPT
iptables -t nat -F
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24  -j MASQUERADE

И както ти отговори Soulstealer за настройките на клиента

ps.  
echo 1 > /proc/sys/net/ipv4/ip_forward  се пуска на сървъра

Успех :)


Титла: Игра с IPTABLES
Публикувано от: Knopper в Aug 12, 2005, 22:17
По-добре да се редактира файлът /etc/sysctl.conf, така че да има ред:

net.ipv4.ip_forward = 1.

След което просто #syctl -p.


Титла: Игра с IPTABLES
Публикувано от: zeridon в Aug 13, 2005, 13:47
Цитат (Soulstealer @ Авг. 12 2005,18:24)
Ами просто flush-ни iptables и на ново:
iptables -t nat -F
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to 10.1.0.5

Добре ясно нет ...
правило в пострутинга ама защо е този SNAT искаш да му форварднеш всичките портове или какво?

По принцип се прави с просто маскиране ( j MASQUERADE)


Титла: Игра с IPTABLES
Публикувано от: versicolor в Aug 13, 2005, 22:38
Цитат (elmo @ Авг. 12 2005,22:27)
Ако пак не стане пробвай така:
iptables -P FORWARD ACCEPT
iptables -t nat -F
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24  -j MASQUERADE

И както ти отговори Soulstealer за настройките на клиента

ps.  
echo 1 > /proc/sys/net/ipv4/ip_forward  се пуска на сървъра

Успех :)

Стана точно по този начин  :)  Мерси много
А дали мога да направя рутер от пентиум 100 32 едо рам и смятам да му сложа 4.3гб SCSI  7200rpm  със нормална линукс дистрибуция ? И дали ще тръгне някои Х ?  :p


Титла: Игра с IPTABLES
Публикувано от: Knopper в Aug 14, 2005, 16:27
По въпроса относно разликата между политиката SNAT и MASQUERADE. По принцип няма проблем да се използва винаги MASQUERADE, но ако имаш статичен IP адрес е по-добре да се ползва SNAT --to-source 1.2.3.4, където 1.2.3.4 е примерният статичен IP адрес. При динамичен обаче използвай MASQUERADE.

А иначе машина с такива параметри е достатъчно квалифицирана за рутер. :) Вероятно и Х ще работи, но не особено задоволително.


Титла: Игра с IPTABLES
Публикувано от: versicolor в Aug 22, 2005, 21:17
Искам да питам и как след рестарт пак да важат тези рутиращи правила ?


Титла: Игра с IPTABLES
Публикувано от: chatter в Aug 25, 2005, 10:05
Зависи с каква дистрибуция си? По принцип виж дали имаш /etc/rc.d/rc.local или /etc/rc.local ,ако си с Дебиан или подобна дисто на Дебиан ще бъде в /etc/rc.boot/autoexec