შემეცნებითი მარტივი ინსტრუქციები Profitserver სერვისთან მუშაობისთვის

Firewall-ის კონფიგურაცია Linux-ზე


Firewall Linux-ზე მნიშვნელოვან როლს ასრულებს კომპიუტერული სისტემის უსაფრთხოებაში. ის მოქმედებს როგორც ბარიერი, აკონტროლებს და ფილტრავს ქსელის ტრაფიკს, რათა დაიცვას სისტემა არაავტორიზებული წვდომისგან, თავდასხმებისგან და სხვა საფრთხეებისგან. სათანადოდ კონფიგურირებული Firewall-ის გარეშე, სერვერი შეიძლება იყოს დაუცველი სხვადასხვა სახის კიბერშეტევების მიმართ, რაც გამოიწვევს სერიოზულ შედეგებს მონაცემთა უსაფრთხოებისა და კონფიდენციალურობისთვის.

ამ სტატიაში განვიხილავთ Linux Firewall-ის კონფიგურაციის ორ მთავარ ინსტრუმენტს: firewalld და iptables. ჩვენ ჩავატარებთ მათი მახასიათებლების, ფუნქციონალურობისა და უპირატესობების შედარებით ანალიზს. გარდა ამისა, ჩვენ მოგაწვდით დეტალურ ინსტრუქციებს თითოეული ამ ხელსაწყოს დაყენებისა და გამოყენების შესახებ, ასევე განვიხილავთ საუკეთესო პრაქტიკას თქვენი სისტემის დაცვის Firewall-ით Linux პლატფორმაზე. ყველა ქმედება იქნება დემონსტრირებული ა ვირტუალური სერვერი ძირეული წვდომით.

Firewall-ის კონფიგურაცია Linux-ზე

Firewalld (Firewall Daemon) არის პროგრამა Linux-ის ოპერაციულ სისტემებში firewall-ის მართვისთვის. ის უზრუნველყოფს მომხმარებლის ინტერფეისს firewall-ის წესების კონფიგურაციისთვის, ქსელური აპლიკაციების კავშირების დასაშვებად ან დაბლოკვისთვის. ის წინასწარ არის დაინსტალირებული სტანდარტულად სერვერების უმეტეს დისტრიბუციაში. თუ Firewalld არ არის წინასწარ დაინსტალირებული, მისი დაინსტალირება შესაძლებელია დისტრიბუციის ოფიციალური საცავებისგან დამოუკიდებლად.

Red Hat სისტემებისთვის (როგორიცაა RHEL, CentOS, Fedora) ინსტალაცია ხორციელდება ბრძანებით:

yum install firewalld

Debian/Ubuntu-სთვის:

apt-get install firewalld

ინსტალაციის შემდეგ, მისი გაშვება და გააქტიურება შესაძლებელია დაუყოვნებლივ ბრძანებით:

systemctl start firewalld

შემდეგი, თქვენ უნდა დაამატოთ სერვისი გაშვებისთვის:

systemctl enable firewalld
Firewall-ის დამატება Linux autoload-ში

ამ ეტაპზე, ჩვენ გირჩევთ გამორთოთ ufw, რადგან არ არის რეკომენდებული ამ ხელსაწყოს ერთდროული გამოყენება firewalld-თან ან iptables-თან. შეამოწმეთ სტატუსი:

systemctl status ufw
ufw linux-ის შემოწმება

მის შესაჩერებლად შეიყვანეთ ბრძანება:

systemctl stop ufw

სრული დეაქტივაციისთვის:

ufw disable

ამ მოქმედებების შემდეგ, შეგიძლიათ გააგრძელოთ firewall-ის კონფიგურაცია.

პირველ რიგში, აუცილებელია ნდობის ზონების განსაზღვრა. Firewalld იყენებს ზონების კონცეფციას ქსელის ინტერფეისების ნდობის დონის დასადგენად. თითოეულ ინტერფეისს ენიჭება ერთი ზონა, ხოლო firewall-ის წესები გამოიყენება ზონის მიხედვით. ყველა ხელმისაწვდომი ზონის სია იხსნება ბრძანებით:

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

მაგალითად, სტანდარტული 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
firewalld Linux-ის წესები

თუ რაიმე პრობლემა წარმოიქმნება, შეამოწმეთ Firewalld ჟურნალები ბრძანებით:

journalctl -u firewalld

შენიშვნა: ჩვენ განვიხილეთ მხოლოდ ზოგადი ალგორითმი კავშირის დასაყენებლად. ხელსაწყოს აქვს ფართო ფუნქციონირება. ყველა შესაძლო ვარიანტის შესახებ სრული ინფორმაციის მისაღებად შეგიძლიათ გამოიყენოთ ოფიციალური დოკუმენტაცია ან გახსენით დახმარება:

firewall-cmd --help

iptables-ის კონფიგურაცია Linux-ზე

