Difference between revisions of "Iptables (Српски)"

From ArchWiki
Jump to: navigation, search
(Created page with "{{expansion}} {{i18n|Iptables}} Category:Security (English)Category:Networking (English)Category:HOWTOs (English) {{Article summary start}} {{Article summary text|In...")
 
(rm temporary i18n template)
(5 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
{{expansion}}
 
{{expansion}}
{{i18n|Iptables}}
+
[[en:Iptables]]
 
+
[[es:Iptables]]
[[Category:Security (English)]][[Category:Networking (English)]][[Category:HOWTOs (English)]]
+
[[it:Iptables]]
 +
[[ru:Iptables]]
 +
[[zh-CN:Iptables]]
 +
[[Category:Security (Српски)]]
 +
[[Category:Networking (Српски)]]
 
{{Article summary start}}
 
{{Article summary start}}
{{Article summary text|Information regarding the setup and configuration of iptables.}}
+
{{Article summary text|Informacije u vezi instraliranja i podesavanja iptables-a.}}
{{Article summary heading|Related}}
+
{{Article summary heading|Odnosno}}
{{Article summary wiki|Firewalls}}
+
{{Article summary wiki|Firewall-ovi}}
{{Article summary wiki|Sysctl#TCP/IP stack hardening}}
+
{{Article summary wiki|Sysctl#TCP/IP stek ojacavanje}}
 
{{Article summary end}}
 
{{Article summary end}}
  
iptables is a powerful [[firewall]] built into the linux kernel and is part of the [http://en.wikipedia.org/wiki/Netfilter netfilter] project. It can be configured directly, or by using one of the many [[Firewalls#iptables_front-ends|frontends]] and [[Firewall#iptables_GUIs|GUIs]]. iptables is used for [http://en.wikipedia.org/wiki/Ipv4 ipv4] and ip6tables is used for [http://en.wikipedia.org/wiki/Ipv6 ipv6].
+
iptables je mocan [[firewall|vatreni zid]] ugradjen u linux kernel i deo je [http://en.wikipedia.org/wiki/Netfilter netfilter] projekta. Moze se podesiti direktno ili upotrebu jednog od mnogih [[Firewalls#iptables_front-ends|frontend-ova]] i [[Firewall#iptables_GUIs|GUI-ja]]. ip tabele se koriste za [http://en.wikipedia.org/wiki/Ipv4 ipv4] i ip6 tabele se koriste za [http://en.wikipedia.org/wiki/Ipv6 ipv6].
  
== Installation ==
+
== Instalacija ==
  
{{Note| Your kernel needs to be compiled with iptables support. All stock Arch Linux kernels have iptables support.}}
+
{{Note| Vas kernel mora biti kompajliran sa iptables podrskom. Svi Arch Linux kerneli iz oficijalnih repozitorijuma imaju podrsku za ip tabele.}}
  
First, install the userland utilities:
+
Prvo, instalirajte korisnicke programe:
  
 
  # pacman -S iptables
 
  # pacman -S iptables
  
Next, add iptables to the [[daemon|DAEMONS array]] in /etc/rc.conf to have it load your settings on boot:
+
Sledece, dodajte ip tabele u [[daemon|DAEMONS niz]] u /etc/rc.conf da bi ih ucitali u vasa podesavanja prilikom butovanja:
  
 
  DAEMONS=(... '''iptables''' network ...)
 
  DAEMONS=(... '''iptables''' network ...)
  
== Basic concepts ==
+
== Osnovni koncepti ==
  
=== tables ===
+
=== tabele ===
  
iptables contains four tables: raw, filter, nat and mangle.
+
iptables sadrze cetiri tabele: raw, filter, nat i mangle.
  
=== chains ===
+
=== lanci ===
  
Chains are used to specify rulesets. A packet begins at the top of a chain and progresses downwards until it hits a rule. There are three built-in chains: INPUT, OUTPUT and FORWARD. All outbound traffic passes through the forward chain, and all inbound traffic passes through the FORWARD chain. The three built-in chains have default targets which are used if no rules are hit. User-defined chains can be added to make rulesets more efficient.
+
Lanci se koriste za zadavanje skupa pravila. Paket pocinje pri vrhu lanca i nastavlja dalje ka dole dok ne pogodi pravilo. Postoje tri ugradjena lanca: INPUT, OUTPUT i FORWARD. Sav odlazni saobracaj prolazi kroz FORWARD lanac i sav dolazeci saobracaj prolazi kroz FORWARD lanac. Tri ugradjena lanca imaju pocetne mete koje se koriste ako ni jedno pravilo nije pogodjeno. Lanci definisani od strane korisnika se mogu dodati da bi se skup pravila ucinio efikasnijim.
  
=== targets ===
+
=== mete ===
  
A "target" is the result that occurs when a packet hits a rule. Targets are specified using "jump" (-j). The most common targets are ACCEPT, DROP, REJECT and LOG.
+
"meta" je rezultat koji se desava kada paket pogodi pravilo. Mete se zadaju upotrebom "skoka" (-j). Najcesce mete su ACCEPT, DROP, REJECT i LOG.
  
=== modules ===
+
=== moduli ===
  
There are many modules which can be used to extend iptables such as connlimit, conntrack, limit and recent. These modules add extra functionality to allow complex filtering rules.
+
Postoje mnogi moduli koji se mogu koristiti za prosirivanje ip tabela poput connlimit, conntrack, limit i recent. Ovi moduli dodaju dodatnu funkcionalnost koja omogucava kompleksna pravila filterovanja.
  
== Configuration ==
+
== Konfigurisanje ==
  
=== From the command line ===
+
=== Sa komandne linije ===
  
You can check the current ruleset and the number of hits per rule by using the command:
+
Mozete da proverite trenutni skup pravila i broj pogodaka po pravilu upotrebom komande:
  
 
  # iptables -nvL
 
  # iptables -nvL
Line 58: Line 62:
 
   pkts bytes target    prot opt in    out    source              destination
 
   pkts bytes target    prot opt in    out    source              destination
  
If the output looks like the above, then there are no rules.
+
Ako izlaz izgleda kao gore, onda nema pravila.
  
You can flush and reset iptables to default using these commands:
+
Mozete da flush-ujete i resetujete ip tabele na difolt upotrebom ovih komandi:
  
 
  # iptables -P INPUT ACCEPT
 
  # iptables -P INPUT ACCEPT
Line 68: Line 72:
 
  # iptables -X
 
  # iptables -X
  
=== Configuration file ===
+
=== Konfiguracioni fajl ===
  
The configuration file at /etc/conf.d/iptables points to the location of the configuration file. The ruleset is loaded when the daemon is started.
+
Konfiguracioni fajl na /etc/conf.d/iptables pokazuje na lokaciju konfiguracionog fajla. Skup pravila je ucitan kada se daemon startuje.
  
 
IPTABLES=/usr/sbin/iptables
 
IPTABLES=/usr/sbin/iptables
Line 79: Line 83:
 
IPTABLES_FORWARD=0  # enable IP forwarding?
 
IPTABLES_FORWARD=0  # enable IP forwarding?
  
To save the current ruleset, use this command:
+
Da sacuvate trenutni skup pravila, upotrebite komandu:
  
 
  # /etc/rc.d/iptables save
 
  # /etc/rc.d/iptables save
  
To load the ruleset, use this command:
+
Da ucitate skup pravila, upotrebite ovu komandu:
  
 
  # /etc/rc.d/iptables restart
 
  # /etc/rc.d/iptables restart
  
=== Saving counters ===
+
=== Cuvanje brojaca ===
  
You can also, optionally, save byte and packet counters.
+
Mozete takodje, opciono, da sacuvate bajt i paket brojace.
To accomplish this, edit /etc/rc.d/iptables
+
Da to uradite, editujte /etc/rc.d/iptables
  
In the '''save)''' section, change the line:
+
U '''save)''' sekciji, izmenite liniju:
 
<pre>
 
<pre>
 
/usr/sbin/iptables-save > $IPTABLES_CONF
 
/usr/sbin/iptables-save > $IPTABLES_CONF
 
</pre>
 
</pre>
to
+
na
 
<pre>
 
<pre>
 
/usr/sbin/iptables-save -c > $IPTABLES_CONF
 
/usr/sbin/iptables-save -c > $IPTABLES_CONF
 
</pre>
 
</pre>
In the '''stop)''' section, add the following to save before stopping:
+
U '''stop)''' sekciji, dodajte sledece da sacuvate pre stopiranja:
 
<pre>
 
<pre>
 
stop)
 
stop)
Line 106: Line 110:
 
     sleep 2
 
     sleep 2
 
</pre>
 
</pre>
In the '''start)''' section, change the line:
+
U '''start)''' sekciji, promenite liniju:
 
<pre>
 
<pre>
 
/usr/sbin/iptables-restore < $IPTABLES_CONF
 
/usr/sbin/iptables-restore < $IPTABLES_CONF
 
</pre>
 
</pre>
to
+
na
 
<pre>
 
<pre>
 
/usr/sbin/iptables-restore -c < $IPTABLES_CONF
 
/usr/sbin/iptables-restore -c < $IPTABLES_CONF
 
</pre>
 
</pre>
and save the file
+
i sacuvajte fajl
  
=== Guides ===
+
=== Uputstva ===
  
*[[Simple stateful firewall]]
+
*[[Simple stateful firewall (Српски)]]
*[[Router]]
+
*[[Router (Српски)]]
  
== Logging ==
+
== Logovanje ==
  
The LOG target can be used to log packets that hit a rule. Unlike other targets like ACCEPT or DROP, the packet will continue moving through the chain after hitting a LOG target. This means that in order to enable logging for all dropped packets, you would have to add a duplicate LOG rule before each DROP rule. Since this reduces efficiency and makes things less simple, a LOGDROP chain can be created instead.
+
LOG meta se moze koristiti za logovanje paketa koji pogadjaju pravilo. Nasuprot drugim metama poput ACCEPT ili DROP, paket ce nastaviti da se krece kroz lanac nakon sto pogodi LOG metu. Ovo znaci da ako hocete da omogucite logovanje svih ispustenih paketa, morate da dodate duplo LOG pravilo pre svakog DROP pravila. Posto ovo umanjuje efikasnost i cini stvari manje jednostavnim, LOGDROP lanac se moze napraviti umesto toga.
  
 
<pre>
 
<pre>
Line 133: Line 137:
 
:OUTPUT ACCEPT [0:0]
 
:OUTPUT ACCEPT [0:0]
  
... other user defined chains ..
+
... lanci definisani od strane drugih korisnika ..
  
 
## LOGDROP chain
 
## LOGDROP chain
Line 141: Line 145:
 
-A LOGDROP -j DROP
 
-A LOGDROP -j DROP
  
... rules ...
+
... pravila ...
  
## log AND drop packets that hit this rule:
+
## log i drop paketi koji pogadjaju ovo pravilo:
 
-A INPUT -m state --state INVALID -j LOGDROP
 
-A INPUT -m state --state INVALID -j LOGDROP
  
... more rules ...
+
... jos pravila ...
 
</pre>
 
</pre>
  
=== Limiting log rate ===
+
=== Ogranicavanje ucestalosti logovanja ===
  
The limit module should be used to prevent your iptables log from growing too large or causing needless hard drive writes. Without limiting, an attacker could fill your drive (or at least your /var partition) by causing writes to the iptables log.
+
Modul za ogranicavanje se koristi za sprecavanje preteranog narastanja vaseg log fajla za ip tabele ili uzrokovanja bespotrebnog pisanja na hard disk. Bez ogranicavanja, napadac bi mogao da ispuni vas hard disk (ili bar vasu /var particiju) tako sto bi izazvao pisanje u log za ip tabele.
  
'''-m limit''' is used to call on the limit module. You can then use --limit to set an average rate and --limit-burst to set an initial burst rate. Example:
+
'''-m limit''' se koristi za poziv na modul za ogranicavanje. Mozete da upotrebite --limit da podesite prosecnu stopu i --limit-burst da podesite pocetnu burst stopu. Primer:
  
 
  -A LOGDROP -m limit --limit 5/m --limit-burst 10 -j LOG
 
  -A LOGDROP -m limit --limit 5/m --limit-burst 10 -j LOG
  
This appends a rule to the LOGDROP chain which will log all packets that pass through it. The first 10 packets will the be logged, and from then on only 5 packets per minute will be logged. The "limit burst" is restored by one every time the "limit rate" is not broken.
+
Ovo zadaje pravilo u LOGDROP lanac koji ce logovati sve pakete koji prolaze kroz njega. Prvih 10 paketa ce biti logovano, a zatim ce samo 5 paketa po minutu biti logovano. "limit burst" je obnovljen za jedan svaki put kada "limit rate" nije narusen.
  
 
=== syslog-ng ===
 
=== syslog-ng ===
  
Assuming you are using syslog-ng which is the default in Archlinux, you can control where iptables' log output goes this way:
+
Pretpostavljajuci da koristite syslog-ng koji je difolt u Arch Linux-u, mozete da kontrolisete gde ip tabele loguju izlaz na sledeci nacin:
 
  filter f_everything { level(debug..emerg) and not facility(auth, authpriv); };
 
  filter f_everything { level(debug..emerg) and not facility(auth, authpriv); };
to
+
na
 
  filter f_everything { level(debug..emerg) and not facility(auth, authpriv) and not filter(f_iptables); };
 
  filter f_everything { level(debug..emerg) and not facility(auth, authpriv) and not filter(f_iptables); };
  
This will stop logging iptables output to /var/log/everything.log.
+
Ovo ce zaustaviti logovanje izlaza ip tabela u /var/log/everything.log.
  
If you also want iptables to log to a different file than /var/log/iptables.log, you can simply change the file value of destination d_iptables here (still in syslog-ng.conf)
+
Ako isto zelite da ip tabele loguju u neki drugi fajl a ne u /var/log/iptables.log, mozete jednostavno da izmenite vrednost fajla destinacije d_iptables ovde (jos uvek u syslog-ng.conf)
 
  destination d_iptables { file("/var/log/iptables.log"); };
 
  destination d_iptables { file("/var/log/iptables.log"); };
  
 
=== ulogd ===
 
=== ulogd ===
  
ulogd is a specialized userspace packet logging daemon for netfilter that can replace the default LOG target.
+
ulogd je specijalizovan daemon za logovanje paketa u korisnickom prostoru za netfilter koji moze da zameni difolt LOG metu.
  
[http://www.netfilter.org/projects/ulogd/index.html project page]
+
[http://www.netfilter.org/projects/ulogd/index.html stranica projekta]
  
[http://aur.archlinux.org/packages.ph?ID=22704 aur]
+
[https://aur.archlinux.org/packages.ph?ID=22704 aur]
  
=== Further Reading ===
+
=== Dalje citanje ===
  
* [http://en.wikipedia.org/wiki/Iptables Wikipedia Article on Iptables]
+
* [http://en.wikipedia.org/wiki/Iptables Wikipedia clanak za IP tabele]
  
* [http://www.netfilter.org/projects/iptables/index.html Iptables Homepage]
+
* [http://www.netfilter.org/projects/iptables/index.html Home stranica za IP tabele]

Revision as of 09:59, 15 June 2012

Tango-view-fullscreen.pngThis article or section needs expansion.Tango-view-fullscreen.png

Reason: please use the first argument of the template to provide a brief explanation. (Discuss in Talk:Iptables (Српски)#)
Template:Article summary start

Template:Article summary text Template:Article summary heading Template:Article summary wiki Template:Article summary wiki Template:Article summary end

iptables je mocan vatreni zid ugradjen u linux kernel i deo je netfilter projekta. Moze se podesiti direktno ili upotrebu jednog od mnogih frontend-ova i GUI-ja. ip tabele se koriste za ipv4 i ip6 tabele se koriste za ipv6.

Instalacija

Note: Vas kernel mora biti kompajliran sa iptables podrskom. Svi Arch Linux kerneli iz oficijalnih repozitorijuma imaju podrsku za ip tabele.

Prvo, instalirajte korisnicke programe:

# pacman -S iptables

Sledece, dodajte ip tabele u DAEMONS niz u /etc/rc.conf da bi ih ucitali u vasa podesavanja prilikom butovanja:

DAEMONS=(... iptables network ...)

Osnovni koncepti

tabele

iptables sadrze cetiri tabele: raw, filter, nat i mangle.

lanci

Lanci se koriste za zadavanje skupa pravila. Paket pocinje pri vrhu lanca i nastavlja dalje ka dole dok ne pogodi pravilo. Postoje tri ugradjena lanca: INPUT, OUTPUT i FORWARD. Sav odlazni saobracaj prolazi kroz FORWARD lanac i sav dolazeci saobracaj prolazi kroz FORWARD lanac. Tri ugradjena lanca imaju pocetne mete koje se koriste ako ni jedno pravilo nije pogodjeno. Lanci definisani od strane korisnika se mogu dodati da bi se skup pravila ucinio efikasnijim.

mete

"meta" je rezultat koji se desava kada paket pogodi pravilo. Mete se zadaju upotrebom "skoka" (-j). Najcesce mete su ACCEPT, DROP, REJECT i LOG.

moduli

Postoje mnogi moduli koji se mogu koristiti za prosirivanje ip tabela poput connlimit, conntrack, limit i recent. Ovi moduli dodaju dodatnu funkcionalnost koja omogucava kompleksna pravila filterovanja.

Konfigurisanje

Sa komandne linije

Mozete da proverite trenutni skup pravila i broj pogodaka po pravilu upotrebom komande:

# iptables -nvL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination   
     
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination    
    
Chain OUTPUT (policy ACCEPT 0K packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Ako izlaz izgleda kao gore, onda nema pravila.

Mozete da flush-ujete i resetujete ip tabele na difolt upotrebom ovih komandi:

# iptables -P INPUT ACCEPT
# iptables -P FORWARD ACCEPT
# iptables -P OUTPUT ACCEPT
# iptables -F
# iptables -X

Konfiguracioni fajl

Konfiguracioni fajl na /etc/conf.d/iptables pokazuje na lokaciju konfiguracionog fajla. Skup pravila je ucitan kada se daemon startuje.

IPTABLES=/usr/sbin/iptables IP6TABLES=/usr/sbin/ip6tables

IPTABLES_CONF=/etc/iptables/iptables.rules IP6TABLES_CONF=/etc/iptables/ip6tables.rules IPTABLES_FORWARD=0 # enable IP forwarding?

Da sacuvate trenutni skup pravila, upotrebite komandu:

# /etc/rc.d/iptables save

Da ucitate skup pravila, upotrebite ovu komandu:

# /etc/rc.d/iptables restart

Cuvanje brojaca

Mozete takodje, opciono, da sacuvate bajt i paket brojace. Da to uradite, editujte /etc/rc.d/iptables

U save) sekciji, izmenite liniju:

/usr/sbin/iptables-save > $IPTABLES_CONF

na

/usr/sbin/iptables-save -c > $IPTABLES_CONF

U stop) sekciji, dodajte sledece da sacuvate pre stopiranja:

stop)
     $0 save
     sleep 2

U start) sekciji, promenite liniju:

/usr/sbin/iptables-restore < $IPTABLES_CONF

na

/usr/sbin/iptables-restore -c < $IPTABLES_CONF

i sacuvajte fajl

Uputstva

Logovanje

LOG meta se moze koristiti za logovanje paketa koji pogadjaju pravilo. Nasuprot drugim metama poput ACCEPT ili DROP, paket ce nastaviti da se krece kroz lanac nakon sto pogodi LOG metu. Ovo znaci da ako hocete da omogucite logovanje svih ispustenih paketa, morate da dodate duplo LOG pravilo pre svakog DROP pravila. Posto ovo umanjuje efikasnost i cini stvari manje jednostavnim, LOGDROP lanac se moze napraviti umesto toga.

## /etc/iptables/iptables.rules

*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]

... lanci definisani od strane drugih korisnika ..

## LOGDROP chain
:LOGDROP - [0:0]

-A LOGDROP -m limit --limit 5/m --limit-burst 10 -j LOG
-A LOGDROP -j DROP

... pravila ...

## log i drop paketi koji pogadjaju ovo pravilo:
-A INPUT -m state --state INVALID -j LOGDROP

... jos pravila ...

Ogranicavanje ucestalosti logovanja

Modul za ogranicavanje se koristi za sprecavanje preteranog narastanja vaseg log fajla za ip tabele ili uzrokovanja bespotrebnog pisanja na hard disk. Bez ogranicavanja, napadac bi mogao da ispuni vas hard disk (ili bar vasu /var particiju) tako sto bi izazvao pisanje u log za ip tabele.

-m limit se koristi za poziv na modul za ogranicavanje. Mozete da upotrebite --limit da podesite prosecnu stopu i --limit-burst da podesite pocetnu burst stopu. Primer:

-A LOGDROP -m limit --limit 5/m --limit-burst 10 -j LOG

Ovo zadaje pravilo u LOGDROP lanac koji ce logovati sve pakete koji prolaze kroz njega. Prvih 10 paketa ce biti logovano, a zatim ce samo 5 paketa po minutu biti logovano. "limit burst" je obnovljen za jedan svaki put kada "limit rate" nije narusen.

syslog-ng

Pretpostavljajuci da koristite syslog-ng koji je difolt u Arch Linux-u, mozete da kontrolisete gde ip tabele loguju izlaz na sledeci nacin:

filter f_everything { level(debug..emerg) and not facility(auth, authpriv); };

na

filter f_everything { level(debug..emerg) and not facility(auth, authpriv) and not filter(f_iptables); };

Ovo ce zaustaviti logovanje izlaza ip tabela u /var/log/everything.log.

Ako isto zelite da ip tabele loguju u neki drugi fajl a ne u /var/log/iptables.log, mozete jednostavno da izmenite vrednost fajla destinacije d_iptables ovde (jos uvek u syslog-ng.conf)

destination d_iptables { file("/var/log/iptables.log"); };

ulogd

ulogd je specijalizovan daemon za logovanje paketa u korisnickom prostoru za netfilter koji moze da zameni difolt LOG metu.

stranica projekta

aur

Dalje citanje