Centos 7 заштитен ѕид cmd отворена порта

Инсталиран во операционен системЗаштитниот ѕид се користи за да се спречи неовластен сообраќај помеѓу нив компјутерски мрежи. Специјални правила за заштитниот ѕид се креираат рачно или автоматски, кои се одговорни за контрола на пристапот. ОС развиен на кернелот Линукс, CentOS 7 има вграден заштитен ѕид и се управува со помош на заштитен ѕид. FirewallD е стандардно овозможен и би сакале да разговараме за негово поставување денес.

Како што споменавме погоре, стандардниот заштитен ѕид во CentOS 7 е алатката FirewallD. Тоа е причината зошто поставувањето заштитен ѕид ќе се дискутира со користење на оваа алатка како пример. Можете да поставите правила за филтрирање користејќи ги истите iptables, но ова се прави на малку поинаков начин. Ви препорачуваме да се запознаете со конфигурацијата на споменатата алатка со кликнување на следниот линк и ќе започнеме со анализа на FirewallD.

Основи на заштитен ѕид

Постојат неколку зони - збирки правила за управување со сообраќајот врз основа на доверба во мрежите. На сите им се дадени сопствени политики, чиј тотал ја формира конфигурацијата на заштитниот ѕид. На секоја зона и е доделен еден или повеќе мрежни интерфејси, што исто така ви овозможува да го прилагодите филтрирањето. Применетите правила директно зависат од користениот интерфејс. На пример, кога е поврзан на јавен Wi-Fi заштитен ѕидќе го зголеми нивото на контрола, а во домашна мрежаќе отвори дополнителен пристап за учесниците во синџирот. Заштитниот ѕид за кој станува збор ги содржи следните зони:

  • доверлив — максимално ниво на доверба во сите мрежни уреди;
  • дом - група локална мрежа. Постои доверба во околината, но дојдовните врски се достапни само за одредени машини;
  • работно - работна површина. Има доверба во повеќето уреди и се активираат дополнителни услуги;
  • dmz е зона за изолирани компјутери. Таквите уреди се исклучени од остатокот од мрежата и дозволуваат само одреден дојдовен сообраќај;
  • внатрешна — зона на внатрешни мрежи. Довербата се применува на сите машини, се отвораат дополнителни услуги;
  • надворешна — зона обратна од претходната. Во надворешните мрежи, NAT маскирањето е активно, затворајќи ја внатрешната мрежа, но не блокирајќи ја можноста за пристап;
  • јавно - зона на јавни мрежи со недоверба кон сите уреди и индивидуален прием на дојдовен сообраќај;
  • блок - сите дојдовни барања се ресетираат со испратена грешка icmp-домаќин-забранетоили icmp6-adm-забрането;
  • пад - минимално ниво на доверба. Дојдовните врски се отфрлаат без никакво известување.

Самите политики можат да бидат привремени или постојани. Кога параметрите се појавуваат или уредуваат, дејството на заштитниот ѕид веднаш се менува без потреба од рестартирање. Ако се применети привремени правила, тие ќе се ресетираат откако FirewallD ќе се рестартира. Затоа трајното правило се нарекува така - ќе се зачува за трајна основакога се користи аргументот -траен.

Овозможување FirewallD

Прво треба да го стартувате FirewallD или да се уверите дека е во активна состојба. Само функционален демон (програма што работи внатре позадина) ќе ги примени правилата за заштитен ѕид. Активирањето се врши со само неколку кликања:

  1. Стартувајте класика "Терминал"кој било пригоден метод, на пример, преку менито „Апликации“.
  2. Внесете ја командата sudo systemctl start firewalld.service и притиснете го копчето Внесете.
  3. Услужната алатка се управува во име на суперкорисникот, така што ќе мора да ја потврдите вашата автентичност со внесување лозинка.
  4. За да бидете сигурни дека услугата функционира, наведете firewall-cmd --state .
  5. Во отворените графички прозорецповторна автентичност.
  6. Ќе се прикаже нова линија. Значење "трчање"покажува дека заштитниот ѕид работи.

Ако некогаш ви треба привремено или трајно да го оневозможите заштитниот ѕид, препорачуваме да ги користите упатствата претставени во нашата друга статија на следниот линк.

Погледнете ги стандардните правила и достапните зони

Дури и заштитниот ѕид што работи нормално има свои специфични правила и достапни зони. Пред да започнете со уредување политики, ви препорачуваме да се запознаете со тековната конфигурација. Ова се прави со помош на едноставни команди:

  1. Командата firewall-cmd --get-default-zone ќе ви помогне да ја одредите стандардната зона.
  2. Откако ќе го активирате, ќе видите нова линија каде што ќе се прикаже потребниот параметар. На пример, на екранот подолу, зоната се смета за активна „јавно“.
  3. Сепак, неколку зони можат да бидат активни одеднаш, и тие се поврзани со посебен интерфејс. Дознајте ги овие информации преку firewall-cmd --get-active-zones .
  4. Командата firewall-cmd --list-all ќе ги прикаже правилата конфигурирани за стандардната зона. Погледнете ја сликата од екранот подолу. Гледате дека активната зона „јавно“доделено правило "стандардно"- стандардна операција, интерфејс "enp0s3"а додадени се две услуги.
  5. Ако сакате да ги дознаете сите достапни зони на заштитен ѕид, внесете firewall-cmd --get-zones .
  6. Параметрите на одредена зона се одредуваат преку firewall-cmd --zone=name --list-all , каде име- име на зоната.

Откако ќе ги одредите потребните параметри, можете да продолжите со нивно менување и додавање. Ајде внимателно да погледнеме неколку од најпопуларните конфигурации.

Поставување интерфејс зони

