Ma'lumotlar bazasi Profitserver xizmati bilan ishlash bo'yicha oddiy ko'rsatmalar
asosiy Ma'lumotlar bazasi Linuxda xavfsizlik devorini sozlash

Linuxda xavfsizlik devorini sozlash


Linuxda xavfsizlik devori kompyuter tizimini himoya qilishda muhim rol o'ynaydi. U tizimni ruxsatsiz kirish, hujumlar va boshqa tahdidlardan himoya qilish uchun tarmoq trafigini nazorat qiluvchi va filtrlovchi to'siq vazifasini bajaradi. To'g'ri sozlangan xavfsizlik devori bo'lmasa, server har xil turdagi kiberhujumlarga qarshi himoyasiz bo'lishi mumkin, bu esa ma'lumotlar xavfsizligi va maxfiyligi uchun jiddiy oqibatlarga olib kelishi mumkin.

Ushbu maqolada biz Linux xavfsizlik devorini sozlash uchun ikkita asosiy vositani ko'rib chiqamiz: xavfsizlik devori va iptables. Biz ularning xususiyatlari, funksionalligi va afzalliklarining qiyosiy tahlilini o'tkazamiz. Bundan tashqari, biz ushbu vositalarning har birini sozlash va ulardan foydalanish bo'yicha batafsil ko'rsatmalar beramiz, shuningdek, tizimingizni Linux platformasida xavfsizlik devori bilan himoya qilish bo'yicha eng yaxshi amaliyotlarni muhokama qilamiz. Barcha harakatlar a da ko'rsatiladi Virtual server ildizga kirish bilan.

Linuxda xavfsizlik devorini sozlash

Xavfsizlik devori (Firewall Daemon) - Linux operatsion tizimlarida xavfsizlik devorini boshqarish dasturi. U xavfsizlik devori qoidalarini sozlash, tarmoq ilovalari ulanishlariga ruxsat berish yoki blokirovka qilish uchun foydalanuvchi interfeysini taqdim etadi. Ko'pgina server tarqatishlarida sukut bo'yicha oldindan o'rnatilgan. Agar Firewalld oldindan o'rnatilmagan bo'lsa, uni tarqatishning rasmiy omborlaridan mustaqil ravishda o'rnatish mumkin.

Red Hat tizimlari uchun (masalan, RHEL, CentOS, Fedora) o'rnatish quyidagi buyruq bilan amalga oshiriladi:

yum install firewalld

Debian/Ubuntu uchun:

apt-get install firewalld

O'rnatishdan so'ng uni darhol buyruq bilan ishga tushirish va faollashtirish mumkin:

systemctl start firewalld

Keyin, ishga tushirish uchun xizmatni qo'shishingiz kerak:

systemctl enable firewalld
Linux avtomatik yuklashda xavfsizlik devori qo'shish

Ayni paytda biz ufw-ni o'chirib qo'yishni tavsiya qilamiz, chunki bu vositadan xavfsizlik devori yoki iptables bilan bir vaqtda foydalanish tavsiya etilmaydi. Holatni tekshiring:

systemctl status ufw
Ufw linux tekshirilmoqda

Uni to'xtatish uchun buyruqni kiriting:

systemctl stop ufw

To'liq o'chirish uchun:

ufw disable

Ushbu harakatlardan so'ng siz xavfsizlik devorini sozlashni davom ettirishingiz mumkin.

Birinchidan, ishonch zonalarini aniqlash kerak. Tarmoq interfeyslari uchun ishonch darajasini aniqlash uchun Firewalld zonalar tushunchasidan foydalanadi. Har bir interfeysga bitta zona tayinlangan va xavfsizlik devori qoidalari zonaga qarab qo'llaniladi. Barcha mavjud zonalar ro'yxati buyruq bilan ochiladi:

firewall-cmd --get-zones

