Ва ўсіх аперацыйных сістэмах, заснаваных на базе ядра Linux, маецца ўбудаваны міжсеткавы экран, які ажыццяўляе кантроль і фільтрацыю уваходнага і выходнага трафіку, зыходзячы з зададзеных карыстальнікам або платформай правілаў. У дыстрыбутыве CentOS 7 па змаўчанні такую функцыю выконвае ўтыліта iptables, узаемадзейнічаючы з убудаваным брандмаўарам netfilter. Часам сістэмнаму адміністратару або мэнэджэра сеткі прыходзіцца наладжваць працу гэтага кампанента, прапісваючы адпаведныя правілы. У рамках сённяшняга артыкула мы б хацелі пагаварыць аб асновах канфігурацыі iptables у згаданай вышэй АС.
Наладжвальны iptables ў CentOS 7
Сам інструмент даступны да працы адразу ж пасля завяршэння інсталяцыі CentOS 7, але дадаткова спатрэбіцца ўсталяваць некаторыя сэрвісы, пра што мы і пагаворым далей. У разгляданай платформе маецца яшчэ адзін ўбудаваны інструмент, які выконвае функцыю фаервол пад назвай FirewallD. Для пазбягання канфліктаў пры далейшай працы рэкамендуем адключыць гэты кампанент. Разгорнутыя інструкцыі па гэтай тэме чытайце ў іншым нашым матэрыяле па наступнай спасылцы.Чытаць далей: Адключэнне firewallD ў CentOS 7
Як вядома, у сістэме могуць прымяняцца пратаколы IPv4 і IPv6. Сёння мы спынімся на прыкладзе IPv4, але калі вы хочаце ажыццяўляць канфігурацыю для іншага пратаколу, спатрэбіцца, а не загадам iptables у кансолі выкарыстоўваць ip6tables.
Ўстаноўка сэрвісаў iptables
Першачаргова варта дадаць у сістэму дадатковыя кампаненты разгляданай сёння ўтыліты. Яны дапамогуць у наладзе правілаў і іншых параметраў. Загрузка ажыццяўляецца з афіцыйнага сховішчы, таму не адбярэ шмат часу.
- Усе далейшыя дзеянні будуць вырабляцца ў класічнай кансолі, таму запусціце яе любым зручным метадам.
- За ўстаноўку сэрвісаў адказвае каманда sudo yum install iptables-services. Увядзіце яе і націсніце на клавішу Enter.
- Пацвердзіце уліковы запіс суперпользователя, паказаўшы пароль ад яе. Звярніце ўвагу, што пры запытах sudo уводныя знакі ў радку ніколі не адлюстроўваюцца.
- Будзе прапанавана дадаць у сістэму адзін пакет, пацвердзіце гэта дзеянне, выбраўшы варыянт y.
- Па завяршэнні інсталяцыі праверце актуальную версію інструмента: sudo iptables --version.
- Вынік з'явіцца ў новым радку.
Цяпер АС цалкам гатовая для далейшай налады міжсеткавага экрана праз утыліту iptables. Мы прапануем азнаёміцца з канфігурацыяй па пунктах, пачаўшы з кіравання сэрвісамі.
Прыпынак і запуск сэрвісаў iptables
Кіраванне рэжымам работы iptables патрабуецца ў тых выпадках, калі трэба праверыць дзеянне пэўных правілаў ці проста выканаць перазапуск кампанента. Робіцца гэта пры дапамозе ўбудаваных каманд.
- Увядзіце sudo service iptables stop і націсніце на клавішу Enter, каб спыніць сэрвісы.
- Для пацверджання гэтай працэдуры пакажыце пароль суперпользователя.
- Пры паспяховым выкананні працэсу адлюструецца новы радок, якая сведчыць аб унясенні змяненняў у канфігурацыйны файл.
- Запуск сэрвісаў робіцца практычна гэтак жа, толькі радок набывае выгляд sudo service iptables start.
Падобная перазагрузка, запуск або прыпынак ўтыліты даступная ў любы момант, не забудзьцеся толькі вярнуць адваротнае значэнне, калі гэта будзе запатрабавана.
Прагляд і выдаленне правілаў
Як ужо было сказана раней, кіраванне сеткавым экранам вырабляецца шляхам ручнога або аўтаматычнага дадання правілаў. Напрыклад, некаторыя дадатковыя праграмы могуць звяртацца да прылады, змяняючы пэўныя палітыкі. Аднак большасць падобных дзеянняў ўсё ж робіцца ўручную. Прагляд спісу ўсіх бягучых правілаў даступны праз каманду sudo iptables -L.
У адлюстраваў выніку будзе інфармацыя па трох ланцужком: «INPUT», «OUTPUT» і «FORWARD» - які ўваходзіць, выходны і перасылаюць трафік адпаведна.
Вызначыць статус усіх размоваў можна, увёўшы sudo iptables -S.
Калі убачаныя правілы вас не задавальняюць, яны досыць проста выдаляюцца. Увесь спіс чысціцца так: sudo iptables -F. Пасля актывацыі правілы будуць сцёртыя абсалютна для ўсіх трох ланцугоў.
Калі неабходна закрануць толькі палітыкі з нейкай адной ланцугу, да радка дадаецца дадатковы аргумент:
sudo iptables -F INPUT
sudo iptables -F OUTPUT
sudo iptables -F FORWARD
Адсутнасць усіх правілаў азначае, што цяпер не ўжываецца ніякіх налад фільтрацыі трафіку ні ў адну з бакоў. Далей сістэмны адміністратар ўжо самастойна задае новыя параметры, выкарыстоўваючы ўсю тую ж кансоль, каманду і розныя аргументы.
Прыём і скіданне трафіку ў ланцугах
Кожны ланцуг наладжваецца асобна для прыёму або блакавання трафіку. Выставіўшы пэўнае значэнне, можна дамагчыся таго, што, напрыклад, увесь уваходны трафік будзе блакавацца. Для гэтага каманда павінна быць sudo iptables --policy INPUT DROP, дзе INPUT - назва ланцуга, а DROP - значэнне скіду.
Дакладна такія ж параметры задаюцца і для іншых ланцугоў, напрыклад, sudo iptables --policy OUTPUT DROP. Калі ж неабходна выставіць значэнне на прыём трафіку, тады DROP змяняецца на ACCEPT і атрымліваецца sudo iptables --policy INPUT ACCEPT.
Дазвол і блакіроўка партоў
Як вядома, усе сеткавыя прыкладання і працэсы працуюць праз пэўны порт. Шляхам блакавання або дазволу вызначаных адрасоў можна кантраляваць доступ усіх сеткавых мэтаў. Давайце разбярэм пракінулі порта на прыкладзе 80. У «тэрмінале» будзе дастаткова ўвесці каманду sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT, дзе -А - даданне новага правілы, INPUT - указанне ланцуга, -P - вызначэнне пратакола , у гэтым выпадку TCP, а --dport - порт прызначэння.
Дакладна такая ж каманда ставіцца і да порта 22, які выкарыстоўваецца сэрвісам SSH: sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT.
Для блакавання названага порта ўжываецца радок дакладна такога ж выгляду, толькі ў канцы ACCEPT змяняецца на DROP. У выніку атрымліваецца, напрыклад, sudo iptables -A INPUT -p tcp --dport 2450 -j DROP.
Усе гэтыя правілы заносяцца ў канфігурацыйны файл і вы можаце прагледзець іх у любы момант. Нагадваем, ажыццяўляецца гэта праз sudo iptables -L. Калі разам з портам неабходна дазволіць яшчэ і сеткавай IP-адрас, радок трохі відазмяняецца - пасля TPC дадаецца -s і сам адрас. sudo iptables -A INPUT -p tcp -s 12.12.12.12/32 --dport 22 -j ACCEPT, дзе 12.12.12.12/32 - неабходны IP-адрас.
Блякаваньне адбываецца па тым жа прынцыпе, змяняючы ў канцы значэнне ACCEPT на DROP. Тады атрымліваецца, напрыклад, sudo iptables -A INPUT -p tcp -s 12.12.12.0/24 --dport 22 -j DROP.
блякаваньне ICMP
ICMP (Internet Control Message Protocol) - пратакол, які ўваходзіць у склад TCP / IP і задзейнічаны для перадачы паведамленняў пра памылкі і экстранных сітуацыях пры працы з трафікам. Напрыклад, калі запытаны сервер недаступны, менавіта гэты інструмент выконвае сэрвісныя функцыі. Ўтыліта iptables дазваляе заблакаваць яго праз брандмаўэр, а зрабіць гэта можна камандай sudo iptables -A OUTPUT -p icmp --icmp-type 8 -j DROP. Яна вырабіць блакаванне запытаў ад вашага і да вашага сервера.
Ўваходныя запыты блакуюцца крыху інакш. Тады трэба ўвесці sudo iptables -I INPUT -p icmp --icmp-type 8 -j DROP. Пасля актывацыі гэтых правілаў сервер не будзе адказваць на ping-запыты.
Прадухіленне несанкцыянаваных дзеянняў на сэрвэры
Часам серверы падвяргаюцца DDoS нападам або іншым несанкцыянаваным дзеянняў з боку зламыснікаў. Правільная налада міжсеткавага экрана дазволіць засцерагчы сябе ад падобнага роду узломаў. Для пачатку мы рэкамендуем задаць такія правілы:
- Прапішіце ў кансолі iptables -A INPUT -p tcp --dport 80 -m limit --limit 20 / minute --limit-burst 100 -j ACCEPT, дзе --limit 20 / minute - абмежаванне на частату станоўчых вынікаў. Адзінку вымярэння вы можаце паказваць самастойна, напрыклад, / second, / minute, / hour, / day. --limit-burst number - абмежаванне на лік прапусканых пакетаў. Усе значэння выстаўляюцца індывідуальна па перавагам адміністратара.
- Далей можна забараніць сканаванне адкрытых партоў, каб прыбраць адну з магчымых прычын узлому. Увядзіце першую каманду sudo iptables -N block-scan.
- Затым пакажыце sudo iptables -A block-scan -p tcp -tcp-flags SYN, ACK, FIN, RST -m limit -limit 1 / s -j RETURN.
- Апошняя трэцяя каманда мае выгляд: sudo iptables -A block-scan -j DROP. Выраз block-scan ў дадзеных выпадках - назва выкарыстоўваецца ланцуга.
Паказаныя сёння налады з'яўляюцца толькі асновай працы ў прыладзе кіравання міжсеткавым экранам. У афіцыйнай дакументацыі утыліты вы знойдзеце апісанне ўсіх даступных аргументаў і опцый і зможаце наладзіць брандмаўэр канкрэтна пад свае запыты. Вышэй былі разгледжаны стандартныя правілы бяспекі, якія прымяняюцца часцей за ўсё і ў большасці выпадкаў абавязковыя.