Knowledgebase Profitserver кызматы менен иштөө үчүн жөнөкөй көрсөтмөлөр
негизги Knowledgebase Linux'та Firewall конфигурацияланууда

Linux'та Firewall конфигурацияланууда


Linux боюнча Firewall компьютер тутумун коргоодо маанилүү ролду ойнойт. Ал системаны уруксатсыз кирүүдөн, чабуулдардан жана башка коркунучтардан коргоо үчүн тармак трафигин көзөмөлдөп, чыпкалоочу тосмо катары иштейт. Туура конфигурацияланган Firewall болбосо, сервер киберчабуулдардын ар кандай түрлөрүнө каршы аялуу болушу мүмкүн, бул маалыматтардын коопсуздугу жана купуялуулугу үчүн олуттуу кесепеттерге алып келет.

Бул макалада биз Linux Firewall конфигурациялоо үчүн эки негизги куралды карап чыгабыз: Firewalld жана iptables. Биз алардын өзгөчөлүктөрүн, функцияларын жана артыкчылыктарын салыштырып талдоо жүргүзөбүз. Кошумчалай кетсек, биз бул куралдардын ар бирин орнотуу жана колдонуу боюнча деталдуу нускамаларды беребиз, ошондой эле Linux платформасында Firewall менен системаңызды коргоо боюнча мыкты тажрыйбаларды талкуулайбыз. Бардык иш-аракеттер а боюнча көрсөтүлөт жасалма Server тамыр менен кирүү менен.

Linux'та брандмауэрди конфигурациялоо

