IPTABLES

Настройки свързвани с конфигуриране на вътрешна мрежа и Интернет.

Модератори: Freya, Kulu Ngile

Мнениеот Progress » Пет 26, Яну, 2007 15:47

IPTABLES

Изображение

IPTABLES е firewall с невероятни възможности.. С него можете да филтрирате пакети или да маскирате ip адреси или портове(ip masquerade, NAT, PAT) и тн..

За да извършва филтриране на пакети или маскиране iptables се води по така наречените вериги(chains)- логически групиран списък от правила. Всяко правило от веригата е тест, на който ip хедърът се подлага.

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

Спецификацията на правило( rule specification ) е правилото или ( наборът от правила ), на което пакетът трябва да отговаря - тестът. Едно и също основно правило може да съществува в няколко вериги, така че аргументът верига(вижте по-долу) обикновено е задължителен. Ако целта на веригата е една от следните: ACCEPT (пропускане на пакета), DROP (отхвърляне на пакета), REJECT (отхвърляне на пакета и връщане на съобщение за грешка) или MASQUERADE (маскиране на пакета), тази цел завършва веригата, така че в тази верига няма да бъдат изпълнявани повече правила.

Всички правила в iptables имат основен синтаксис. Този синтаксис е:


Код за потвърждение: Избери целия код
iptables [-t таблица] команда верига спецификация-на-правило [опции]


Това е обобщение и синтаксисът на някои команди е леко модифициран.

Таблици на IPTABLES

Първата част от синтаксиса на iptables е незадължителната опция -t таблица.Подразбиращата се таблица е filter. Възможните таблици включват filter, mangle и nat. Таблицата mangle се използва, когато искате да модифицирате TOS(Type of Service) битове или да поставите върху пакета маркер, който netfilter може да използва за поставяне в опашка и на други неща. Таблицата nat се използва за SNAT(Source NAT), DNAT (Destination NAT) и маскиране(masquerade). Тя имплементира веригите PREROUTING или POSTROUTING(преди или след маршрутизиране).

За да разберете по-добре как работят таблиците, стартирайте всяка от следните команди и забележете резултата.

Код за потвърждение: Избери целия код
  iptables -L -n
  iptables -t filter -L -n
  iptables -t mangle -L -n
  iptables -t nat -L -n


Първите две команди са идентични. Третата и четвъртата ще изведат нещо много различно от тях и ще ви помогнат да разберете веригите, включени във всяка таблица.

Команди и Опции на iptables

-A (append - добавяне)-Добавяне на правило към края на дадена верига. Тази команда приема като задължителни аргументи име на верига и спецификация на правило

-D (delete-изтриване)- Изтриване на правилата от дадена верига. Тази команда приема като задължителни аргументи име на верига и спецификация на правило или номер на правило.

-C (check-проверка)-изискват се -s, -d, -p, -i . Тази команда приема като задължителни аргументи име на верига и спецификация на правило.

-I (insert-вмъкване)- Вмъкване на правиала в зададена верига. Разширение на -А, но спецификацията на правило се поставя пред зададен номер на правило. Тази команда приема като задъжителни аргументи име на верига, номер на правило, пред което се вмъква и спецификацията на правило

-R (replace-заменяне)- Заменяне на правило в зададена верига. Комбинация от Insert и Delete. Тази команда приема като задължителни аргументи име на верига, номер на правило и спецификация на правило. Спецификацията замества номера в зададената верига.

-F (flush-изчистване)- Изтриване на всички правила в дадена верига или във всички вериги, ако не е зададено име на верига.

-L (list-списък)- Извеждане на списък на всички правила в дадена верига или във всички вериги, ако не е зададено име на верига.

-z (zero-нулиране)- Нулиране на броячите. Нулира броячите в зададена верига или във всички вериги, ако не е зададено име на верига.

-N (new-нова)- Създаване на потребителски дефинирана верига. Тази команда изисква само име на веригакато задължителен аргумент.

-X (Изтриване на потребителски дефинирана верига)- Тази команда изисква име на верига. Тази верига трябва да бъде празна. Подрабиращите се вериги не могат да бъдат изчистени.

