ПредишенСледващото

Тук са определящи примери за различни ситуации. За strukturuIPTABLES. управление, архитектура и т.н. - вижте Linux цикъл: IPTABLES - Ръководство: Част 1 - IPTABLES база.

Setting се извършва на:

# Lsb_release -а
Не LSB модули са на разположение.
Дистрибутор ID: Debian
Описание: Debian GNU / Linux 6.0.7 (свиване)
Освободете: 6.0.7
Codename: преса

Създаване на настройки за IPTABLES файл:

Оставете го да тече:

# Коригират + х /etc/network/if-up.d/iptables.conf

ВАЖНО: Някои опции са посочени с две тирета - въпреки че в примерите те се показват като един! Имайте предвид, че ако правилата са копират директно от блога:

- - състояние
- - dport
- - TCP-флагове
- - отхвърляне-с

Тя добавя,

# Задаване на път да изпълним IPtables
IPTABLES = '/ sbin / IPTABLES "

# Изчистване на съществуващите правила за всички таблици и вериги
$ IPTABLES -F
$ IPTABLES -X

# Задаване на правила по подразбиране (ако не е работил повече от едно правило във веригата - ще работи правило тук)
$ IPTABLES -P INPUT DROP
$ IPTABLES -P OUTPUT ACCEPT
$ IPTABLES -P FORWARD ACCEPT

# Разрешаване на целия трафик в lo0 примка интерфейс

# Позволява трафик вече е инсталиран и създаване на нови връзки връзки:
$ IPTABLES -A INPUT -m състояние -държава ПОДОБНИ, създадена -j ACCEPT

# Оставя входящо SSH чрез eth0
$ IPTABLES -A INPUT -p TCP -i eth0 -dport 22 -j ACCEPT

Сега Нека разгледаме от повече регулации.

Три вида на таблици, използвани в IPTABLES:

Съответно, ние се интересуваме от третата маса филтър. В тази таблица има три вградени вериги:

  1. INPUT - за входящите пакети.
  2. НАПРЕД - да минат през тази машина на друга.
  3. ИЗХОД - изходящ.

Packet, която преминава през тези вериги, въз основа на правилата могат да бъдат пропуснати (ACCEPT) или отхвърлени (DROP):

Първи сме създали правило за наборите на входа на веригата поведението по подразбиране за пакети, които преминават през филтъра. Ако нито едно от правилата, дадени по-долу не се прилага към пакета - той ще бъде изхвърлен (DROP), без да уведоми изпращача:

$ IPTABLES -P INPUT DROP

Пакети, които преминават на филтър изход ще бъде съответно пропуснати:

Същото важи и за "транзит" пакети:

$ IPTABLES -P OUTPUT ACCEPT

$ IPTABLES -A INPUT -i ето -j ACCEPT

Зададе персонализирано правило (-а) в входен филтър пакети, преминаващи през интерфейса (-i) примка (ето), и изпълнява целта (-j) «приеме» (ACCEPT).

Следното правило използва модул (-т) държавата. който проверява състоянието на връзката се създава - свързаните и установен или ако съединението е подходящ за това правило - позволява:

$ IPTABLES -A INPUT -m състояние -държава ПОДОБНИ, създадена -j ACCEPT

Следното правило за филтриране на входящите връзки INPUT, посочено от нас:

$ IPTABLES -A INPUT -p TCP -i eth0 -dport 22 -j ACCEPT

Protocol (-p) TCP. интерфейс (-i) eth0. и пристанището на местоназначение, т.е. порт на нашия сървър, към който връзката е установена (-dport) 22.

Добавете няколко правила:

# Направете защита от DOS атаки:
$ IPTABLES -A INPUT -p TCP -м TCP -tcp-флагове SYN, ACK, FIN, RST RST -м граница Ограничен 1 / и -j ACCEPT

# Enable FTP
$ IPTABLES -A INPUT -i eth0 -p TCP -j ACCEPT -dport 21

# Разрешаване на HTTP
$ IPTABLES -A INPUT -i eth0 -p TCP -j ACCEPT -dport 80

# Enable HTTPS
$ IPTABLES -A INPUT -i eth0 -p TCP -j ACCEPT -dport 443

