Автор Тема: Малко помощ с iptables  (Прочетена 2359 пъти)

milkonoj

  • Напреднали
  • *****
  • Публикации: 143
  • Distribution: Ubuntu
  • Window Manager: Gnome
  • FreeWorld for FreePeople
    • Профил
Малко помощ с iptables
« -: Jun 25, 2009, 14:52 »
Код
GeSHi (Bash):
  1. #!/bin/bash
  2. ifconfig=/sbin/ifconfig
  3. route=/sbin/route
  4. iptables=/sbin/iptables
  5. int=eth1
  6. ext=eth0
  7.  
  8. $ifconfig eth0 192.168.1.2 netmask 255.255.255.0
  9. $route add default gw 192.168.1.1
  10.  
  11. $iptables -F
  12. $iptables -t nat -F
  13. $iptables -A FORWARD -i $int  -j ACCEPT
  14. $iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o $ext -j SNAT --to-source 192.168.1.2
  15. $iptables -A FORWARD -i $ext -j ACCEPT
  16. $iptables -t nat -A POSTROUTING -s #outerip# -o $int -j SNAT --to-source #innerip#    
  17. /bin/cat /root/adsl-dns > /etc/resolv.conf
  18. iptables-save > /etc/sysconfig/iptables-adsl
  19.  
  20.  

Та въпроса ми е, как да го направя така набор от определени външни ip-та да имат достъп само до определен хост от вътрешната мрежа.
15 и 16 ред сам ги добавял днес с идеята, че може да тръгне по тоя начин. Така, че моля помогнете, нов съм в тези неща и ако може да по-обясните повечко, каква е цялата далавера.
« Последна редакция: Jun 25, 2009, 15:02 от milkonoj »
Активен

Iron_steel

  • Напреднали
  • *****
  • Публикации: 28
  • Distribution: Arch Linux
  • Window Manager: Gnome
    • Профил
Re: Малко помощ с iptables
« Отговор #1 -: Jun 25, 2009, 15:42 »
Здравей.Аз също съм новак ,но ще се опитам да ти помогна.

Код:
/sbin/iptables -P INPUT DROP
/sbin/iptables -t nat -A PREROUTING -p tcp -i eth0 --dport  8888  -j DNAT --to $intip:80
/sbin/iptables -A FORWARD -p tcp -i $ext -d $intip --dport 80 -j ACCEPT
/sbin/iptables -A INPUT -s $allowedhosts -d $extip -p tcp --dport  8888 -j ACCEPT

С първата команда спираш входящия трафик.Със следващите две си правиш
portforwarding-а към кой вътрешен хост да препраща.
Със последната указва  кой хост може да се свърже към вътрешния ти хост.
Дано ме разбереш.Ако греша казвайте,и Аз съм нов.
Активен

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Re: Малко помощ с iptables
« Отговор #2 -: Jun 25, 2009, 22:53 »
Здравей.Аз също съм новак ,но ще се опитам да ти помогна.

Код:
/sbin/iptables -P INPUT DROP
/sbin/iptables -t nat -A PREROUTING -p tcp -i eth0 --dport  8888  -j DNAT --to $intip:80
/sbin/iptables -A FORWARD -p tcp -i $ext -d $intip --dport 80 -j ACCEPT
/sbin/iptables -A INPUT -s $allowedhosts -d $extip -p tcp --dport  8888 -j ACCEPT

С първата команда спираш входящия трафик.Със следващите две си правиш
portforwarding-а към кой вътрешен хост да препраща.
Със последната указва  кой хост може да се свърже към вътрешния ти хост.
Дано ме разбереш.Ако греша казвайте,и Аз съм нов.

Пакетите в INPUT веригата нямат нищо общо с пакетите във FORWARD веригата:

« Последна редакция: Jun 25, 2009, 22:55 от VladSun »
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

petar258

  • Напреднали
  • *****
  • Публикации: 398
  • Distribution: Ubuntu-mate 16.04, Windows 7
    • Профил