Како што знаете од горенаведените информации, секој интерфејс има своја стандардна зона. Ќе остане таму додека не се сменат поставките од корисникот или програмски. Можно е рачно да се префрли интерфејс во зона за една сесија, а тоа се прави со активирање на командата sudo firewall-cmd --zone=home --change-interface=eth0 . Резултат "успех"укажува дека трансферот бил успешен. Да ве потсетиме дека таквите поставки се ресетираат веднаш по рестартирањето на заштитниот ѕид.

Кога менувате вакви параметри, треба да имате предвид дека услугите може да се ресетираат. Некои од нив не поддржуваат работа во одредени зони, на пример, иако SSH е достапен во "дома", но во обичај или специјални сервисот ќе одбие да работи. Можете да потврдите дека интерфејсот е успешно поврзан со новата гранка со внесување на firewall-cmd --get-active-zones .

Ако сакате да ги ресетирате вашите претходно направени поставки, едноставно рестартирајте го заштитниот ѕид: sudo systemctl рестартирајте го firewalld.service .

Понекогаш не е секогаш погодно да се смени зоната на интерфејсот само за една сесија. Во овој случај, ќе треба да ја уредите конфигурациската датотека така што сите поставки ќе бидат внесени на трајна основа. За да го направите ова, препорачуваме да користите уредувач на текст нано, кој е инсталиран од официјалното складиште со sudo yum install nano . Следно, останува само да го направите следново:

  1. Отворете ја конфигурациската датотека преку уредувач со внесување sudo nano /etc/sysconfig/network-scripts/ifcfg-eth0, каде што eth0— името на потребниот интерфејс.
  2. Потврдете ја автентичноста сметказа извршување на понатамошни дејствија.
  3. Најдете го параметарот „ЗОНА“и сменете ја неговата вредност на саканата, на пример, јавна или домашна .
  4. Држете ги копчињата Ctrl + Oза да ги зачувате промените.
  5. Не го менувајте името на датотеката, само кликнете на Внесете.
  6. Излезете уредувач на текстпреку Ctrl+X.

Сега зоната на интерфејсот ќе биде како што сте ја навеле до следниот пат кога ќе ја уредите конфигурациската датотека. За да стапат на сила ажурираните поставки, извршете sudo systemctl рестартирајте network.service и sudo systemctl рестартирајте firewalld.service .

Поставување на стандардната зона

Погоре, веќе демонстриравме команда што ни овозможи да ја дознаеме стандардната зона. Може да се промени и со поставување параметар по ваш избор. За да го направите ова, само напишете sudo firewall-cmd --set-default-zone=name во конзолата, каде што име— име на потребната зона.

Успехот на командата ќе биде означен со натписот "успех"на посебна линија. После ова, сите тековни интерфејси ќе бидат врзани за наведената зона, освен ако не е поинаку наведено во конфигурациските датотеки.

Креирање правила за програми и комунални услуги

На самиот почеток на статијата, зборувавме за дејството на секоја зона. Дефинирањето на услуги, комунални услуги и програми во такви гранки ќе ви овозможи да примените поединечни параметри за секој од нив за да одговараат на потребите на секој корисник. За да започнете, препорачуваме да се запознаете со целосната листа на достапни на овој моментуслуги: заштитен ѕид-cmd --get-services .

Резултатот ќе се прикаже директно во конзолата. Секој сервер е одделен со празно место и лесно можете да ја најдете алатката за која сте заинтересирани во списокот. Доколку потребната услуга не е достапна, таа треба дополнително да се инсталира. Прочитајте за правилата за инсталација во официјалната софтверска документација.

Горенаведената команда ги прикажува само имињата на услугите. Детални информации за секој од нив се добиваат преку индивидуална датотека лоцирана по патеката /usr/lib/firewalld/services. Таквите документи се во XML формат, патеката, на пример, до SSH изгледа вака: /usr/lib/firewalld/services/ssh.xml, а документот ја има следната содржина:

SSH
Secure Shell (SSH) е протокол за најавување и извршување на команди на оддалечени машини. Обезбедува безбедна шифрирана комуникација. Ако планирате да пристапите на вашата машина од далечина преку SSH преку интерфејс со заштитен ѕид, овозможете ја оваа опција. Потребен ви е инсталиран пакетот openssh-сервер за оваа опција да биде корисна.

Сервисната поддршка во одредена зона се активира рачно. ВО "Терминал"треба да ја издадете командата sudo firewall-cmd --zone=public --add-service=http , каде --зона=јавна- зона за активирање, и --add-service=http- име на услугата. Имајте предвид дека таквата промена ќе важи само за една сесија.

Трајното додавање се врши преку sudo firewall-cmd --zone=public --permanent --add-service=http , и резултатот "успех"укажува на успешно завршување на операцијата.

Погледни целосна листаМожете да креирате постојани правила за одредена зона со прикажување на списокот во посебна линија на конзолата: sudo firewall-cmd --zone=public --permanent --list-services .

Решавање на проблемот со недостиг на пристап до услугата

Стандардно, правилата за заштитен ѕид ги наведуваат најпопуларните и најбезбедните услуги како дозволени, но некои стандардни или апликации од трета странатој блокира. Во овој случај, корисникот ќе треба рачно да ги промени поставките за да го реши проблемот со пристапот. Ова може да се направи на два различни начини.

Пренасочување на пристаништето

Како што знаете, сите мрежни услуги користат одредена порта. Лесно се открива од заштитниот ѕид, а блокирањето може да се изврши користејќи го. За да избегнете такви дејства од заштитниот ѕид, треба да ја отворите потребната порта со командата sudo firewall-cmd --zone=public --add-port=0000/tcp , каде --зона=јавна- област на пристаниште, --add-port=0000/tcp— број на порта и протокол. Опцијата firewall-cmd --list-ports ќе прикаже листа на отворени порти.

Ако треба да ги отворите портите вклучени во опсегот, користете ја линијата sudo firewall-cmd --zone=public --add-port=0000-9999/udp , каде --add-port=0000-9999/udp— опсег на порти и нивниот протокол.

