Автор Тема: iptables rules  (Прочетена 2936 пъти)

kalifi

  • Напреднали
  • *****
  • Публикации: 59
    • Профил
    • WWW
iptables rules
« -: Nov 04, 2005, 14:50 »
Здравейте,

Чета от скоро за iptables, защото ми се наложи.
Не съм много сигурен какво ми влезна в главата, а времето ме притиска.

Ще Ви помоля да видите тези правила по-долу и моята интерпретация на това как действат и при каквато и да била грешка от моя страна да ме поправяте.
Примерен код
# Generated by iptables-save v1.3.1 on Fri Jul  1 14:43:50 2005
*filter
:INPUT ACCEPT [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m mark --mark 0x1 -j ACCEPT
-A INPUT -d 127.0.0.1/255.0.0.0 -i eth0 -j DROP
-A INPUT -d 192.168.3.0/255.255.255.0 -i eth0 -j DROP
-A INPUT -p icmp -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i eth0 -p udp -m udp --dport 500 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -i eth0 -p udp --dport 68 --sport 67 -j ACCEPT
-A INPUT -i eth0 -j DROP
-A FORWARD -i eth1 -s 192.168.3.6 -p tcp -m tcp --dport 80 -j ACCEPT
-A FORWARD -i eth1 -s 192.168.3.6 -p tcp -m tcp --dport 443 -j ACCEPT
-A FORWARD -i eth1 -s 192.168.3.6 -p tcp -m tcp --dport 21 -j ACCEPT
-A FORWARD -i eth1 -s 192.168.3.6 -p tcp -m tcp - 20 -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -p udp --dport 53 -j ACCEPT
-A FORWARD -i eth1 -d 192.168.2.0/24 -j ACCEPT
-A FORWARD -i eth1 -d 192.168.4.0/24 -j ACCEPT
-A FORWARD -m mark --mark 0x1 -j ACCEPT
COMMIT
# Completed on Fri Jul  1 14:43:50 2005
# Generated by iptables-save v1.3.1 on Fri Jul  1 14:43:50 2005
*mangle
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A INPUT -p esp -j MARK --set-mark 0x1
COMMIT
# Completed on Fri Jul  1 14:43:50 2005
# Generated by iptables-save v1.3.3 on Tue Aug 23 19:53:57 2005
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -s 192.168.3.0/255.255.255.0 -o eth0 -j MASQUERADE
COMMIT


Според мен:
Идва пакета и с това правило
Примерен код
-A INPUT -p esp -j MARK --set-mark 0x1
ако протокола е esp се маркира с 0x1

Следва първото правило INPUT в таблицата filter, което е:
Примерен код
-A INPUT -m mark --mark 0x1 -j ACCEPT
то казва, че ако пакетът е маркиран с 0х1 (чрез предишното правило) той се приема.

Примерен код
-A INPUT -d 127.0.0.1/255.0.0.0 -i eth0 -j DROP
Всички пакети предназначени за 127.0.0.1/255.0.0.0 идващи от eth0 да отиват в DROP - да се отхвърлят.

Примерен код
-A INPUT -d 192.168.3.0/255.255.255.0 -i eth0 -j DROP
Същото като горното, само че ако пакетите са предназначени за 192.168.3.0/255.255.255.0 и ако идват от eth0.

Примерен код
-A INPUT -p icmp -j ACCEPT
Всички пакети с протокол icmp се приемат.

Примерен код
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Пакети, чийто state е един от RELATED,ESTABLISHED се приемат.

Примерен код
-A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
Пакетите идващи през eth0 с tcp протокол, предназначени за порт 22 - се приемат.

Примерен код
-A INPUT -i eth0 -p udp -m udp --dport 500 -j ACCEPT
Васички пакети идващи през eth0 с udp протокол, предназначени за порт 500 - се приемат

Примерен код
-A INPUT -i eth0 -p tcp -m tcp --dport 80 -j ACCEPT
Васички пакети идващи през eth0 с tcp протокол, предназначени за порт 80 - се приемат
Примерен код
-A INPUT -i eth0 -p udp --dport 68 --sport 67 -j ACCEPT
Васички пакети идващи през eth0 с udp протокол, предназначени за порт 68 - се приемат ако са пратени от порт 67.
Примерен код
-A INPUT -i eth0 -j DROP
Всички пакети идващи през eth0 не се приемат. Разбирам го като ако до сега пакета не е бил притет значи не е трябвало да идва.

Примерен код
-A FORWARD -i eth1 -s 192.168.3.6 -p tcp -m tcp --dport 80 -j ACCEPT
Пакетите идващи от 192.168.3.6 с протокол tcp предназначени за порт 80 се препращат.

Примерен код
-A FORWARD -i eth1 -s 192.168.3.6 -p tcp -m tcp --dport 443 -j ACCEPT
Пакетите идващи от 192.168.3.6 с протокол tcp предназначени за порт 443 се препращат.

Примерен код
-A FORWARD -i eth1 -s 192.168.3.6 -p tcp -m tcp --dport 21 -j ACCEPT
Пакетите идващи от 192.168.3.6 с протокол tcp предназначени за порт 21 се препращат.

Примерен код
-A FORWARD -i eth1 -s 192.168.3.6 -p tcp -m tcp - 20 -j ACCEPT
Да сега виждам че тука явно -dport е изпуснато и има грешка, но ако приемем, че си е там:Пакетите идващи от 192.168.3.6 с протокол tcp предназначени за порт 20 се препращат.

Примерен код
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
Пакетите със state  RELATED или ESTABLISHED се препращат.

Примерен код
-A FORWARD -p udp --dport 53 -j ACCEPT
Пакетите с протокол udp предназначени за порт 53 се препращат.

Примерен код
-A FORWARD -i eth1 -d 192.168.2.0/24 -j ACCEPT

Пакетите идващи през eth1 и предназначени за 192.168.2.0/24  се препращат.
Примерен код
-A FORWARD -i eth1 -d 192.168.4.0/24 -j ACCEP
Пакетите идващи през eth1 и предназначени за 192.168.4.0/24  се препращат.

Примерен код
-A FORWARD -m mark --mark 0x1 -j ACCEPT
Пакетите маркирани с 0х1 се препращат.

Примерен код
-A POSTROUTING -s 192.168.3.0/255.255.255.0 -o eth0 -j MASQUERADE
С това правило мисля, че се рутира интернета към вътрешната мрежа.

Дистрибуцията е Debian. Този файл се намира /etc/iptables/ и се казва start-eth0 и се вика от скрипта намиращ се в този файл: /etc/network/if-pre-up.d/firewall. Надявам се това да е О.К.

Та целта до колкото знам е от 192.168.3.10 например, чрез real vnc viewer-a да се види real vnc server-a намиращ се на 192.168.2.4.

Благодаря Ви предварително!

Миро

П.П. Не претендирам за точност на изказа, термини и др., по-скоро като преразказано с мои думи.
Активен

Мирослав Базитов
http://miro.kalifish.com/

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
iptables rules
« Отговор #1 -: Nov 04, 2005, 15:30 »
Първо, според това ,което виждам, трябва политиката на INPUT да ти е DROP, а чак след отва да ACCEPT-ваш (прим. порт 22)

Второ, преди да правиш какъвто и да е "глобален" ACCEPT (прим. -A INPUT -m mark --mark 0x1 -j ACCEPT) е добре първо да минеш през правила изграждащи някаква защита - прим. за сканиране на портове, лоши пакети и т.н. (пример)
Активен

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

kalifi

  • Напреднали
  • *****
  • Публикации: 59
    • Профил
    • WWW
iptables rules
« Отговор #2 -: Nov 05, 2005, 18:03 »
VladSun, благодаря за полезната връзка.
До която чрез търсачката на форума нямаше да достигна, но това е друга тема.

Разбирам, че тази защитна стена е елементарна и неефективна. Просто трябва да направя така, че от 192.168.3.6 да се свързва с VNC servera на 192.168.2.10. Предполагам, тълкуванията ми относно правилата не се отклоняват драстично от истината... или бъркам??

Миро
Активен

Мирослав Базитов
http://miro.kalifish.com/

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
iptables rules
« Отговор #3 -: Nov 06, 2005, 14:19 »
Мисля, че не си си изяснил докрай какво е default policy на chain. Прим.:

iptables -P INPUT DROP
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

е напълно достатъчно за да пуснеш САМО 22, 80 портове, а всичко останало да дропиш. Няма нужда от експлицитно задаване на правило -A INPUT -j DROP най-накрая.
Активен

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

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
No Rules to make file ?wtf ?
Настройка на програми
oneillq 7 2655 Последна публикация Jan 29, 2005, 18:49
от v_badev
The Penguin rules
Живота, вселената и някакви други глупости
Златко 1 2254 Последна публикация Aug 22, 2005, 17:23
от Lord Bad
Operating System Sucks-Rules-O-Meter
Живота, вселената и някакви други глупости
jet 0 1699 Последна публикация Apr 30, 2009, 03:37
от jet
SpamAssassin User Rules HowTo
Настройка на програми
d3v1ous 18 4577 Последна публикация Jan 06, 2010, 16:26
от neter
partition rules
Настройка на програми
velislavvasilev 1 1848 Последна публикация Mar 12, 2010, 14:16
от bop_bop_mara