{"id":956,"date":"2017-05-03T13:20:42","date_gmt":"2017-05-03T11:20:42","guid":{"rendered":"http:\/\/miroslaw.borodziuk.eu\/?p=956"},"modified":"2017-08-01T09:52:47","modified_gmt":"2017-08-01T07:52:47","slug":"firewall","status":"publish","type":"post","link":"http:\/\/miro.borodziuk.eu\/index.php\/2017\/05\/03\/firewall\/","title":{"rendered":"Firewall"},"content":{"rendered":"<p>Firewall to warstwa ochronna skonfigurowana pomi\u0119dzy sieci\u0105 prywatn\u0105 i publiczn\u0105 (Internetem). Istnieje wiele rodzaj\u00f3w firewalli, jeden z nich przeprowadza filtrowanie pakiet\u00f3w. Pakiet danych powstaje w procesie zwanym <em>enkapsulacj\u0105<\/em>, polegaj\u0105cym na dodawaniu informacji nag\u0142\u00f3wkowych do komunikatu w czasie formowaniu pakiety. Nag\u0142\u00f3wek zawiera takie informacje jak: \u017ar\u00f3d\u0142owy i docelowy adres IP, port i typ danych. W oparciu o zdefiniowane regu\u0142y firewall przechwytuje wszystkie przychodz\u0105ce i wychodz\u0105ce pakiety, sprawdza nag\u0142\u00f3wek i podejmuje decyzj\u0119 czy pu\u015bci\u0107 pakiet dalej. <!--more-->Porty dla ka\u017cdej us\u0142ugi dost\u0119pnej w systemie zdefiniowane s\u0105 w pliku<code> \/etc\/services<\/code> i s\u0105 takie same we wszystkich systemach operacyjnych \u0142\u0105cznie z RHEL.<\/p>\n<p><span style=\"color: #3366ff;\">Tworzenie firewalla przy pomocy iptables lub firewalld.<\/span><\/p>\n<p>Pocz\u0105wszy od RHEL7.0 us\u0142ugi <em>iptables<\/em> i firewall mog\u0105 by\u0107 konfigurowane\u00a0 i zarz\u0105dzane przez demona <em>firewalld<\/em>. G\u0142\u00f3wn\u0105 zalet\u0105 demona <em>firewalld<\/em> jest mo\u017cliwo\u015b\u0107 wprowadzania aktualizacji bez zak\u0142\u00f3cania po\u0142\u0105cze\u0144 sieciowych, restartowania us\u0142ugi czy restartowania systemu. Zarz\u0105dza\u0107 demonem <em>firewalld<\/em> mo\u017cna z poziomu komendy firewall-cmd, graficznie narz\u0119dziem firewall-config lub manualnie poprzez edycj\u0119 odpowiednich plik\u00f3w.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-960 aligncenter\" src=\"http:\/\/miroslaw.borodziuk.eu\/wp-content\/uploads\/firewall-300x246.jpg\" alt=\"\" width=\"438\" height=\"359\" srcset=\"http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/firewall-300x246.jpg 300w, http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/firewall.jpg 383w\" sizes=\"(max-width: 438px) 100vw, 438px\" \/><\/p>\n<p>Iptables bez firewalld przechowuje swoje regu\u0142y w pliku <code>\/etc\/sysconfig\/iptables<\/code>.\u00a0 Iptables z firewalld zapisuje regu\u0142y w katalogu <code>\/etc\/firewalld<\/code> i dostarcza wiele szablon\u00f3w dla r\u00f3\u017cnych us\u0142ug w katalogu<code> \/usr\/lib\/firewalld<\/code>. Te szablony mog\u0105 by\u0107 kopiowane i modyfikowane do wykorzystania dla nowych us\u0142ug.<\/p>\n<p>W jednym zadanym czasie mo\u017cna zarz\u0105dza\u0107 firewallem tylko w jeden spos\u00f3b: albo metod\u0105 <em>iptables<\/em> albo metod\u0105 <em>firewalld<\/em>, nie mo\u017cna obu tych metod stosowa\u0107 r\u00f3wnolegle.<\/p>\n<p><span style=\"color: #3366ff;\">Plik konfiguracyjny iptables: <code>\/etc\/sysconfig\/iptables<\/code>.<\/span><\/p>\n<p>Domy\u015blna zawarto\u015b\u0107 pliku:<br \/>\n<code> # cat \/etc\/sysconfig\/iptables<\/code><br \/>\n<span style=\"color: #808080;\"><code>*filter<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>:INPUT ACCEPT [0:0]<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>:FORWARD ACCEPT [0:0]<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>:OUTPUT ACCEPT [9:1624]<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>-A INPUT -p icmp -j ACCEPT<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>-A INPUT -i lo -j ACCEPT<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>-A INPUT -j REJECT --reject-with icmp-host-prohibited<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>-A FORWARD -j REJECT --reject-with icmp-host-prohibited<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>COMMIT<\/code><\/span><\/p>\n<p>iptables pozwala nam definiowa\u0107 tabele zawieraj\u0105ce grupy regu\u0142 zwane \u0142a\u0144cuchami, ka\u017cda tabela powi\u0105zana jest z przetwarzaniem pakiet\u00f3w r\u00f3\u017cnych typ\u00f3w. W przyk\u0142adzie powy\u017cej zdefiniowana zosta\u0142a jedna domy\u015blna tabela nazwana <em>filter<\/em>, kt\u00f3ra zawiera trzy predefiniowane \u0142a\u0144cuchy (INPUT, FORWARD i OUTPUT) z \u0142a\u0144cuchem INPUT zawieraj\u0105cym wiele regu\u0142. Wszystkie przychodz\u0105ce i wychodz\u0105ce pakiety przechodz\u0105 przez co najmniej jeden z tych skonfigurowanych \u0142a\u0144cuch\u00f3w. Pakiety przeznaczone dla lokalnego systemu u\u017cywaj\u0105 \u0142a\u0144cucha INPUT, pakiety wychodz\u0105ce z systemu lokalnego u\u017cywaj\u0105 \u0142a\u0144cucha OUTPUT, pakiety kt\u00f3re maj\u0105 by\u0107 przeroutowane do innej sieci u\u017cywaj\u0105 \u0142a\u0144cucha FORWARD. Ka\u017cdy \u0142a\u0144cuch ma swoj\u0105 polityk\u0105 zwan\u0105 celem (targetem), kt\u00f3ry mo\u017ce przyjmowa\u0107 taki warto\u015bci jak: ACCEPT, REJECT, DROP lub LOG. Polityka ACCEPT pozwala przej\u015b\u0107 pakietowi, polityka REJECT odrzuca pakiet i wysy\u0142a komunikat zwrotny, polityka DROP odrzuca pakiet bez \u017cadnego powiadomienia, polityka LOG wysy\u0142a informacje o pakiecie do demona <em>rsyslogd<\/em> celem logowania. W przyk\u0142adzie powy\u017cej zauwa\u017cy\u0107 mo\u017cna tak\u017ce pozycj\u0119 &#8220;<em>state<\/em>&#8220;, kt\u00f3ra okre\u015bla ona stan przychodz\u0105cego po\u0142\u0105czenia. Po\u0142\u0105czenie mo\u017ce by\u0107 w stanie: NEW, ESTABILISHED, RELATED lub INVALID. Stan NEW identyfikuje pakiet, kt\u00f3ry nie jest cz\u0119\u015bci\u0105 istniej\u0105cego po\u0142\u0105czenia, stan ESTABILISHED wskazuje, \u017ce pakiet jest cz\u0119\u015bci\u0105 istniej\u0105cego po\u0142\u0105czenia, stan RELATED oznacza, \u017ce pakiet zosta\u0142 wygenerowany w relacji z inn\u0105 istniej\u0105c\u0105 komunikacj\u0105, stan INVALID okre\u015bla \u017ce pakiet nie pasuje do innych stan\u00f3w.<\/p>\n<p>Pierwsza regu\u0142a w pliku wy\u017cej powoduje akceptacj\u0119 wszystkich po\u0142\u0105cze\u0144 przychodz\u0105cych, druga regu\u0142a b\u0119dzie zezwala\u0107 na przychodz\u0105ce zapytania ICMP (pingi), trzecia regu\u0142a b\u0119dzie zezwala\u0107 na po\u0142\u0105czenia przychodz\u0105ce na interfejsie loopback (p\u0119tla), czwarta regu\u0142a b\u0119dzie pozwala\u0107 na ruch TCP na porcie 22 (ssh). Ostatnie die regu\u0142y b\u0119d\u0105 odrzuca\u0107 jakiekolwiek pakiety sieciowe z jakiegokolwiek \u017ar\u00f3d\u0142a z komunikatem<em> icmp-host-prohhibited<\/em> odsy\u0142anym z powrotem do systemu \u017ar\u00f3d\u0142owego.<\/p>\n<p>Plik mo\u017ce by\u0107 edytowany w edytorze tekstu, komend\u0105 <em>iptables<\/em> lub komend\u0105 <em>lokkit<\/em> (cz\u0119\u015b\u0107 pakietu system-config-firewall-base).<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #3366ff;\">Kontrolowanie us\u0142ug iptables i firewalld.<\/span><\/p>\n<p>Us\u0142ugi <em>iptables<\/em> i <em>firewalld<\/em> nie mog\u0105 by\u0107 uruchomione r\u00f3wnolegle.<\/p>\n<p>Automatyczne uruchamianie <em>firewalld<\/em> przy starcie systemu:<br \/>\n<code># systemctl enable firewalld<\/code><br \/>\n<span style=\"color: #808080;\"><code>ln -s '\/usr\/lib\/systemd\/system\/firewalld.service' '\/etc\/systemd\/system\/dbus-org.fedoraproject.FirewallD1.service'<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>ln -s '\/usr\/lib\/systemd\/system\/firewalld.service' \u2018\/etc\/systemd\/system\/basic.target.wants\/firewalld.service'<\/code><\/span><\/p>\n<p>Uruchamianie us\u0142ugi firewalld:<br \/>\n<code># systemctl start firewalld<\/code><\/p>\n<p>Sprawdzenie statusu us\u0142ugi firewalld:<br \/>\n<code># systemctl status firewalld \u2013l<\/code><br \/>\n<span style=\"color: #808080;\"><code> firewalld.service - firewalld - dynamic firewall daemon<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code> Loaded: loaded (\/usr\/lib\/systemd\/system\/firewalld.service; enabled)<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code> Active: active (running) since Sat 2014-11-08 08:10:31 EST; 1min 27s ago<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code> Main PID: 18228 (firewalld)<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code> CGroup: \/system.slice\/firewalld.service<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code> \u2514\u250018228 \/usr\/bin\/python -Es \/usr\/sbin\/firewalld --nofork --nopid<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code> Nov 08 08:10:30 server1.example.com systemd[1]: Starting firewalld - dynamic firewall daemon\u2026<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code> Nov 08 08:10:31 server1.example.com systemd[1]: Started firewalld - dynamic firewall daemon.<\/code><\/span><\/p>\n<p>Zatrzymanie us\u0142ugi:<br \/>\n<code># systemctl stop firewalld<\/code><\/p>\n<p>Usuni\u0119cie us\u0142ugi firewalld z autostartu:<br \/>\n<code># systemctl disable firewalld<\/code><br \/>\n<span style=\"color: #808080;\"><code> rm '\/etc\/systemd\/system\/basic.target.wants\/firewalld.service'<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code> rm '\/etc\/systemd\/system\/dbus-org.fedoraproject.FirewallD1.service'<\/code><\/span><\/p>\n<p>Automatyczne uruchamianie <em>iptables<\/em> przy starcie systemu:<br \/>\n<code># systemctl enable iptables<\/code><br \/>\n<span style=\"color: #808080;\"><code> ln -s '\/usr\/lib\/systemd\/system\/iptables.service' '\/etc\/systemd\/system\/basic.target.wants\/iptables.service'<\/code><\/span><\/p>\n<p>Uruchamianie us\u0142ugi iptables:<br \/>\n<code># systemctl start iptables<\/code><\/p>\n<p>Sprawdzenie statusu:<br \/>\n<code># systemctl status iptables \u2013l<\/code><br \/>\n<span style=\"color: #808080;\"><code> iptables.service - IPv4 firewall with iptables<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code> Loaded: loaded (\/usr\/lib\/systemd\/system\/iptables.service; enabled)<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code> Active: active (exited) since Sat 2014-11-08 08:16:59 EST; 23s ago<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code> Process: 18784 ExecStart=\/usr\/libexec\/iptables\/iptables.init start (code=exited, status=0\/SUCCESS)<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code> Main PID: 18784 (code=exited, status=0\/SUCCESS)<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code> Nov 08 08:16:59 server1.example.com iptables.init[18784]: iptables: Applying firewall rules: [ OK ]<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code> Nov 08 08:16:59 server1.example.com systemd[1]: Started IPv4 firewall with iptables.<\/code><\/span><\/p>\n<p><span style=\"color: #3366ff;\">Komenda iptables.<\/span><\/p>\n<p>Komenda ta u\u017cywana jest do modyfikowania regu\u0142 firewalla gdy wy\u0142\u0105czony jest demon <em>firewalld<\/em>. Opcje zwi\u0105zane z komend\u0105 <em>iptables<\/em> zawiera tabela poni\u017cej.<\/p>\n<table style=\"width: 766px;\">\n<tbody>\n<tr>\n<td style=\"width: 176.483px;\"><span style=\"color: #808080;\"><em>Opcja<\/em><\/span><\/td>\n<td style=\"width: 573.517px;\"><span style=\"color: #808080;\"><em>Opis<\/em><\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 176.483px;\"><span style=\"color: #008000;\"><code>-A <span style=\"color: #808080;\">(append)<\/span><\/code><\/span><\/td>\n<td style=\"width: 573.517px;\">Dodaje jedn\u0105 lub wi\u0119cej regu\u0142 na koniec \u0142a\u0144cucha.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 176.483px;\"><span style=\"color: #008000;\"><code>-I <span style=\"color: #808080;\">(--insert)<\/span><\/code><\/span><\/td>\n<td style=\"width: 573.517px;\">Dodaje jedn\u0105 lub wi\u0119cej regu\u0142 na pocz\u0105tek \u0142a\u0144cucha.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 176.483px;\"><span style=\"color: #008000;\"><code>-D<span style=\"color: #808080;\"> (--delete)<\/span><\/code><\/span><\/td>\n<td style=\"width: 573.517px;\">Kasuje jedn\u0105 lub wi\u0119cej regu\u0142 \u0142a\u0144cucha.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 176.483px;\"><span style=\"color: #008000;\"><code>-F <span style=\"color: #808080;\">(--flush)<\/span><\/code><\/span><\/td>\n<td style=\"width: 573.517px;\">Czy\u015bci \u0142a\u0144cuch lub tabel\u0119.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 176.483px;\"><span style=\"color: #008000;\"><code>-L <span style=\"color: #808080;\">(--list)<\/span><\/code><\/span><\/td>\n<td style=\"width: 573.517px;\">Listuje za\u0142adowane regu\u0142y.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 176.483px;\"><span style=\"color: #008000;\"><code>-N <span style=\"color: #808080;\">(--new-chain)<\/span><\/code><\/span><\/td>\n<td style=\"width: 573.517px;\">Dodaje nowy \u0142a\u0144cuch.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 176.483px;\"><span style=\"color: #008000;\"><code>-R<span style=\"color: #808080;\"> (--replace)<\/span><\/code><\/span><\/td>\n<td style=\"width: 573.517px;\">Zamienia regu\u0142\u0119 w \u0142a\u0144cuchu.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 176.483px;\"><span style=\"color: #008000;\"><code>-X <span style=\"color: #808080;\">(--delete-chain)<\/span><\/code><\/span><\/td>\n<td style=\"width: 573.517px;\">Kasuje \u0142a\u0144cuch.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 176.483px;\"><span style=\"color: #008000;\"><code>-d <span style=\"color: #808080;\">(--destination)<\/span><\/code><\/span><\/td>\n<td style=\"width: 573.517px;\">Okre\u015bla adres przeznaczenia<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 176.483px;\"><span style=\"color: #008000;\"><code>--dport<\/code><\/span><\/td>\n<td style=\"width: 573.517px;\">Okre\u015bla numer portu przeznaczenia<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 176.483px;\"><span style=\"color: #008000;\"><code>-i <span style=\"color: #808080;\">(--in-interface)<\/span><\/code><\/span><\/td>\n<td style=\"width: 573.517px;\">Okre\u015bla interfejs sieciowy<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 176.483px;\"><span style=\"color: #008000;\"><code>-j <span style=\"color: #808080;\">(--jump)<\/span><\/code><\/span><\/td>\n<td style=\"width: 573.517px;\">Okre\u015bla gdzie pakiet ma przeskoczy\u0107 je\u017celi regu\u0142a zostanie dopasowana<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 176.483px;\"><span style=\"color: #008000;\"><code>-m <span style=\"color: #808080;\">(--match)<\/span><\/code><\/span><\/td>\n<td style=\"width: 573.517px;\">Okre\u015bla nazw\u0119 dopasowania<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 176.483px;\"><span style=\"color: #008000;\"><code>-o <span style=\"color: #808080;\">(--out-interface)<\/span><\/code><\/span><\/td>\n<td style=\"width: 573.517px;\">Okre\u015bla interfejs sieciowy u\u017cywany dla pakiet\u00f3w wychodz\u0105cych.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 176.483px;\"><span style=\"color: #008000;\"><code>-p <span style=\"color: #808080;\">(--protocol)<\/span><\/code><\/span><\/td>\n<td style=\"width: 573.517px;\">Definiuje protok\u00f3\u0142 wg pliku<code> \/etc\/protocols<\/code><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 176.483px;\"><span style=\"color: #008000;\"><code>-s <span style=\"color: #808080;\">(--source)<\/span><\/code><\/span><\/td>\n<td style=\"width: 573.517px;\">Okre\u015bla adres \u017ar\u00f3d\u0142owy<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 176.483px;\"><span style=\"color: #008000;\"><code>-t <span style=\"color: #808080;\">(--table)<\/span><\/code><\/span><\/td>\n<td style=\"width: 573.517px;\">Okre\u015bla typ tabeli. Domy\u015blna jest tabela filter.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 176.483px;\"><span style=\"color: #008000;\"><code>-v <span style=\"color: #808080;\">(--verbose)<\/span><\/code><\/span><\/td>\n<td style=\"width: 573.517px;\">Wy\u015bwietla dok\u0142adniejsze informacje na wyj\u015bciu.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Wy\u015bwietlanie listy za\u0142adowanych regu\u0142 iptables w systemie:<\/p>\n<p><span style=\"color: #808080;\"><code><span style=\"color: #000000;\"># iptables -L -n<\/span><br \/>\nChain INPUT (policy ACCEPT)<br \/>\ntarget\u00a0\u00a0\u00a0\u00a0 prot opt source\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 destination<br \/>\nACCEPT\u00a0\u00a0\u00a0\u00a0 all\u00a0 --\u00a0 0.0.0.0\/0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0.0.0.0\/0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 state RELATED,ESTABLISHED<br \/>\nACCEPT\u00a0\u00a0\u00a0\u00a0 icmp --\u00a0 0.0.0.0\/0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0.0.0.0\/0<br \/>\nACCEPT\u00a0\u00a0\u00a0\u00a0 all\u00a0 --\u00a0 0.0.0.0\/0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0.0.0.0\/0<br \/>\nACCEPT\u00a0\u00a0\u00a0\u00a0 tcp\u00a0 --\u00a0 0.0.0.0\/0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0.0.0.0\/0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 state NEW tcp dpt:80<br \/>\nACCEPT\u00a0\u00a0\u00a0\u00a0 tcp\u00a0 --\u00a0 10.0.0.0\/8 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0.0.0.0\/0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 state NEW tcp dpt:22<br \/>\nACCEPT\u00a0\u00a0\u00a0\u00a0 tcp\u00a0 --\u00a0 X.Y.Z.0\/24\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0.0.0.0\/0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 state NEW tcp dpt:22<br \/>\nREJECT\u00a0\u00a0\u00a0\u00a0 all\u00a0 --\u00a0 0.0.0.0\/0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0.0.0.0\/0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 reject-with icmp-host-prohibited<\/code><\/span><\/p>\n<p><code><span style=\"color: #808080;\">Chain FORWARD (policy ACCEPT)<\/span><\/code><br \/>\n<code> <span style=\"color: #808080;\"> target\u00a0\u00a0\u00a0\u00a0 prot opt source\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 destination<\/span><\/code><br \/>\n<code> <span style=\"color: #808080;\"> REJECT\u00a0\u00a0\u00a0\u00a0 all\u00a0 --\u00a0 0.0.0.0\/0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0.0.0.0\/0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 reject-with icmp-host-prohibited<\/span><\/code><\/p>\n<p><code><span style=\"color: #808080;\">Chain OUTPUT (policy ACCEPT)<\/span><\/code><br \/>\n<code> <span style=\"color: #808080;\"> target\u00a0\u00a0\u00a0\u00a0 prot opt source\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 destination<\/span><\/code><\/p>\n<p>&nbsp;<\/p>\n<p>\u0106wiczenie 1. Dodawanie i aktywacja regu\u0142 iptables.<br \/>\nUruchamiamy iptables z opcj\u0105 -F \u017ceby wykasowa\u0107 wszystkie istniej\u0105ce regu\u0142y:<br \/>\n<code># iptables \u2013F<\/code><\/p>\n<p>Dodajemy regu\u0142\u0119 do tabeli filter aby pozwoli\u0107 na ruch przychodz\u0105cy na porcie 80:<br \/>\n<code># iptables \u2013t filter \u2013A INPUT \u2013p tcp --dport 80 \u2013j ACCEPT<\/code><\/p>\n<p>Dodajemy regu\u0142\u0119 aby odrzuci\u0107 ruch wychodz\u0105cy ICMP bez wysy\u0142ania komunikat\u00f3w zwrotnych:<br \/>\n<code># iptables \u2013A OUTPUT \u2013p icmp \u2013j DROP<\/code><\/p>\n<p>Dodajemy regu\u0142\u0119 do forwardowania ca\u0142ego ruchu przychodz\u0105cego do sieci 192.168.0.0\/24:<br \/>\n<code># iptables \u2013A FORWARD \u2013d 192.168.0.0\/24 \u2013j ACCEPT<\/code><\/p>\n<p>Dodajemy regu\u0142\u0119 na pocz\u0105tku wszystkich regu\u0142 aby zezwoli\u0107 na pierwszy i wszystkie nast\u0119pne przychodz\u0105ce po\u0142\u0105czenia FTP na porcie 21:<br \/>\n<code># iptables \u2013I INPUT \u2013m state --state NEW \u2013p tcp --dport 21 \u2013j ACCEPT<\/code><\/p>\n<p>Dodajemy regu\u0142\u0119 aby zabroni\u0107 ruchu istniej\u0105cym i nowym wychodz\u0105cym po\u0142\u0105czeniom na porcie 25:<br \/>\n<code># iptables \u2013A OUTPUT \u2013m state --state NEW,ESTABLISHED \u2013p tcp --dport 25 \u2013j DROP<\/code><\/p>\n<p>Zapisanie zmian w pliku <code>\/etc\/sysconfig\/iptables<\/code>:<br \/>\n<code># service iptables save<\/code><br \/>\n<span style=\"color: #808080;\"><code> iptables: Saving firewall rules to \/etc\/sysconfig\/iptables: [ OK ]<\/code><\/span><\/p>\n<p>Dodanie us\u0142ugi <em>iptables<\/em> do autostartu:<br \/>\n<code># systemctl enable iptables<\/code><\/p>\n<p>Sprawdzamy list\u0119 za\u0142adowanych regu\u0142 <em>iptables<\/em>:<br \/>\n<code># iptables -L<\/code><\/p>\n<p>&nbsp;<\/p>\n<p>\u0106wiczenie 2. Dodawanie i usuwanie regu\u0142 iptables.<br \/>\nDodajemy regu\u0142\u0119 aby zezwoli\u0107 na ruch przychodz\u0105cy na porcie 90 z podsieci 192.168.1.0\/24:<br \/>\n<code># iptables \u2013I INPUT \u2013s 192.168.1.0\/24 \u2013p tcp --dport 90 \u2013j ACCEPT<\/code><\/p>\n<p>Dodajemy regu\u0142\u0119 aby odrzuca\u0107 ca\u0142y przychodz\u0105cy ruch z podsieci 192.168.3.0\/24 na interfejsie eth1:<br \/>\n<code># iptables \u2013A INPUT \u2013s 192.168.3.0\/24 \u2013i eth1 \u2013j DROP<\/code><\/p>\n<p>Dodajemy regu\u0142\u0119 aby odrzuca\u0107 ruch wychodz\u0105cy ICMP do wszystkich system\u00f3w z podsieci 192.168.3.0\/24 za wyj\u0105tkiem adresu IP 192.168.3.3\/24:<br \/>\n<code># iptables \u2013I INPUT ! \u2013d 192.168.3.3\/24 \u2013p icmp \u2013j DROP<\/code><\/p>\n<p>Dodajemy regu\u0142\u0119 aby forwardowa\u0107 ca\u0142y ruch przychodz\u0105cy z 192.168.1.0\/24 do 192.168.2.0\/24:<br \/>\n<code># iptables \u2013A FORWARD \u2013s 192.168.1.0\/24 \u2013d 192.168.2.0\/24 \u2013j ACCEPT<\/code><\/p>\n<p>Kasujemy powy\u017csz\u0105 regu\u0142\u0119:<br \/>\n<code># iptables \u2013D FORWARD \u2013s 192.168.1.0\/24 \u2013d 192.168.2.0\/24 \u2013j ACCEPT<\/code><\/p>\n<p>Zapisujemy wszystkie regu\u0142y w pliku <code>\/etc\/sysconfig\/iptables<\/code>:<br \/>\n<code># service iptables save<\/code><\/p>\n<p>Sprawdzamy list\u0119 za\u0142adowanych regu\u0142 <em>iptables<\/em>:<br \/>\n<code># iptables -L<\/code><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #3366ff;\">Pliki konfiguracyjne demona <em>firewalld<\/em>.<\/span><\/p>\n<p>Demon firewalld sk\u0142aduje regu\u0142y firewalla z pliku XML w dw\u00f3ch r\u00f3\u017cnych lokalizacjach:\u00a0 <code>\/usr\/lib\/firewalld<\/code> oraz\u00a0 <code>\/etc\/firewalld<\/code>.\u00a0 Pliki z katalogu \/<code>usr\/lib\/firewalld\/services<\/code> mog\u0105 by\u0107 wykorzystane jako szablony i przekopiowane do katalogu <code>\/etc\/firewalld\/services<\/code>. Demon <em>firewalld<\/em> czyta pliki zlokalizowane w katalogu <code>\/etc\/firewalld<\/code> i stosuje regu\u0142y w nich zawarte.<br \/>\n<i> <\/i><\/p>\n<p>Przyk\u0142adowy plik XML z szablonem dla us\u0142ugi SSH:<\/p>\n<p><code> # cat \/usr\/lib\/systemd\/services\/ssh.xml<\/code><br \/>\n<span style=\"color: #808080;\"><code>&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>&lt;service&gt;<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>&lt;short&gt;SSH&lt;\/short&gt;<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>&lt;description&gt;Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines. It provides secure<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option.<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>You need the openssh-server package installed for this option to be useful.&lt;\/description&gt;<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>&lt;port protocol=\"tcp\" port=\"22\"\/&gt;<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>&lt;\/service&gt;<\/code><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Firewall to warstwa ochronna skonfigurowana pomi\u0119dzy sieci\u0105 prywatn\u0105 i publiczn\u0105 (Internetem). Istnieje wiele rodzaj\u00f3w firewalli, jeden z nich przeprowadza filtrowanie pakiet\u00f3w. Pakiet danych powstaje w procesie zwanym enkapsulacj\u0105, polegaj\u0105cym na dodawaniu informacji nag\u0142\u00f3wkowych do komunikatu w czasie formowaniu pakiety. Nag\u0142\u00f3wek zawiera takie informacje jak: \u017ar\u00f3d\u0142owy i docelowy adres IP, port i typ danych. W oparciu &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/miro.borodziuk.eu\/index.php\/2017\/05\/03\/firewall\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Firewall&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":998,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[46,49],"tags":[],"_links":{"self":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts\/956"}],"collection":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/comments?post=956"}],"version-history":[{"count":35,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts\/956\/revisions"}],"predecessor-version":[{"id":1196,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts\/956\/revisions\/1196"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/media\/998"}],"wp:attachment":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/media?parent=956"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/categories?post=956"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/tags?post=956"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}