Горенаведените команди ќе ви овозможат само да ја тестирате употребата на такви параметри. Ако беше успешно, треба да ги додадете истите порти на постојаните поставки, а тоа се прави со внесување sudo firewall-cmd --zone=public --permanent --add-port=0000/tcp или sudo firewall-cmd -- зона=јавна --постојана --add-port=0000-9999/udp. Списокот на отворени постојани порти се гледа вака: sudo firewall-cmd --zone=public --permanent --list-ports .

Дефиниција на услугата

Како што можете да видите, додавањето порти не предизвикува никакви тешкотии, но постапката станува посложена кога се користат голем број апликации. Станува тешко да се следат сите пристаништа што се користат, па подобра опција би била да се дефинира услугата:


Сè што треба да направите е да го изберете најсоодветниот метод за решавање на проблемите со пристапот до услугата и да ги следите дадените упатства. Како што можете да видите, сите дејства се изведуваат прилично лесно и не треба да се појават никакви тешкотии.

Креирање сопствени зони

Веќе знаете дека FirewallD првично создаде голем број различни зони со одредени правила. Сепак, постојат ситуации кога системски администратортреба да креирате сопствена зона, како на пр „јавна мрежа“за инсталиран веб-сервер или "приватен DNS"— за серверот DNS. Користејќи ги овие два примери, ќе разгледаме додавање гранки:


Во оваа статија научивте како да креирате сопствени зони и да додавате услуги на нив. Веќе разговаравме за нивно стандардно поставување и доделување интерфејси погоре; се што треба да направите е да ги наведете точните имиња. Не заборавајте да го рестартирате вашиот заштитен ѕид откако ќе направите трајни промени.

Како што можете да видите, заштитниот ѕид FirewallD е прилично сеопфатна алатка која ви овозможува да креирате најфлексибилна конфигурација на заштитен ѕид. Останува само да се осигураме дека алатката започнува со системот и наведените правила веднаш ја започнуваат својата работа. Направете го ова со командата sudo systemctl enable firewalld.

Првиот чекор за заштита на серверот од надворешни закани е заштитен ѕид, кој го филтрира дојдовниот и појдовниот сообраќај. Во оваа статија сакам да разговарам за поставување iptables, посебен случај на заштитен ѕид на CentOS, а исто така да зборувам за негово инсталирање и оневозможување. Мојот водич нема да биде исцрпен; ќе ги разгледам само оние аспекти што ги сметам за најважни и кои јас самиот ги користам во мојата работа.

Оваа статија е дел од една серија написи за серверот.

Вовед

Iptables моментално е де факто стандард меѓу современите дистрибуции на Linux. Не можам ни веднаш да се сетам што друго се користи како заштитен ѕид. Така, секој администратор на Линукс мора да се занимава со поставување на овој заштитен ѕид во својата работа.

Постојат различни врски со овој заштитен ѕид кои се користат за попрактична конфигурација. Убунту има ufw, во центи - заштитен ѕид, другите не ги познавам. Лично, не гледам никаква погодност во користењето на овие алатки. Навикнат сум да поставувам заштитен ѕид на Линукс на старомоден начин, како што научив на самиот почеток на мојата работа. Мислам дека ова е наједноставниот и најзгодниот начин, кој ќе го споделам со вас. Нејзината суштина се сведува на фактот дека скрипта е создадена со правила за заштитен ѕид. Оваа скрипта може лесно да се уредува за да одговара на вашите потреби и да се пренесе од сервер на сервер.

Оневозможување заштитен ѕид

Веќе го допрев прашањето за оневозможување на заштитниот ѕид во темата на . Пред сè, да го оневозможиме заштитен ѕид, кој стандардно е присутен во centos 7 веднаш по инсталацијата:

# systemctl стоп заштитен ѕид

Сега да го отстраниме од стартување за да не се вклучи повторно по рестартирање:

# systemctl оневозможи заштитен ѕид

По ова, поставките за заштитен ѕид на серверот стануваат целосно отворени. Можете да ги видите правилата на iptables со командата:

Инсталирање iptables

Всушност, ние веќе имаме заштитен ѕид на нашиот сервер и тој работи, едноставно нема правила, сè е отворено. Ќе треба да инсталираме дополнителни алатки за управување, без кои е невозможно да се конфигурираат iptables. На пример, нема да биде можно да се рестартира заштитниот ѕид:

# systemctl рестартирајте iptables.service Не успеа да се издаде повик за метод: Unit iptables.service не успеа да се вчита: Нема таква датотека или директориум.

Или нема да можете да го додадете на автоматско активирање:

# systemctl enable iptables.service Не успеа да се издаде повик за метод: Нема таква датотека или директориум

За да избегнете такви грешки, инсталирајте го потребниот пакет со комунални услуги:

# yum -y инсталирај iptables-services

Сега можете да додадете iptables за стартување и стартување:

# systemctl овозможи iptables.service # systemctl стартува iptables.service

Поставување заштитен ѕид

Јас користам скрипта за управување со правилата на заштитниот ѕид. Ајде да го создадеме:

# mcedit /etc/iptables.sh

Следно ќе го пополниме со потребните правила. Ќе ги анализирам сите значајни делови од сценариото, и Ќе го дадам во целост во формуларот текстуална датотекана крајот од статијата. Правилата се направени во форма на слики за да се забрани копирање и вметнување. Ова може да доведе до грешки во работењето на правилата, со кои јас самиот се сретнав додека ја подготвував статијата.

Ќе разгледаме ситуација кога серверот е порта до Интернет за локална мрежа.

Пред сè, да ги поставиме сите променливи што ќе ги користиме во скриптата. Ова не е неопходно, но се препорачува бидејќи е погодно да се префрлат поставките од сервер на сервер. Ќе биде доволно едноставно да се преназначат променливите.

