Суурь мэдлэг Profitserver үйлчилгээтэй ажиллах энгийн заавар
Үндсэн Суурь мэдлэг Линукс дээр галт ханыг тохируулж байна

Линукс дээр галт ханыг тохируулж байна


Линукс дээрх галт хана нь компьютерийн системийг хамгаалахад чухал үүрэг гүйцэтгэдэг. Энэ нь системийг зөвшөөрөлгүй нэвтрэх, халдлага болон бусад аюулаас хамгаалахын тулд сүлжээний урсгалыг хянаж, шүүж, хаалт болж ажилладаг. Зөв тохируулагдсан Галт хана байхгүй бол сервер нь янз бүрийн төрлийн кибер халдлагад өртөж, мэдээллийн аюулгүй байдал, нууцлалд ноцтой үр дагаварт хүргэж болзошгүй юм.

Энэ нийтлэлд бид Linux Firewall-г тохируулах хоёр үндсэн хэрэгслийг авч үзэх болно: firewalld болон iptables. Бид тэдгээрийн онцлог, үйл ажиллагаа, давуу талуудын харьцуулсан дүн шинжилгээ хийх болно. Нэмж дурдахад бид эдгээр хэрэгслүүдийг тохируулах, ашиглах талаар дэлгэрэнгүй зааварчилгаа өгөхөөс гадна Linux платформ дээр Firewall ашиглан системийг аюулгүй болгох шилдэг туршлагуудыг хэлэлцэх болно. Бүх үйлдлийг root хандалттай виртуал сервер дээр харуулах болно.

Линукс дээр галт ханыг тохируулж байна

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
Линукс автоматаар ачаалахад галт хана нэмж байна

Энэ үед галт хана эсвэл iptables-тэй энэ хэрэгслийг нэгэн зэрэг ашиглахыг зөвлөдөггүй тул бид ufw-г идэвхгүй болгохыг зөвлөж байна. Статусыг шалгана уу:

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

нь дүрмийн төрөл (жишээ нь, порт, үйлчилгээ, баян дүрэм гэх мэт), харин нь дүрмийн өөрийнх нь тодорхойлолт юм.

Галт хананы тохиргоонд өөрчлөлт оруулсны дараа тэдгээрийг хадгалах, хэрэглэх шаардлагатай. Өөрчлөлтүүдийг хадгалахын тулд дараах тушаалыг ашиглана уу.

firewall-cmd --runtime-to-permanent

Өөрчлөлтийг хэрэгжүүлэхийн тулд:

firewall-cmd --reload

Тохиргоог хийж дууссаны дараа та бүх дүрмийн жагсаалтыг нээж сонгосон параметрүүдийг шалгаж болно.

firewall-cmd --list-all
галт хана Linux дүрэм

Хэрэв ямар нэгэн асуудал гарвал Firewalld бүртгэлийг дараах тушаалаар шалгана уу.

journalctl -u firewalld

Тэмдэглэл: Бид холболтыг тохируулах ерөнхий алгоритмыг л авч үзсэн. Хэрэгсэл нь өргөн хүрээтэй функцтэй. Боломжтой бүх сонголтуудын талаарх бүрэн мэдээллийг авахын тулд та албан ёсны баримт бичгийг ашиглах эсвэл тусламжийг нээж болно:

firewall-cmd --help

Линукс дээр iptables тохируулах

Firewalld-аас ялгаатай нь iptables нь хуучин боловч 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: Энэ хүснэгтийг багц дахь сүлжээний хаяг болон портуудыг өөрчлөхөд ашигладаг. Үүнийг ихэвчлэн хувиргах (NAT) тохируулахад ашигладаг.
  3. зэрэмдэглэсэн: Энэ хүснэгтэд та багцын толгой хэсгийг өөрчлөх боломжтой. Энэ нь тэмдэглэгээ гэх мэт тусгай багцын үйл ажиллагаанд ашиглагддаг.
  4. түүхий эд: Энэ хүснэгтийг холболтын хяналтын системээр дамжихаас өмнө дагаж мөрдөх дүрмийг тохируулахад ашигладаг. Энэ нь ихэвчлэн тодорхой хаягаас пакетуудыг буулгах гэх мэт хяналтын системээр өөрчлөх ёсгүй дүрмийг тогтооход ашиглагддаг.

