Автор Тема: Firewall, router  (Прочетена 2885 пъти)

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Firewall, router
« -: May 13, 2005, 00:16 »
Приемаме, че политиката по подразбиране на веригите е:

FORWARD - DROP
INPUT, OUTPUT, PREROUTING, POSTROUTING - ACCEPT

Машината изпълнява функции на рутер (със и без SNAT) и сървер за Интернет приложения

Тогава, какво бихте препоръчали да се промени/добави/премахне в тази защитна стена така, че да защитава както самия рутер, така и потребителите зад него?

Примерен код


#Block subnet gator.com;)
$ipt -I FORWARD 1 -d 64.152.73.0/24 -j DROP
$ipt -I FORWARD 1 -s 64.152.73.0/24 -j DROP

### MALFORMED PACKETS ###

#Smurf attack
$ipt -A INPUT -p icmp -d 0.0.0.255/0.0.0.255 -j DROP
$ipt -A FORWARD -p icmp -d 0.0.0.255/0.0.0.255 -j DROP

#Malformed xmas packets
$ipt -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
$ipt -A FORWARD -p tcp --tcp-flags ALL ALL -j DROP

#Malformed null packets
$ipt -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
$ipt -A FORWARD -p tcp --tcp-flags ALL NONE -j DROP

#New tcp connections must be SYN packets!
$ipt -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
$ipt -A FORWARD -p tcp ! --syn -m state --state NEW -j DROP

#Drop ICMP fragment packets
$ipt -A INPUT --fragment -p icmp -j DROP
$ipt -A OUTPUT --fragment -p icmp -j DROP
$ipt -A FORWARD --fragment -p icmp -j DROP

#others
$ipt -A INPUT -m state --state INVALID -j DROP
$ipt -A FORWARD -m state --state INVALID -j DROP

$ipt -A INPUT -m unclean -j DROP

### ROUTER PROTECTION ###

#Local IP addressing
$ipt -A PREROUTING -t mangle -s 192.168.2.1 -j DROP # вътрешното ИП на рутера
$ipt -A PREROUTING -t mangle -s 10.0.0.0/8 -j DROP
$ipt -A PREROUTING -t mangle -s 172.16.0.0/16 -j DROP
$ipt -A PREROUTING -t mangle -d 10.0.0.0/8 -j DROP
$ipt -A PREROUTING -t mangle -d 172.16.0.0/16 -j DROP

$ipt -A PREROUTING -t mangle -i ! lo -s 127.0.0.0/8 -j DROP

#UDP ports
$ipt -A INPUT -i eth1 -p udp --dport 53 -j ACCEPT
$ipt -A INPUT -i eth1 -p udp -j DROP

#Block FTP, Telnet, Auth
$ipt -A INPUT -p tcp --dport 21 -j DROP
$ipt -A INPUT -p tcp --dport 23 -j DROP
$ipt -A INPUT -p tcp --dport 111 -j DROP

$ipt -A INPUT -p tcp --dport 113 -m state --state NEW,INVALID -j DROP

#Syn-flood protection
$ipt -N syn-flood
$ipt -F syn-flood
$ipt -A INPUT -p tcp --syn -j syn-flood
$ipt -A syn-flood -m limit --limit 10/s --limit-burst 8 -j RETURN
$ipt -A syn-flood -j REJECT

#Furtive port scanner
$ipt -N port-scanner
$ipt -F port-scanner
$ipt -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST RST -j port-scanner
$ipt -A port-scanner -m limit --limit 10/s --limit-burst 4 -j RETURN
$ipt -A port-scanner -j REJECT

#Ping of death
$ipt -N PoD
$ipt -F PoD
$ipt -A INPUT -p icmp --icmp-type echo-request -j PoD
$ipt -A PoD -m limit --limit 10/s --limit-burst 4 -j RETURN
$ipt -A PoD -j REJECT

### USERS PROTECTION ###

