Нови статии
bash scripts
CPU-frequency scalin...
Oбновявания на ОС W...
install zoneminder 1...
Installing mysql Mar...
Теми във форума
Нови теми
Малък лек и удобен д...
Клавишни комбинации ...
Инсталация на Arch L...
Защитна стена за мик...
Linux
Най-активни теми
Color console linux [4]
Клавишни комбинац... [1]
Защитна стена за ... [1]
Linux [1]
Малък лек и удобе... [0]
Приятели
Сега
Времето
Йерархия на статиите
Статии » Линукс и UNIX » Защитните стени под Linux
Защитните стени под Linux
Ще разгледаме какви настройки са необходими за един сървър от нисък клас, като ще се разгледа

конфигурационения файл за iptables.

Хубаво е да се знае, че важни машини/мрежи седят зад специален компютър, конфигуриран само

като защитна стена firewall. Такива комбинации могат да са (firewall/server): BSD/w2k; linux/nt с т.н.

Ако се налага наистина тежка защита този вариант е едно добро решение


Конфигуриране на iptables за Линукс.

Като начало трябва да се добави поддръжката на защитна стена в ядрото на опрационата система.

Товастава от (menuconfig) Networking Support[Network firewalls,

TCP/IPNetworking, IP: firewalling, IP: firewall packet logging]

Network packetfiltering IP: Netfilter configuration.


Сега трябва да се прекомпилира ядрото и да се направи активно.

iptables се използва както за конфигурирането на IP филтрирането, така и за транслирането на

мрежови адреси. За улеснение са добавени 2 таблици с правила - filter и nat. Първата таблица е по

подразбиране ако не е зададена опцията -t. За таблицата filter съществуват 3 вериги (chains) а те са:

INPUT; FORWARD и OUTPUT. Тук ще разгледаме само таблица filter. Общия вид на командата е:

iptables команда правило разширения. Ето и списък на някои от опциите (за пълен списък man

iptables).

-A верига


Добавя едно или повече правил акъм края на указаната верига. Ако е подадено име на хост като

изпращач или като получател и то съответства на повече от 1 IP адрес, правилото ще бъде добавено

за всеки адрес.

-I верига номер_на_правило

Вмъква едно или повече правила в началото на указаната верига. Ако е подадено имена хост като

изпращач или като получател и то съответства на повече от 1 IP адрес, правилото ще бъде добавено

за всеки адрес.

-D верига

Изтрива едно или повече правила от зададената верига, съответстващо на спецификацията на


правилото.

-D верига номер_на_правило

Изтрива правилото намиращо се на позиция номер-на-правило в указаната верига. Позицията на

правилото започва от 1 за първото правило на веригата.

-R верига номер_на_правило

Замества правилото, намиращо се на позиция номер-на-правило в дадената верига с дефинираната

спецификация на правило.

-C верига

Проверява дали дейтаграмата, описана от зададеното правило, съотвтства на определената верига.


Тази команда ще върне съобщение, описващо как веригата обработва дейтаграмата. Много ползно

при тестването на защитната стена.

-L [верига]

Генерира списък на правилата в посочената верига или във всички вериги, ако не е посочена верига.

-F [верига]

Изчиства правилата в посочената верига или във всички вериги, ако не е посочена такава.

-Z [верига]

Нулира броячите на дейтаграми и байтове за всички правила в посочената верига или във всички

вериги, ако не е посочена такава.


-N [верига]

Създава нова верига с посоченото име. Верига със същото име не трябва да съществува. Така се

създават потребителско-дефинирани вериги.

-X [верига]

Изтрива посочената потребителска верига или всички потребителски вериги, ако не е посочена

такава. За да бъде успеша тази команда, не трябва да има препратки към посочените вериги в коятои

да е друга верига от правилата.

-P верига политика

Задава подразбираща се политика за посочената верика като указаната политика. Валидните


политики за защитна стена са ACCEPT, DROP, QUEUE и RETURN. ACCEPT позволява на

дейтаграмата да премине, при DROP дейтаграмата се игнорира, при QUEUE дейтаграмата се

изпраща в потребителското пространство за по - нататъшна обработка, а при RETURN кодът за IP

защитна стена се връща към веригата от защитната стена, която е извикала веригата, съдържаща

това правило и продължава обработката от правилото, следващо извикващото правило.

Параметри за задаване на правила

Има множество параметри на iptables, които съставят спецификацията на правило. Където е

необходима спецификаци на правило, трябва да се подаде u1074 всеки един от тези параметри или ще се

възприемат техните стойности по подразбиране.


-p [!]протокол

Определя протокола на дейтаграмата, която ще съответства на това правило. Валидните имена за

протоколо са tcp, udp, icmp или число ако знаете номера на IP протокола (cat /etc/protocols). Ако се

изплзва знак !, правилото се инвентира и дейтаграата ще съответства на всеки протокол, различен от

посочения. Ако този параметър не е подаден, по подразбиране ще се възприеат всички протоколи.

