Суурь мэдлэг Profitserver үйлчилгээтэй ажиллах энгийн заавар

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


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

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

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

Firewalld (Firewall Daemon) нь Линукс үйлдлийн систем дэх галт ханыг удирдах программ юм. Энэ нь галт ханын дүрмийг тохируулах, сүлжээний програмуудын холболтыг зөвшөөрөх эсвэл хориглох хэрэглэгчийн интерфейсээр хангадаг. Энэ нь ихэнх серверийн түгээлтүүдэд анхдагчаар урьдчилан суулгагдсан байдаг. Хэрэв 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

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

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

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 нь дөрвөн үндсэн хүснэгттэй: шүүлтүүр, 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 бүлэгт хуваана.

Зочид буудлуудын сүлжээ INPUT:

  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

Зочид буудлуудын сүлжээ FORWARD:

  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

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

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

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

Дүгнэлт

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

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

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

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