Пред да ги примените новите правила, ги расчистуваме сите синџири:

Го блокираме целиот сообраќај што не одговара на ниту едно од правилата:

Дозволете го целиот локален хост и локален сообраќај:

Дозволуваме пинг:

Ако не ви треба ова, тогаш не додавајте правила за дозволување за icmp.

Отвораме пристап до Интернет до самиот сервер:

Ако сакате да ги отворите сите дојдовни врски на серверот, тогаш додадете го следново правило:

Сега да додадеме заштита од најчестите мрежни напади. Прво, да ги отфрлиме сите пакети што немаат статус:

Блокирање нулти пакети:

Заштитете се од напади на син-поплава:

Ако не поставите ограничувања за пристап од локалната мрежа, тогаш им дозволуваме на сите да пристапат на Интернет:

Следно, забрануваме пристап од Интернет до локалната мрежа:

За да може нашата локална мрежа да користи Интернет, овозможуваме nat:

За да не го изгубиме пристапот до серверот, по примената на правилата, дозволуваме врски преку ssh:

И на крајот ги запишуваме правилата за да важат по рестартирање:

Составивме едноставна конфигурација која ги блокира сите дојдовни конекции освен ssh и овозможува пристап од локалната мрежа до Интернет. Во исто време, се заштитивме од некои мрежни напади.

Зачувајте ја скриптата, направете ја извршна и стартувајте:

# chmod 0740 /etc/iptables.sh # /etc/iptables.sh

Ајде да ги разгледаме правилата и да провериме дали сите правила се на место:

# iptables -L -v -n

Ве молиме имајте предвид дека треба да ги примените правилата само ако имате пристап до серверската конзола. Ако има грешка во поставките, може да го изгубите пристапот. Проверете дали во итен случај можете да го оневозможите заштитниот ѕид и да ги прилагодите поставките.

Отворање порти

Сега малку да ја прошириме нашата конфигурација и да ги отвориме портите во iptables за некои услуги. Да речеме дека имаме веб-сервер кој работи и треба да отвориме пристап до него од Интернет. Додадете правила за веб сообраќај:

Додадена е дозвола за дојдовни конекции на портите 80 и 443, кои веб-серверот ги користи во својата работа.

Ако имате инсталирано сервер за пошта, тогаш треба да дозволите дојдовни врски со него на сите користени порти:

За правилно работење DNS сервери, треба да ја отворите портата UDP 53

Пренасочување на пристаништето

Ајде да ја разгледаме ситуацијата кога е неопходно да се препраќаат порти од надворешен интерфејс на некој компјутер на локалната мрежа. Да речеме дека треба да добиете rdp пристапна компјутер 10.1.3.50 од Интернет. Препраќаме TCP порта 3389:

Ако не сакате да изложите позната порта однадвор, можете да пренасочите од нестандардна порта во rdp портата на целниот компјутер:

Ако препраќате порта однадвор до локалната мрежа, не заборавајте да го коментирате правилото што го блокира пристапот од надворешната мрежа до внатрешната. Во мојот пример ова правило е: $IPT -A FORWARD -i $WAN -o $LAN1 -j REJECT

Или пред ова правило, креирајте дозволено правило за надворешен пристап до внатрешната услуга, на пример вака:

$IPT -A НАПРЕД -i $WAN -d 10.1.3.50 -p tcp -m tcp --dport 3389 -j ACCEPT

Овозможување дневници

За време на поставувањето, корисно е да се овозможат дневници за следење на блокираните пакети и да се открие зошто нема пристап до потребните услуги што се чини дека веќе сме ги отвориле. Ги испраќам сите блокирани пакети во посебни синџири (block_in, block_out, block_fw) што одговараат на насоката на сообраќајот и ја означувам секоја насока во дневниците. Ова го прави поудобно да се направи дебрифинг. Додајте ги следниве правила на самиот крај на скриптата, пред да ги зачувате поставките:

Можете да ги следите сите блокирани пакети во датотеката /var/log/messages.

Откако ќе завршите со поставувањето, коментирајте ги овие редови и оневозможете евиденција. Дефинитивно вреди да се направи ова, бидејќи трупците растат многу брзо. Јас лично не гледам никаква практична смисла во складирањето на такви информации.

Како да ги оневозможите iptables

Ако одеднаш одлучите дека повеќе не ви треба заштитниот ѕид, можете да го оневозможите на следниов начин:

# systemctl стоп iptables.service

Оваа команда го запира заштитниот ѕид. И следново го отстранува од стартување:

# systemctl оневозможи iptables.service

Со оневозможување на заштитниот ѕид, ги дозволивме сите врски.

Заклучок

Како што ветив, објавувам завршено сценарио со основниот сет на правила што ги разгледавме

Би сакал уште еднаш да истакнам дека кога поставувате iptables треба да бидете исклучително внимателни. Не започнувајте го овој бизнис ако немате пристап до серверската конзола. Дури и додека ја пишував оваа статија, го изгубив пристапот до серверот поради смешна грешка во правилата. Оваа грешка се појави поради копирање и губење на двојна цртичка - таа беше заменета со единечна.

онлајн курс „Администратор на Линукс“ во OTUS. Курсот не е за почетници, за прием ви треба основно познавање на мрежи и Инсталација на Linuxна виртуелната машина. Обуката трае 5 месеци, по што успешните дипломци ќе можат да поминат интервјуа со партнери. Што ќе ви даде овој курс:

  • Познавање на Линукс архитектура.
  • Развој современи методии алатки за анализа и обработка на податоци.
  • Способност за избор на конфигурација за потребните задачи, управување со процеси и обезбедување безбедност на системот.
  • Умешен во основните работни алатки на системски администратор.
  • Разбирање на спецификите на распоредување, конфигурирање и одржување на мрежи изградени на Linux.
  • Способност за брзо решавање на новите проблеми и обезбедување стабилна и непречена работа на системот.
