Как да използвате Iptables Netfilter команди на Linux

Съдържание

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

В случай на дистрибуции на Linux, повечето от тях разполагат с усъвършенствани инструменти за прилагане на филтър към мрежови пакети както на ниво обработка на мрежови пакети за управление при въвеждане, движение, контрол и изход на стека. Мрежи в ядрото на използваната система , следователно, като се започне с ядро ​​2.4, бяха въведени iptables, които също се наричат ​​netfilter и те имат по -високо ниво на сигурност и практични функционалности за защита на системата.

iptables обработва IPv4 филтриране, докато ip6tables обработва IPv6 филтриране в днешните мрежи.
Solvetic ще направи анализ за това как работи iptables и някои от по -практичните команди, които можем да вземем от него.

1. Пакетно филтриране в Linux


Ядрото на дистрибуциите на Linux използва инструмента Netfilter за извършване на процеса на филтриране на пакети и по този начин изпълнява задачите по тяхното получаване или спиране.

Правила, вградени в NetfilterNetfilter е включен по подразбиране в ядрото на Linux и има три таблици или списъци с правила, интегрирани по следния начин:

  • филтър: Отнася се до таблицата по подразбиране, предназначена за управление на пакети.
  • nat: Неговата функция е да променя пакети, създадени в нова връзка, използвани предимно от NAT.
  • mangle: Използването му се прилага, когато трябва да се променят конкретни мрежови пакети.

Сега всяка таблица има група вградени вериги, които са свързани с действията, които могат да бъдат извършени от netfilter, това са:

Правила за филтриращи таблициВградените низове за филтърната таблица са:

  • ВХОД: Той е свързан с пакетите, които са предназначени за хоста.
  • ИЗХОД: Това работи върху мрежови пакети, генерирани локално.
  • НАПРЕД.: Свързва пакетите, които са били насочени през основния хост.

Правила за nat таблициВградените низове за таблицата nat са:

  • ИЗТИГВАНЕ: Неговата функция е да променя мрежовите пакети веднага щом пристигнат.
  • ИЗХОД: Той е проектиран да променя мрежови пакети, които са създадени локално и се активира преди да бъдат изпратени.
  • POSTROUTING: Създаден за промяна на пакети, преди да бъде изпратен в световен мащаб.

Правила за мангрови дъскиВградените вериги за мангровата маса са:

  • ВХОД: Проектиран за промяна на мрежовите пакети, предназначени за основния хост.
  • ИЗХОД: Създаден за промяна на локално създадените мрежови пакети и работи преди да бъдат изпратени.
  • НАПРЕД.: Променя пакетите, които са били насочени през основния хост.
  • ИЗТИГВАНЕ: Вашата задача е да промените входящите пакети, преди да бъдат насочени.
  • POSTROUTING: Променя мрежовите пакети преди процеса на изпращане.

Всеки мрежов пакет, получен или изпратен от операционната система Linux, винаги е свързан с поне една таблица. Сега нека разберем някои от по -полезните команди, които можем да използваме с iptables.

2. Показване на състоянието на защитната стена

Етап 1
За да знаем текущото състояние на защитната стена, изпълняваме следния ред:

 sudo iptables -L -n -v 

Увеличете

Стъпка 2
Там можем да потвърдим всяка верига със съответните нива на управлявани пакети, параметрите, използвани в тази команда, са:

-ЛПоказване на правилата на списъка.

-vГенерира подробна информация, като име на интерфейс, плюс опции за правила, плюс броячи на пакети и байтове, също са изброени, със суфикс „K“, „M“ или „G“ за опции съответно 1000, 1 000 000 и 1 000 000 000.

-нПоказва IP адреса и порта в цифров формат.

Стъпка 3
Ако желаете, вижте този резултат с брой редове, можем да изпълним следното:

 iptables -n -L -v --line -числа 

Увеличете

3. Спрете, рестартирайте или стартирайте iptables в Linux

Етап 1
Основните команди за управление на задачите на iptables на ниво начало или спиране са:

 service iptables stop service iptables start service iptables рестартиране
Стъпка 2
Също така ще бъде възможно да използвате командата iptables, за да спрете защитната стена и да премахнете всички правила като това:
 iptables -F iptables -X iptables -t nat -F iptables -t nat -X iptables -t mangle -F iptables -t mangle -X iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P НАПРЕД ПРИЕМАНЕ
Стъпка 3
Определените параметри са:

-FПремахнете всички правила.

-ХИзтриване на низ.

-Ttable_name: Изберете таблицата (с име nat или mangle) и изтрийте или изхвърлете правилата.

-ПЗадайте политика по подразбиране, като DROP, REJECT или ACCEPT.

4. Добавете нови правила за защитната стена в Linux

