Linux за българи: Форуми

Linux секция за начинаещи => Настройка на програми => Темата е започната от: XsPiDeR в Jul 26, 2008, 01:24



Титла: Iptables port restirect
Публикувано от: XsPiDeR в Jul 26, 2008, 01:24
Здравейте, искам да направа следното с iptables~
да забрана всички портове и да задам да отвори само тези които аз искам , бихте ли ми помогнали :?


Титла: Iptables port restirect
Публикувано от: VladSun в Jul 26, 2008, 16:27
1. Слагаш политиката по подразбиране на INPUT веригата да е DROP;
2. В INPUT позволяваш всичко, което идва от lo интерфейса;
3. В INPUT позволяваш всичко, което е вече със state: established, related (с ACCEPT);
4. Разрешаваш определените портове (с -dport или multiport) за определните протоколи (-p [protocol]) и state: new пак с ACCEPT.

Това е.
За помощ: http://iptables-tutorial.frozentux.net/other/iptables.html





Титла: Iptables port restirect
Публикувано от: DefaultGateway в Aug 02, 2008, 16:33
iptables -P INPUT DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -s 192.168.0.10 -p tcp -m multiport --ports 20,21,22,139,445,8080 -i eth1 -j ACCEPT
iptables -A FORWARD -m state --state NEW -j ACCEPT

Така ли? :)

Кво прави това state NEW? също и state RELATED,ESTABLISHED ? :)


Титла: Iptables port restirect
Публикувано от: VladSun в Aug 02, 2008, 17:02
По-скоро трябва да бъде:
Примерен код
iptables -P INPUT DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -s 192.168.0.10 -p tcp -m multiport --ports 20,21,22,139,445,8080 -i eth1 -m state --state NEW -j ACCEPT


FORWARD веригата се използва само за трафик м/у интерфейси.

Не знам за какво си го сложил това ИП (192.168.0.10) - в момента си "отворил" портовете само за него. Това ли искаш?

Предполагам, че на eth1 имаш няколко IP-та и това ИП ти е еднот от тях - в такъв случай ти трябва "-d 192.168.0.10".

За state-овете: има си достатъчно обяснения в man page-a ;)

Накратко:
NEW - първи пакет (syn-пакета при TCP/IP)
ESTABLISHED - всеки следващ пакет от сесията след NEW пакета.
RELATED - прим. правиш FTP сесия към порт 21, което съответно води до отварянето на data port, различен от 21. ip_conntrack_ftp helper-а "чете" FTP командите от пакетите, вижда кои портове ще се използват и слага състояние RELATED на тези пакети. По подобен начин работят и други connection tracking модули.
Естествено, тези модули трябва да бъдат предварително заредени ;)





Титла: Iptables port restirect
Публикувано от: VladSun в Aug 02, 2008, 17:21
Хубаво е да се сложат правила за отсяване на невалидните пакети:
Примерен код
iptables -P INPUT DROP
iptables -t mangle -A PREROUTING -i ! lo -s 127.0.0.0/8 -j DROP
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
iptables -A INPUT -p icmp -d 0.0.0.255/0.0.0.255 -j DROP

iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -s 192.168.0.10 -p tcp -m multiport --ports 20,21,22,139,445,8080 -i eth1 -m state --state NEW -j ACCEPT