Тестирајте се на приемниот тест и видете ја програмата за повеќе детали.

FirewallD е алатка за управување со заштитен ѕид стандардно достапна на серверите CentOS 7. Во основа е обвивка околу IPTables и доаѓа со графичка алатка за конфигурација, конфигурација на заштитен ѕид и алатка за конфигурација на заштитен ѕид. командна линијазаштитен ѕид-cmd. Со услугата IPtables, секоја промена бара бришење на старите правила и создавање нови правила во датотеката ` /etc/sysconfig/iptables`, а со заштитен ѕид се применуваат само разликите.

FirewallD зони

FirewallD користи услуги и зони наместо правила и синџири во Iptables. Стандардно, достапни се следните зони:

  • капка– Отфрлете ги сите дојдовни мрежни пакети без одговор, само појдовните мрежни врскидостапни.
  • блок– Одбијте ги сите дојдовни мрежни пакети со порака icmp-host-prohibited, дозволени се само појдовни мрежни конекции.
  • јавен– се прифаќаат само избрани дојдовни врски, за употреба на јавни површини
  • надворешен– За надворешни мрежи со маскирање, се прифаќаат само избрани дојдовни конекции.
  • dmz– демилитаризирана зона ДМЗ, јавно достапна од ограничен пристапна внатрешната мрежа, се прифаќаат само избрани дојдовни врски.
  • работа
  • дома– За компјутерите во домашната зона се прифаќаат само избрани дојдовни конекции.
  • внатрешен– За компјутерите на вашата внатрешна мрежа, се прифаќаат само избрани дојдовни врски.
  • доверлив– Сите мрежни врски се прифатени.

За да добиете список на сите достапни зони:

# firewall-cmd --get-zones work drop внатрешен надворешен доверлив дом dmz јавен блок

За да видите список на стандардни зони:

# заштитен ѕид-cmd --get-default-zone public

За да ја промените стандардната зона:

Услуги за заштитен ѕид

Услугите FirewallD се XML конфигурациски датотеки што содржат информации за влез во услугата за заштитен ѕид. За да добиете список на сите достапни услуги:

# firewall-cmd --get-services amanda-client amanda-k5-client bacula bacula-client ceph ceph-mon dhcp dhcpv6 dhcpv6-client dns docker-registry dropbox-lansync freeipa-ldap freeipa-ldaps freeipa-репликација http https imap imaps ipp ipp-клиент ipsec iscsi-target kadmin kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mosh mountd ms-wbt mysql nfs ntp openvpn pmcd pmproxy 3ppmbaxy posthwebapi cp ptp pulseaudio puppetmaster радиус rpc-bind rsyncd самба самба-клиент разумен smtp smtps snmp snmptrap лигњи ssh синергија syslog syslog-tls телнет tftp tftp-клиент тинк тор-чорапи пренос-клиент vdsm vnc-сервер wbem-https xmpp-bosh xmppserver-client

Датотеките за конфигурација на XML се зачувани во директориуми /usr/lib/firewalld/services/И /etc/firewalld/services/.

Поставување заштитен ѕид со FirewallD

Како пример, еве како можете да конфигурирате заштитен ѕид со FirewallD ако користите веб-сервер, SSH на портата 7022 и сервер за пошта.

Прво ќе ја поставиме стандардната зона за DMZ.

# firewall-cmd --set-default-zone=dmz # firewall-cmd --get-default-zone dmz

За да додадете постојани правила за услуги за HTTP и HTTPS во DMZ, извршете ја следнава команда:

# firewall-cmd --zone=dmz --add-service=http --permanent # firewall-cmd --zone=dmz --add-service=https --трајно

Отворете ја портата 25 (SMTP) и портата 465 (SMTPS):

Firewall-cmd --zone=dmz --add-service=smtp --траен заштитен ѕид-cmd --zone=dmz --add-service=smtps --трајно

Отвори, порти IMAP, IMAPS, POP3 и POP3S:

Firewall-cmd --zone=dmz --add-service=imap --траен заштитен ѕид-cmd --zone=dmz --add-service=imaps --траен заштитен ѕид-cmd --zone=dmz --add-service= pop3 --постојан заштитен ѕид-cmd --zone=dmz --add-service=pop3s --трајно

Бидејќи SSH-портата е сменета во 7022, ќе ја отстраниме услугата SSH (порта 22) и ќе ја отвориме портата 7022

Firewall-cmd --remove-service=ssh --траен заштитен ѕид-cmd --add-port=7022/tcp --трајно

За да ги имплементираме промените, треба да го рестартираме заштитниот ѕид:

Заштитен ѕид-cmd --вчитај повторно

Конечно, можете да ги наведете правилата.

FirewallD е алатка за управување со заштитен ѕид стандардно достапна на серверите CentOS 7. Во основа е обвивка околу IPTables и доаѓа со графичка алатка за конфигурација, firewall-config и алатка за командна линија, firewall-cmd. Со услугата IPtables, секоја промена бара бришење на старите правила и создавање нови правила во датотеката ` /etc/sysconfig/iptables`, а со заштитен ѕид се применуваат само разликите.

FirewallD зони

FirewallD користи услуги и зони наместо правила и синџири во Iptables. Стандардно, достапни се следните зони:

  • капка– Исфрлете ги сите дојдовни мрежни пакети без одговор, достапни се само појдовните мрежни конекции.
  • блок– Одбијте ги сите дојдовни мрежни пакети со порака icmp-host-prohibited, дозволени се само појдовни мрежни конекции.
  • јавен– се прифаќаат само избрани дојдовни врски, за употреба на јавни површини
  • надворешен– За надворешни мрежи со маскирање, се прифаќаат само избрани дојдовни конекции.
  • dmz– демилитаризирана зона ДМЗ, јавно достапна со ограничен пристап до внатрешната мрежа, се прифаќаат само избрани дојдовни врски.
  • работа
  • дома– За компјутерите во домашната зона се прифаќаат само избрани дојдовни конекции.
  • внатрешен– За компјутерите на вашата внатрешна мрежа, се прифаќаат само избрани дојдовни врски.
  • доверлив– Сите мрежни врски се прифатени.

