Настройка Firewall ў CentOS 7

Anonim

Настройка Firewall ў CentOS 7

Усталяваны ў аперацыйнай сістэме Firewall выкарыстоўваецца для прадухілення несанкцыянаванага праходжання трафіку паміж кампутарнымі сеткамі. Ўручную або аўтаматычна ствараюцца спецыяльныя правілы для міжсеткавага экрана, якія і адказваюць за кіраванне доступам. У АС, распрацаванай на ядры Linux, CentOS 7 маецца ўбудаваны фаервол, а кіраванне ім ажыццяўляецца з дапамогай брандмаўэра. Па змаўчанні задзейнічаны FirewallD, і пра яго наладзе мы б хацелі пагаварыць сёння.

Наладжвальны Firewall ў CentOS 7

Як ужо было сказана вышэй, стандартным брандмаўарам ў CentOS 7 прызначаная ўтыліта FirewallD. Менавіта таму налада фаервол будзе разгледжана на прыкладзе гэтага інструмента. Задаць правілы фільтрацыі можна і з дапамогай той жа iptables, але гэта выконваецца крыху іншым чынам. З канфігурацыяй згаданай ўтыліты рэкамендуем азнаёміцца, пяройдучы па наступнай спасылцы, а мы ж пачнем разбор FirewallD.

Калі ж вам аднойчы спатрэбіцца часова або перманентна адключыць брандмаўэр, раім скарыстацца інструкцыяй, прадстаўленай у іншай нашай артыкуле па наступнай спасылцы.

Чытаць далей: Адключэнне Firewall ў CentOS 7

Прагляд правілаў па змаўчанні і даступных зон

Нават які працуе ў штатным рэжыме фаервол мае свае пэўныя правілы і даступныя зоны. Перад пачаткам рэдагавання палітык раім азнаёміцца ​​з бягучай канфігурацыяй. Робіцца гэта пры дапамозе простых каманд:

  1. Вызначыць якая функцыянуе па змаўчанні зону дапаможа каманда firewall-cmd --get-default-zone.
  2. Прагляд усталяванай па змаўчанні зоны фаервол ў CentOS 7

  3. Пасля яе актывацыі вы ўбачыце новы радок, дзе адлюструецца неабходны параметр. Напрыклад, на скрыншоце ніжэй актыўнай лічыцца зона «public».
  4. Адлюстраванне усталяванай па змаўчанні зоны фаервол ў CentOS 7

  5. Аднак актыўнымі могуць быць адразу некалькі зон, да таго ж яны прывязваюцца да асобнага інтэрфейсу. Даведайцеся гэтую інфармацыю праз firewall-cmd --get-active-zones.
  6. Прагляд ўсіх актыўных зон фаервол ў CentOS 7

  7. Каманда firewall-cmd --list-all выведзе на экран правілы, зададзеныя для зоны па змаўчанні. Звярніце ўвагу на скрыншот ніжэй. Вы бачыце, што актыўнай зоне «public" прысвоена правіла «default» - функцыянаванне па змаўчанні, інтэрфейс «enp0s3» і дададзена два сэрвісу.
  8. Прагляд правілаў актыўных зон фаервол праз тэрмінал у CentOS 7

  9. Калі з'явілася патрэба даведацца ўсе даступныя зоны брандмаўэра, увядзіце firewall-cmd --get-zones.
  10. Атрыманне спісу ўсіх даступных зон фаервол праз тэрмінал у CentOS 7

  11. Параметры ж канкрэтнай зоны вызначаюцца праз firewall-cmd --zone = name --list-all, дзе name - назва зоны.
  12. Адлюстраванне правілаў названай зоны фаервол праз тэрмінал у CentOS 7

Пасля вызначэння неабходных параметраў можна пераходзіць да іх змяненню і даданню. Давайце дэталёва разбяром некалькі самых папулярных канфігурацый.

Настройка зон інтэрфейсаў

Як вы ведаеце з інфармацыі вышэй, для кожнага інтэрфейсу вызначаецца свая зона па змаўчанні. Ён будзе знаходзіцца ў ёй да таго часу, пакуль налады не зменяцца карыстальнікам або праграмна. Магчымы ручной перанос інтэрфейсу ў зону на адну сесію, і ажыццяўляецца ён актывацыяй каманды sudo firewall-cmd --zone = home --change-interface = eth0. Вынік «success» сведчыць аб тым, што перанос прайшоў паспяхова. Нагадаем, што такія налады скідаюцца адразу пасля перазагрузкі фаервол.