Firewalld-ისგან განსხვავებით, iptables არის ძველი, მაგრამ მაინც ფართოდ გამოყენებული ინსტრუმენტი Linux-ში, firewall-ის მართვისთვის. ის უზრუნველყოფს უფრო პირდაპირ და მოქნილ მიდგომას პაკეტების ფილტრაციის წესებისადმი 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 და ნედლეული. თითოეული განკუთვნილია გარკვეული ტიპის პაკეტების დასამუშავებლად და აქვს საკუთარი წესების ჯაჭვები:

  1. გავფილტროთ: ეს არის ყველაზე ხშირად გამოყენებული ცხრილი, რომელიც შეიცავს პაკეტების ფილტრაციის წესებს. იგი გამოიყენება გადაწყვეტილების მისაღებად პაკეტების დაშვების ან უარყოფის შესახებ.
  2. nat: ეს ცხრილი გამოიყენება ქსელის მისამართების და პორტების შესაცვლელად პაკეტებში. ის ხშირად გამოიყენება მასკარადის (NAT) დასაყენებლად.
  3. mangle: ამ ცხრილში შეგიძლიათ შეცვალოთ პაკეტის სათაურები. იგი გამოიყენება სპეციალიზებული პაკეტის ოპერაციებისთვის, როგორიცაა მარკირება.
  4. ნედლეული: ეს ცხრილი გამოიყენება წესების კონფიგურაციისთვის, რომლებიც გამოიყენება კავშირის თვალთვალის სისტემის გავლამდე. ის ჩვეულებრივ გამოიყენება წესების დასაყენებლად, რომლებიც არ უნდა შეიცვალოს თვალთვალის სისტემის მიერ, როგორიცაა პაკეტების ჩამოგდება გარკვეული მისამართებიდან.

თითოეული მაგიდა შეიცავს ჯაჭვების კომპლექტს. ჯაჭვები არის წესების თანმიმდევრობა, რომელიც შემოწმდება თანმიმდევრობით. არსებობს სამი წინასწარ განსაზღვრული ჯაჭვი:

  1. INPUT (შემომავალი). ამ ჯაჭვის წესები განსაზღვრავს რა უნდა გააკეთოს შემომავალ პაკეტებთან.
  2. OUTPUT (გამავალი). ეს ჯაჭვი ვრცელდება ყველა პაკეტზე, რომელსაც თქვენი კომპიუტერი უგზავნის სხვა მოწყობილობებს ან კომპიუტერებს ქსელში.
  3. FORWARD (გადაგზავნა). ამ ჯაჭვის წესები განსაზღვრავს რა უნდა გააკეთოს გადაგზავნილ პაკეტებთან.

და ბოლოს, თითოეულ ჯაჭვს აქვს გარკვეული მოქმედება (მიზანი). პრაქტიკაში გამოიყენება 5 ძირითადი მოქმედება:

  1. მიღება: მიეცით საშუალება პაკეტს გაიაროს Firewall-ში.
  2. ვარდნა: უარყავით პაკეტი და გადააგდეთ იგი ყოველგვარი პასუხის გარეშე.
  3. ᲣᲐᲠᲧᲝᲡ: უარყავით პაკეტი და გაუგზავნეთ გამგზავნს ICMP შეცდომის შეტყობინება.
  4. შესვლა: შეიტანეთ პაკეტი სისტემის ჟურნალში და შეასრულეთ სხვა მოქმედება (მაგ., ACCEPT ან DROP).
  5. დაბრუნების: შეწყვიტეთ წესების შემოწმება მიმდინარე ჯაჭვში და დაუბრუნდით გამოძახების ქსელს (ასეთის არსებობის შემთხვევაში).

დაყენების დასაწყებად, გახსენით არსებული წესების სია ბრძანებით:

iptables -L
Firewall-ის კონფიგურაცია 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

ქსელი OUTPUT:

  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

ქსელი 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 setup ბრძანებების სია

იმისათვის, რომ დარწმუნდეთ, რომ პარამეტრები სწორია, ხელახლა შეიყვანეთ ბრძანება წესების სიის სანახავად:

iptables -L
iptables ლინუქსის წესების შემოწმება

კონკრეტული წესის წასაშლელად გამოიყენეთ ბრძანება:

iptables -D chain rule_number

მაგალითად, თუ გსურთ წაშალოთ წესი ნომერი 1 INPUT ჯაჭვიდან, ბრძანება ასე გამოიყურება:

iptables -D INPUT 1

ყველა წესის წაშლა ერთი ბრძანებით:

iptables -F

მნიშვნელოვანი შენიშვნა: iptables წესები ავტომატურად არ შეინახება სისტემის ან სერვისის გადატვირთვის შემდეგ. წესების შესანახად, ისინი უნდა დაემატოს კონფიგურაციის ფაილს და აღდგეს გადატვირთვის შემდეგ. The iptables-შენახვა მდე iptables-აღდგენა კომუნალური საშუალებები ამაში დაგეხმარებათ. წესების შესანახად შეიყვანეთ ბრძანება:

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

ეს ინახავს მიმდინარე iptables წესებს წესები.v4 ფაილში. გადატვირთვის შემდეგ აღსადგენად შეიყვანეთ:

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

ეს ბრძანება აღადგენს წესებს წესები.v4 ფაილიდან.

დასკვნა

Firewall-ის კონფიგურაცია Linux-ზე firewalld-ის ან iptables-ის გამოყენებით სერვერის უსაფრთხოების უზრუნველსაყოფად მნიშვნელოვანი ასპექტია. ორივე ინსტრუმენტი გვთავაზობს ქსელური ტრაფიკის მართვის საიმედო საშუალებებს და სისტემის დაცვას არაავტორიზებული წვდომისა და კიბერშეტევებისგან. Firewall-სა და iptables-ს შორის არჩევანი დამოკიდებულია მომხმარებლის სპეციფიკურ საჭიროებებზე და პრეფერენციებზე, მათი განსხვავებული ფუნქციონირებისა და ძლიერი მხარეების გათვალისწინებით.

⮜ წინა სტატია Linux-ის მომხმარებლები: მენეჯმენტი და ნებართვები
შემდეგი სტატია ⮞ სერვერის ჩატვირთვის დიაგნოსტიკა

გვკითხეთ VPS-ის შესახებ

ჩვენ ყოველთვის მზად ვართ ვუპასუხოთ თქვენს შეკითხვებს დღისა და ღამის ნებისმიერ დროს.