Linux.org.ua

Технічні питання => Адміністрування => Гілку створено: Toshik від 2005-02-14 14:29:18

Тема: Ще трохи про мережу
Автор: Toshik від 2005-02-14 14:29:18
Отже, у наявності у нас є комп'ютер (К1) з завантаженою Лінакс та сервером VPN (pptpd) та віндові клієнти, які мають під'єднуватися до цього сервера через VPN-канал (припустимо К2).
К1 під'єднаний до локальної мережі у якій знаходиться К2 і інші. Тільки на К1 видається інтернет за допомогою того самого мережевого інтерфейсу (eth0). Як заставити К1 пропускати пакети від К2 в інтернет? Форвардинг пакетів я включив. Може не правильно налаштував файрвол? Підкажіть!!!
Тема: Re: Ще трохи про мережу
Автор: Євгеній Мещеряков від 2005-02-14 18:13:01
Можливо це допоможе:
iptables -A POSTROUTING -o eth0 -j MASQUERADE
Тема: Re: Ще трохи про мережу
Автор: Андрій Головинський від 2005-02-14 18:26:47
Здається, пане, ви щось наплутали. Чи на етапі побудови, чи коли формулюєте питання.

Бо постає питання: навіщо робити VPN канал між двома машинами, що знаходяться в одній мережі? Вони чудово можуть обмінюватись даними стандартними засобами TCP/IP. Якщо ж одна з них (К1) ще й має доступ до інтернету, а хочеться мати доступ і на другій (К2), то з К1 робиться так званий шлюз (gateway)( +Forwarding, +Masquerading), а на К2 прописується, що шлюзом є К1. І все, ніяких VPN. І немає значення що до якого інтерфейсу приєднано.
Тема: Re: Ще трохи про мережу
Автор: Toshik від 2005-02-15 10:25:43
Та ні, я нічого не наплутав. Просто я постійно експерементую і таким чином вчуся. Для експериментів в мене є декілька комп'ютерів з'єднаних між собою мережею. І на цей раз я дійсно хочу пустити К2 в інтернет за допомогою VPN.
Тема: Re: Ще трохи про мережу
Автор: Андрій Головинський від 2005-02-15 14:21:34
Ну, тоді зрозуміло. Але все рівно, варто підходити до проблеми більш структуровано.
1. Налаштування роутера
2. VPN

Ось мій код rc.firewall

#!/bin/bash

IPT=/usr/sbin/iptables

MY_NET=192.168.1.0/24

#Set up policy:
$IPT -P INPUT DROP
$IPT -P OUTPUT ACCEPT
$IPT -P FORWARD DROP

# Add new chain for ppp:
$IPT -N ppp-in

#Setting rules

$IPT -A FORWARD -s $MY_NET -j ACCEPT
$IPT -t nat -A POSTROUTING -s $MY_NET -j MASQUERADE
$IPT -A INPUT -i eth0 -s $MY_NET -j ACCEPT

$IPT -A INPUT -i lo -j ACCEPT
$IPT -A INPUT -i ppp0 -j ppp-in

$IPT -A INPUT -i eth1 -j ACCEPT

$IPT -A ppp-in -s $MY_NET -j DROP


# DNS
$IPT -A ppp-in -p TCP -s 0/0 --destination-port 53 -j ACCEPT
$IPT -A ppp-in -p UDP -s 0/0 --destination-port 53 -j ACCEPT
$IPT -A INPUT -p UDP -d 0/0 --destination-port 1025: -j ACCEPT

$IPT -A ppp-in -p TCP ! --syn -j ACCEPT

#Done
echo Firewall is Up now!
exit


Виберіть потрібне
Тема: Re: Ще трохи про мережу
Автор: VojToshik від 2005-02-16 10:25:22
дуже дякую  :)
Тема: Re: Ще трохи про мережу
Автор: VojToshik від 2005-02-16 16:24:03
УРА!!! Вдалося! Все виявилося простіше чим я думав. Кому цікаво, ось як я це зробив:
#iptables -P INPUT ACCEPT
#iptables -P FORWARD ACCEPT
#iptables -P OUTPUT ACCEPT

#iptables -t nat -A POSTROUTING -s $MY_NET -j MASQUERADE
#iptables -A FORWARD -s $MY_NET -i ! ppp0 -j DROP

Хто бачить якісь проколи - кажіть.
Тема: Re: Ще трохи про мережу
Автор: Андрій Головинський від 2005-02-16 17:13:58
Ну і добре. Роутер налаштовано. Правда, строку

iptables -A FORWARD -s $MY_NET -i ! ppp0 -j DROP

можна і прибрати, особливої безпеки вона не забезпечить.