Прызначэнне пэўнага інтэрфейсу для зоны фаервол ў CentOS 7

Пры падобным змене параметраў варта ўлічваць, што праца сэрвісаў можа быць скінута. Некаторыя з іх не падтрымліваюць функцыянаванне ў пэўных зонах, дапусцім, SSH хоць і даступны ў «home», але ў карыстацкіх або асаблівых сэрвіс працаваць адмовіцца. Пераканацца ў тым, што інтэрфейс быў паспяхова прывязаны да новай галіны можна, увёўшы firewall-cmd --get-active-zones.

Прагляд актыўнай зоны фаервол і яе інтэрфейс у CentOS 7

Калі вы захочаце скінуць вырабленыя раней налады, проста выканайце рэстарт брандмаўэра: sudo systemctl restart firewalld.service.

Перазапуск фаервол пасля ўнясення змяненняў у CentOS 7

Часам не заўсёды зручна змяняць зону інтэрфейсу ўсяго на адну сесію. У такім выпадку спатрэбіцца рэдагаваць канфігурацыйны файл, каб усе налады ўвялі на перманентнай аснове. Для гэтага мы раім выкарыстоўваць тэкставы рэдактар ​​nano, які ўсталёўваецца з афіцыйнага сховішчы sudo yum install nano. Далей застаецца вырабіць такія дзеянні:

  1. Адкрыйце канфігурацыйны файл праз рэдактар, увёўшы sudo nano / etc / sysconfig / network-scripts / ifcfg-eth0, дзе eth0 - назва неабходнага інтэрфейсу.
  2. Адкрыццё канфігурацыйнага файла інтэрфейсу фаервол ў CentOS 7

  3. Пацвердзіце сапраўднасць ўліковага запісу для выканання далейшых дзеянняў.
  4. Ўвод пароля для адкрыцця канфігурацыйнага файла інтэрфейсу ў CentOS 7

  5. Адшукайце параметр «ZONE» і памяняйце яго значэнне на патрэбнае, напрыклад, public або home.
  6. Змена зоны інтэрфейсу праз канфігурацыйны файл у CentOS 7

  7. Зацісніце клавішы Ctrl + O, каб захаваць змены.
  8. Запіс змяненняў у тэкставым рэдактары CentOS 7

  9. Не змяняйце імя файла, а проста націсніце на Enter.
  10. Прызначэнне файла для запісу зменаў у тэкставым рэдактары CentOS 7

  11. Выйдзіце з тэкставага рэдактара праз Ctrl + X.
  12. Выхад з тэкставага рэдактара пасля змен CentOS 7

Цяпер зона інтэрфейсу будзе такой, якой вы яе паказалі, да моманту наступнага рэдагавання канфігурацыйнага файла. Каб абноўленыя параметры ўступілі ў дзеянне, выканайце sudo systemctl restart network.service і sudo systemctl restart firewalld.service.

Ўстаноўка зоны па змаўчанні

Вышэй мы ўжо дэманстравалі каманду, якая дазваляла даведацца усталяваную па змаўчанні зону. Яе таксама можна змяніць, усталяваўшы параметр на свой выбар. Для гэтага ў кансолі досыць прапісаць sudo firewall-cmd --set-default-zone = name, дзе name - імя неабходнай зоны.

Прызначэнне зоны фаервол па змаўчанні ў CentOS 7

Аб паспяховасці выканання каманды будзе сведчыць надпіс «success» у асобнай радку. Пасля гэтага ўсе бягучыя інтэрфейсы прывыкнуць да паказанай зоне, калі іншага не зададзена ў канфігурацыйных файлах.

Паспяховае прызначэнне зоны па змаўчанні ў CentOS 7

Стварэнне правілаў для праграм і ўтыліт

У самым пачатку артыкула мы распавялі пра дзеянне кожнай зоны. Вызначэнне сэрвісаў, утыліт і праграм у такія галіны дазволіць прымяніць для кожнай з іх індывідуальныя параметры пад запыты кожнага карыстальніка. Для пачатку раім азнаёміцца ​​з поўным спісам даступных на дадзены момант сэрвісаў: firewall-cmd --get-services.

