Автор Гілка: Ще трохи про мережу  (Прочитано 6543 раз)

Toshik

  • Гість
Отже, у наявності у нас є комп'ютер (К1) з завантаженою Лінакс та сервером VPN (pptpd) та віндові клієнти, які мають під'єднуватися до цього сервера через VPN-канал (припустимо К2).
К1 під'єднаний до локальної мережі у якій знаходиться К2 і інші. Тільки на К1 видається інтернет за допомогою того самого мережевого інтерфейсу (eth0). Як заставити К1 пропускати пакети від К2 в інтернет? Форвардинг пакетів я включив. Може не правильно налаштував файрвол? Підкажіть!!!

Відсутній Євгеній Мещеряков

  • Дописувач
  • **
  • дописів: 65
  • Карма: +0/-0
Re: Ще трохи про мережу
« Відповідей #1 : 2005-02-14 18:13:01 »
Можливо це допоможе:
iptables -A POSTROUTING -o eth0 -j MASQUERADE

Відсутній Андрій Головинський

  • Кореспондент
  • ***
  • дописів: 141
  • Карма: +0/-0
Re: Ще трохи про мережу
« Відповідей #2 : 2005-02-14 18:26:47 »
Здається, пане, ви щось наплутали. Чи на етапі побудови, чи коли формулюєте питання.

Бо постає питання: навіщо робити VPN канал між двома машинами, що знаходяться в одній мережі? Вони чудово можуть обмінюватись даними стандартними засобами TCP/IP. Якщо ж одна з них (К1) ще й має доступ до інтернету, а хочеться мати доступ і на другій (К2), то з К1 робиться так званий шлюз (gateway)( +Forwarding, +Masquerading), а на К2 прописується, що шлюзом є К1. І все, ніяких VPN. І немає значення що до якого інтерфейсу приєднано.
Never argue with idiots. They just drag you down to their level, and then beat you with experience

Toshik

  • Гість
Re: Ще трохи про мережу
« Відповідей #3 : 2005-02-15 10:25:43 »
Та ні, я нічого не наплутав. Просто я постійно експерементую і таким чином вчуся. Для експериментів в мене є декілька комп'ютерів з'єднаних між собою мережею. І на цей раз я дійсно хочу пустити К2 в інтернет за допомогою VPN.

Відсутній Андрій Головинський

  • Кореспондент
  • ***
  • дописів: 141
  • Карма: +0/-0
Re: Ще трохи про мережу
« Відповідей #4 : 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


Виберіть потрібне
Never argue with idiots. They just drag you down to their level, and then beat you with experience

Відсутній VojToshik

  • Дописувач
  • **
  • дописів: 91
  • Карма: +0/-0
Re: Ще трохи про мережу
« Відповідей #5 : 2005-02-16 10:25:22 »
дуже дякую  :)
Isn't it folly that lack of girls' attention makes our life senseless?

Відсутній VojToshik

  • Дописувач
  • **
  • дописів: 91
  • Карма: +0/-0
Re: Ще трохи про мережу
« Відповідей #6 : 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

Хто бачить якісь проколи - кажіть.
« Змінено: 2005-02-16 16:28:20 від VojToshik »
Isn't it folly that lack of girls' attention makes our life senseless?

Відсутній Андрій Головинський

  • Кореспондент
  • ***
  • дописів: 141
  • Карма: +0/-0
Re: Ще трохи про мережу
« Відповідей #7 : 2005-02-16 17:13:58 »
Ну і добре. Роутер налаштовано. Правда, строку

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

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

Never argue with idiots. They just drag you down to their level, and then beat you with experience

Відсутній VojToshik

  • Дописувач
  • **
  • дописів: 91
  • Карма: +0/-0
Re: Ще трохи про мережу
« Відповідей #8 : 2005-02-17 10:15:51 »
Чому прибрати? Якщо цього рядка не стане, то форварду будуть підлягати пакети, що прийшли не тільки через VPN, а й просто на мережевий інтерфейс (наприклад, якщо комп'ютер вказаний як шлюз). Можливо, я щось не правильно зрозумів?

І ще питання: чи можна відкрити форвардинг пакетів усім VPN-інтерфейсам (у даному випадку відкрито тільки для ppp0), бо коли підключається декілька користувачів, то з'являється ppp1,ppp2...
Isn't it folly that lack of girls' attention makes our life senseless?

Відсутній Андрій Головинський

  • Кореспондент
  • ***
  • дописів: 141
  • Карма: +0/-0
Re: Ще трохи про мережу
« Відповідей #9 : 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,...
Never argue with idiots. They just drag you down to their level, and then beat you with experience

Відсутній VojToshik

  • Дописувач
  • **
  • дописів: 91
  • Карма: +0/-0
Re: Ще трохи про мережу
« Відповідей #10 : 2005-02-17 13:01:04 »
Цікавий факт, я зробив наступним чином:

#iptables -P INPUT DROP
#iptables -A INPUT -s $MY_NET -i eth0 -j ACCEPT
По ідеї, воно має кидати пакети, що надійшли не з $MY_NET, а воно кидає всі вхідні пакети  ??? Тобто працює лише перше правило  :-/
Isn't it folly that lack of girls' attention makes our life senseless?

Відсутній Андрій Головинський

  • Кореспондент
  • ***
  • дописів: 141
  • Карма: +0/-0
Re: Ще трохи про мережу
« Відповідей #11 : 2005-02-17 19:20:09 »
Можливо, змінна MY_NET має неправильне значення

echo $MY_NET


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

iptables -L -v

Детальну статистику. І побачити, що не так.
Never argue with idiots. They just drag you down to their level, and then beat you with experience

Відсутній VojToshik

  • Дописувач
  • **
  • дописів: 91
  • Карма: +0/-0
Re: Ще трохи про мережу
« Відповідей #12 : 2005-02-18 10:07:58 »
Та ні, в $MY_NET все нормально :(
Isn't it folly that lack of girls' attention makes our life senseless?

Відсутній Андрій Головинський

  • Кореспондент
  • ***
  • дописів: 141
  • Карма: +0/-0
Re: Ще трохи про мережу
« Відповідей #13 : 2005-02-18 10:35:22 »
Пришліть, що видає iptables -L -v. Я не телепат  :)
Never argue with idiots. They just drag you down to their level, and then beat you with experience

Відсутній VojToshik

  • Дописувач
  • **
  • дописів: 91
  • Карма: +0/-0
Re: Ще трохи про мережу
« Відповідей #14 : 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
Isn't it folly that lack of girls' attention makes our life senseless?