- 1. Пакетно филтриране в Linux
- 2. Показване на състоянието на защитната стена
- 3. Спрете, рестартирайте или стартирайте iptables в Linux
- 4. Добавете нови правила за защитната стена в Linux
- 5. Изтрийте правило за защитна стена в Linux
- 6. Съхранявайте и възстановявайте правилата на iptables в Linux
- 7. Задайте правила по подразбиране в Linux
- 8. Блокиране на IP адрес в Linux
- 9. Блокиране на входящи заявки за порт в Linux
- 10. Независимо дали да разрешите или не мрежовия трафик, използвайки MAC адрес в Linux
- 11. Блокирайте или разрешете ICMP заявки в Linux
- 12. Отворете набор от портове и IP адреси в Linux
- 13. Ограничете броя на паралелните връзки към сървър чрез клиентски IP в Linux
- 14. Ограничете броя на паралелните връзки към сървър чрез клиентски IP в Linux
- 15. Ясни NAT правила за Linux
- 16. Нулирайте броячите на пакети в Linux
- 17. Проверете защитната стена в Linux
- 18. Разрешаване на цикличен достъп с iptables в Linux
- 19. Определете нови iptables низове в Linux
- 20. Изчистете веригите или правилата на защитната стена на iptables в 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 за постигане на подобрения във всичко, свързано с поверителността.