Не сте регистриран! Регистрирайте се БЕЗПЛАТНО, за да използвате услугите на сайта!

   Рубрики
 
 
 
 

 Форуми
» SEO и оптимизация
» Всичко за PHP и Perl
» Всичко за C, C++ и .NET
» Всичко за Java и JSP
» Всичко за SQL и MySQL
» Всичко за XHTML и CSS
» Презентация на сайтове
 Настройка на рутера на база Free BSD
  1. Настройка на рутера на база Free BSD
     
Автор  eminem (05.02.2005 10:42)  съобщение до автора
Погледнат  6357 пъти  добави към любими
Оценка  добави коментар
Гласове  2  изпрати на приятел
Коментари  (0)  абонирай се за Unix
    Страница 1 / 1

 



Ще разгледаме настройката на рутера на база FreeBSD изпълняващ ролята на шлюз в Интернет с установяването на firewll'а и поддържащ статическа arp таблица на mac адресите в локалната мрежа. Ще стане дума за IPFW, който във FreeBSD служи верно вече от много години, още повече, че в последните версии в състава на FreeBSD са отстранени грешките и е добавена възможност за ограничаване на нивото на пропускванията по интерфейса (използване на pipe с опция bw).

Да предположим, че имаме рутер с три мрежови потока един от които (наречен ее vx0, IP 200.200.200.1) е за Интернета, а вторият (наречен ее vx1, IP 200.200.200.2) е за локалната мрежа с реални 18 IP адреса (subnet 200.200.200.0/28 netmask 255.255.255.240). Към третия мрежов поток (vx2 IP 192.168.1.1 и сеть 192.168.1.0/28) е свързана 10Mb мрежа на съседния офис. Задачата поставена пред нас е следната:
1.Да се преустанови достъпът към вътрешността на мрежата отвън през портове 135, 137, 1392. 2.Да се даде възможност на ползвателите на локалната мрежа да работят с поща и в браузера с WWW и FTP сървър на други компании.
3.Да се предотврати възможността за атака на рутера от типа SYN Flood, ICMP Flood.
4.Да се закрие достъпът към корпоративния WWW и FTP сървър (200.200.200.5), използван за работа с отчети изведени на този WWW сървър само в рамките на локалната мрежа и достъпът до фолоала, който има IP 190.190.190.5.
5.Да се открие достъп за конфигуриране на този рутер с определения от системния администратор хост.
6.Да се обезпечи пресмятането на трафика по IP адреси в локалната мрежа, за да може в последствие да се докаже, че Иван цял месец се е занимавал с разглеждане на www.playboy.com картинки със съмнително съдържание.
7.Да се ограничи на 64Kb трафикът на третия мрежов поток, който е за съседния офис в същата сграда и е свързан на 10Mb към нашия рутер и да се закрие достъпът от тяхна страна в локалната мрежа на нашата компания.
И така, да пристъпим към работа.

Конфигуриране на ядрото и опциите на скриптовете

В ядрото е необходимо да се внесат средните опции:
CODE
1
2
3
4
5
6
options IPFIREWALL (включва в ядрото код за филтрация на пакетите)
options IPFIREWALL_VERBOSE (включва возможност да води log по правилата на филтрация на преминаващите пакети)
options IPFIREEWALL_VERBOSE_LIMIT=10 (ограничение на списъка на броя пакети записвани в log, за да не зафлуди syslog)
options TCP_DROP_SYNFIN (заменя TCP пакети със SYN и FIN)
В резултат при презареждането на системата получаваме
firewall, който по подразбиране преустановява преминаването на какъвто и да е IP трафик по целия интерфийс. По-нататък ще определим правилата по които ще се отворят тези портали TCP или UDP, които са необходими за работата на ползвателя. Ако се придържате към друг подход - "от начало всичко да открием, а после ще затваряме", то тогава трябва да укажете следната опция в ядрото:
options IPFIREWALL_DEFAULT_TO_ACCEPT

