Linux IPCHAINS-HOWTO Разни

Този раздел съдържа цялата информация и често задавани въпроси, които не успях да впиша в горната структура.

Този въпрос изисква известна мисъл. Можете да опитате да ги организирате, за да оптимизирате производителността (да намалите броя на правилата за проверка за повечето пакети) или да увеличите управляемостта.

Ако имате несъвместима връзка, да речем PPP връзка, тогава може да искате да зададете първото правило във входната верига "-i ppp0 -j DENY" по време на зареждане, след това да поставите нещо подобно във вашия ip-up скрипт: И в ip- скрипта надолу:

Преди да започнете да филтрирате изходящия трафик, трябва да знаете няколко неща.

ICMP пакети

ICMP пакетите се използват (наред с други неща), за да посочат състоянията на други протоколи (като TCP и UDP). По-специално пакетите „недостъпни за дестинация“. Блокирането на тези пакети означава, че никога няма да получите грешки „Host unreachable“ или „No route to host“; всякакви връзки ще очакват само отговор, който никога няма да дойде. Досадно е, но не е фатално.

Също така забележете съобщенията за пренасочване на ICMP (тип 5); те могат да се използват за управление на маршрутизация (въпреки че добрите IP стекове са защитени) и се считат за малко опасни.

TCP връзки към DNS (сървър за имена)

Ако се опитате да блокирате изходящи TCP връзки, не забравяйте, че DNS не винаги използва UDP; ако пакетът с отговори от сървъра надвишава 512 байта, клиентът използва TCP връзка (също на порт 53).

DNS в този случай ще "работи обикновено"; може да откриете странни дълги закъснения и други случайни DNS проблеми.

Ако вашите DNS заявки винаги са насочени към един и същ външен източник (или директно, като се използва линията на сървъра на имена в /etc/resolv.conf, или се използва напред в кеширащия сървър на имена), тогава трябва само да разрешите TCP връзки между домейна на порта на този сървър за имена и порт за локален домейн (ако се използва кеширащ сървър за имена) или с по-голям номер на порт (> 1023), ако се използва /etc/resolv.conf.

FTP кошмари

Класическият проблем с филтрирането на пакети е FTP. FTP има два режима; традиционният се нарича активен режим, а по-модерният се нарича пасивен режим. Уеб браузърите обикновено се изпълняват в пасивен режим по подразбиране, но програмите за FTP конзола обикновено се изпълняват в активен режим по подразбиране.

В активен режим, когато отдалечената страна иска да изпрати файл (или дори резултатите от командите ls или dir), тя се опитва да отвори TCP връзка към локалната машина. Това означава, че не можете да филтрирате тези TCP връзки, без да прекъсвате активния FTP.

Ако имате възможност да използвате пасивен режим, значи сте добре; пасивният режим създава връзки от клиент към сървър, дори за входящи данни. Препоръчваме ви да разрешавате само TCP връзки с номера на портове над 1024, а не 6000.6010 (използва се за XWINDOWS).

Linux машините вече са имунизирани срещу известния Ping of Death, който се състои в изпращане на огромен ICMP пакет, който препълва буфера на TCP стека на приемащата машина и причинява хаос.

Ако защитавате машини, които могат да бъдат уязвими за пинг на смърт, тогава можете просто да фрагментирате ICMP блокове. Нормалните ICMP пакети не са достатъчно големи, за да изискват фрагментация, така че само много големи пакети като смъртни пингове ще бъдат фрагментирани. Чувал съм (от непроверени данни), че някои системи могат да страдат от последните фрагменти от големи ICMP пакети, така че се препоръчва фрагментиране не само на първия фрагмент.