За да добиете список на сите достапни зони:

# firewall-cmd --get-zones work drop внатрешен надворешен доверлив дом dmz јавен блок

За да видите список на стандардни зони:

# заштитен ѕид-cmd --get-default-zone public

За да ја промените стандардната зона:

Услуги за заштитен ѕид

Услугите FirewallD се XML конфигурациски датотеки што содржат информации за влез во услугата за заштитен ѕид. За да добиете список на сите достапни услуги:

# firewall-cmd --get-services amanda-client amanda-k5-client bacula bacula-client ceph ceph-mon dhcp dhcpv6 dhcpv6-client dns docker-registry dropbox-lansync freeipa-ldap freeipa-ldaps freeipa-репликација http https imap imaps ipp ipp-клиент ipsec iscsi-target kadmin kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mosh mountd ms-wbt mysql nfs ntp openvpn pmcd pmproxy 3ppmbaxy posthwebapi cp ptp pulseaudio puppetmaster радиус rpc-bind rsyncd самба самба-клиент разумен smtp smtps snmp snmptrap лигњи ssh синергија syslog syslog-tls телнет tftp tftp-клиент тинк тор-чорапи пренос-клиент vdsm vnc-сервер wbem-https xmpp-bosh xmppserver-client

Датотеките за конфигурација на XML се зачувани во директориуми /usr/lib/firewalld/services/И /etc/firewalld/services/.

Поставување заштитен ѕид со FirewallD

Како пример, еве како можете да конфигурирате заштитен ѕид со FirewallD ако користите веб-сервер, SSH на портата 7022 и сервер за пошта.

Прво ќе ја поставиме стандардната зона за DMZ.

# firewall-cmd --set-default-zone=dmz # firewall-cmd --get-default-zone dmz

За да додадете постојани правила за услуги за HTTP и HTTPS во DMZ, извршете ја следнава команда:

# firewall-cmd --zone=dmz --add-service=http --permanent # firewall-cmd --zone=dmz --add-service=https --трајно

Отворете ја портата 25 (SMTP) и портата 465 (SMTPS):

Firewall-cmd --zone=dmz --add-service=smtp --траен заштитен ѕид-cmd --zone=dmz --add-service=smtps --трајно

Отвори, порти IMAP, IMAPS, POP3 и POP3S:

Firewall-cmd --zone=dmz --add-service=imap --траен заштитен ѕид-cmd --zone=dmz --add-service=imaps --траен заштитен ѕид-cmd --zone=dmz --add-service= pop3 --постојан заштитен ѕид-cmd --zone=dmz --add-service=pop3s --трајно

Бидејќи SSH-портата е сменета во 7022, ќе ја отстраниме услугата SSH (порта 22) и ќе ја отвориме портата 7022

Firewall-cmd --remove-service=ssh --траен заштитен ѕид-cmd --add-port=7022/tcp --трајно

За да ги имплементираме промените, треба да го рестартираме заштитниот ѕид:

Заштитен ѕид-cmd --вчитај повторно

Конечно, можете да ги наведете правилата.

Почнувајќи со CentoOS 7, се појави нова алатка за конфигурирање на правилата за филтрирање сообраќај заштитен ѕид. Се препорачува да се користи за управување со правилата iptables. Во CentOS 8, наместо стандардниот пакет за филтрирање iptables, сега се користи рамката nftables, а кога ги конфигурирате правилата за заштитен ѕид преку заштитен ѕид, всушност ги конфигурирате nftables. Во оваа статија, ќе го разгледаме инсталирањето, основните концепти и конфигурирањето на заштитен ѕид на сервер кој работи CentOS 8 (CentOS 7 е ист).


FirewallD– заштитен ѕид за заштита на серверот од несакан сообраќај со поддршка за динамично управување со правилата (без рестартирање) и имплементација на постојани правила за заштитен ѕид. Работи како интерфејс за и nftables. FirewallD може да се користи на скоро сите дистрибуции на Linux.

Основни концепти, зони и правила на заштитен ѕид

Пред да започнете со инсталација и конфигурација заштитен ѕид, ќе го воведеме концептот на зони, кои се користат за одредување на нивото на доверба во разни врски. За различни зони заштитен ѕидможете да примените различни правила за филтрирање, наведете активни опциизаштитен ѕид во форма на предефинирани услуги, протоколи и пристаништа, пренасочување на порти и rich-rules.

Заштитен ѕидго филтрира дојдовниот сообраќај по зона во зависност од правилата што се применуваат во зоната. Ако IP- адресата на испраќачот на барањето се совпаѓа со правилата на одредена зона, па пакетот ќе биде испратен преку оваа зона. Ако адресата не се совпаѓа со ниту една од зоните конфигурирани на серверот, пакетот ќе биде обработен од стандардната зона. При инсталирање заштитен ѕидсе нарекува стандардната зона јавен.

Firewalld има зони кои се претходно конфигурирани со дозволи за различни услуги. Можете да ги користите овие поставки или да креирате свои зони. Список на стандардни зони што се креираат при инсталирање заштитен ѕид (зачувани во директориумот /usr/lib/firewalld/zones/):