-P (policy-политика)- Задаване на политика за дадена верига. Тази команда приема като задължителни аргументи име на верига и цел

-E (rename chain-преименуване на верига)- Тази команда приема като задължителни аргументи старо име на верига и ново име на верига.

-h (help-помощ)- Помощ за синтаксиса на командите..

Опции на IPTABLES

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

-p [!] протокол - Може да приема ! (например -р ! icmp, което отговаря на всички други съобщения , с изключение на icmp съобщенията) или all, което отговаря на всички протоколи.

-s [!] адрес - Адрес на източника. Може да приема !, мреова маска или порт. Адресът 0/0 отговаря на всички адреси и е подразбиращият се, ако не зададете опция -s.

-d [!] адрес - Адрес на получателя. Същите критерии както за -s.

-i [!] име - Име на входния интерфейс. Mже да приема !. Приема в името на интерфейса наставка +, която обозначава всички интерфейси от съответния тип; тоест ррр+ означава всички РРР интерфейси (ррр0 - рррN). Тази опция може да се отнася само към входния интерфейс, така че не може да бъде използвана във веригите OUTPUT или POSTROUTING (или във вериги, извикани от тези вериги).

-o [!] име - Име на изходния интерфейс. Подобна е на опцията -i, но се прилага само за изходния интерфейс и съответните вериги.

-j цел - Действието (целта) за правилното (име на потребителски дефинирана верига или специална стойност), ако пакетът отговаря на него. Специалните стойности ACCEPT ( propuskane na paketa), DROP ( отхвърляне на пакета), QUEUE ( предаване на пакета към пространството на потребителя ) или RETURN ( спиране на изпълнението на тази верига и продължаване от следващото правило в предходната [извикваща] верига ), завършват веригата.

-n - Указва адресите и портовете да се извегдат като числа. По подразбиране iptables се опитва да ги преобразува.

-v - Режим на подробно извеждане. Извежда интерфейсния адрес , опциите на правилата (ако има такива), TOS маските и броячите на пакетите и байтовете. Използвайте -vv (2 v-та) за изключително подробно извеждане.

-x Разширяване на чиалата. Когато броячите на пакетите и байтовете се визуализират, не се използват съкращенията K, M или G, а се визуализират само нули.

[!] -f - Вторият и следващите фрагменти. Може да бъде предшествана от !.

--line-numbers - Използва се при извеждане на правилата и показва номерата на редовете преди спецификациите.

--sport [!] порт[:порт] - Валидна е само сле опция -р tcp или -р udp. Задава порт на източника или диапазон от портове ( диапазоните се задават чрез използване на знаковте - или : за разделяне на крайната и началната стойност на диапазона). Можете да я използвате с опцията -m multiport ( до 15 порта могат да бъдат зададени). Ето някои примерни фрагменти от правилата:

-p tcp --sport 0:1023
-m multiport -p tcp --sport 25,110


--dport [!] порт[:порт] - Валидна е само след някоя от опциите -р tcp или -p udp. Подобна е на опцията --sport, но задава порта (портовете) на местоназначението.

--tcp-flags [!] списък с флагове - Валидна е само след опцията -р tcp. Тази опция изцледва списъка с флагове и дава съвпадение само ако те са единствените вдигнати флагове. Възможните флагове включват: SYN, ACK, FIN, RST, URG, PSH и ALL NONE. Ако искате да изследвате флаговете SYN, ACK, RST и FIN, но да приемате само тези, които са с вдигнати SYN и ACK флагове (отговор за нова конекция), фрагментът от правилото ще изглежда по следния начин:

-p tcp --tcp-flags SYN,ACK,RST,FIN SYN,ACK

[!]--syn - Валидна е само след опцията -p tcp. Еквивалентна е на следното:

--tcp-flags SYN,RST,ACK SYN

--icmp-type [!]ICMP [под]тип - Валидна е само с опцията -p icmp.

Следват валидните ICMP типове и подтипове ( с отместване навътре под главния тип):