Firewalld (Брандмауэр 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ди өчүрүүнү сунуштайбыз, анткени бул куралды брандмауэр же iptables менен бир убакта колдонуу сунушталбайт. Статусун текшерүү:

systemctl status ufw
ufw linux текшерилүүдө

Аны токтотуу үчүн буйрукту киргизиңиз:

systemctl stop ufw

Толук өчүрүү үчүн:

ufw disable

Бул аракеттерден кийин, сиз брандмауэрди конфигурациялоого өтсөңүз болот.

Биринчиден, ишеним зоналарын аныктоо зарыл. Firewalld тармак интерфейстеринин ишеним деңгээлин аныктоо үчүн зоналар түшүнүгүн колдонот. Ар бир интерфейске бир зонага ыйгарылган жана зонага жараша брандмауэр эрежелери колдонулат. Бардык жеткиликтүү зоналардын тизмеси буйрук менен ачылат:

firewall-cmd --get-zones

Эреже катары, 4 негизги зоналар колдонулат:

  1. коомдук: Бул аймак сиз кооптуу деп эсептеген тармактар ​​үчүн;
  2. жеке: Үй тармактарына же башка ишенимдүү тармак байланыштарына колдонулат;
  3. ички: Уюмдун же корпоративдик тармактын ичиндегилер сыяктуу ички тармактар ​​үчүн колдонулат;
  4. DMZ: Бул зонада серверлер жайгаштырылат, алар интернеттен жеткиликтүү болушу керек.

Бирок, бул бир гана мисал. Сиз буйрукту колдонуп, өз аймагыңызды кошо аласыз:

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

Мисалы, SSH үчүн стандарттык 22 порт төмөнкүдөй болот:

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
Firewalld Linux эрежелери

Кандайдыр бир көйгөйлөр пайда болсо, Firewalld журналдарын буйрук менен текшериңиз:

journalctl -u firewalld

Эскертүү: Биз байланышты орнотуунун жалпы алгоритмин гана карадык. Курал кеңири функцияга ээ. Бардык жеткиликтүү параметрлер боюнча толук маалымат алуу үчүн, сиз колдоно аласыз расмий документтер же ачык жардам:

firewall-cmd --help

Linux'та iptables конфигурациялоо

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 төрт негизги үстөл бар: чыпка, нат, мангле жана чийки. Ар бири пакеттердин белгилүү бир түрлөрүн иштетүү үчүн иштелип чыккан жана эрежелердин өз чынжырлары бар:

  1. чыпка: Бул пакеттерди чыпкалоо эрежелерин камтыган эң көп колдонулган таблица. Бул пакеттерге уруксат берүү же баш тартуу боюнча чечим кабыл алуу үчүн колдонулат.
  2. ул: Бул таблица пакеттердеги тармак даректерин жана портторун өзгөртүү үчүн колдонулат. Ал көбүнчө маскарадды (NAT) орнотуу үчүн колдонулат.
  3. бүтөбүз: Бул таблицада сиз пакеттин аталыштарын өзгөртө аласыз. Ал белгилөө сыяктуу атайын пакет операциялары үчүн колдонулат.
  4. чийки: Бул таблица туташууну көзөмөлдөө тутумунан өткөнгө чейин колдонулуучу эрежелерди конфигурациялоо үчүн колдонулат. Ал адатта байкоо системасы тарабынан өзгөртүлбөшү керек болгон эрежелерди орнотуу үчүн колдонулат, мисалы, белгилүү бир даректерден пакеттерди түшүрүү.

Ар бир үстөл чынжырлар топтомун камтыйт. Чынжырлар - бул ырааттуу түрдө текшерилген эрежелердин ырааттуулугу. Алдын ала аныкталган үч чынжыр бар:

  1. INPUT (кирүүчү). Бул чынжырдагы эрежелер келген пакеттер менен эмне кылуу керектигин аныктайт.
  2. OUTPUT (чыгыш). Бул чынжыр сиздин компьютериңиз тармактагы башка түзмөктөргө же компьютерлерге жөнөткөн бардык пакеттерге тиешелүү.
  3. АЛГА (багыттоо). Бул чынжырдагы эрежелер жөнөтүлгөн пакеттер менен эмне кылуу керек экенин аныктайт.

Акыр-аягы, ар бир чынжыр кандайдыр бир аракетке (максат) ээ. Иш жүзүндө 5 негизги иш-аракеттер колдонулат:

  1. КАБЫЛ: Пакеттин брандмауэр аркылуу өтүшүнө уруксат бериңиз.
  2. DROP: Пакетти четке кагыңыз жана аны эч кандай жоопсуз таштаңыз.
  3. ЧЕТКЕ: Пакетти четке кагыңыз жана жөнөтүүчүгө ICMP ката билдирүүсүн жөнөтүңүз.
  4. КИРҮҮ: Пакетти система журналына киргизиңиз жана башка аракетти аткарыңыз (мисалы, КАБЫЛ АЛУУ же ТАШТА).
  5. КАЙТЫП: Учурдагы чынжырдагы эрежелерди текшерүүнү токтотуңуз жана чакыруу чынжырына кайтыңыз (эгер бар болсо).

Орнотууну баштоо үчүн, буйрук менен учурдагы эрежелердин тизмесин ачыңыз:

iptables -L
Linux'та Firewall конфигурацияланууда

Iptables конфигурациялоо боюнча колдонмо катары, келгиле, эң көп колдонулган буйруктардын практикалык мисалдарын карап көрөлү. Ыңгайлуу болуу үчүн биз мисалдарды конкреттүү чынжырга жараша 3 топко бөлөбүз.

чынжыр КИРГИЗҮҮ:

  1. 80 портунда TCP протоколу аркылуу кирген трафикке уруксат берүү:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

2. 22-портто UDP протоколу аркылуу кирүүчү трафикке уруксат бериңиз:

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

3. Белгилүү бир IP даректен келген трафикти бөгөттөө:

iptables -A INPUT -s 192.168.1.100 -j DROP

чынжыр OUTPUT:

  1. 443 портунда TCP протоколу аркылуу чыгуучу трафикке уруксат берүү:
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT

2. 80 портунда UDP протоколу аркылуу чыгуучу трафикке уруксат бериңиз:

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

Мисалы, INPUT чынжырынан №1 эрежени жок кылгыңыз келсе, буйрук төмөнкүдөй болот:

iptables -D INPUT 1

Бардык эрежелерди бир буйрук менен жок кылуу үчүн:

iptables -F

Маанилүү эскертүү: iptables эрежелери системаны же кызматты кайра жүктөөдөн кийин автоматтык түрдө сакталбайт. Эрежелерди сактоо үчүн аларды конфигурация файлына кошуп, кайра жүктөгөндөн кийин калыбына келтириш керек. The iptables-сактоо жана iptables-калыбына келтирүү коммуналдык кызматтар буга жардам бере алат. Эрежелерди сактоо үчүн буйрукту киргизиңиз:

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

Бул эрежелер.v4 файлында учурдагы iptables эрежелерин сактайт. Өчүрүлгөндөн кийин калыбына келтирүү үчүн төмөнкүлөрдү киргизиңиз:

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

Бул буйрук rule.v4 файлынан эрежелерди калыбына келтирет.

жыйынтыктоо

Firewalld же iptables аркылуу Linux'та Firewall конфигурациялоо сервердин коопсуздугун камсыз кылуунун маанилүү аспектиси болуп саналат. Эки курал тең тармак трафигин башкаруунун жана системаны уруксатсыз кирүүдөн жана киберчабуулдардан коргоонун ишенимдүү каражаттарын сунуштайт. Firewalld жана iptables ортосундагы тандоо, алардын ар кандай функцияларын жана күчтүү жактарын эске алуу менен, колдонуучунун өзгөчө муктаждыктарына жана каалоосуна жараша болот.

❮ Мурунку макала Linux колдонуучулары: Башкаруу жана уруксаттар
Кийинки макала ❯ Серверди жүктөө диагностикасы

Бизден VPS жөнүндө сураңыз

Биз сиздин суроолоруңузга күнү-түнү каалаган убакта жооп берүүгө даярбыз.