капка минимално ниво на доверба. Сите дојдовни врски се блокирани без одговор, дозволени се само појдовни врски;
блок зоната е слична на претходната, но кога дојдовните барања се одбиваат, се испраќа пораката icmp-host-prohibited за Ipv4 или icmp6-adm-prohibited за Ipv6;
јавен претставува јавни, недоверливи мрежи. Можете да дозволите избрани дојдовни врски на индивидуална основа;
надворешен надворешни мрежи кога користите заштитен ѕид како порта. Конфигуриран е за NAT маскирање, така што вашата внатрешна мрежа останува приватна, но достапна;
внатрешен антоним на надворешна зона. Домаќинот има доволно ниво на доверба, достапни се голем број дополнителни услуги;
dmz се користи за компјутери лоцирани во DMZ (изолирани компјутери без пристап до остатокот од мрежата). Дозволени се само одредени дојдовни врски;
работа зона за работни машини (на повеќето компјутери на мрежата им се верува);
дома зона на домашна мрежа. На повеќето компјутери може да им се верува, но само одредени дојдовни врски се поддржани;
доверлив верувајте на сите машини на мрежата. Најотворена од сите достапни опции, бара свесна употреба.

ВО заштитен ѕидсе користат две групи правила - трајни и привремени. Привремените правила работат додека серверот не се рестартира. Стандардно, кога се додаваат правила на заштитен ѕид, правилата се сметаат за привремени ( траење). За да додадете правило на трајна основа, треба да го користите знамето - трајно. Таквите правила ќе се применат откако серверот ќе се рестартира.

Инсталирање и овозможување заштитен ѕид на CentOS

Во CentOS 7/8, заштитниот ѕид е стандардно инсталиран со ОС. Ако сте го отстраниле и сакате да инсталирате заштитен ѕид, можете да го користите стандардниот /dnf менаџер:

# yum инсталирај заштитен ѕид -y - за Centos 7
# dnf инсталирај заштитен ѕид -y - за Centos 8

На демонот заштитен ѕидзапочна автоматски кога стартуваше серверот, треба да го додадете во:

# systemctl овозможи заштитен ѕид

И трчај:

# systemctl стартува заштитен ѕид

Проверете го статусот на услугата:

# systemctl статусен заштитен ѕид

● firewalld.service - заштитен ѕид - динамичен огнен ѕид Демон Вчитано: вчитано (/usr/lib/systemd/system/firewalld.service; овозможено; претходно поставено од продавачот: овозможено) Активно: активен (работи) од пон. 14.10.2019 14:54 :40 +06; Пред 22 секунди Документи: man:firewalld(1) Главен PID: 13646 (firewalld) CGroup: /system.slice/firewalld.service └─13646 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nop Окт 14 14:54:40 server.vpn.ru systemd: Стартува заштитен ѕид - динамичен огнен ѕид демон... 14 октомври 14:54:40 server.vpn.ru systemd: Стартуван заштитен ѕид - динамичен огнен ѕид демон.

Или со командата:

# заштитен ѕид-cmd --state

Командата firewall-cmd е преден дел на заштитниот ѕид на nftables/iptables.

# заштитен ѕид-cmd --state

Работа со правила на заштитен ѕид

Стандардните правила:

Пред да поставите правила за заштитен ѕид, треба да проверите која зона се користи стандардно:

# заштитен ѕид-cmd --get-default-zone

Бидејќи штотуку инсталиравме заштитен ѕид и сè уште не сме го конфигурирале, имаме стандардна зона јавен.

Ајде да ја провериме активната зона. Има и едно - јавно:

# заштитен ѕид-cmd --get-active-zones

Јавни интерфејси: eth0

Како што можете да видите, мрежниот интерфејс eth0 е контролиран од зоната јавен.

За да ги видите основните правила, внесете:

# заштитен ѕид-cmd --list-all

Јавна (активна) цел: стандардно icmp-block-инверзија: нема интерфејси: eth0 извори: услуги: dhcpv6-клиент ssh порти: протоколи: маскарада: нема напред-порти: извор-порти: icmp-блокови: богати правила:

Од списокот можете да видите дека вообичаените операции поврзани со клиентот DHCP и ssh се додадени во оваа зона.

Достапни зони

За да видите список на сите зони, треба да ја извршите командата:

# заштитен ѕид-cmd --get-zones

Ја добив следната листа:

Блокирај dmz капка надворешен дом внатрешна јавна доверлива работа

За да ги проверите правилата на одредена зона, треба да го додадете знамето - зона.

# firewall-cmd --zone=home --list-all

Почетна цел: стандардна icmp-block-инверзија: нема интерфејси: извори: услуги: dhcpv6-client mdns samba-client ssh порти: протоколи: маскарада: нема напред-порти: извор-порти: icmp-блокови: богати правила:

Правилата на сите зони може да се видат со командата:

# заштитен ѕид-cmd --list-all-zones

Списокот ќе биде доста голем, бидејќи може да има многу зони.

Променете ја стандардната зона.

Стандардно е сè мрежни интерфејсисе наоѓа во областа јавен, но тие можат да се пренесат во која било од зоните со командата:

# firewall-cmd --zone=home -change-interface=eth0

По параметарот --зона=означете ја саканата зона.

За да ја промените стандардната зона, треба да ја користите командата:

# firewall-cmd --set-default-zone=home

Додавање правила за апликација

За да отворите порта за апликација, можете да додадете услуга на исклучоците. Прикажете список на достапни услуги:

Излезот ќе содржи голем број на услуги. детални информацииза услугата е содржана во нејзиниот xmlдатотека. Овие датотеки се наоѓаат во директориумот /usr/lib/firewalld/услуги.

На пример:

# cd /usr/lib/firewalld/services

Пошта (SMTP) Оваа опција овозможува испорака на дојдовна SMTP пошта. Ако треба да дозволите оддалечените домаќини да се поврзат директно со вашата машина за да доставуваат пошта, овозможете ја оваа опција. Не треба да го овозможите ова ако ја собирате вашата пошта од серверот на вашиот интернет провајдер преку POP3 или IMAP, или ако користите алатка како што е fetchmail. Имајте предвид дека неправилно конфигуриран SMTP серверот можедозволете оддалечените машини да го користат вашиот сервер за испраќање спам.

