База ведаў Простая інструкцыя па працы з сэрвісам Профітсервер
галоўны База ведаў Настройка брандмаўэра ў Linux

Настройка брандмаўэра ў Linux


Брандмаўэр у Linux гуляе важную ролю ў абароне кампутарнай сістэмы. Ён дзейнічае як бар'ер, кантралюючы і фільтруючы сеткавы трафік для абароны сістэмы ад несанкцыянаванага доступу, нападаў і іншых пагроз. Без правільна настроенага брандмаўэра сервер можа быць уразлівым да розных тыпаў кібератак, што прывядзе да сур'ёзных наступстваў для бяспекі і канфідэнцыяльнасці даных.

У гэтым артыкуле мы разгледзім два асноўныя інструменты для наладжвання брандмаўэра Linux: firewalld і iptables. Правядзем параўнальны аналіз іх характарыстык, функцыянальнасці і пераваг. Акрамя таго, мы дамо падрабязныя інструкцыі па наладжванні і выкарыстанні кожнага з гэтых інструментаў, а таксама абмяркуем найлепшыя метады абароны вашай сістэмы з дапамогай брандмаўэра на платформе Linux. Усе дзеянні будуць дэманстравацца на а віртуальныя серверы з каранёвым доступам.

Настройка брандмаўэра ў Linux

Firewalld (Firewall Daemon) — праграма для кіравання брандмаўэрам у аперацыйных сістэмах Linux. Ён забяспечвае карыстальніцкі інтэрфейс для наладжвання правілаў брандмаўэра, дазволу або блакіроўкі злучэнняў сеткавых прыкладанняў. Ён прадусталяваны па змаўчанні ў большасці серверных дыстрыбутываў. Калі Firewalld не прадусталяваны, яго можна ўсталяваць незалежна з афіцыйных рэпазітароў дыстрыбутыва.

Для сістэм Red Hat (такіх як RHEL, CentOS, Fedora) усталяванне выконваецца камандай:

yum install firewalld

Для Debian/Ubuntu:

apt-get install firewalld

Пасля ўстаноўкі яго можна адразу запусціць і актываваць камандай:

systemctl start firewalld

Далей неабходна дадаць сэрвіс у аўтазагрузку:

systemctl enable firewalld
Даданне брандмаўэра ў аўтазагрузку Linux

На дадзены момант мы рэкамендуем адключыць ufw, бо адначасовае выкарыстанне гэтага інструмента з firewalld або iptables не рэкамендуецца. Праверце статус:

systemctl status ufw
Праверка ufw linux

Каб спыніць яго, увядзіце каманду:

systemctl stop ufw

Для поўнай дэактывацыі:

ufw disable

Пасля гэтых дзеянняў можна пераходзіць да налады брандмаўэра.

Па-першае, неабходна вызначыць зоны даверу. Firewalld выкарыстоўвае канцэпцыю зон для вызначэння ўзроўню даверу для сеткавых інтэрфейсаў. Кожнаму інтэрфейсу прызначаецца адна зона, і на аснове зоны прымяняюцца правілы брандмаўэра. Спіс усіх даступных зон адкрываецца камандай:

firewall-cmd --get-zones

Як правіла, выкарыстоўваюцца 4 асноўныя зоны:

  1. грамадскага: Гэтая зона прызначана для сетак, якія вы лічыце небяспечнымі;
  2. прыватны: прымяняецца да хатніх сетак або іншых давераных сеткавых злучэнняў;
  3. Унутраны: Выкарыстоўваецца для ўнутраных сетак, напрыклад, унутры арганізацыі або карпаратыўнай сеткі;
  4. ДМЗ: У гэтай зоне звычайна размяшчаюцца серверы, якія павінны быць даступныя з Інтэрнэту.

Аднак гэта толькі адзін прыклад. Вы можаце дадаць сваю ўласную зону з дапамогай каманды:

firewall-cmd --permanent --new-zone=nameyourzone

Пасля дадання патрабуецца перазагрузка:

firewall-cmd --reload

Для выдалення зоны выкарыстоўваецца аналагічны метад

firewall-cmd --permanent --delete-zone=nameyourzone

Пасля вызначэння зон неабходна дазволіць трафік для неабходных сэрвісаў і партоў. Каб дазволіць пэўны сэрвіс, выкарыстоўвайце каманду:

firewall-cmd --zone=public --add-service=name

Дзе імя гэта назва паслугі. Напрыклад, каб дазволіць трафік для Apache:

firewall-cmd --zone=public --add-service=http

Каб вызначыць дапушчальныя парты, выкарыстоўвайце каманду:

firewall-cmd --zone=public --add-port=number/protocol

Напрыклад, стандартны 22 порт для SSH будзе выглядаць так:

firewall-cmd --zone=public --add-port=22/tcp