В /etc/defaults/rc.conf се указва следното :
CODE
1
2
3
4
5
6
7
tcp_extensions="NO" (отключваме "опасните" TCP от RFC1323 разширение)
tcp_drop_synfin="YES" (изхвърляме SYN + FIN)
icmp_drop_redirect="YES" (игнорираме ICMP пакети)
icmp_log_redirect="YES" (включваме logging ICMP REDIRECT)
firewall_enable="YES" (включваме използването на firewall)
firewall_type="Company" (указваме, че нашите настройки на firewall'a се намират в rc.firewall в раздела "Company")
defaultrouter="199.199.199.1" (шлюз до нашия ISP)

Конфигуриране на IPFW

Сега настъпваме към написване превилата на IPFW. По-подробно описание на синтаксиса може да намерите в handbook или man ipfw. След като създаваме своя конфигурация ("Company") нека да направим нейно описание в rc.firewall:
CODE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
[Cc][Oo][Mm][Pp][Aa][Nn][Yy]
# Описваме мрежата и интерфейса
fw="200.200.200.1"
local="200.200.200.2"
client="192.168.1.1"
net="200.200.200.0/28"
mask="255.255.255.255.240"
# Разрешаваме трафик по local интерфейс
${fwcmd} add pass all from any to any via lo0
# Разрешаваме трафик само в пределите на локалната мрежа
${fwcmd} add pass all from any to any via vx1
# Забранявяме преминаване на фрагментирани пакети
${fwcmd} add deny icmp from any to any frag
# Разрешаваме преминаването на ICMP пакети
${fwcmd} add pass ICMP from any to any
# Разрешаваее работата с SMTP протоколи
${fwcmd} add pass tcp from any to any 25 out
${fwcmd} add pass tcp from any 25 to any out
# Разрешаваме работата с HTTPS протоколи
${fwcmd} add pass tcp from any to any 443 out
${fwcmd} add pass tcp from any 443 to any out
# Забраняваме работата отвън с вътрешния сървър на компанията
${fwcmd} add pass tcp from 199.199.199.10 to 200.200.200.5 80 via vx0
${fwcmd} add pass tcp from 200.200.200.5 80 to 199.199.199.10 via vx0
# Забраняваме работата отвън с вътрешния сървър на компанията
${fwcmd} add deny tcp from any to 200.200.200.5 80 in via vx0
# Разрешаваме работата с HTTP протоколи
${fwcmd} add pass tcp from any to any 80 out via vx1
${fwcmd} add pass tcp from any 80 to any out via vx1
# Разрешаваее работата по всички протоколи в пределите само на локалната мрежа и нашата компания
${fwcmd} add allow all from any to any via vx1
# Разрешаваме работата с DNS сървърите
${fwcmd} add pass udp from any to any 53
${fwcmd} add pass udp from any 53 to any
# Разрешаваме работата с NEWS сървъри
${fwcmd} add pass udp from any to any 119 out via vx1
${fwcmd} add pass udp from any 119 to any out via vx1
# Разрешаем работа на поща на POP3 протокол
${fwcmd} add pass udp from any to any 110
${fwcmd} add pass udp from any 110 to any
# Разрешаваме работа с FTP сървъри. Обърне внимание, че на порт 20 протоколът TCP се използва за предаване на данни без участието на 21 порт
${fwcmd} add pass tcp form any 21 to any
${fwcmd} add pass tcp from any to any 21
${fwcmd} add pass tcp from any 20 to any
${fwcmd} add pass tcp from any to any 20
# Разрешаваме достъп до ssh от домашната машина на администратора имаща IP 200.200.200.15
${fwcmd} add pass tcp from 200.200.200.15 22 to {isp}
${fwcmd} add pass tcp from {isp} to 200.200.200.15 22
# Ограничиваме трафик на врежовата карта vx2 в локалната мрежана нашата компания
${fwcmd} add deny all from 192.168.1.0/24 to ${net}:${mask} via vx1
${fwcmd} add deny all from ${net}:${mask} to 192.168.1.0/24 via vx1
# Разрешаваме работата на базовия портал TCP на интерфейса vx2
${fwcmd} add pass tcp from 192.168.1.0/24 to any 25 via vx2
${fwcmd} add pass tcp from any 25 to 192.168.1.0/24 via vx2
${fwcmd} add pass tcp from 192.168.1.0/24 to any 110 via vx2
${fwcmd} add pass tcp from any 110 to 192.168.1.0/24 via vx2
${fwcmd} add pass udp from 192.168.1.0/24 to any 53 via vx2
${fwcmd} add pass udp from any 53 to 192.168.1.0/24 via vx2
${fwcmd} add pass tcp from 192.168.1.0/24 to any 80 via vx2
${fwcmd} add pass tcp from any 80 to 192.168.1.0/24 via vx2
# Ограничаваме нивото на пропусквания по интерфейса vx2 на 64 Kb за входящия трафик
${fwcmd} add pipe 1 ip from any to any in via vx0
${fwcmd} add pipe 1 config bw 64Kbit/s
# Ограничаваме нимото на пропусквания по интерфейса vx2 на 64 Kb на изходящия трафик
${fwcmd} add pipe 2 ip from any to any out via vx0
${fwcmd} add pipe 2 config bw 64Kbit/s



   


Ключови думи: unix free bsd настройка рутер


Още уроци от тази рубрика


 
  • Подобни теми от myLinks
 

 1 посетител чете този урок (0 потребители и 1 гост)  
Активни потребители: ---
   
  

Еmail  
 

 

 
  • Интересно от Софтуер
 



IT-PLACE.NET © 2004 - 2008