Тема: Re: Ще трохи про мережу
Автор: VojToshik від 2005-02-17 10:15:51
Чому прибрати? Якщо цього рядка не стане, то форварду будуть підлягати пакети, що прийшли не тільки через VPN, а й просто на мережевий інтерфейс (наприклад, якщо комп'ютер вказаний як шлюз). Можливо, я щось не правильно зрозумів?

І ще питання: чи можна відкрити форвардинг пакетів усім VPN-інтерфейсам (у даному випадку відкрито тільки для ppp0), бо коли підключається декілька користувачів, то з'являється ppp1,ppp2...
Тема: Re: Ще трохи про мережу
Автор: Андрій Головинський від 2005-02-17 11:34:12
Цитата
Чому прибрати? Якщо цього рядка не стане, то форварду будуть підлягати пакети, що прийшли не тільки через VPN, а й просто на мережевий інтерфейс (наприклад, якщо комп'ютер вказаний як шлюз). Можливо, я щось не правильно зрозумів?
Тут я трохи заплутався.

Але, в цілому, політика "Що не заборонено, те дозволено" не дуже вдала. Тому що легко щось упустити, і як результат - неплановий трафік.
У політиці "Що не дозволено, те заборонено" при логічній помилці трафік буде блоковано.
Тому краще було б робити все починаючи з:

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


Цитата
І ще питання: чи можна відкрити форвардинг пакетів усім VPN-інтерфейсам (у даному випадку відкрито тільки для ppp0), бо коли підключається декілька користувачів, то з'являється ppp1,ppp2...

Можна зробити так ( eth1 - локальна мережа, eth0 - inet )

$IPT -P FORWARD ACCEPT
$IPT -A FORWARD -i eth1 -j DROP
$IPT -A FORWARD -i eth0 -j DROP


Тепер буде форвардити тільки через ті інтерфейси, які лишились, тобто ppp0,ppp1,...
Тема: Re: Ще трохи про мережу
Автор: VojToshik від 2005-02-17 13:01:04
Цікавий факт, я зробив наступним чином:

#iptables -P INPUT DROP
#iptables -A INPUT -s $MY_NET -i eth0 -j ACCEPT
По ідеї, воно має кидати пакети, що надійшли не з $MY_NET, а воно кидає всі вхідні пакети  ??? Тобто працює лише перше правило  :-/
Тема: Re: Ще трохи про мережу
Автор: Андрій Головинський від 2005-02-17 19:20:09
Можливо, змінна MY_NET має неправильне значення

echo $MY_NET


Ще можна подивитись

iptables -L -v

Детальну статистику. І побачити, що не так.
Тема: Re: Ще трохи про мережу
Автор: VojToshik від 2005-02-18 10:07:58
Та ні, в $MY_NET все нормально :(
Тема: Re: Ще трохи про мережу
Автор: Андрій Головинський від 2005-02-18 10:35:22
Пришліть, що видає iptables -L -v. Я не телепат  :)
Тема: Re: Ще трохи про мережу
Автор: VojToshik від 2005-02-18 18:35:10
Chain INPUT (policy DROP 27 packets, 2275 bytes)
 pkts bytes target     prot opt in     out     source               destination
   61  4145 ACCEPT     all  --  eth0   any     localnet/24          anywhere

Chain FORWARD (policy DROP 1 packets, 1400 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 27 packets, 2236 bytes)
 pkts bytes target     prot opt in     out     source               destination
Тема: Re: Ще трохи про мережу
Автор: Андрій Головинський від 2005-02-20 11:15:12
Як видно із статистики, 61 пакет із локальної мережі проходить.
І 27 невизначених відкидаються.

Це свідчить про те що твердження
Цитата
воно кидає всі вхідні пакети  Huh Тобто працює лише перше правило  
невірне.

Інша справа, якщо сказати, що щось працює не так, як потрібно. Можливо, ті 27 пакетів нам потрібні.
Щоб подивитись, які пакети відкидаються, можна додати в кінці ланцюга правило
iptables -A INPUT -j LOG

І подивитись можна в /var/adm/syslog

Мені чогось здається, що вони виявляться із якоїсь невідомої машини і матимуть порт призначення 53 :-)

Тема: Re: Ще трохи про мережу
Автор: VojToshik від 2005-02-20 14:41:08
Все. я вже розібрався. Дуже дякую за увагу.
Тема: Re: Ще трохи про мережу
Автор: iron від 2005-02-25 17:47:56
Ну і навіщо використовувати MASQUERADE ?
Якщо IP адрес статичний, то краще використати SNAT.
Добродії, ви що не читали, що MASQUERADE чинить навантаження на систему ? MASQUERADE слід застосовувати лиш у випадках динамічного IP адресу, коли IP змінюється кожен заз, коли сервер регіструється у провайдера в системі (VLAN, VPN).