На гэтым этапе ўжо створаны асноўныя правілы. Далей вызначыце, як трафік будзе апрацоўвацца ў залежнасці ад крыніцы, прызначэння, порта і іншых крытэраў. Каб дадаць правіла (з дапамогай грамадскасці зона як прыклад):

firewall-cmd --zone=public rule

Напрыклад, каб дазволіць уваходны трафік з любой крыніцы на порт 80 (HTTP):

firewall-cmd --zone=public --add-port=80/tcp --permanent

Каб выдаліць правіла:

firewall-cmd --permanent --remove-rule=rule_specification

Дзе кіраваць гэта тып правіла (напрыклад, порт, абслугоўванне, багатае правіла і г.д.), і спецыфікацыя_правіла гэта спецыфікацыя самога правіла.

Пасля ўнясення змяненняў у канфігурацыю Firewalld іх неабходна захаваць і прымяніць. Каб захаваць змены, скарыстайцеся камандай:

firewall-cmd --runtime-to-permanent

Каб прымяніць змены:

firewall-cmd --reload

Пасля завяршэння налады вы можаце праверыць выбраныя параметры, адкрыўшы спіс усіх правілаў:

firewall-cmd --list-all
Правілы брандмаўэра Linux

Пры ўзнікненні праблем праверце журналы Firewalld з дапамогай каманды:

journalctl -u firewalld

Заўвага: мы разгледзелі толькі агульны алгарытм наладжвання злучэння. Інструмент валодае шырокім функцыяналам. Для атрымання поўнай інфармацыі аб усіх даступных варыянтах вы можаце выкарыстоўваць афіцыйная дакументацыя або адкрыць дапамогу:

firewall-cmd --help

Настройка iptables на Linux

У адрозненне ад Firewalld, iptables - гэта стары, але ўсё яшчэ шырока выкарыстоўваны інструмент у Linux для кіравання брандмаўэрам. Ён забяспечвае больш прамы і гнуткі падыход да правілаў фільтрацыі пакетаў на ўзроўні ядра Linux. Аднак iptables патрабуе больш глыбокіх ведаў і вопыту ў параўнанні з Firewalld, што робіць яго менш даступным для пачаткоўцаў. Праверце прадусталяваную версію інструмента з дапамогай каманды:

iptables -V

Калі інструмент не ўсталяваны, яго трэба будзе ўсталяваць. Каманда для ўстаноўкі на Ubuntu, Debian:

apt install iptables

Для сістэм Red Hat (напрыклад, CentOS, Fedora):

yum install iptables

Каманда для актывацыі пасля ўстаноўкі:

systemctl start iptables

Каб дадаць да запуску, выканайце:

systemctl enable iptables

Перш чым пачаць канфігурацыю iptables, важна зразумець, як гэта працуе. Гэтаму дапамагае сінтаксіс праграмы. Выглядае гэта наступным чынам:

iptables -t table action chain additional_parameters

Разбярэмся ў кожным пункце глыбей.

Iptables мае чатыры асноўныя табліцы: filter, nat, mangle і raw. Кожны прызначаны для апрацоўкі пэўных тыпаў пакетаў і мае ўласныя ланцужкі правілаў:

  1. фільтраваць: Гэта найбольш часта выкарыстоўваная табліца, якая змяшчае правілы фільтрацыі пакетаў. Ён выкарыстоўваецца для прыняцця рашэння аб дазволе або забароне пакетаў.
  2. фіз: Гэтая табліца выкарыстоўваецца для змены сеткавых адрасоў і партоў у пакетах. Ён часта выкарыстоўваецца для наладжвання маскіроўкі (NAT).
  3. мангравыя зараснікі: У гэтай табліцы вы можаце змяняць загалоўкі пакетаў. Ён выкарыстоўваецца для спецыялізаваных аперацый з пакетамі, такіх як маркіроўка.
  4. сыравіна: Гэтая табліца выкарыстоўваецца для канфігурацыі правілаў, якія прымяняюцца да таго, як яны праходзяць праз сістэму адсочвання злучэнняў. Звычайна ён выкарыстоўваецца для наладжвання правілаў, якія не павінны быць зменены сістэмай адсочвання, такіх як адкідванне пакетаў з пэўных адрасоў.

Кожная табліца змяшчае набор ланцугоў. Ланцужкі - гэта паслядоўнасць правілаў, якія паслядоўна правяраюцца. Ёсць тры загадзя вызначаныя ланцужкі:

  1. INPUT (уваходны). Правілы ў гэтым ланцужку вызначаюць, што рабіць з уваходнымі пакетамі.
  2. ВЫХОД (выходны). Гэты ланцужок прымяняецца да ўсіх пакетаў, якія ваш кампутар адпраўляе на іншыя прылады або кампутары ў сетцы.
  3. FORWARD (перасылка). Правілы ў гэтым ланцужку вызначаюць, што рабіць з перасланымі пакетамі.