Каманда для прагляду даступных у сістэме сэрвісаў CentOS 7

Вынік адлюструецца прама ў кансолі. Кожны сервер падзелены прабелам, і ў спісе вы зможаце з лёгкасцю адшукаць які цікавіць вас інструмент. Калі ж патрэбны сэрвіс адсутнічае, яго варта дадаткова ўсталяваць. Аб правілах інсталяцыі чытайце ў афіцыйнай дакументацыі праграмнага забеспячэння.

Спіс даступных сэрвісаў у CentOS 7

Паказаная вышэй каманда дэманструе толькі назвы сэрвісаў. Дэталёвая інфармацыя па кожным з іх атрымліваецца праз індывідуальны файл, які знаходзіцца па шляху / usr / lib / firewalld / services. Такія дакументы маюць фармат XML, шлях, напрыклад, да SSH выглядае так: /usr/lib/firewalld/services/ssh.xml, а дакумент мае наступнае тэкст быў:

SSH

Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines. It provides secure encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option. You need the openssh-server package installed for this option to be useful.

Актывуецца падтрымка сэрвісу ў пэўнай зоне ўручную. У «тэрмінале» варта задаць каманду sudo firewall-cmd --zone = public --add-service = http, дзе --zone = public - зона для актывацыі, а --add-service = http - назва сэрвісу. Улічыце, што такое змяненне будзе дзейнічаць толькі ў межах адной сесіі.

Даданне сэрвісу ў пэўную зону фаервол CentOS 7

Перманентнае даданне ажыццяўляецца праз sudo firewall-cmd --zone = public --permanent --add-service = http, а вынік «success» сведчыць аб паспяховым завяршэнні аперацыі.

Перманентнае даданне сэрвісу ў зону фаервол CentOS 7

Праглядзець поўны спіс пастаянных правілаў для пэўнай зоны можна, адлюстраваўшы спіс у асобнай радку кансолі: sudo firewall-cmd --zone = public --permanent --list-services.

Прагляд спісу перманентных сэрвісаў фаервол CentOS 7

Рашэнне непаладкі з адсутнасцю доступу да сэрвісу

Стандартна ў правілах брандмаўэра пазначаны самыя папулярныя і бяспечныя сэрвісы як дазволеныя, аднак некаторыя стандартныя або іншыя прыкладанні ён блакуе. У такім выпадку карыстачу ўручную спатрэбіцца змяніць налады, каб вырашыць праблему з доступам. Зрабіць гэта можна двума рознымі метадамі.

пракінулі порта

Як вядома, усе сеткавыя сэрвісы выкарыстоўваюць пэўны порт. Ён папросту выяўляецца сеткавым экранам, і па ім могуць выконвацца блакавання. Каб пазбегнуць такіх дзеянняў з боку фаервол, трэба адкрыць неабходны порт камандай sudo firewall-cmd --zone = public --add-port = 0000 / tcp, дзе --zone = public - зона для порта, --add-port = 0000 / tcp - нумар і пратакол порта. Опцыя firewall-cmd --list-ports адлюструе спіс адкрытых партоў.

Адкрыццё порта ў пэўнай зоне фаервол CentOS 7

Калі ж вам неабходна адкрыць парты, якія ўваходзяць у дыяпазон, скарыстайцеся радком sudo firewall-cmd --zone = public --add-port = 0000-9999 / udp, дзе --add-port = 0000-9999 / udp - дыяпазон партоў і іх пратакол.

Адкрыццё дыяпазону партоў ў пэўнай зоне фаервол CentOS 7

Прыведзеныя вышэй каманды толькі дазволяць пратэставаць прымяненне падобных параметраў. Калі яно прайшло паспяхова, варта дадаць гэтыя ж парты ў пастаянныя налады, а робіцца гэта шляхам уводу sudo firewall-cmd --zone = public --permanent --add-port = 0000 / tcp або sudo firewall-cmd --zone = public --permanent --add-port = 0000-9999 / udp. Спіс адкрытых пастаянных партоў праглядаецца так: sudo firewall-cmd --zone = public --permanent --list-ports.

вызначэнне сэрвісу

