פירעוואַלל אויף לינוקס פיעסעס אַ וויטאַל ראָלע אין סיקיורינג אַ קאָמפּיוטער סיסטעם. עס אקטן ווי אַ שלאַבאַן, קאַנטראָולינג און פילטער נעץ פאַרקער צו באַשיצן די סיסטעם פון אַנאָטערייזד אַקסעס, אנפאלן און אנדערע טרעץ. אָן אַ רעכט קאַנפיגיערד פירעוואַלל, דער סערווער קען זיין שפּירעוודיק צו פאַרשידן טייפּס פון סייבעראַטאַקס, וואָס פירן צו ערנסט קאַנסאַקווענסאַז פֿאַר דאַטן זיכערהייט און קאַנפאַדענשיאַלאַטי.
אין דעם אַרטיקל, מיר וועלן קוקן אין צוויי הויפּט מכשירים פֿאַר קאַנפיגיעריישאַן פון די לינוקס פירעוואַלל: פיירוואַלד און יפּטאַבלעס. מיר וועלן דורכפירן אַ קאָמפּאַראַטיווע אַנאַליסיס פון זייער פֿעיִקייטן, פאַנגקשאַנאַליטי און אַדוואַנטידזשיז. אין דערצו, מיר וועלן צושטעלן דיטיילד ינסטראַקשאַנז פֿאַר באַשטעטיקן און נוצן יעדער פון די מכשירים, און דיסקוטירן בעסטער פּראַקטיסיז פֿאַר סיקיורינג דיין סיסטעם מיט אַ פירעוואַלל אויף די לינוקס פּלאַטפאָרמע. אַלע אַקשאַנז וועט זיין דעמאַנסטרייטיד אויף אַ ווירטואַל סערווער מיט וואָרצל אַקסעס.
קאַנפיגיער פיירוואַלד אויף לינוקס
פירעוואַללד (Firewall Daemon) איז אַ פּראָגראַם פֿאַר אָנפירונג די פיירוואַל אין לינוקס אָפּערייטינג סיסטעמען. עס גיט אַ באַניצער צובינד פֿאַר קאַנפיגיערינג פירעוואַלל כּללים, אַלאַוינג אָדער בלאַקינג קאַנעקשאַנז פון נעץ אַפּלאַקיישאַנז. עס איז פאַר-אינסטאַלירן דורך פעליקייַט אין רובֿ סערווער דיסטריביושאַנז. אויב Firewalld איז נישט פאַר-אינסטאַלירן, עס קענען זיין אינסטאַלירן ינדיפּענדאַנטלי פֿון די באַאַמטער ריפּאַזאַטאָריז פון די פאַרשפּרייטונג.
פֿאַר Red Hat סיסטעמען (אַזאַ ווי RHEL, CentOS, Fedora) די ינסטאַלירונג איז דורכגעקאָכט מיט די באַפֿעל:
yum install firewalld
פֿאַר דעביאַן / ובונטו:
apt-get install firewalld
נאָך ייַנמאָנטירונג, עס קענען זיין סטאַרטעד און אַקטיווייטיד מיד מיט די באַפֿעל:
systemctl start firewalld
ווייַטער, איר דאַרפֿן צו לייגן די סערוויס צו סטאַרטאַפּ:
systemctl enable firewalld
אין דעם פונט, מיר רעקאָמענדירן צו דיסייבאַל ufw, ווייַל די סיימאַלטייניאַס נוצן פון דעם געצייַג מיט Firewalld אָדער Iptables איז נישט רעקאַמענדיד. קאָנטראָלירן די סטאַטוס:
systemctl status ufw
צו האַלטן עס, אַרייַן די באַפֿעל:
systemctl stop ufw
פֿאַר גאַנץ דיאַקטיוויישאַן:
ufw disable
נאָך די אַקשאַנז, איר קענען גיינ ווייַטער צו קאַנפיגיער Firewalld.
ערשטער, עס איז נייטיק צו דעפינירן צוטרוי זאָנעס. Firewalld ניצט דעם באַגריף פון זאָנעס צו באַשטימען די מדרגה פון צוטרוי פֿאַר נעץ ינטערפייסיז. יעדער צובינד איז אַסיינד איין זאָנע, און פיירוואַל כּללים זענען געווענדט באזירט אויף דער זאָנע. די רשימה פון אַלע בנימצא זאָנעס איז אָפּענעד מיט די באַפֿעל:
firewall-cmd --get-zones
טיפּיקאַללי, 4 הויפּט זאָנעס זענען געניצט:
- עפנטלעך: דער זאָנע איז פֿאַר נעטוואָרקס וואָס איר באַטראַכטן אַנסייף;
- פּריוואַט: אַפּלייז צו היים נעטוואָרקס אָדער אנדערע טראַסטיד נעץ קאַנעקשאַנז;
- ינערלעך: געניצט פֿאַר ינערלעך נעטוואָרקס, אַזאַ ווי אין אַן אָרגאַניזאַציע אָדער פֿירמע נעץ;
- דיעמזי: דעם זאָנע איז ווו סערווערס זענען יוזשאַוואַלי געשטעלט וואָס זאָל זיין צוטריטלעך פֿון די אינטערנעט.
אָבער, דאָס איז בלויז איין בייַשפּיל. איר קענען לייגן דיין אייגענע זאָנע מיט דעם באַפֿעל:
firewall-cmd --permanent --new-zone=nameyourzone
נאָך אַדינג, אַ רילאָוד איז פארלאנגט:
firewall-cmd --reload
צו ויסמעקן אַ זאָנע, אַ ענלעך אופֿן איז געניצט
firewall-cmd --permanent --delete-zone=nameyourzone
נאָך דיפיינינג זאָנעס, עס איז נייטיק צו לאָזן פאַרקער פֿאַר די נויטיק באַדינונגס און פּאָרץ. צו לאָזן אַ זיכער דינסט, נוצן די באַפֿעל:
firewall-cmd --zone=public --add-service=name
ווו נאָמען איז דער נאָמען פון די דינסט. פֿאַר בייַשפּיל, צו לאָזן פאַרקער פֿאַר אַפּאַטשי:
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 לאָגס מיט דעם באַפֿעל:
journalctl -u firewalld
באַמערקונג: מיר האָבן בלויז באדעקט די אַלגעמיינע אַלגערידאַם פֿאַר באַשטעטיקן די קשר. די געצייַג האט ברייט פאַנגקשאַנאַליטי. פֿאַר פול אינפֿאָרמאַציע וועגן אַלע בנימצא אָפּציעס, איר קענען נוצן די באַאַמטער דאַקיומענטיישאַן אָדער עפענען הילף:
firewall-cmd --help
קאַנפיגיער יפּטאַבלעס אויף לינוקס
ניט ענלעך Firewalld, iptables איז אַן עלטערע אָבער נאָך וויידלי געוויינט געצייַג אין לינוקס פֿאַר אָנפירונג די פיירוואַל. עס גיט אַ מער דירעקט און פלעקסאַבאַל צוגאַנג צו פּאַקאַט פֿילטרירונג כּללים אויף די לינוקס קערן מדרגה. אָבער, iptables ריקווייערז מער אַוואַנסירטע וויסן און דערפאַרונג קאַמפּערד מיט Firewalld, וואָס מאכט עס ווייניקער צוטריטלעך פֿאַר ביגינערז. קאָנטראָלירן די פאַר-אינסטאַלירן ווערסיע פון די געצייַג מיט דעם באַפֿעל:
iptables -V
אויב די געצייַג איז נישט אינסטאַלירן, עס וועט זיין אינסטאַלירן. דער באַפֿעל פֿאַר ינסטאַלירונג אויף ובונטו, דעביאַן:
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: דער טיש איז געניצט פֿאַר מאַדאַפייינג נעץ ווענדט און פּאָרץ אין פּאַקיץ. עס איז אָפט געניצט פֿאַר באַשטעטיקן אַרויף מאַסקוועראַדינג (NAT).
- פאַרקלענערן: אין דעם טיש, איר קענען מאָדיפיצירן פּאַקאַט כעדערז. עס איז געניצט פֿאַר ספּעשאַלייזד פּאַקאַט אַפּעריישאַנז, אַזאַ ווי מאַרקינג.
- רוי: דער טיש איז געניצט פֿאַר קאַנפיגיערינג כּללים וואָס אַפּלייז איידער זיי גיין דורך די קשר טראַקינג סיסטעם. עס איז טיפּיקלי געניצט פֿאַר באַשטעטיקן כּללים וואָס זאָל ניט זיין מאַדאַפייד דורך די טראַקינג סיסטעם, אַזאַ ווי דראַפּינג פּאַקיץ פון זיכער אַדרעסעס.
יעדער טיש כּולל אַ גאַנג פון קייטן. קייטן זענען אַ סיקוואַנס פון כּללים וואָס זענען אָפּגעשטעלט סאַקווענטשאַלי. עס זענען דריי פּרעדעפינעד קייטן:
- ינפּוט (ינקאַמינג). די כּללים אין דעם קייט באַשליסן וואָס צו טאָן מיט ינקאַמינג פּאַקיץ.
- OUTPUT (אויסגיין). די קייט אַפּלייז צו אַלע פּאַקיץ דיין קאָמפּיוטער סענדז צו אנדערע דעוויסעס אָדער קאָמפּיוטערס אויף די נעץ.
- FORWARD (פאָרווערדינג). די כּללים אין דעם קייט ספּעציפיצירן וואָס צו טאָן מיט פאָרווערדיד פּאַקיץ.
צום סוף, יעדער קייט פארמאגט עטלעכע קאַמף (ציל). אין פיר, 5 הויפּט אַקשאַנז זענען געניצט:
- ACCEPT: לאָזן די פּאַקאַט צו פאָרן דורך די פיירוואַל.
- פאַלן: אָפּוואַרפן די פּאַקאַט און אַוועקוואַרפן עס אָן קיין ענטפער.
- אָפּוואַרפן: אָפּוואַרפן די פּאַקאַט און שיקן די סענדער אַ ICMP טעות אָנזאָג.
- קלאָץ: קלאָץ די פּאַקאַט אין די סיסטעם קלאָץ און דורכפירן אן אנדער קאַמף (למשל, ACCEPT אָדער DROP).
- צוריקקומען: האַלטן קאָנטראָלירן די כּללים אין די קראַנט קייט און צוריקקומען צו די פאַך קייט (אויב אָנווענדלעך).
צו אָנהייבן די סעטאַפּ, עפענען די רשימה פון יגזיסטינג כּללים מיט די באַפֿעל:
iptables -L
ווי אַ וועגווייַזער פֿאַר קאַנפיגיערינג Iptables, לאָזן אונדז קוק אין פּראַקטיש ביישפילן פון די מערסט קאַמאַנלי געוויינט קאַמאַנדז. פֿאַר קאַנוויניאַנס, מיר טיילן די ביישפילן אין 3 גרופּעס, דיפּענדינג אויף די ספּעציפיש קייט.
קייט אַרייַנשרייַב:
- לאָזן ינקאַמינג פאַרקער דורך TCP פּראָטאָקאָל אויף פּאָרט 80:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
2. לאָזן ינקאַמינג פאַרקער דורך ודפּ פּראָטאָקאָל אויף פּאָרט 22:
iptables -A INPUT -p udp --dport 22 -j ACCEPT
3. פאַרשפּאַרן ינקאַמינג פאַרקער פון אַ ספּעציפיש IP אַדרעס:
iptables -A INPUT -s 192.168.1.100 -j DROP
קייט רעזולטאַט:
- לאָזן אַוטגאָוינג פאַרקער דורך 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
קייט פאָרויס:
- פאַרשפּאַרן פאָרווערדיד פאַרקער פון אַ ספּעציפיש קייט פון 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 -L
צו ויסמעקן אַ ספּעציפיש הערשן, נוצן די באַפֿעל:
iptables -D chain rule_number
פֿאַר בייַשפּיל, אויב איר ווילן צו ויסמעקן הערשן נומער 1 פון די INPUT קייט, די באַפֿעל וועט קוקן ווי דאָס:
iptables -D INPUT 1
צו ויסמעקן אַלע כּללים מיט איין באַפֿעל:
iptables -F
וויכטיק טאָן: iptables כּללים זענען נישט געראטעוועט אויטאָמאַטיש נאָך רעבאָאָטינג די סיסטעם אָדער דינסט. צו ראַטעווען די כּללים, זיי דאַרפֿן צו זיין מוסיף צו אַ קאַנפיגיעריישאַן טעקע און געזונט נאָך רעבאָאָט. די iptables-היט און iptables-restore יוטילאַטיז קענען העלפן מיט דעם. צו ראַטעווען די כּללים, אַרייַן די באַפֿעל:
iptables-save > /etc/iptables/rules.v4
דעם סאַוועס די קראַנט יפּטאַבלעס כּללים אין די רולס.וו4 טעקע. צו ומקערן נאָך רעבאָאָט, אַרייַן:
iptables-restore < /etc/iptables/rules.v4
דעם באַפֿעל ריסטאָרז די כּללים פון די רולס.וו4 טעקע.
סאָף
קאַנפיגיערינג פירעוואַלל אויף לינוקס ניצן פירעוואַלד אָדער יפּטאַבלעס איז אַ וויכטיק אַספּעקט פון ינשורינג סערווער זיכערהייט. ביידע מכשירים פאָרשלאָגן פאַרלאָזלעך מיטל פון אָנפירונג נעץ פאַרקער און פּראַטעקטינג די סיסטעם פון אַנאָטערייזד אַקסעס און סייבעראַטאַקס. די ברירה צווישן פיירוואַלד און יפּטאַבלעס דעפּענדס אויף די ספּעציפיש באדערפענישן און פּרעפֿערענצן פון די באַניצער, קאַנסידערינג זייער פאַרשידענע פאַנגקשאַנאַליטי און סטרענגקטס.