# SMTP е позволено само от мрежата 77120. ***. 1/24
$ IPTABLES -A INPUT -s 77.120. ***. 1/24 -i eth0 -p TCP -j ACCEPT -dport 25

# RazreshaemPOP3 само IP 77.120. ***. 46
$ IPTABLES -A INPUT -s 77.120. ***. 46 -i eth0 -p TCP -j ACCEPT -dport 110

# Активиране на DNS
$ IPTABLES -A INPUT -i eth0 -p UDP -sport 53 -j ACCEPT

# Достъп до пристанища 8081 и 8082 позволи само една от мрежите 91. ***. **. 0/24, 195. ***. ***. 0/23 и IP 37. ***. **. 174
.. За нето в 91 *** ** *** *** 0/24 0/23 195 37 *** 174 ** .......; правя
$ IPTABLES -A INPUT -p TCP -м TCP -s $ нетна -м мултипорт -dports 8081,8082 -j ACCEPT
свършен
$ IPTABLES -A INPUT -p TCP-м-м TCP мултипорт -dports 8081,8082 -j DROP

# Разрешаване на пинг
$ IPTABLES -A INPUT -p ICMP -j ACCEPT

Рестартирайте сценария, че правилата ще влязат в сила в същото време проверка за грешки:

В случай на грешки - това ще покаже коя линия някаква грешка. Например:

IPTABLES v1.4.8: неизвестен протокол `TCP-dport", посочени

Липсва пространство, след като TCP.

Преглед на действащите правила да използвате опцията -list:

# Iptables -list
Chain INPUT (политика DROP)
насочване на протежето дестинация неучастие източник
Приемане на всички - навсякъде където и да е
Приемане на всички - навсякъде където и да е държавна СВЪРЗАНА, създадена
ACCEPT TCP - навсякъде където и да е TCP диоптър: SSH
ACCEPT TCP - навсякъде където и TCP флагове: FIN, SYN, RST, ACK / RST граница: Ср 1 / сек разрушаване 5
ACCEPT TCP - навсякъде където и да е TCP диоптър: FTP
ACCEPT TCP - навсякъде където и да е TCP диоптър: WWW
ACCEPT TCP - навсякъде където и да е TCP диоптър: HTTPS
. ACCEPT TCP - 0 *** *** 77.colo.static.dc.volia.com/24 навсякъде TCP диоптър: SMTP ..
! ПРИЕМАМЕ TCP - 0 *** *** 77.colo.static.dc.volia.com/24 навсякъде TCP диоптър: SMTP ...
ACCEPT TCP - 46 *** *** 77.colo.static.dc.volia.com навсякъде TCP диоптър: POP3 ...
ACCEPT UDP - навсякъде където и да е UDP SPT: домейн
ACCEPT TCP -. 91 *** ** 0/24 навсякъде TCP многопортовите dports tproxy, 8082 ..
ACCEPT TCP - 195 *** *** 0/23 навсякъде TCP многопортовите dports tproxy, 8082 ...
ACCEPT TCP -. 37 *** *** 174 навсякъде TCP многопортовите dports tproxy, 8082 ..
DROP TCP - навсякъде където и да е TCP мултипорт dports tproxy, 8082
ACCEPT ICMP - навсякъде където и да е ICMP ехо-запитване

Верига НАПРЕД (политика ACCEPT)
насочване на протежето дестинация неучастие източник

Chain OUTPUT (политика ACCEPT)
насочване на протежето дестинация неучастие източник

А още няколко примера за използване.

Проверете състоянието на IPTABLES:

# Iptables -L -n-V
Chain INPUT (политика DROP 176 пакетчета, 36734 байта)
pkts байта мишена протежето неучастие в извън дестинация източник
0 0 приеме всички - ето * 0.0.0.0/0 0.0.0.0/0
179K 40M приеме всички - * * 0.0.0.0/0 0.0.0.0/0 членка, свързани, създадена
1100 ACCEPT TCP - eth0 * 0.0.0.0/0 0.0.0.0/0 TCP диоптър: 22
0 0 ПРИЕМА TCP - eth0 * 0.0.0.0/0 0.0.0.0/0 TCP DPT: 21
3180 ACCEPT TCP - eth0 * 0.0.0.0/0 0.0.0.0/0 TCP диоптър: 80
28 Януари ACCEPT ICMP - * * 0.0.0.0/0 0.0.0.0/0
1 60 ПРИЕМА TCP - * * 195.191.226.102 0.0.0.0/0 TCP DPT: 514
0 0 ACCEPT TCP - * * 91.218.228.236 0.0.0.0/0 TCP диоптър: 514

Верига НАПРЕД (политика ACCEPT 0 пакети, 0 байта)
pkts байта мишена протежето неучастие в извън дестинация източник

Chain OUTPUT (политика ACCEPT 180K пакети, 12M байта)
pkts байта мишена протежето неучастие в извън дестинация източник

Печат на настоящите правила, само вход:

# Iptables -L INPUT -н-V

# Iptables -L OUTPUT -н-V

Добавяне и изтриване на правила.

Печат на текущия правила, въведени от ред (номер правило):

# Iptables -L INPUT -н -line-номерата
Chain INPUT (политика DROP)
бр мишена протежето дестинация неучастие източник
1 приемаме всички - 0.0.0.0/0 0.0.0.0/0
2 приеме всички - 0.0.0.0/0 0.0.0.0/0 членка, свързани, създадена
3 ПРИЕМА TCP - 0.0.0.0/0 0.0.0.0/0 TCP DPT: 22
4 ПРИЕМА TCP - 0.0.0.0/0 0.0.0.0/0 TCP DPT: 21
5 ПРИЕМА TCP - 0.0.0.0/0 0.0.0.0/0 TCP DPT: 80
6 ПРИЕМА ICMP - 0.0.0.0/0 0.0.0.0/0
7 ACCEPT TCP - 195.191.226.102 0.0.0.0/0 TCP диоптър: 514
8 ACCEPT TCP - 91.218.228.236 0.0.0.0/0 TCP диоптър: 514

За да добавите правило до 5:

# Iptables -I INPUT 5, -i eth0 -p TCP -j ACCEPT -dport 8080

# Iptables -L INPUT -н -line-номерата | Впиши 80
5 ACCEPT TCP - 0.0.0.0/0 0.0.0.0/0 TCP диоптър: 8080
6 ПРИЕМА TCP - 0.0.0.0/0 0.0.0.0/0 TCP DPT: 80

Правилото е старата "напредва" на линия 6, новият - е 5.

Блокиране на входящи връзки към IP8.8.8.8:

# Iptables -I INPUT 7 -s 8.8.8.8 -j DROP

# Iptables -L INPUT -н -line-номерата | Впиши 8.8.8.8
7 Отстранете всички - 8.8.8.8 0.0.0.0/0

# Iptables -A OUTPUT -p ICMP -d www.facebook.com -j DROP

# Ping 173.252.101.26
Пинг 173.252.101.26 (173.252.101.26) 56 (84) байта от данни.
пинг: sendmsg: Операцията не е разрешена
пинг: sendmsg: Операцията не е разрешена

Нека да видим в правилата:

# Iptables -L OUTPUT -н -line-номерата
Chain OUTPUT (политика ACCEPT)
бр мишена протежето дестинация неучастие източник
1 капка TCP - 0.0.0.0/0 173.252.101.26

# Iptables -А INPUT -p TCP -destination-порт 22 -m Mac -mac-източник 00: 60: EF: 0b: f6: 1а -j ACCEPT

# Iptables -А INPUT -p TCP -destination-порт 22 -m iprange -SRC-гама 10.0.0.5-10.0.0.10 -j ACCEPT

За ограничения с connlimit модул. За да позволите само на 3 SSH връзка на клиента:

# Iptables -А INPUT -p TCP-син -dport 22 -m connlimit -connlimit-горе 3 -j REJECT

Определете броя на исканията за HTTP до 20:

# Iptables -p TCP-син -dport 80 -m connlimit -connlimit-горе 20 -connlimit-маска 24 -j DROP

-connlimit-горе 3: показва, че правило се прилага само, ако броят на връзките надвишава 3;

-connlimit-маска 24: уточнява маската мрежа.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!