Як бачыце, даданне партоў не выклікае ніякіх цяжкасцяў, але працэдура ўскладняецца ў тым выпадку, калі прыкладанняў выкарыстоўваецца вялікая колькасць. Адсачыць усе выкарыстоўваюцца парты становіцца цяжка, з прычыны чаго больш правільным варыянтам будзе вызначэнне сэрвісу:

  1. Скапіруйце канфігурацыйны файл, напісаўшы sudo cp /usr/lib/firewalld/services/service.xml /etc/firewalld/services/example.xml, дзе service.xml - імя файла сэрвісу, а example.xml - назва яго копіі.
  2. Капіраванне файла налад сэрвісу фаервол ў CentOS 7

  3. Адкрыйце копію для змены праз любы тэкставы рэдактар, да прыкладу, sudo nano /etc/firewalld/services/example.xml.
  4. Запуск капіраваць файл сэрвісу CentOS 7

  5. Для прыкладу мы стварылі копію сэрвісу HTTP. У дакуменце вы ў асноўным бачыце розныя метададзеныя, напрыклад, кароткае імя і апісанне. Ўплывае на працу сервера толькі змена нумары порта і пратаколу. Над радком «» варта дадаць, каб адкрыць порт. tcp - які выкарыстоўваецца пратакол, а 0000 - нумар порта.
  6. Ўнясенне змяненняў у файл сэрвісу для адкрыцця партоў ў CentOS 7

  7. Захавайце ўсе змены (Ctrl + O), зачыніце файл (Ctrl + X), а затым перазапусціце фаервол для прымянення параметраў праз sudo firewall-cmd --reload. Пасля гэтага сэрвіс з'явіцца ў спісе даступных, які можна прагледзець праз firewall-cmd --get-services.
  8. Перазапуск сэрвісу фаервол ў CentOS 7

Вам застаецца толькі выбраць найбольш прыдатны метад рашэння непаладкі з доступам да сэрвісу і выканаць прыведзеныя інструкцыі. Як бачыце, усе дзеянні выконваюцца досыць лёгка, і ніякіх цяжкасцяў паўстаць не павінна.

Стварэнне карыстацкіх зон

Вы ўжо ведаеце, што ад пачатку ў FirewallD створана вялікая колькасць разнастайных зон з пэўнымі правіламі. Аднак здараюцца сітуацыі, калі сістэмнаму адміністратару патрабуецца стварыць карыстацкую зону, як, напрыклад, «publicweb» для ўсталяванага вэб-сервера або «privateDNS» - для DNS-сервера. На гэтых двух прыкладах мы і разбяром даданне галін:

  1. Стварыце дзве новыя перманентныя зоны камандамі sudo firewall-cmd --permanent --new-zone = publicweb і sudo firewall-cmd --permanent --new-zone = privateDNS.
  2. Даданне новых карыстацкіх зон фаервол CentOS 7

  3. Яны будуць даступныя пасля перазагрузкі прылады sudo firewall-cmd --reload. Для адлюстравання перманентных зон увядзіце sudo firewall-cmd --permanent --get-zones.
  4. Прагляд даступных зон фаервол ў CentOS 7

  5. Прысвойце ім патрэбныя сэрвісы, напрыклад, «SSH», «HTTP» і «HTTPS». Робіцца гэта камандамі sudo firewall-cmd --zone = publicweb --add-service = ssh, sudo firewall-cmd --zone = publicweb --add-service = http і sudo firewall-cmd --zone = publicweb --add- service = https, дзе --zone = publicweb - назва зоны для дадання. Праглядзець актыўнасць сэрвісаў можна, прапісаўшы firewall-cmd --zone = publicweb --list-all.
  6. Даданне сэрвісаў у карыстацкую зону CentOS 7

З гэтага артыкула вы даведаліся, як ствараць карыстацкія зоны і дадаваць у іх сэрвісы. Аб усталяванні іх па змаўчанні і прысваенні інтэрфейсаў мы ўжо расказалі вышэй, вам застаецца толькі паказаць правільныя назвы. Не забывайце перазагружаць міжсеткавы экран пасля ўнясення любых перманентных змен.

Як бачыце, брандмаўэр FirewallD - дастаткова аб'ёмны інструмент, які дазваляе вырабіць максімальна гнуткую канфігурацыю міжсеткавага экрана. Засталося толькі пераканацца ў тым, што ўтыліта запускаецца разам з сістэмай і названыя правілы адразу ж пачынаюць сваю працу. Зрабіце гэта камандай sudo systemctl enable firewalld.

Чытаць далей