Етап 1
Една от най -практичните задачи на iptables е да създаде определени правила за правилното управление на пакетите, да вмъкнем едно или повече правила в избраната верига, ще използваме следния синтаксис, където първо трябва да бъдат открити номерата на редовете:

 iptables -L INPUT -n --line -числа 
Стъпка 2
например, нека добавим следното правило:
 iptables -I INPUT 2 -s 192.168.0.50 -j DROP 
Стъпка 3
По -късно ще видим правилата, използвайки горната команда. Там виждаме, че създаденото правило е добавено в ред 3, както е посочено.

Увеличете

5. Изтрийте правило за защитна стена в Linux

Етап 1
На първо място, ние трябва да покажем правилата, които са създадени, за да определим кои точно трябва да бъдат елиминирани, за да получим тази информация, имаме следните опции:

 iptables -L INPUT -n -line -numbers iptables -L OUTPUT -n --line -numbers iptables -L OUTPUT -n --line -numbers | по-малко
Стъпка 2
Сега, за да изтрием правило 3, създадено по -рано, ще изпълним следното:
 iptables -D ВХОД 3 

Увеличете

6. Съхранявайте и възстановявайте правилата на iptables в Linux

Етап 1
Всеки път, когато правим промяна в правилата на iptables, трябва да продължим да ги запазваме, за това е достатъчно да изпълним следния ред:

 услугата iptables знае 
Стъпка 2
Можем просто да възстановим тези правила, които сме съхранили, като изпълним следното:
 услугата iptables се рестартира 

7. Задайте правила по подразбиране в Linux


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

Етап 1
За да премахнем целия трафик, който изпълняваме:

 iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P НАПРЕД
Стъпка 2
За да премахнете целия входящ трафик:
 iptables -P INPUT DROP iptables -P ПРЕДВАРИТЕЛНО DROP iptables -P OUTPUT ACCEPT iptables -A INPUT -m състояние -НОВО, УСТАНОВЕНО -j ACCEPT

Увеличете

8. Блокиране на IP адрес в Linux

С iptables ще бъде възможно да се блокира определен IP адрес, за да се предотврати достъпът до системата до мрежови пакети. За тази задача имаме следните опции:

 iptables -A INPUT -s 192.168.0.14 -j DROP (Специфичен IP) iptables -A INPUT -s 192.168.0.0/24 -j DROP (Адресен обхват)

9. Блокиране на входящи заявки за порт в Linux

Етап 1
Друга типична задача за сигурност е да се ограничи пакетният достъп през определен порт, като с iptables имаме следните опции:

Блокирайте всички действияБлокирайте всички действия за конкретен порт, като изпълните:

 iptables -A INPUT -p tcp --dport 80 -j DROP iptables -A INPUT -i eth1 -p tcp --dport 80 -j DROP

Блокиране на портБлокирайте порт за конкретен IP адрес:

 iptables -A INPUT -p tcp -s 192.168.0.14 --dport 80 -j DROP iptables -A INPUT -i eth1 -p tcp -s 192.168.0.1/24 --dport 80 -j DROP

Блокиране на изходящ IP адрес
Възможно е да блокирате изходящия трафик към конкретен хост или домейн, например Solvetic.com, за това изпълняваме следното:

 хост -t към solutiontic.com 

Увеличете

Стъпка 2
Сега, с този IP адрес, продължаваме да блокираме:

 iptables -A ИЗХОД -d 178.33.118.246 -j DROP 
Стъпка 3
Също така ще бъде възможно да блокирате целия домейн по следния начин:
 iptables -A ИЗХОД -p tcp -d www.solvetic.com -j DROP 

10. Независимо дали да разрешите или не мрежовия трафик, използвайки MAC адрес в Linux

Друга възможност за използване е да ограничите или разрешите използването на пакети въз основа на MAC адреса на избраното устройство. За това ще използваме една от следните опции:

 iptables -A INPUT -m mac --mac -source 00: 2F: EF: 85: 04: 09 -j DROP (Забрана на трафик от избрания MAC адрес) iptables -A INPUT -p tcp --destination -port 22 -m mac --mac -source 00: 2F: EF: 85: 04: 09 -j ACCEPT (Поддържа пакети от адреса, посочен само от порт 22)

11. Блокирайте или разрешете ICMP заявки в Linux


Протоколът ICMP (Internet Control Message Protocol) е протокол, разработен за управление на информация, свързана с грешки в компютри в локална мрежа, така че с този протокол могат да се отправят отдалечени заявки за проверка на наличността. На екип и това по отношение на сигурността може да бъде деликатно .

Етап 1
Можем да изпълним следните редове, за да избегнем ICMP заявки в Linux:

 iptables -A INPUT -p icmp --icmp -тип ехо -заявка -j DROP iptables -A INPUT -i eth1 -p icmp --icmp -тип ехо -заявка -j DROP
Стъпка 2
Отговорите на ping също могат да бъдат ограничени до определени мрежи или хостове като този:
 iptables -A INPUT -s 192.168.0.1/24 -p icmp --icmp -type echo -request -j ACCEPT 