Odatda 4 ta asosiy zona qo'llaniladi:

  1. ijtimoiy: Bu zona siz xavfli deb hisoblagan tarmoqlar uchun;
  2. shaxsiy: Uy tarmoqlari yoki boshqa ishonchli tarmoq ulanishlari uchun amal qiladi;
  3. Ichki: Tashkilot yoki korporativ tarmoq ichidagilar kabi ichki tarmoqlar uchun ishlatiladi;
  4. DMZ: Bu zona odatda internetdan kirish mumkin bo'lgan serverlar joylashtiriladi.

Biroq, bu faqat bitta misol. Buyruq yordamida o'z zonangizni qo'shishingiz mumkin:

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

Qo'shgandan so'ng, qayta yuklash talab qilinadi:

firewall-cmd --reload

Hududni o'chirish uchun shunga o'xshash usul qo'llaniladi

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

Hududlarni aniqlagandan so'ng, kerakli xizmatlar va portlar uchun trafikka ruxsat berish kerak. Muayyan xizmatga ruxsat berish uchun quyidagi buyruqdan foydalaning:

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

qayerda ism xizmatning nomi. Masalan, Apache uchun trafikka ruxsat berish uchun:

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

Ruxsat etilgan portlarni aniqlash uchun quyidagi buyruqdan foydalaning:

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

Masalan, SSH uchun standart 22 port quyidagicha ko'rinadi:

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

Ushbu bosqichda asosiy qoidalar allaqachon yaratilgan. Keyin manba, maqsad, port va boshqa mezonlarga qarab trafik qanday qayta ishlanishini aniqlang. Qoida qo'shish uchun ( ijtimoiy misol sifatida zona):

firewall-cmd --zone=public rule

Masalan, istalgan manbadan 80-portga (HTTP) kiruvchi trafikga ruxsat berish uchun:

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

Qoidani olib tashlash uchun:

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

qayerda qoidalar qoida turi (masalan, port, xizmat, boy-qoida va boshqalar), va qoida_spetsifikatsiyasi qoidaning o'zi spetsifikatsiyasidir.

Xavfsizlik devori konfiguratsiyasiga o'zgartirishlar kiritilgandan so'ng, ularni saqlash va qo'llash kerak. O'zgarishlarni saqlash uchun quyidagi buyruqdan foydalaning:

firewall-cmd --runtime-to-permanent

O'zgarishlarni qo'llash uchun:

firewall-cmd --reload

O'rnatishni tugatgandan so'ng, barcha qoidalar ro'yxatini ochib, tanlangan parametrlarni tekshirishingiz mumkin:

firewall-cmd --list-all
xavfsizlik devori Linux qoidalari

Agar biron bir muammo yuzaga kelsa, Firewalld jurnallarini buyruq bilan tekshiring:

journalctl -u firewalld

Eslatma: Biz faqat ulanishni o'rnatishning umumiy algoritmini ko'rib chiqdik. Asbob keng funksionallikka ega. Barcha mavjud variantlar haqida to'liq ma'lumot olish uchun siz foydalanishingiz mumkin rasmiy hujjatlar yoki ochiq yordam:

firewall-cmd --help

Linuxda iptablesni sozlash

Firewalld-dan farqli o'laroq, iptables xavfsizlik devorini boshqarish uchun Linuxda eski, ammo hali ham keng qo'llaniladigan vositadir. Bu Linux yadrosi darajasida paketlarni filtrlash qoidalariga to'g'ridan-to'g'ri va moslashuvchan yondashuvni ta'minlaydi. Biroq, iptables Firewalld bilan solishtirganda ko'proq ilg'or bilim va tajribani talab qiladi, bu esa yangi boshlanuvchilar uchun kamroq foydalanish imkonini beradi. Asbobning oldindan o'rnatilgan versiyasini buyruq bilan tekshiring:

iptables -V

Agar asbob o'rnatilmagan bo'lsa, uni o'rnatish kerak bo'ladi. Ubuntu, Debian-ga o'rnatish buyrug'i:

apt install iptables

Red Hat tizimlari uchun (masalan, CentOS, Fedora):

yum install iptables

O'rnatishdan keyin faollashtirish uchun buyruq:

systemctl start iptables

Ishga tushirishga qo'shish uchun quyidagilarni bajaring:

systemctl enable iptables

Iptables konfiguratsiyasini boshlashdan oldin uning qanday ishlashini tushunish muhimdir. Bunga dasturning sintaksisi yordam beradi. Bu quyidagicha ko'rinadi:

iptables -t table action chain additional_parameters

Keling, har bir elementni batafsil ko'rib chiqaylik.

Iptables to'rtta asosiy jadvalga ega: filtr, nat, mangle va xom. Ularning har biri ma'lum turdagi paketlarni qayta ishlash uchun mo'ljallangan va o'z qoidalari zanjiriga ega:

  1. filtri: Bu paketlarni filtrlash qoidalarini o'z ichiga olgan eng tez-tez ishlatiladigan jadval. U paketlarga ruxsat berish yoki rad etish haqida qaror qabul qilish uchun ishlatiladi.
  2. nat: Ushbu jadval paketlardagi tarmoq manzillari va portlarini o'zgartirish uchun ishlatiladi. Ko'pincha maskaradni (NAT) o'rnatish uchun ishlatiladi.
  3. manglay: Ushbu jadvalda siz paket sarlavhalarini o'zgartirishingiz mumkin. U markalash kabi maxsus paket operatsiyalari uchun ishlatiladi.
  4. xom: Ushbu jadval ulanishni kuzatish tizimidan o'tishdan oldin amal qiladigan qoidalarni sozlash uchun ishlatiladi. U odatda kuzatuv tizimi tomonidan o'zgartirilmasligi kerak bo'lgan qoidalarni o'rnatish uchun ishlatiladi, masalan, ma'lum manzillardan paketlarni tashlab yuborish.

Har bir jadvalda zanjirlar to'plami mavjud. Zanjirlar ketma-ket tekshiriladigan qoidalar ketma-ketligidir. Oldindan belgilangan uchta zanjir mavjud:

  1. INPUT (kirish). Ushbu zanjirdagi qoidalar kiruvchi paketlar bilan nima qilish kerakligini belgilaydi.
  2. OUTPUT (chiqish). Ushbu zanjir sizning kompyuteringiz tarmoqdagi boshqa qurilmalar yoki kompyuterlarga yuboradigan barcha paketlarga taalluqlidir.
  3. OLGAN (yo'naltirish). Ushbu zanjirdagi qoidalar yuborilgan paketlar bilan nima qilish kerakligini aniqlaydi.

Nihoyat, har bir zanjir qandaydir harakatga (maqsadga) ega. Amalda 5 ta asosiy harakat qo'llaniladi:

  1. QABUL QILING: Paketning xavfsizlik devori orqali o'tishiga ruxsat bering.
  2. YO'Q: Paketni rad eting va hech qanday javob bermasdan tashlab yuboring.
  3. REJI: Paketni rad eting va jo'natuvchiga ICMP xato xabarini yuboring.
  4. LOG: Paketni tizim jurnaliga kiriting va boshqa amalni bajaring (masalan, ACCEPT yoki DROP).
  5. RETURN: Joriy zanjirdagi qoidalarni tekshirishni to'xtating va qo'ng'iroqlar zanjiriga qayting (agar mavjud bo'lsa).

O'rnatishni boshlash uchun buyruq bilan mavjud qoidalar ro'yxatini oching:

iptables -L
Linuxda xavfsizlik devorini sozlash

Iptables-ni sozlash bo'yicha qo'llanma sifatida keling, eng ko'p ishlatiladigan buyruqlarning amaliy misollarini ko'rib chiqaylik. Qulaylik uchun biz misollarni aniq zanjirga qarab 3 guruhga ajratamiz.