echo-replay (pong)
destination-unreachable
network-unreachable
host-unreachable
protocol-unreachable
port-unreachable
fragmentation-needed
source-route-failed
network-unknown
host-unknown
network-prohibited
host-prohibited
TOS-network-unreachable
TOS-host-unreachable
communication-prohibited
host-precedence-violation
precedence-cutoff
source-quench
redirect
network-redirect
host-redirect
TOS-network-redirect
TOS-host-redirect
echo-request (ping)
router-advertisement
router-solicitation
time-exceeded (ttl-exceeded)
ttl-zero-during-transmit
ttl-zero-during-reassembly
parameter-problem
ip-header-bad
required-option-missing
timestamp-request
timestamp-reply
address-mask-request
address-mask-reply


--mac-source [!]mac-адрес - Валидна само след опцята -m mac. Полезна е във веригите INPUT или PREROUTING. Фрагментът от правилото ще изглежда по следния начин:

Код за потвърждение: Избери целия код
-m mac --mac-source 00:00:ab:c0:45:a8


--limit скорост - Максималната скорост на съвпаденията (средна стойност). Стойността по подразбиране е 3/hour; всичко под тази скорост се отхвърля. Ако вашата система не може да поддържа повече от една нова конекция за секунда, можете да използвате limit със следния фрагмент от правило

Код за потвърждение: Избери целия код
-p tcp --syn


за да предпазите вашия сървър от претоварване, въпрки че това обикновено се използва с целта LOG, за да предпазите дневниците от прекалено бързо разрастване. Скоростта може да включва период от време( подразбиращата се стойност е /hour) - /minute, /second, /hour или /day. Ето един примерен фрагмент от правило:

Код за потвърждение: Избери целия код
-m limit --limit 1/sec


--limit-burst брой - Максималният начален брой пакети, които да съвпадат, преди да започне използването на предходящото --limit скорост. Тази стойност се увеличава с едно всеки път, когато предходящото условие --limit скорост не е изпълнено. Подразбиращата се стойност за --limit-burst е 5.

--port [порт[,порт]] - Валидна е само с опцията -p tcp или -p udp и сле опцията -m multiport ( вижте фрагмента от правилото, който следва).Съвпадение има само ако адресът на източника, и адресът на получателя са едни и същи и съвпадат с опционално зададения порт ( позволени са до 15 разделени със запетаи портове). Ето един примерен фрагмент от правиото за множество портове, който съвпада само с портовете 25 и 110:

Код за потвърждение: Избери целия код
-m multiport -p tcp -- port 25,110


--mark стойност[/маска] - Съвпада с пакетите с даден маркер (стойност без знак). Тази стойност трябва да бъде зададена чрез целта MARK.

--uid-owner uid -Валидна е само когато се използва във веригата OUTPUT. Идентифицира пакетите, създадени от определен потребител, и дори тогава работи само за някои лоакално създадени пакети.

-------------
Източник

За управление на IPTABLES има и графични инструменти. Едни от най-популярните са Guarddog и Firestarter.
Аватар
Progress
Участник
 
Мнения: 562
Регистриран на: Сря 24, Яну, 2007 20:12

Мнениеот Kulu Ngile » Пет 26, Яну, 2007 17:37

*bravo* *thumbs*
Ако съдбата е срещу теб, толкова по-зле за нея.

Изображение
APT HOWTO
Kulu Ngile
Унуфри
 
Мнения: 1233
Регистриран на: Съб 04, Мар, 2006 1:04
Местоположение: София

Мнениеот Kulu Ngile » Вто 06, Фев, 2007 13:18

-C (check-проверка)-изискват се -s, -d, -p, -i . Тази команда приема като задължителни аргументи име на верига и спецификация на правило.

Тази команда не мога да я намеря, нито в man страницата, нито мога да я изпълня :shock:
Ако съдбата е срещу теб, толкова по-зле за нея.

Изображение
APT HOWTO
Kulu Ngile
Унуфри
 
Мнения: 1233
Регистриран на: Съб 04, Мар, 2006 1:04
Местоположение: София


Назад към Мрежови настройки

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 0 госта

cron