#NetBios block
$ipt -A FORWARD -p tcp --dport 137:139 -j REJECT
$ipt -A FORWARD -p udp --dport 137:139 -j REJECT
#NetBios Windows 2000/XP block
$ipt -A FORWARD -p udp --dport 135 -j REJECT
$ipt -A FORWARD -p udp --dport 445 -j REJECT
$ipt -A FORWARD -p tcp --dport 135 -j REJECT
$ipt -A FORWARD -p tcp --dport 445 -j REJECT


Нека всеки препатил или не, даде по съветче и да стане една клоняща към идеална защитна стена '<img'>
Активен

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

  • Гост
Firewall, router
« Отговор #1 -: May 13, 2005, 12:32 »
Няколко неща които се набиват на очи:
1. Политиката по подразбиране на FORWARD e DROP, чудесно ... само дето по надолу виждаме FORWARD ... DROP, FORWARD ... REJECT, a FORWARD ... ACCEPT никъде ?
2. Лимитите тествал ли си ги или само си ги преписал от някъде? Една проста сметка позказва следното: SYN пакета е с дължина 40bytes (320 bits) -> --limit 10/s означава 10 пакета/с т.е. 320b*10/с или 3kbps което няма и 0.5 KB/s ?
3. #Block FTP, Telnet, Auth
$ipt -A INPUT -p tcp --dport 21 -j DROP
$ipt -A INPUT -p tcp --dport 23 -j DROP
$ipt -A INPUT -p tcp --dport 111 -j DROP
Не е ли по лесно да спреш telnetd и ftpd ? А и 111 порт се ползва от sunrpc а auth e на 113 порт, ти ще кажеш кое всъщност искаш да спреш.
Доста наедро си преписвал (то няма лошо и аз преписвам от разни HOWTO's, README's и др. TUTORIAL's) ама и ти малко повече старание вложи '<img'> Бая си се ровил за да извадиш всичките тези защити (ако не ме лъже паметта още във версия 2.0.X на ядрото оправиха smurf, ping of Death, xmas и др.) ама накрая само си слепил фрагментите и толкоз '<img'>
Активен

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Firewall, router
« Отговор #2 -: May 13, 2005, 12:47 »
1. FORWARD ACCEPT има за определени ИП-та от вътрешната страна, но тъй като няма много общо със самата защитна стена съм го пропуснал '<img'>

2. Пробвал съм ги - натоварването на Интернет приложенията е малко, така че няма проблеми (все пак става въпрос само за SYN пакети)

3. Честно казано, такова експлицитно забраняване ме кара да се чувствам по-сигурен '<img'> За auth си прав - коментара е стара версия '<img'>
За auth съм чел, че не е хубаво да се дропи (някои услуги отказвали достъп - прим. IRC), по-добре било да се REJECT-ва за да има някакъв отговор. Другото, което съм чел е, че трябва да има отговор само към RELATED връзките. Очаквам коментар по въпроса ...

За преписването - трудно е да се каже, че съм преписвал наедро - от една година я сглобявам/променям тая стена.

Аааа, това за фрагментацията не го разбрах .. Помощ? '<img'>

ПП: По принцип е по-добре политиката на всички вериги да е DROP, но ви моля в случая да го пренебрегнете.

ППП: Интересно ми е и какъв е вашя коментар за начина на отказване на пакети - DROP или REJECT - четох, че някои вируси като атакуват машина са "вежливи" - т.е. ако получат port-closed престават да флудят, иначе ако порта е stealth-нат флудят здраво. НО също така четох и за обратния вариант ...
Активен

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

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Firewall, router
« Отговор #3 -: May 13, 2005, 12:52 »
Нещо свързано с темата - опцията tcpsyncookies на кернела - много противоречиви коментари има в нета, та ми се иска някой по-навътре с нещата да си каже мнението
Активен

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

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Firewall, router
« Отговор #4 -: May 15, 2005, 12:23 »
Чак толкова ли е безинтересна темата ...  '<img'>
Активен

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