XML-датотеката содржи опис на услугата, протоколот и бројот на портата што ќе се отворат во заштитен ѕид.

Кога додавате правила, можете да го користите параметарот --додај-услугаза да отворите пристап до одредена услуга:

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

# firewall-cmd --zone=public --add-service=https

По додавањето правила, можете да проверите дали услугите се додадени во наведената зона:

# firewall-cmd --zone=public --list-services

Dhcpv6-клиент http https ssh

Ако сакате да ги направите овие правила трајни, треба да го додадете параметарот при додавање - трајно.

За да отстраните услуга од зона:

# firewall-cmd --трајна --zone=public --remove-service=http

Dhcpv6-клиент https ssh тест

Ако сакате да ја додадете вашата услуга на исклучоци, можете да креирате датотека xmlсами и пополнете го. Можете да копирате податоци од која било услуга, да го промените името, описот и бројот на портата.

Ајде да ја копираме датотеката smtp.xmlдо директориумот за работа со кориснички услуги:

# cp /usr/lib/firewalld/services/smtp.xml /etc/firewalld/services

Променете го описот на услугата во датотеката.

Себеси xml датотекаИсто така, треба да го преименувате со името на вашата услуга. После тоа, треба да го рестартирате заштитен ѕид и да проверите дали нашата услуга е на списокот:

Се јавив во службата тести се појави во списокот:

Syslog-tls телнет тест tftp

Сега можете да ја додадете креираната услуга во која било зона:

# firewall-cmd --zone=public --add-service=test --permanent

# firewall-cmd --zone=public --permanent --list-services

Dhcpv6-клиент http https ssh тест

Ако не ја најдовте услугата што ви треба во списокот, можете да ја отворите потребната порта на заштитниот ѕид со командата:

# firewall-cmd --zone=public -add-port=77/tcp - open port 77 tcp
# firewall-cmd --zone=public -add-port=77/udp - open port 77 udp
# firewall-cmd --zone=public -add-port=77-88/udp - опсег на отворена порта 77-88 udp
# firewall-cmd --zone=public -list-ports - проверете ја листата на дозволени порти

Блокирај/дозволи одговори на ICMP:

# firewall-cmd --zone=public --add-icmp-block=echo-reply
# firewall-cmd --zone= public --remove-icmp-block=echo-reply

Отстранете ја додадената порта:

# firewall-cmd --zone=public -remove-port=77/udp - отстранете го привременото правило 77 udp

# firewall-cmd --permanent --zone=public -remove-port=77/udp - отстрани трајното правило

Додавање на сопствени зони

Можете да креирате своја сопствена зона (јас ќе ја наречам нашите):

# firewall-cmd --постојана --new-zone=наша

По креирањето на нова зона, како и по креирањето на услугата, потребно е рестартирање заштитен ѕид:

# заштитен ѕид-cmd --вчитај повторно

# заштитен ѕид-cmd --get-zones

Блокирај dmz капка надворешен дом внатрешно наше јавно доверливо дело

Зона нашитедостапни. Можете да додадете услуги на него или да отворите одредени порти.

Заштитен ѕид: блокирање на IP адреси, создавање исклучоци

Можете да додадете доверливи IP адреси на исклучоците од заштитен ѕид или да ги блокирате несаканите.

За да додадете специфичен на исклучоците IP адреса(на пример 8.8.8.8) на вашиот сервер преку заштитен ѕид, користете ја командата:

# firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" изворна адреса="8.8.8.8" прифати"

Проверете ја областа и уверете се IPдодадени на исклучоците во богатите правила:

Јавна (активна) цел: стандардна icmp-block-инверзија: нема интерфејси: eth0 извори: услуги: dhcpv6-client http https ssh тест порти: протоколи: маскарада: нема напред-порти: извор-порти: icmp-блокови: богати правила: правило семејство = "ipv4" изворна адреса = "8.8.8.8" прифати

Да блокира IP, треба да се замени прифатина отфрли:

# firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" source address="8.8.4.4" reject"

# firewall-cmd --zone=public --list-all

Јавна (активна) цел: стандардна icmp-block-инверзија: нема интерфејси: eth0 извори: услуги: dhcpv6-client http https ssh тест порти: протоколи: маскарада: нема напред-порти: извор-порти: icmp-блокови: богати правила: правило семејство = "ipv4" изворна адреса = "8.8.8.8" прифати правило семејство = "ipv4" изворна адреса = "8.8.4.4" одбие

Можете да дозволите одредена услуга само за барања од одредена IP адреса:

#firewall-cmd --трајно --add-rich-rule "rule family="ipv4" изворна адреса="10.10.1.0/24" име на услуга"https" прифати"

Ако итно треба да ги блокирате сите барања до серверот, користете ја командата за паника:

# заштитен ѕид-cmd --паника-вклучено

Можете да го оневозможите режимот на паника или со командата:

# заштитен ѕид-cmd --паника-исклучување

Или со рестартирање на серверот.

Можете да ја блокирате конфигурацијата на заштитниот ѕид, така што локалните услуги со root праване можев да ги смениме правилата за заштитен ѕид што ги создадовте:

# заштитен ѕид-cmd --заклучување-вклучено

Оневозможи режим на блокирање:

# заштитен ѕид-cmd --заклучување-исклучено

Препраќање порта во заштитен ѕид

Можете да креирате правило за препраќање порти во заштитен ѕид. За препраќање на портата 443 на 9090:

# firewall-cmd --zone=public --add-forward-port=port=443:proto=tcp:toport=9090 --трајно

За да отстраните правило за препраќање порта:

# firewall-cmd --zone=public --remove-forward-port=port=443:proto=tcp:toport=9090




Врв