Титла: iptables rules
Публикувано от: kalifi в 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.
Благодаря Ви предварително!
Миро
П.П. Не претендирам за точност на изказа, термини и др., по-скоро като преразказано с мои думи.
Титла: iptables rules
Публикувано от: VladSun в Nov 04, 2005, 15:30
Първо, според това ,което виждам, трябва политиката на INPUT да ти е DROP, а чак след отва да ACCEPT-ваш (прим. порт 22) Второ, преди да правиш какъвто и да е "глобален" ACCEPT (прим. -A INPUT -m mark --mark 0x1 -j ACCEPT) е добре първо да минеш през правила изграждащи някаква защита - прим. за сканиране на портове, лоши пакети и т.н. ( пример)
Титла: iptables rules
Публикувано от: kalifi в Nov 05, 2005, 18:03
VladSun, благодаря за полезната връзка. До която чрез търсачката на форума нямаше да достигна, но това е друга тема.
Разбирам, че тази защитна стена е елементарна и неефективна. Просто трябва да направя така, че от 192.168.3.6 да се свързва с VNC servera на 192.168.2.10. Предполагам, тълкуванията ми относно правилата не се отклоняват драстично от истината... или бъркам??
Миро
Титла: iptables rules
Публикувано от: VladSun в 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 най-накрая.
|