Якщо ви використовуєте Linux, у вас є багато варіантів захисту вашого пристрою. Він поставляється з iptables, утилітою брандмауера командного рядка, яка пропонує гнучкість і чудовий захист.
Однак, оскільки це утиліта командного рядка, вона вимагає невеликого навчання.
Отже, якщо ви системний адміністратор або вивчаєте Linux, ви знаходитесь у правильному місці, оскільки ми розглядаємо типові команди iptables із прикладами.
Що таке iptables?
iptables — це програмний вбудований брандмауер Linux. Це дозволяє користувачам Linux створювати або визначати політики, які прямо чи опосередковано впливають на інтернет-трафік.
Це означає, що ви можете використовувати iptables для створення правил блокування або дозволу трафіку через порт, вихідну IP-адресу, мережеві інтерфейси тощо.
Коли ви визначите правила, весь трафік має проходити через них. Так, наприклад, для кожного нового підключення iptables перевірятиме будь-які заздалегідь визначені правила, які відповідають підключенню. Якщо це так, правило буде застосовано до підключення. Однак, якщо немає пов’язаних відповідних правил, буде застосовано правило за замовчуванням.
Щоб використовувати iptables, потрібно використати таку команду.
$ iptables -L -n -v
Тут параметри такі:
- -L для переліку всіх правил.
- -n забезпечує швидшу роботу числового виводу.
- -v для показу результатів у детальному форматі.
Якщо ви запустите команду iptables без будь-яких параметрів, вона поверне такий результат:
iptables v1.8.7 (nf_tables): no command specified Try `iptables -h' or 'iptables --help' for more information.
Вам потрібно встановити його, якщо він стикається з помилкою, наприклад, команда «iptables» не знайдена.
Щоб установити iptables у вашому дистрибутиві Linux, виконайте таку команду.
$ sudo apt-get install iptables
Він поверне наступне, оскільки його вже попередньо встановлено в моєму дистрибутиві Linux.
#output Reading package lists... Done Building dependency tree... Done Reading state information... Done iptables is already the newest version (1.8.7-1ubuntu5). iptables set to manually installed. 0 upgraded, 0 newly installed, 0 to remove, and 35 not upgraded.
Що таке брандмауер?
Брандмауери — це найосновніша форма захисту систем, мереж і персональних комп’ютерів. Він може базуватися на апаратному чи програмному забезпеченні та покладатися на правила для належного функціонування.
Більшість брандмауерів можна налаштувати, що дозволяє створювати або редагувати правила. Наприклад, оскільки пакети з Інтернету використовують порти для потрапляння в систему, сканування на основі портів може допомогти вам відфільтрувати їх. Крім того, ви також можете дозволити або заблокувати служби за IP-адресою джерела або мережевим інтерфейсом.
Якщо ви використовуєте Linux, ви отримуєте доступ до вбудованих iptables. Однак ви також можете використовувати окремий брандмауер Linux, щоб допомогти вам у процесі захисту вашої системи.
Навіщо вам потрібні iptables для налаштування брандмауера?
Але навіщо вам взагалі використовувати iptables? Зрештою, існують хороші альтернативні утиліти командного рядка брандмауера, такі як ufw і firewalld. Крім того, ви можете використовувати автономні брандмауери Linux, які прості у використанні та пропонують більше функцій.
Отже, що робить iptables таким привабливим під час налаштування брандмауера? Причини його використання включають:
- Він пропонує чудову гнучкість із коробки. Ви можете встановити правила на рівні пакетів.
- Його відносно легко використовувати, якщо ви знаєте, як це працює.
- Блокуйте небажаний трафік простим способом.
- Перенаправлення пакетів на альтернативну IP-адресу.
- Захистіть свої системи від атак типу «Відмова в обслуговуванні» (DoS).
І багато іншого!
Розуміння архітектури iptables та її зв’язку з Netfilter
Щоб правильно зрозуміти iptables, нам потрібно дізнатися про їх архітектуру. По-перше, це дасть нам чітке розуміння різних компонентів iptables. Тоді, як тільки ми дізнаємось про кожен із них, ми зможемо використовувати їх для написання правил брандмауера.
І коли ми говоримо про iptables, Netfilter також з’являється на увазі. Ви можете вважати «Netfilter» старшим братом iptables. Він створений на основі iptables і пропонує кращий набір функцій для керування брандмауером. Однак він використовує iptables як один із засобів досягнення відмінних можливостей брандмауера.
Iptables — це інтерфейс командного рядка для підхоплень на рівні ядра Netfilter. Ці хуки можуть взаємодіяти з мережевим стеком Linux, що впливає на пакети на найглибшому рівні.
Отже, як виглядає архітектура iptables:
Таблиці
Архітектура iptables починається з таблиць. Ці таблиці відповідають за організацію правил. І кожна таблиця класифікується на основі типу рішення, яке вони приймають. Простіше кажучи, таблиця спрощує загальну обробку пакетів, додаючи певний спосіб обробки пакетів.
Різні таблиці, які пропонує iptables, включають:
- Таблиця фільтрів: визначає тип рішення для фільтрації пакетів. Простіше кажучи, він визначає, чи має пакунок дістатися до місця призначення чи ні.
- Таблиця NAT: визначає тип рішення для трансляції адреси. Тут маршрутизація пакетів визначається на основі мереж NAT. Наприклад, якщо пакет не може отримати доступ до NAT, він пропустить і спробує знайти мережу без NAT.
- Mangle table: керує спеціальними потребами обробки пакета. Наприклад, ви можете налаштувати його на зміну інформації заголовка пакета, як-от значення TTL.
- Необроблена таблиця: необроблена таблиця дає змогу старанно працювати з аспектом стану брандмауера iptables. Використовуючи таблицю, ви можете маршрутизувати пакети на основі їх «стану» до того, як ядро Linux почне відстежувати його стан. Він в основному використовується для позначення пакетів, незалежно від того, обробляє їх система відстеження з’єднань чи ні. Якщо пакет не відстежується, для нього встановлюється ціль NOTRACK.
Ланцюжки
І тоді ми маємо «ланцюжки» всередині «таблиць».
Ці ланцюжки обробляють глибоку перевірку пакетів на різних етапах їхнього шляху. Наприклад, ви можете перевірити їх, коли вони досягають порту або мережевого інтерфейсу. Таким чином, рішення можна прийняти до того, як пакет буде випущено для системного процесу.
Як і столи, ви також отримуєте різні ланцюги. До них належать:
- Ланцюжок PREROUTING: тут правила обробляють пакети, щойно надійшли до мережевого інтерфейсу.
- Ланцюжок INPUT: правила, згадані в ланцюжку INPUT, керують поведінкою вхідного з’єднання. Після завершення вони передаються локальному процесу.
- Ланцюжок OUTPUT: Ланцюжок OUTPUT працює з пакетами, які створюють процеси.
- Ланцюг FORWARD: ланцюг FORWARD керує пакетами, не призначеними для локальних систем. Це носій для інших призначених систем, наприклад маршрутизатора.
- Ланцюжок POSTROUTING: Нарешті, ми маємо ланцюжок POSTROUTING, який працює з пакетами, які збираються вийти через мережевий інтерфейс.
Не всі ланцюги доступні в кожній таблиці. Наприклад, ланцюжок FORWARD доступний лише в таблиці mangle, filter і security. Подібним чином ланцюжок POSTROUTING доступний для mangle і nat (SNAT). У всіх таблицях доступний лише ланцюжок OUTPUT.
Цільова
Тепер у нас є «мішень». Коли пакунок надходить, він проходить через ланцюжки, щоб визначити, який опис правила найкраще підходить. Якщо він відповідає опису правила, він виконує пов’язану дію на його основі, а потім переміщує його до цілі, вирішуючи долю пакета.
У багатьох випадках пакет не відповідатиме жодному опису чи набору правил. І тут з’являється політика за умовчанням, ціль.
Цілями можуть бути ACCEPT, DROP і REJECT. Це кінцеві цілі, які вирішують долю пакета.
- ACCEPT: приймає пакети.
- DROP: скидає пакет, унеможливлюючи для відправника дізнатися, присутня система чи ні.
- REJECT: Відхилення пакета.
Існують також незавершені цілі, які в основному використовуються для зберігання інформації про пакет.
Найпоширеніші команди iptables із прикладами
Перш ніж почати виконувати команду iptables, переконайтеся, що:
- Ви маєте права адміністратора для виконання команд. Якщо команда не виконується через права адміністратора, повторно запустіть команду з командою sudo перед нею.
- Стаття не є посібником з налаштування iptables на Ubuntu.
- Ми використаємо команду iptables, яка працює з IPv4. Якщо ви маєте намір працювати з IPv6, замість цього вам потрібно використовувати ip6tables.
Перевірка стану iptables
Щоб перевірити поточний статус iptables, потрібно виконати таку команду.
$ iptables -L -n -v
#output Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination
Наведені вище результати містять багато інформації. Однак це також натякає на неактивний брандмауер. Це тому, що наразі всі ланцюжки налаштовані на ПРИЙНЯТИ і не мають правил.
Вам потрібно буде почати додавати правила, щоб активувати брандмауер.
Додавання правил до ланцюжка
Коли ви додаєте правило, воно завжди додається до ланцюжка. Тому ви повинні використовувати параметр -A (Додати). Його синтаксис такий:
$ sudo iptables - A
Однак, коли ви запускаєте його, він повертає наступне:
iptables v1.8.7 (nf_tables): option "-A" requires an argument Try `iptables -h' or 'iptables --help' for more information.
Для додавання правил можна використовувати такі аргументи:
- – i: це означає інтерфейс. Тут ви можете згадати інтерфейс, для якого ви додаєте правила. Це може бути ppp0, eth0 і так далі.
- – p: це означає протокол. Тут ви згадуєте правило використання мережевого протоколу для фільтрації пакувальників. Наприклад, ви можете сказати ICMP, TCP, UDP тощо. Якщо ви хочете, щоб правило працювало з усіма протоколами, вкажіть «усі» як значення аргументу.
- – s: Далі йде аргумент джерело, у якому згадується джерело трафіку (як IP-адреса або ім’я хоста)
- – dport: dport означає порт призначення, де ви згадуєте номер порту, до якого призначено пакет.
- – j: Нарешті, у нас є аргумент TARGET, де ви можете згадати назву TARGET, ACCEPT, DROP або RETURN
Також важливо написати команду в такому порядку:
$ sudo iptables -A <chain-name> -i <interface-name> - p <protocool-name> - s <source> --dport <port no.> -j <target>
Збереження змін до iptables
Додавши правило, ви можете зберегти його за допомогою команди iptables -save.
$ sudo iptables -save
Результат виглядає наступним чином:
[email protected]:~$ sudo iptables-save # Generated by iptables-save v1.8.7 on Sun May 14 13:37:34 2023 *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT -A INPUT -p tcp -m tcp --dport 392 -j REJECT --reject-with icmp-port-unreachable -A OUTPUT -o lo -j ACCEPT COMMIT # Completed on Sun May 14 13:37:34 2023
Збереження правил вручну
За замовчуванням iptables не зберігає правила. Отже, якщо ви перезавантажите комп’ютер, це видалить усі правила. Вам потрібно буде використати наступні команди, щоб переконатися, що вам не доведеться повторно налаштовувати iptables.
Для правил IPv4 напишіть команду:
$ sudo iptables-save > /etc/iptables/rules.v4
А для правил IPv6 напишіть команду:
$ sudo iptables-save > /etc/iptables/rules.v6
Автоматичне збереження правил
Щоб правила залишалися навіть після перезапуску, і це теж автоматично, вам потрібно буде встановити пакет iptables-presistent.
Для цього виконайте таку команду.
$ sudo apt-get install iptables-persistent
Відкриється наступне вікно. Натисніть enter на <Так>.
Оскільки ми працюємо з таблицею IPv4, у ній відображатимуться лише правила IPv4. Якщо ви працюєте з IPv6, відобразиться відповідне вікно.
Примітка. Пакет завантажує лише ваші збережені правила iptables. Отже, коли ви змінюєте iptables, вам потрібно буде зберегти його за допомогою команди iptables -save.
Правила перезавантаження після перезавантаження
Після збереження правил ви повинні відновити їх за допомогою наступної команди.
$ sudo iptables-restore < /etc/iptables/rules.v4
І
$ sudo iptables-restore < /etc/iptables/rules.v6
Увімкнення трафіку на локальному хості / увімкнення петлі
Щоб увімкнути трафік на Localhost, скористайтеся такою командою:
$ sudo iptables -A INPUT -i lo -j ACCEPT
Тут lo означає петлевий інтерфейс для всіх комунікацій локального хосту.
Так само ми можемо дозволити пакетам залишати через інтерфейс петлі.
$ sudo iptables -A OUTPUT -o lo -j ACCEPT
Щоб перевірити, як це змінило правила, запустіть iptables -L -n -V
#output Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination
Увімкнення трафіку на окремих портах
Ви можете ввімкнути трафік на ПРИЙНЯТИ або ВІДХИЛИТИ на певних портах.
Наприклад, порти SSL, HTTP і SSH важливі для нормального функціонування ваших програм. Ви можете додати правила до пакету ACCEPT через номери портів, щоб переконатися, що вони працюють належним чином.
Для SSL виконайте таку команду.
$ sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
Для HTTPS виконайте таку команду.
$ sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
Для дозволу всього трафіку HTTPS на інтерфейсі eth0.
$ iptables -A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT $ iptables -A OUTPUT -o eth0 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
Для SSH виконайте таку команду.
$ sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
А щоб прийняти ВЕСЬ вхідний трафік SSH на інтерфейсі eth0, виконайте наступне:
$ iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT $ iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
Іншим прикладом може бути ввімкнення трафіку порту на певному порту для вашої програми. Скажімо, порт 233.
Щоб відкрити підключення до цього порту, запустіть.
$ sudo iptables -A INPUT -p tcp --dport 233 -j ACCEPT
Подібним чином ви також можете вимкнути з’єднання на певному порту за допомогою параметра REJECT target.
Давайте заблокуємо всі підключення на порту 392.
$ sudo iptables -A INPUT -p tcp --dport 392 -j REJECT
Щоб перевірити, виконайте команду iptables -L -n -v.
#output Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:233 0 0 REJECT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:392 reject-with icmp-port-unreachable Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 ACCEPT all -- * lo 0.0.0.0/0 0.0.0.0/0
Видалити існуючі правила
Щоб видалити існуючі правила, потрібно виконати таку команду.
$ iptables -F
або
$ iptables --flush
Примітка. Якщо ви не зберегли свої правила, вони втрачені назавжди й не можуть бути відновлені за допомогою iptables -restore
Видалити правила з номерами рядків
Щоб видалити певне правило, потрібно отримати список правил із номерами.
$ sudo iptables -L --line-numbers
#output Chain INPUT (policy ACCEPT) num target prot opt source destination 1 ACCEPT tcp -- anywhere anywhere tcp dpt:ssh 2 ACCEPT tcp -- anywhere anywhere tcp dpt:http 3 ACCEPT tcp -- anywhere anywhere tcp dpt:https 4 ACCEPT tcp -- anywhere anywhere tcp dpt:233 5 REJECT tcp -- anywhere anywhere tcp dpt:392 reject-with icmp-port-unreachable
Виконайте наступну команду, якщо ви бажаєте видалити правило номер 4 для ланцюжка INPUT.
$ sudo iptables -D INPUT 4
І якщо ви знову запустите команду iptables -n -v -L.
#output Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 0 0 REJECT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:392 reject-with icmp-port-unreachable
Відображати лише правила ланцюга ВХІД або ВИВІД
Щоб відобразити лише правила ланцюжка INPUT, виконайте таку команду.
$ sudo iptables -L INPUT -n -v --line-numbers
#ouput Chain INPUT (policy ACCEPT 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination 1 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 2 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 3 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 4 0 0 REJECT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:392 reject-with icmp-port-unreachable
Подібним чином, якщо ви хочете бачити лише правила ланцюжка OUTPUT, виконайте:
$ sudo iptables -L OUTPUT -n -v --line-numbers
#output Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination 1 0 0 ACCEPT all -- * lo 0.0.0.0/0 0.0.0.0/0
Запуск/зупинка/перезапуск брандмауера
Якщо ви використовуєте RHEL/Fedora Linux або CentOS, ви можете запустити/зупинити або перезапустити брандмауер, виконавши команди.
$ service iptables stop $ service iptables start $ service iptables restart
Ви також можете використовувати команду systemctl.
Однак це не працюватиме на Ubuntu.
Вставте правила в певне місце
Якщо ви хочете вставити правила в певну позицію, ви повинні використовувати такі команди.
Спочатку перевірте правила.
$ sudo iptables -L INPUT -n --line-numbers
#output Chain INPUT (policy ACCEPT) num target prot opt source destination 1 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 2 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 3 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 4 REJECT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:392 reject-with icmp-port-unreachable
Виконайте наступну команду, якщо ви хочете вставити правила між 2 і 3.
$ sudo iptables -I INPUT 3 -s 252.32.1.2 -j DROP
Тепер перевірте оновлені правила.
#output Chain INPUT (policy ACCEPT) num target prot opt source destination 1 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 2 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 3 DROP all -- 252.32.1.2 0.0.0.0/0 4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 5 REJECT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:392 reject-with icmp-port-unreachable
Блокувати вхідний трафік, але дозволяти вихідний
Вам потрібно буде ввести наступну команду, щоб заблокувати весь вхідний трафік.
$ iptables -P INPUT DROP $ iptables -P FORWARD DROP $ iptables -P OUTPUT ACCEPT $ iptables -A INPUT -m state --state NEW,ESTABLISHED -j ACCEPT $ iptables -L -v -n
Таким чином ви можете перевіряти або завантажувати пакети, але блокувати будь-який невідомий вхідний трафік.
Заблокувати конкретну IP-адресу
Щоб заблокувати певну IP-адресу, виконайте таку команду.
$ iptables -A INPUT -s 14.23.59.9 -J DROP
Ви також можете визначити змінну для збереження заблокованої IP-адреси, а потім виконати команду.
BLOCK_THE_IP = “a.b.c.d”
А потім запустіть:
$ iptables -A INPUT -s “BLOCK_THE_IP” -j DROP
Примітка. Змініть «abcd» на бажану IP-адресу.
Дозвіл пінгування системи ззовні
Ви можете змусити зовнішніх користувачів перевіряти ваш сервер, щоб зробити вашу мережу видимою.
$ sudo iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT $ sudo iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT
Дозвол внутрішній мережі спілкуватися із зовнішньою мережею
Виконайте наступну команду, щоб дозволити внутрішній мережі (скажімо, eth0) до зовнішньої мережі (скажімо, eth1).
$ sudo iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
Дозволити вихідний DNS
Щоб дозволити підключення DNS до вашого сервера, виконайте таку команду.
$ iptables -A OUTPUT -p udp -o eth0 --dport 53 -j ACCEPT $ iptables -A INPUT -p udp -i eth0 --sport 53 -j ACCEPT
Дозволити Rsycn із певної мережі
Якщо ви використовуєте команду Rsync і хочете ввімкнути її в певній мережі, виконайте таку команду.
iptables -A INPUT -i eth0 -p tcp -s 192.168.101.0/24 --dport 873 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp --sport 873 -m state --state ESTABLISHED -j ACCEPT
Блокувати порт
Виконайте наступну команду, щоб заблокувати певний порт і будь-які вхідні запити.
iptables -A INPUT -p tcp --dport 80 -j DROP iptables -A INPUT -i eth1 -p tcp --dport 80 -j DROP
Блокувати вихідний трафік на певну IP-адресу
Ви можете заблокувати трафік до будь-якої IP-адреси, виконавши таку команду.
$ host -t a techukraine.net.com
#вихід
techukraine.net.com має адресу 172.66.40.93
Щоб заблокувати вихідний трафік на цю конкретну IP-адресу, виконайте таку команду.
iptables -A OUTPUT -d 72.66.40.93 -j DROP
Так само ви можете заблокувати соціальні медіа-платформи, такі як Instagram, Twitter і Facebook.
Знайдіть IP-адресу соціальної мережі, виконавши таку команду:
$ host -t a social-media-web-adrress.com
Наприклад, для Instagram це буде:
$ host -t a www.instagram.com
Тепер вам потрібно буде знайти CIDR для IP-адреси конкретної платформи соціальних мереж.
$ whois 185.89.219.11 | grep CIDR
Примітка. Вам може знадобитися інсталювати пакет whois, запустивши sudo apt-get install whois
Тепер введіть значення CIDR таким чином:
$ iptables - A OUTPUT -p tcp -d CIDR-value -j DROP
Примітка. Не забудьте змінити значення CIDR відповідно.
Дозволити або заблокувати запит ICMP Ping
Щоб дозволити або заблокувати запити ping ICMP, виконайте наведені нижче команди.
$ iptables -A INPUT -p icmp --icmp-type echo-request -j DROP $ iptables -A INPUT -i eth1 -p icmp --icmp-type echo-request -j DROP
Відкрийте певний діапазон портів
Щоб відкрити діапазон портів, виконайте таку команду.
$ iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 8933: 8500 -j ACCEPT
Список правил NAT
Щоб отримати список правил NAT, виконайте таку команду:
$ sudo iptables -t nat -L -n -v
Або
$ sudo iptables -t nat -v -L -n --line-number
Скинути лічильники пакунків
Щоб перевірити поточний лічильник iptables:
$ sudo iptables -L -n -v
Щоб скинути або очистити лічильники, виконайте наступне:
$ sudo iptables -Z $ sudo iptables -L -n -v
Щоб скинути лише лічильник ланцюжка INPUT, запустіть:
$ iptables -Z INPUT
Щоб скинути лічильник певного правила, виконайте наступне:
$ iptables -z INPUT RULE-NUMBER
Обов’язково змініть ПРАВИЛО-НОМЕР на це конкретне правило.
Заключні слова
iptables — потужна утиліта командного рядка брандмауера. Ви можете налаштувати майже все, що стосується мережевих ресурсів, пакетів, інтерфейсів і окремих сценаріїв.
Крім того, iptables пропонує багато варіантів. Перегляньте його головну сторінку за допомогою команди man, щоб отримати повну картину.
$ man iptables $ man ip6tables
Далі перевірте мережевий брандмауер і те, як він допомагає зупиняти атаки.