Хүснэгт бүр гинжний багцыг агуулдаг. Гинж нь дарааллаар шалгагдсан дүрэм журмын дараалал юм. Урьдчилан тодорхойлсон гурван хэлхээ байдаг:

  1. INPUT (ирж байгаа). Энэ гинжин хэлхээний дүрмүүд нь ирж буй пакетуудыг юу хийхийг тодорхойлдог.
  2. OUTPUT (гардаг). Энэ хэлхээ нь таны компьютер бусад төхөөрөмж эсвэл сүлжээнд байгаа компьютерт илгээдэг бүх багцад хамаарна.
  3. Урагшаа (дамжуулах). Энэ гинжин хэлхээний дүрмүүд нь дамжуулагдсан пакетуудыг юу хийхийг зааж өгдөг.

Эцэст нь, гинж бүр тодорхой үйлдлийг (зорилтот) эзэмшдэг. Практикт 5 үндсэн үйлдлийг ашигладаг.

  1. АЖИЛЛАГАА: Пакетийг галт ханаар нэвтрүүлэхийг зөвшөөрнө.
  2. дусал: Багцаас татгалзаж, ямар ч хариу өгөхгүйгээр устгана уу.
  3. ТАЙЛБАР: Пакетийг татгалзаж, илгээгчид ICMP алдааны мессежийг илгээнэ үү.
  4. LOG: Системийн бүртгэлд пакетыг бүртгэж, өөр үйлдлийг гүйцэтгэнэ (жишээ нь: ACCEPT эсвэл DROP).
  5. МЭДҮҮЛЭГ: Одоогийн гинжин хэлхээний дүрмийг шалгахаа зогсоож, дуудлагын сүлжээ рүү буцна уу (хэрэв байгаа бол).

Тохиргоог эхлүүлэхийн тулд одоо байгаа дүрмийн жагсаалтыг дараах тушаалаар нээнэ үү.

iptables -L
Линукс дээр галт ханыг тохируулж байна

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

Гинжин гаралт :

  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 дүрмүүд нь систем эсвэл үйлчилгээг дахин ачаалсны дараа автоматаар хадгалагдахгүй. Дүрмүүдийг хадгалахын тулд тэдгээрийг тохиргооны файлд нэмж, дахин ачаалсны дараа сэргээх шаардлагатай. iptables-save болон iptables-restore хэрэгслүүд үүнд тусалж чадна. Дүрмүүдийг хадгалахын тулд дараах командыг оруулна уу:

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

Энэ нь одоогийн iptables дүрмийг rule.v4 файлд хадгалдаг. Дахин ачаалсны дараа сэргээхийн тулд дараахыг оруулна уу:

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

Энэ тушаал нь rule.v4 файлаас дүрмийг сэргээдэг.

Дүгнэлт

Галт хана эсвэл iptables ашиглан Линукс дээр галт ханыг тохируулах нь серверийн аюулгүй байдлыг хангах чухал тал юм. Энэ хоёр хэрэгсэл нь сүлжээний урсгалыг удирдах, системийг зөвшөөрөлгүй хандалт, кибер халдлагаас хамгаалах найдвартай арга хэрэгслийг санал болгодог. Галт хана болон iptables-ийн хоорондох сонголт нь тэдний өөр өөр функциональ байдал, давуу талыг харгалзан хэрэглэгчийн тодорхой хэрэгцээ, сонголтоос хамаарна.

❮ Өмнөх нийтлэл Сервер ачааллын оношлогоо
Дараагийн нийтлэл ❯ Линукс хэрэглэгчид: Удирдлага ба зөвшөөрөл

VPS-ийн талаар биднээс асуу

Бид таны асуултанд өдөр, шөнийн аль ч цагт хариулахад бэлэн байна.