Тук са определящи примери за различни ситуации. За 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:
Съответно, ние се интересуваме от третата маса филтър. В тази таблица има три вградени вериги:
- INPUT - за входящите пакети.
- НАПРЕД - да минат през тази машина на друга.
- ИЗХОД - изходящ.
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: уточнява маската мрежа.
Свързани статии