-s [!]адрес[/маска]

Определя изходния адрес на дейтаграмата, която съответства на това правило. Адресът може да

бъде подаден като име на хост, име на мрежа или IP адрес. Маската е незадължителна и може да се

подаде по 2 начина - 255.255.255.0 или с /24 вариант-а...


-d [!]адрес[/маска]

Задава адрес и порт на получателя на дейтаграмата, която съответства на това правило. Кодирането

на този параметър е същото както при -s.

-j цел

Задава какво действие трябва да се предприеме, при откриване на съответствие с това правило. За

този параметър можете да мислите като за команда "иди на". Валидни цели са ACCEPT, DROP,

QUEUE и RETURN. Можете да посочите името на потребителски дефинирана верига, където да

продължи обработката. Можете да зададете името на целта чрез разширение. Ако този параметър е


пропуснат, при съответствие на дейтаграмата не се предприемат никакви действия освен да се

актуализират броячите на дейтаграми и байтове за това правило.

-i [!]име-на-интерфейс

Задава интерфейса, на който е получена дейтаграмата. Ако името на интерфейса завършва с + тогава

всеки интерфейс с подадения низ ще действа (пример: -i ! eth+ -- всички интерфейси освен

мрежовите устройства)

-o [!]име-на-интерфейс

Задава интерфейса, на който ще бъде предадена дейтаграмата. Този аргумент се кодира по същия

начин както -i.


Опции

-v Указва на iptables да генерира по - подробен изход. Това предоставя овече информация.

-n Указва на iptables да показва IP адреса и портовете като номера, без да с опитва да ги свърже с

техните съответстващи имена.

-x Указва всички числа в изхода на iptables да бъдат разшиени до тяхната пълна стойност без

закръгляване.

-line-numbers Указва при изброяване на правилата u1076 да бъдат показвани номерата на редовете.


Номерът на реда ще съответства на позицията на правилото във веригата.

Разширения

iptables е обновена версия на защитната стена на Линукс при 2.4 ядрата. Разликата м/у ipchains и по

- старите версии не е особено голяма, с изключение на разширяемостта. Можете да разширите до

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

 

 

 

Съществуват някои стандартни разширения, които осигуряват част от възможностите, предлагани

от iptables. За да се използва едно разширение, трябва да се зададе неговото име чрез аргумента на


iptables -m име. Следващия списък показва опциите -m и -p, които определят контекста на

разширението, както и опциите, предоставяни от това разширение.

TCP разширения: използвани с -m tcp -p tcp

-sport [!] [порт[:порт]]

Задава порта, който трябва да използва от изпращача на дейтаграмата, за да съответства на това

правило. Портовете могат да бъдат посочени като интервал, разделени с двоеточие. Пример: 80:82

за портове 80, 81 и 82 вкл.

-dport [!] [порт[:порт]]

Задавапорта, който трябва да се използва от получателя на дейтаграмата, за да съответства на това


правило. Кодира се както при --sport.

-tcp-flags [!] маска комп

Указва, че това правило ще съответства, когато TCP флаговете в дейтаграмата съвпадат с

посочените от маска и комп. Маската е списък от разделени със запетая флагове, които трябва да

бъдат проверени при извършване на теста. комп е списък от разделени със запетая флагове, които

трябва да бъдат подадени, за да съвпада правилото. Валидни флагове са: SYN, ACK, FIN, RST,

URG, PSH, ALL и NONE. See RFC-793.

-tcp-flags SYN,RST,ACK SYN

Указва. че правилото съответства само на дейтаграми с вдигнат бит SYN и свалени битове ACK и


FIN. Дейтаграмите с тези опции се използват за отваряне на TCP връзки, затова тази възможност

може да бъде изпозлвана за управление на заявките за връзки.

UDP разширения: използвани с -m udp -p udp

-sport [!] [порт[:порт]]

Определя порта, който трябва да се използва от изпращача на дейтаграмата, за да съответства на

това правило. Портовете могат да бъдат посочени като интервал, разделени с двоеточие. Пример:

80:82 за портове 80, 81 и 82 вкл.

-dport [!] [порт[:порт]]

Определя порта, който трябва да се използва от получателя на дейтаграмата, за да съвпада с това


правило. Кодира се както при --sport

ICMP разширения: използвани с -m icmp -p icmp

-icmp-type [!] име-на-тип

Определя типа на ICMP съобщението, на което трябва да съотетства това правило. Типът може да

бъде зададен чрез номер или чрез име. Някои валидни имена са: echo-request, echo-reply, sourcequench,

time-exceeded, destination-unreachable, network-unreachable, host-unreachable, protocolunreachable.

MAC разширения________________: използвани с -m mac

-mac-source [!] адрес


Задава Ethernet адрес на хоста, който е предал дейтаграмата, за да съответства на това правило.

Това има смисъл само в правило във входящата или препредаващата верига, защото ще предаваме

всяка дейтаграма, която премине изходящата верига.

Най - лесно е да се направи стартов файл в /etc/rc.d. (например rc.firewall)от вида:

#!/bin/sh

# chmod 755 rc.firewall

IPT=/usr/sbin/iptables

 

# Our IP space


OURNET="192.168.1.0/24"

OURBCAST="192.168.1.255"

OURDEV="eth0"

# Out

OUTADDR="0/0"

OUTDEV="eth1"


# TCP Services

TCPIN="ssh ftp"

TCPOUT="smtp www ftp ftp-data irc ssh telnet"

# UDP Services

UDPIN="domain"

UDPOUT="domain"

# ICMP Services


# 0 Echo Reply

# 3 Destination Unreachable

# 4 Source Quench

# 5 Redirect (change route)

# 8 Echo Request

# 11 Time Exceeded

# 12 Parameter Problem

# 13 Timestamp Request

# 14 Timestamp Reply


# 15 Information Request

# 16 Information Reply

# 17 Address Mask Request

# 18 Address Mask Reply

ICMPIN="0 3 11"

ICMPOUT="8 3 11"

# Chisti rulez wyw whodqshtata tablitza

$IPT -F FORWARD


# Otkazwane na whodqsht dostyp

$IPT -P FORWARD deny

# Ignorira polucheni datagrams

$IPT -A INPUT -i $ANYDEV -j DROP

# Spoof protection

$IPT -A FORWARD -s $OURNET -i $ANYDEV -j DROP

# Smurf protection

$IPT -A FORWARD -m multiport -p icmp -i $ANYDEV -d $OURNET -j DENY

# Priemane na fragmenti


$IPT -A FORWARD -f -j ACCEPT

# TCP datagramz ACK (+)

$IPT -A FORWARD -m multiport -p tcp -d $OURNET --dports $TCPIN /

! --tcp-flags SYN,ACK ACK -j ACCEPT

$IPT -A FORWARD -m multiport -p tcp -s $OURNET --sports $TCPIN /

! --tcp-flags SYN,ACK ACK -j ACCEPT

# TCP Incoming

$IPT -A FORWARD -m multiport -p tcp -i $ANYDEV -d $OURNET $TCPIN /

--syn -j ACCEPT


# TCP Outgoing

$IPT -A FORWARD -m multiport -p tcp -i $OURDEV -d $ANYADDR /

--dports $TCPOUT --syn -j ACCEPT

#UDP Incoming

$IPT -A FORWARD -m multiport -p udp -i $ANYDEV -d $OURNET /

--dports $UDPIN -j ACCEPT

$IPT -A FORWARD -m multiport -p udp -i $ANYDEV -s $OURNET /

--sports $UDPIN -j ACCEPT

# UDP Outgoing


$IPT -A FORWARD -m multiport -p udp -i $OURDEV -d $ANYADDR /

--dports $UDPOUT -j ACCEPT

$IPT -A FORWARD -m multiport -p udp -i $OURDEV -s $ANYADDR /

--sports $UDPOUT -j ACCEPT

# ICMP Incoming

$IPT -A FORWARD -m multiport -p icmp -i $ANYDEV -d $OURNET /

--dports $ICMPIN -j ACCEPT

# ICMP Outgoing

$IPT -A FORWARD -m multiport -p icmp -i $OURDEV -d $ANYADDR /


--dports $ICMPOUT -j ACCEPT

Придавт му се права за изпълнение с chmod 755 rc.firewall . Сега можете да се напише ./rc.firewall

(cd /etc/rc.d ) start|stop|restart в зависимост от конкретните нужди.. Този скрипт може да се промени

по желание



Публикувана от admin на September 26 2010
Коментари
Няма написани коментари
Напишете коментар
Трябва да сте регистриран за да напишете коментар
Оценки
Оценяването е достъпно единствено за потребителите.

Влезте в акаунта си или се регистрирайте за да можете да давате оценки.

Няма оценки
Вход
Потребител

Парола



Не сте потребител?
Натиснете тук за да се регистрирате.

Забравихте паролата си?
Поискате си нова тук.
Downloads

New Downloads

NAVIGON-Europe ...
NAVIGON Europe ...
NAVIGON Europe ...
NAVIGON Europe ...
µTorrent 3.4.1 ...
BitTorrent 7.9....
ProgDVB 7.04.2 ...
ProgDVB 7.04.2 ...
Wine 1.7.17
sakis3g
Wise Disk Clean...
DAEMON Tools Li...
opam
TurboFTP 6.30 B...
Skype 6.3.73.10...
FileZilla 3.7.0...
ChrisTV 5.75
BSPlayer Pro 2....
Rotativki
SquirrelMail + ...

Top 10 Downloads

n-Track Studio ... [8287]
Super MP3 Downl... [8100]
Registry Mechan... [8082]
Microsoft Secur... [8019]
Hiren`s v10.0.9 [7288]
Rotativki [7129]
K-Lite Mega Cod... [6824]
BitComet 1.21 F... [6736]
Slax + Hiren's ... [4798]
WinSetup From USB [4469]
Ново от Калдата