Стъпка 3
Ще можем да приемаме само ограничен тип искания на ICMP като този:
 iptables -A INPUT -p icmp --icmp -тип ехо -отговор -j ACCEPT iptables -A INPUT -p icmp --icmp -тип дестинация -недостижим -j ACCEPT iptables -A INPUT -p icmp --icmp -тип време- надвишава -j ПРИЕМА

12. Отворете набор от портове и IP адреси в Linux

Етап 1
Това е полезно, ако трябва да разрешим определен диапазон от портове за извършване на административни или програмни действия по изпълнение:

 iptables -A INPUT -m състояние -състояние НОВ -m tcp -p tcp --dport 9000: 9020 -j ПРИЕМА 
Така отворихме диапазона от портове 9000 до 9020 за TCP връзки.

Стъпка 2
Друга алтернатива е да активирате набор от IP адреси, като зададете конкретен порт като този. Там ние разрешихме на този диапазон да използва порт 80.

 iptables -A INPUT -p tcp --destination -port 80 -m iprange --src -range 192.168.0.70-192.168.0.80 -j ACCEPT 

13. Ограничете броя на паралелните връзки към сървър чрез клиентски IP в Linux

Етап 1
Можем да използваме connlimit модула, за да дефинираме тези ограничения, например да разрешим 5 ssh връзки на клиент, въвеждаме следното:

 iptables -A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit -горе 5 -j ОТХВЪРЛЯНЕ 

Увеличете

Стъпка 2
За да ограничите HTTP достъпа до 10:

 iptables -p tcp --syn --dport 80 -m connlimit --connlimit -над 10 --connlimit -маска 24 -j DROP 
Стъпка 3
Посочихме следното:
  • --connlimit-над 5: Съвпада, ако броят на съществуващите връзки е по-голям от 5.
  • --connlimit-mask 24: Това са хостовете на групата, които използват дължината на префикса. За IPv4 трябва да е число между (включително) 0 и 32.

14. Ограничете броя на паралелните връзки към сървър чрез клиентски IP в Linux

Етап 1
NAT (Network Address Translation) е система за превод на мрежови адреси и по този начин улеснява навигацията. За да ги изброим, ще изпълним следното:

 iptables -t nat -L -n -v 

Увеличете

Стъпка 2
Ще бъде възможно да видите този резултат със съответните им редове по следния начин:

 iptables -t nat -v -L -n -line -number 

15. Ясни NAT правила за Linux


Етап 1
Ако искаме да изтрием установените NAT правила, ще изпълним следното:
 iptables -t nat -v -L -n -line -number iptables -t nat -v -L PREROUTING -n -line -number iptables -t nat -v -L POSTROUTING -n --line -number
Стъпка 2
За да изтрием всички правила „PREROUTING“, изпълняваме следния синтаксис:
 iptables -t nat -D PREROUTING {Правило номер} 
Стъпка 3
За да изтриете всички правила „POSTROUTING“, които изпълняваме:
 iptables -t nat -D POSTROUTING {правило номер} 

16. Нулирайте броячите на пакети в Linux


Първо, трябва да изпълним командата "iptables -L -n -v", която видяхме по -рано, за да изброим броячите.

Етап 1
За да изчистите тези броячи, просто изпълнете следното:

 iptables -Z 
Стъпка 2
За да нулираме броячите само за достъп, изпълняваме:
 iptables -Z ВХОД 

17. Проверете защитната стена в Linux

Етап 1
На първо място, трябва да потвърдим дали портовете са отворени или не със следната команда:

 netstat -tulpn 

Увеличете

Стъпка 2
За да потвърдим конкретен порт, изпълняваме:

 netstat -tulpn | grep: 80 

Увеличете

Стъпка 3
В случай, че портът не е отворен, изпълняваме:

 услуга httpd старт 
Стъпка 4
След това трябва да се уверим, че iptables има достъп през този порт:
 iptables -L INPUT -v -n | греп 80 

18. Разрешаване на цикличен достъп с iptables в Linux

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

 iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT

19. Определете нови iptables низове в Linux


Етап 1
С iptables имаме възможност да дефинираме собствената си верига и да съхраняваме персонализирани правила в нея. За да определим верига, изпълняваме следното:
 iptables -N "Име на низ" 
Стъпка 2
След това стартираме „iptables -L“, за да изброим низовете на iptables:

Увеличете

Стъпка 3
В резултат ще видим създадената ни верига:

Увеличете

20. Изчистете веригите или правилата на защитната стена на iptables в Linux

За да извършим това изтриване, трябва да изпълним следното:

 iptables -F 
Както виждаме, iptables е цялостно решение за централно управление на различни аспекти на сигурността в дистрибуциите на Linux за постигане на подобрения във всичко, свързано с поверителността.

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

wave wave wave wave wave