Re: Малко помощ с iptables
« Отговор #3 -: Jun 26, 2009, 10:45 »
input веригата е над nat и forward, така че ако там няма глобална забрана(INPUT DROP) съчетана с разрешение за минаване на определени пакети, няма да постигнеш целта си - просто няма какво да спре пакетите да минат по който и да е друг път
хубаво си дал схемата, но е добре да прочетеш обясненията към програмката iptables за да не я тълкуваш грешно
Активен

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Re: Малко помощ с iptables
« Отговор #4 -: Jun 26, 2009, 10:57 »
А сега ми кажи къде се намира PREROUTING (*НЕЗАВИСИМО* коя таблица) и къде INPUT ;)
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Re: Малко помощ с iptables
« Отговор #5 -: Jun 26, 2009, 10:59 »
input веригата е над nat и forward

nat е таблица, INPUT и FORWARD са вериги ...
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Re: Малко помощ с iptables
« Отговор #6 -: Jun 26, 2009, 11:04 »
Значи идеята е следната:
1) идва пакет към ИП:порт на който ще му правим port forward (DNAT)
2) в PREROUTING/nat го препращаме към съответния host:port
- по този начин решението за маршрутизиране се променя от INPUT към FORWARD веригата
- следствие : във FORWARD веригата трябва да е разрешено преминаването на този пакет
3) пакетът отива през FORWARD веригата до съответния host:port

....

т.е. пакетът НИКОГА не се "допира" дори до INPUT веригата ;)
« Последна редакция: Jun 26, 2009, 11:21 от VladSun »
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Re: Малко помощ с iptables
« Отговор #7 -: Jun 26, 2009, 11:18 »
Какво общо има INPUT?
Активен

"Knowledge is power" - France is Bacon

milkonoj

  • Напреднали
  • *****
  • Публикации: 143
  • Distribution: Ubuntu
  • Window Manager: Gnome
  • FreeWorld for FreePeople
    • Профил
Re: Малко помощ с iptables
« Отговор #8 -: Jun 26, 2009, 11:44 »
И аз това не разбрах. След изпълнението на Bash-а ми да дава multiple -d flags not allowed. Със IPtables 1.2.6a съм. Та пак да повторя искам да го направя така, че определено IP да има достъп само до един определен хост във вътрешната мрежа и достъпа да става през telnet и ftp.
Активен

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Re: Малко помощ с iptables
« Отговор #9 -: Jun 26, 2009, 11:50 »
1. МНОГО ти е стар iptables
2. Варанти много - ето ти един от тях:
Код
GeSHi (Bash):
  1. $iptables -t nat -A PREROUTING -p tcp -i $ext -s ИП1-което-има-достъп -d IP-то-на-вънпния-интетрфейс --dport  8888  -j DNAT --to ИП-то-на-машината-от-локалната-мрежа:80
  2. $iptables -t nat -A PREROUTING -p tcp -i $ext -s ИП2-което-има-достъп -d IP-то-на-вънпния-интетрфейс --dport  8888  -j DNAT --to ИП-то-на-машината-от-локалната-мрежа:80
« Последна редакция: Jun 26, 2009, 11:52 от VladSun »
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

milkonoj

  • Напреднали
  • *****
  • Публикации: 143
  • Distribution: Ubuntu
  • Window Manager: Gnome
  • FreeWorld for FreePeople
    • Профил
Re: Малко помощ с iptables
« Отговор #10 -: Jun 26, 2009, 11:54 »
И сменям порт 80 с 23?
Той е ми е почти набор тоя компютър, нормално е.
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
iptables
Настройка на програми
ivanatora 16 16736 Последна публикация May 25, 2003, 11:34
от mtab
iptables
Настройка на програми
Danakich 1 6636 Последна публикация Jul 30, 2003, 14:50
от ShAnTaV
iptables???
Настройка на програми
spooky 0 5153 Последна публикация Nov 15, 2003, 15:10
от spooky
za iptables
Хардуерни и софтуерни проблеми
Slavnik 3 6753 Последна публикация Jan 10, 2004, 22:56
от frinko
Лимит на връзки със iptables
Настройка на програми
saturn_vk 15 10147 Последна публикация Feb 10, 2004, 14:28
от