zanjir INPUT:

  1. 80-portda TCP protokoli orqali kiruvchi trafikga ruxsat bering:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

2. 22-portda UDP protokoli orqali kiruvchi trafikga ruxsat bering:

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

3. Muayyan IP-manzildan kiruvchi trafikni bloklash:

iptables -A INPUT -s 192.168.1.100 -j DROP

zanjir OUTPUT:

  1. 443-portda TCP protokoli orqali chiquvchi trafikga ruxsat bering:
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT

2. 80-portda UDP protokoli orqali chiquvchi trafikga ruxsat bering:

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

3. Muayyan portga chiquvchi trafikni bloklash (masalan, 21):

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

zanjir Oldinga:

  1. Muayyan IP manzillaridan yo'naltirilgan trafikni bloklash:
iptables -A FORWARD -s 172.16.0.0/24 -j DROP

2. Muayyan tarmoq interfeysidan paketlarni yo'naltirishni bloklash:

iptables -A FORWARD -i eth1 -j DROP

3. Muayyan port uchun bir vaqtda ulanishlar sonini cheklang (bu misolda 10-portda daqiqada 80 ta ulanish):

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

Ko'rib turganingizdek, har bir alohida holatda qo'shimcha argument (buyruq) ishlatiladi. Mumkin bo'lgan argumentlarning to'liq ro'yxatini va asbobning funksionalligini umumiy qo'llab-quvvatlash uchun quyidagilarni kiriting:

iptables -h
iptables linux o'rnatish buyruqlar ro'yxati

Sozlamalar to'g'ri ekanligiga ishonch hosil qilish uchun qoidalar ro'yxatini ko'rish uchun buyruqni qayta kiriting:

iptables -L
Iptables linux qoidalarini tekshirish

Muayyan qoidani o'chirish uchun quyidagi buyruqdan foydalaning:

iptables -D chain rule_number

Misol uchun, agar siz INPUT zanjiridan 1-qoidani o'chirmoqchi bo'lsangiz, buyruq quyidagicha ko'rinadi:

iptables -D INPUT 1

Barcha qoidalarni bitta buyruq bilan o'chirish uchun:

iptables -F

Muhim eslatma: iptables qoidalari tizim yoki xizmatni qayta ishga tushirgandan so'ng avtomatik ravishda saqlanmaydi. Qoidalarni saqlash uchun ular konfiguratsiya fayliga qo'shilishi va qayta ishga tushirilgandan keyin tiklanishi kerak. The iptables - saqlang va iptables-tiklash kommunal xizmatlar bunga yordam berishi mumkin. Qoidalarni saqlash uchun buyruqni kiriting:

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

Bu joriy iptables qoidalarini rules.v4 faylida saqlaydi. Qayta ishga tushirilgandan keyin tiklash uchun quyidagilarni kiriting:

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

Bu buyruq qoidalarni rules.v4 faylidan tiklaydi.

Xulosa

Firewalld yoki iptables yordamida Linuxda xavfsizlik devorini sozlash server xavfsizligini ta'minlashning muhim jihati hisoblanadi. Ikkala vosita ham tarmoq trafigini boshqarish va tizimni ruxsatsiz kirish va kiberhujumlardan himoya qilishning ishonchli vositalarini taklif etadi. Xavfsizlik devori va iptables o'rtasidagi tanlov foydalanuvchining o'ziga xos ehtiyojlari va afzalliklariga bog'liq bo'lib, ularning turli funktsionalligi va kuchli tomonlarini hisobga oladi.

❮ Oldingi maqola Linux foydalanuvchilari: boshqaruv va ruxsatlar
Keyingi maqola ❯ Server yuklash diagnostikasi

Bizdan VPS haqida so'rang

Biz har doim kunduzi yoki tunning istalgan vaqtida savollaringizga javob berishga tayyormiz.