Нарэшце, кожны ланцужок валодае нейкім дзеяннем (мэтай). На практыцы выкарыстоўваюцца 5 асноўных дзеянняў:

  1. ACCEPT: Дазвольце пакету прайсці праз брандмаўэр.
  2. DROP: Адхіліць пакет і адкінуць яго без адказу.
  3. АДКАЗАЦЬ: Адхіліць пакет і адправіць адпраўніку паведамленне пра памылку ICMP.
  4. УВАХОД: Запішыце пакет у сістэмны журнал і выканайце іншае дзеянне (напрыклад, ПРЫНЯЦЬ ці АДПУСНІЦЬ).
  5. Зварот: Спыніце праверку правілаў у бягучым ланцужку і вярніцеся да ланцужка выкліку (калі ёсць).

Каб пачаць наладу, адкрыйце спіс існуючых правілаў камандай:

iptables -L
Настройка брандмаўэра ў Linux

У якасці кіраўніцтва па канфігурацыі Iptables давайце разгледзім практычныя прыклады найбольш часта выкарыстоўваюцца каманд. Для зручнасці падзелім прыклады на 3 групы ў залежнасці ад канкрэтнай ланцужкі.

ланцуг УВАХОД:

  1. Дазволіць уваходны трафік праз пратакол TCP на порт 80:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

2. Дазволіць уваходны трафік праз пратакол UDP на порт 22:

iptables -A INPUT -p udp --dport 22 -j ACCEPT

3. Блакуйце ўваходны трафік з пэўнага IP-адраса:

iptables -A INPUT -s 192.168.1.100 -j DROP

ланцуг ВЫХАД:

  1. Дазволіць выходны трафік праз пратакол TCP на порт 443:
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT

2. Дазволіць выходны трафік праз пратакол UDP на порт 80:

iptables -A OUTPUT -p udp --dport 80 -j ACCEPT

3. Заблакіраваць выходны трафік на пэўны порт (напрыклад, 21):

iptables -A OUTPUT -p tcp --dport 21 -j DROP

ланцуг НАПЕРАД:

  1. Блакуйце пераадрасаваны трафік з пэўнага дыяпазону IP-адрасоў:
iptables -A FORWARD -s 172.16.0.0/24 -j DROP

2. Заблакіраваць перасылку пакетаў з пэўнага сеткавага інтэрфейсу:

iptables -A FORWARD -i eth1 -j DROP

3. Абмежаваць колькасць адначасовых злучэнняў для пэўнага порта (у гэтым прыкладзе 10 злучэнняў у хвіліну на порце 80):

iptables -A INPUT -p tcp --dport 80 -m limit --limit 10/minute -j ACCEPT

Як бачыце, у кожным асобным выпадку выкарыстоўваецца дадатковы аргумент (каманда). Каб атрымаць поўны спіс магчымых аргументаў і агульную падтрымку функцыянальнасці інструмента, увядзіце:

iptables -h
Спіс каманд наладкі iptables Linux

Каб пераканацца, што налады правільныя, паўторна ўвядзіце каманду для прагляду спісу правілаў:

iptables -L
Праверка правіл iptables linux

Каб выдаліць пэўнае правіла, выкарыстоўвайце каманду:

iptables -D chain rule_number

Напрыклад, калі вы хочаце выдаліць правіла нумар 1 з ланцужка INPUT, каманда будзе выглядаць так:

iptables -D INPUT 1

Каб выдаліць усе правілы адной камандай:

iptables -F

Важная заўвага: правілы iptables не захоўваюцца аўтаматычна пасля перазагрузкі сістэмы або службы. Каб захаваць правілы, іх трэба дадаць у файл канфігурацыі і аднавіць пасля перазагрузкі. The iptables-захаваць і iptables-аднаўленне утыліты могуць дапамагчы ў гэтым. Каб захаваць правілы, увядзіце каманду:

iptables-save > /etc/iptables/rules.v4

Гэта захоўвае бягучыя правілы iptables у файл rules.v4. Каб аднавіць пасля перазагрузкі, увядзіце:

iptables-restore < /etc/iptables/rules.v4

Гэтая каманда аднаўляе правілы з файла rules.v4.

Conclusion

Налада брандмаўэра ў Linux з дапамогай firewalld або iptables з'яўляецца важным аспектам забеспячэння бяспекі сервера. Абодва інструменты прапануюць надзейныя сродкі кіравання сеткавым трафікам і абароны сістэмы ад несанкцыянаванага доступу і кібератак. Выбар паміж firewalld і iptables залежыць ад канкрэтных патрэбаў і пераваг карыстальніка, улічваючы іх розныя функцыянальныя магчымасці і моцныя бакі.

❮ Папярэдні артыкул Карыстальнікі Linux: кіраванне і дазволы
Наступны артыкул ❯ Дыягностыка загрузкі сервера

Спытайце нас пра VPS

Мы заўсёды гатовы адказаць на вашы пытанні ў любы час дня і ночы.