[ Vanja Petreski @ 16.07.2005. 00:15 ] @
Ajde da napišem nešto korisno ovde, da ne bude da samo kenjam ;o)

Upravo sam lepo podesio firewall na kućnom serveru, pa da podelim to sa vama.

Pre nego sto počnem sa tehnikalijama, da ukratko opišem scenario:

Bogu hvala pa je ADSL došao. To znači da imamo mogućnost da nam mašine budu 24/7 online.

Imam 2 mašine:

AMD64 - desktop klijentska mašina na kojoj radim svaki dan. Ima jednu mrežnu kartu eth0.

P3 - server mašina koja stoji u drugoj sobi. Ima 2 mrežne karte eth0 i eth1.

Ideja mi je bila da od P3 napravim zaštitni zid koji će da zabrani gotovo sav dolazni saobraćaj, osim par stvari koje su mi potrebne. Pošto i sa AMD64 treba da izlazim na mrežu, bilo je potrebno na P3 namestiti i NAT.

Na obe mašine se vrti Gentoo Linux. ADSL usluga je kod Sezama i imam ruter koji je podešen da radi kao modem i da uzima adresu preko dhcpa. Ovo je tako jer mi P3 glumi firewall i ruter.

Dakle, cela priča će važiti za Gentoo distribuciju, ali ćete se, analogno, lako snaći i na drugim distroima.

Podešavanja servera (P3):

Pre nego što bilo šta počnemo, treba podesiti kernel:

Device drivers -> Networking support -> Networking options -> [*] Network packet filtering (replaces ipchains)

Zatim uđite tu, pa u IP Netfilter Configuration i štiklirajte sve. (nemoj neko da me je isprozivao zbog ovoga, nemam pojma šta sme, a šta ne sme da se izostavi, od glave višak ne boli )

Zatim treba instalirati iptables. Na Gentoo-u se to radi ovako:

Code:
emerge iptables


Sada editujte fajl /etc/conf.d/net koji je odgovoran za mrežne karte:

Code:

iface_eth0="dhcp"
iface_eth1="192.168.0.1 broadcast 192.168.0.255 netmask 255.255.255.0"


Dakle na serveru smo podesili da eth0 koja je vezana za ADSL ruter uzima adresu preko dhcpa, a eth1 koja je vezana sa desktop računarom uzima privatnu adresu 192.168.0.1.

Podešavanje klijenta (AMD64):

Evo njegovog /etc/conf.d/net-a:

Code:

iface_eth0="192.168.0.2 broadcast 192.168.0.255 netmask 255.255.255.0"
gateway="eth0/192.168.0.1"


Dakle, eth0 klijenta je vezan za server, ima adresu 192.168.0.2 i setovali smo da je gateway upravo 192.168.0.1.

Obratite pažnju da za samu kartu eth1 na serveru nije podešen gateway! To ćemo uraditi preko iptables-a!

E da, ne zaboravite da podesite DNSove u /etc/resolv.conf na klijentu. Dakle, tu sam strpao Sezamove DNS-ove. Na serveru je to isto potrebno uraditi, mada mislim da dhcp brine o tome, ali neće da škodi.

Pokretanje i testiranje:

Na serveru je potrebno podići mrežne karte i dodati u startup:

Code:

/etc/init.d/net.eth0 start
/etc/init.d/net.eth1 start
rc-update add net.eth0 default
rc-update add net.eth1 default


A na klijentu:

Code:

/etc/init.d/net.eth0 start
rc-update add net.eth0 default


Ajmo da istestiramo da li ovo radi. Sa servera pokušajte da pingujete svet i klijenta:

Code:

ping www.google.com
ping 192.168.0.2


Ako ovo prođe, onda je sve podešeno.

Sada dolazi najzanimljiviji deo, treba konfigurisati firewall i NAT:

Code:

#!/bin/bash

echo 1 > /proc/sys/net/ipv4/ip_forward
                                                                               
iptables -F
iptables -X

# Omogućavamo NAT na eth0                                                                               
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
                                                                               
# Forvardujemo sve što dolazi na eth1 na izlaz eth0 (zato nam nije bio potreban gw)
iptables -A FORWARD -i eth1 -o eth0 -m state --state NEW,ESTABLISHED -j ACCEPT
                                                                               
# Omogućavamo pristup ssh serveru spolja
iptables -A INPUT --protocol tcp --dport 22 -j ACCEPT
                                                                               
# Omogucavamo pristup HTTP serveru spolja
iptables -A INPUT --protocol tcp --dport 80 -j ACCEPT
                                                                               
# Blokiramo sve ostalo spolja
iptables -A INPUT -i eth0 -m state --state NEW,INVALID -j DROP
iptables -A FORWARD -i eth0 -m state --state NEW,INVALID -j DROP 


Sada ovo treba snimiti. Na Gentoo-u ima olakšica, a to je:

Code:

/etc/init.d/iptables save


koja na izvesno mesto snima pravila. Ako ne koristite Gentoo, onda ćete koristi alatke iptables-save i iptables-restore. Nije nikakav problem.

Istestirajte da li sve radi:

Code:

/etc/init.d/iptables start; /etc/init.d/iptables stop; /etc/init.d/iptables start 


Ako ovo prođe, dodajte u startup:

Code:

rc-update add iptables default


Potrebno je još dodati sledeću liniju u /etc/conf.d/local.start kako bi pri svakom boot-u sve bilo u redu:

Code:

echo 1 > /proc/sys/net/ipv4/ip_forward


To je cela nauka. Sada klijent može nesmetano da ostvaruje konekcije bilo gde, a ulazni saobraćaj je omogućen samo na http i ssh server.

Biće i nastavak za malo komplikovanije slučajeve. Recimo: zabrana da klijent izlazi na neki port, forwardovanje nekog porta na klijenta itd.

Poz.

[Ovu poruku je menjao Vanja Petreski dana 09.09.2005. u 00:00 GMT+1]
[ NiGhT-BlAdE @ 19.07.2005. 01:08 ] @
Svaka chast .. prvo shto te nije mrzelod a ispishesh sve ovo a drugo shto si to sve lepo slozhio .. sada vishe ne moram da objashnjavam ljudima kako i shta .. samo link :) fala veliko :P

btw mogao si dodati tu usput i ftp i neke azureus portove etc.. znash kao na tacni :) i mislim da bi odna bilo perfect za home use :) mada pashe i na gateway -ima u internet caffeima :)

Ovakosam i ja slichno odradio na Slacku ... slichna pricha samo shto je rachunar u NAT-u XP mashina... U principu oba su desktop rachunara, samo shto se Linux koristi i kao gateway

[Ovu poruku je menjao NiGhT-BlAdE dana 19.07.2005. u 02:10 GMT+1]
[ Vanja Petreski @ 01.08.2005. 13:52 ] @
Ajmo sada da podesimo i Njinjdows da koristi naš server:

Control Panel -> Network Connections -> desni klik na Local Area Connection -> Properties -> Dvoklik na Internet Protocol (TCP/IP) i u mom scenariju podešavanja su ovakva:



[Ovu poruku je menjao Vanja Petreski dana 01.08.2005. u 14:53 GMT+1]
[ anrxc @ 01.08.2005. 14:53 ] @
Nezaobilazno stivo.
Iptables Tutorial 1.2.0 by Oskar Andreasson
[ pajac @ 12.08.2005. 23:13 ] @
Vi ljudi ste ko tempirani! Bas kad se spremam postavid Debian gateway i ruter!

FENOMENALNO!!

Da Vas pitam dali se je tko od vas igro sa ipmaq paketom možda?
[ Vanja Petreski @ 07.09.2005. 12:20 ] @
Ok, sada ćemo malo da se poigramo sa forvardovanjem portova.

Dakle, jedina mašina koju svet vidi je naš firewall.

Ja sada hoću da mogu da se nakačim direktno preko ssh-a na moj desktop Linux.

Evo kako bih to uradio:

Dok je firewall aktivan, ukucaću sledeće komande:

Code:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 5 -j DNAT --to 192.168.0.2:22
iptables -I FORWARD -i eth0 -p tcp -d 192.168.0.2 --dport 22 -j ACCEPT
/etc/init.d/iptables save


Kada sada pokušam iz sveta da se nakačim na sledeći način:

Code:

ssh -p 5 vpetreski.no-ip.org


firewall preusmeri ovaj zahtev na moju desktop mašinu na ssh port 22 i dobijem ono što sam hteo.

Evo šta treba uraditi da biste omogućili Shareaza-i da radi normalno na tcp i udp portu 12187:

Code:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 12187 -j DNAT --to 192.168.0.2:12187
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 12187 -j DNAT --to 192.168.0.2:12187
iptables -I FORWARD -i eth0 -p tcp -d 192.168.0.2 --dport 12187 -j ACCEPT
iptables -I FORWARD -i eth0 -p udp -d 192.168.0.2 --dport 12187 -j ACCEPT
/etc/init.d/iptables save


Takođe je potrebno podesiti lokalni firewall (ZoneAlarm na primer) da prima konekcije na ovom portu!

[Ovu poruku je menjao Vanja Petreski dana 07.09.2005. u 13:34 GMT+1]
[ dpop @ 15.10.2005. 14:57 ] @
Ko želi da još proširi svoje horizonte u ovoj oblasti, preporučujem da se pozabavi i sa odg. alatom sa url http://www.fwbuilder.org . Tu je sve što je potrebno da znate o tom po meni izuzetnom alatu i nadam se da uskoro budete mislili isto kao i ja.

Nije direktno vezano za topic ali ako do sada niste koristili i linux hardening tool.om sa url http://www.bastille-linux.org, skoknite i tamo...nećete zažaliti
[ ZeLe_ @ 12.12.2005. 17:01 ] @
da li postoji sansa da mi neko poomogne oko ogranicavanja brzine klientima

npr...

imam mashinu sa 2 mrezne kartice
eth0=81.93.88.2
eth1=192.168.0.1


sad potrebno je da dignem firewall i dozvolim tj zabranim nekim ip adresam u lokalnoj mrezi izlaz na internet
npr:
192.168.0.11
192.168.0.12
192.168.0.13
192.168.0.22
192.168.0.33
da idu na net

a
192.168.0. 2
192.168.0.15
192.168.0.18
192.168.0.44
192.168.0.23
da ne ide
a uz to moram da kazem kojom brzinom da idu


npr
od mogucih 256kbps koji mi dolaze ocu an tu mashinu da mi udje samo 156 kbps a od tih 156 kbps da se upotrebi sam 120kbps ito

192.168.0.11,12,13 da imaju max 32kbps
192,168.0.22 da ima 64 max a da 192.168.0.33 ima 90kbps ito uvek a ovima moze da pada da bi taj ip imao ....

unapred hvala mada mislim da slabo ko zna ovo da uradi



[ Vanja Petreski @ 12.12.2005. 17:34 ] @
http://lartc.org/howto/

http://www.securityfocus.com/infocus/1285

http://www.linuxdevcenter.com/...nux/2000/08/24/LinuxAdmin.html

http://talk.trekweb.com/~jasonb/articles/linux_tc_minihowto.shtml

http://neworder.box.sk/newsread.php?newsid=12568

Bilo bi lepo da se sada poigras sa time, pa kad sve to lepo sazmes i uspes da nam lepo i detaljno objasnis kako si to uspeo, pa da prosirimo ovaj howto ;o)
[ ZeLe_ @ 12.12.2005. 18:29 ] @

meni i dalje ne ide
izgleda da sam umno ogranicen
ja sve ali citam al dzaba
googlo sam ja i pre tebe al nisam skontao jedino od tog svog googlanja uspeo sam da niapisem ovo


-----------------------------------------
/etc/rc.masq 2>/dev/null >/dev/null
cat ips |awk '{print "/sbin/iptables -I FORWARD -d "$0" -j REJECT" }' |sh
------------------------------------------------------------------------



zna li ko da mi napise tu scriptu pa da je samo copy paste
ili ako ima ko gotovu ja cu da uradim edit ...



pls pls pls pls pls



HVALA .!!!
[ overburn @ 13.12.2005. 08:57 ] @
Mozda da probas sa MasterShaper-om - ja ga ne koristim ali vidim da ga hvale neki korisnici sa problemom poput tvog:
http://shaper.netshadow.at/tiki-index.php

A i inace, evo jednog foruma na kome mozes da pronadjes tonu korisnih stvari o tome kako funkcionisu linux firewall-ovi:

http://www.clarkconnect.com/forums/ubbthreads.php
[ ZeLe_ @ 13.12.2005. 13:59 ] @
dzaba sve to
ja sam navikao samo edit
koliko god ja da citam nema od toga nista ne kontam te tabele oni sto napisu i jbg ...

moze li ko da da primer sa ip koje sam ja naveo ...




HVALA!!!!!!
[ ddddeba @ 28.11.2006. 19:16 ] @
echo 1 > /proc/sys/net/ipv4/ip_forward

je potrebno da se implementira kao posljednje pravilo jer u slucaju kao sto je dato u skripti postoji mali vremenski period prije nego se implementiraju pravila vatrozida da je sistem otvoren za proslijedjivanje paketa.
[ nemysis @ 10.05.2007. 19:25 ] @
Instalisao sam Bastille u Kubuntu 7.04, Athlon 64 X2 4000 i primetio sam da taj program nije kompatibilan sa mojim sistemom. Traži /etc/inittab itd. što ja nemam.

Deinstalisao sam ga i ostalo je mnogo stvari koje je promenio u sistemu i nije vratio u normalno stanje. Ne briše svoje prazne direktorije itd... Najviše mi smeta kad se ulogujem u konzolu, da mi javlja preko celog ekrana "Autorized use bla bla". Ne mogu naći gde da to isključim. Prešao sam ceo /etc i ništa. Može li mi neko pomoći?

Umesto Bastille instalisao sam Arno's IPTABLES firewall

http://rocky.eld.leidenuniv.nl/

koji radi izvanredno, malo sam pročačkao dokumentaciju, podesio neke stvari pošto koristim ADSL, and rullez. Pozdrav.

[ nemysis @ 11.04.2008. 20:26 ] @
Napustio sam Kubuntu i pronašao sam u Gentoo-u veoma dobar GUI za zaštitni zid

Guarddog

http://www.simonzone.com/software/guarddog/

za Gentoo

emerge -a guarddog

Kad se starta u X kao root, vidi se da su sva pravila zabranjena.

Treba dodavati samo ono što vam treba.

Mogu se dodavati lična pravila. Može se trenutno isključiti firewall ako zatreba za probu. Ima veoma puno mogućnosti a i forum je veoma dobar.

Da bi se startao pri dizanju sistema

/etc/conf.d/local.start
...
# da se podigne Firewall (Guarddog)
/etc/rc.firewall
...
[ Mitrović Srđan @ 11.04.2008. 20:39 ] @
IPTABLES je prilicno prost za koriscenje i implenetiranje. Voleo sam nekada
da ga koristim cak sam napisao i tekst o njemu za ph zine.

http://phearless.org/i2/Hiding_Behind_Firewall.txt
[ nemysis @ 28.07.2008. 00:07 ] @
Sad sam napravio od Netfilter-Iptables Skript za firewall od početka i veoma sam zadovoljan. Ima veličinu od 43K. Potpuno je objašnjen u fajli.

Mogu da ga pokrećem sa

/etc/init.d/firewall start ili firewall start pošto mi je u path-u

ima i restart | stop | status | permit | forbid

Mnogo bolje radi od raznih GUI-a.

Pozdrav nemysis
[ nemysis @ 15.11.2008. 20:38 ] @
Ko želi da nešto nauči o Iptables neka pogleda, tu ima puno objašnjenja i saveta:

Netfilter/Iptables

Netfilter/Iptables

Netfilter/Iptables

Iptables & Netfilter - How to get started

git.netfilter.org Git

Lutz Donnerhacke: de.comp.security.firewall FAQ

Port Knocking & SPA

Complete Filtering Howto

Poeple Netfilter.org


Ovo je jedna tema koja je u Sigurnosti ali je za Linux mreže veoma dobra

Linux sigurnost dok sam na net-u

[Ovu poruku je menjao nemysis dana 15.11.2008. u 23:12 GMT+1]
[ scenarist @ 23.07.2012. 11:08 ] @
Prerovio sam sve teme oko IPTABELA i mozda je najbolje da ovdje postam situaciju koju imam za smjernice i upute kako da na najbolji nacin realiziram ono sto zelim.

Naime imam jednu staticku IP, i uradio sam port forwarding na ruteru 80 i 22 na LAN ip 192.168.1.2. (centos ver.5.6).
Nikakve sigurnosne postavke nisam podesio. Uglavnom iz vana se logujem preko web browsera i koristim takodjer ssh.
Ono sto zelim je da zabranim pristup iz vana svim ip adresama osim onom rangu IPs s kojeg ja pristupam iz vana. (taj opseg bi trebao traziti od provajdera!?). Sto se tice LAN moze biti sve omoguceno.

Dakle prvo bih trebao blokirati sve IPs i onda odobriti samo odredjenom opsegu IPs , kako bi to izgledalo pravilima IPTABELA redoslijedom:

Code:
iptables -P INPUT DROP  #blokiraj sve dolazne pakete
iptables -P FORWARD DROP # ako ruter koristimo kao kompjuter (ne znam da li je ovo potrebno)
iptables -P OUTPUT ACCEPT #dozvoljeni svi odlazni paketi
iptables -A INPUT -m state --state NEW,ESTABLISHED -j ACCEPT


iptables -A INPUT -s 192.168.1.144 -j ACCEPT #dozvoljen pristup iz LANa samo ovoj IP adresi

iptables -A INPUT -p tcp -s 217.0.0.0/8 --dport 22 -j ACCEPT  #dakle dozvoljen pristup iz vana samo ovom opsegu za port 22
iptables -A INPUT -p tcp -s 217.0.0.0/8 --dport 80 -j ACCEPT  #dakle dozvoljen pristup iz vana samo ovom opsegu za port 80


Da li je ovo dovoljno ili su potrebne dodatna pravila za jos bolju sigurnost ?
Redoslijed pisanja pravila me zbunjuje?



[Ovu poruku je menjao scenarist dana 23.07.2012. u 12:25 GMT+1]

[Ovu poruku je menjao scenarist dana 23.07.2012. u 12:27 GMT+1]

[Ovu poruku je menjao scenarist dana 23.07.2012. u 12:38 GMT+1]
[ milosbeo @ 23.07.2012. 12:29 ] @
Da malo pojasnimo. Ajde da kazemo da postoje dve bitne tabele, FILTER i NAT.
U okviru FILTER tabele postoje lanci (chain) INPUT, OUTPUT, FORWARD(kada je pc podesen kao ruter).
U okviru lanaca postoje pravila koja se citaju po nekom redosledu, prvo se citaju dodata pravila, pa onda polisa.
Pomocu -A, -I, -P ta pravila smestas u tu tabelu. Pomocu -L citas sadrzaj.
---------------------------------------------------------------------------------------

Trebalo bi da je OK.

Prvo se citaju pravila pa polisa. Znas sta znaci -A (append), smesta pavilo u poslednji red lanca.

U tvom slucaju za INPUT lanac bi dobio sledece:

1. iptables -A INPUT -s 192.168.1.144 -j ACCEPT #dozvoljen pristup iz LANa samo ovoj IP adresi
2. iptables -A INPUT -p tcp -s 217.0.0.0/8 --dport 22 -j ACCEPT #dakle dozvoljen pristup iz vana samo ovom opsegu za port 22
3. iptables -A INPUT -p tcp -s 217.0.0.0/8 --dport 80 -j ACCEPT #dakle dozvoljen pristup iz vana samo ovom opsegu za port 80
i na kraju se gleda polisa
4. iptables -P INPUT DROP #blokiraj sve dolazne pakete


Pozzz
[ scenarist @ 05.08.2012. 15:24 ] @
Citat:
milosbeo:
Da malo pojasnimo. Ajde da kazemo da postoje dve bitne tabele, FILTER i NAT.
U okviru FILTER tabele postoje lanci (chain) INPUT, OUTPUT, FORWARD(kada je pc podesen kao ruter).
U okviru lanaca postoje pravila koja se citaju po nekom redosledu, prvo se citaju dodata pravila, pa onda polisa.
Pomocu -A, -I, -P ta pravila smestas u tu tabelu. Pomocu -L citas sadrzaj.
---------------------------------------------------------------------------------------

Trebalo bi da je OK.

Prvo se citaju pravila pa polisa. Znas sta znaci -A (append), smesta pavilo u poslednji red lanca.

U tvom slucaju za INPUT lanac bi dobio sledece:

1. iptables -A INPUT -s 192.168.1.144 -j ACCEPT #dozvoljen pristup iz LANa samo ovoj IP adresi
2. iptables -A INPUT -p tcp -s 217.0.0.0/8 --dport 22 -j ACCEPT #dakle dozvoljen pristup iz vana samo ovom opsegu za port 22
3. iptables -A INPUT -p tcp -s 217.0.0.0/8 --dport 80 -j ACCEPT #dakle dozvoljen pristup iz vana samo ovom opsegu za port 80
i na kraju se gleda polisa
4. iptables -P INPUT DROP #blokiraj sve dolazne pakete


Pozzz


Da li je bitan redoslijed kojim pisem pravila ?

Jer kako gore kazes prvo se citaju dodata pravila(to su ova sa "A"), zatim polisa "P".

Uglavnom sa

iptables -P INPUT DROP // cu blokirati sav dolazni saobracaj

a onda cu odobriti dolazni saobracaj IPs kojima zelim sa

iptables -A INPUT -s 192.168.1.144 -j ACCEPT

Dalje ukoliko koristim portove 22 i 80, da li da zabranim recimo pristup sa IP sa ovim pravilom

iptables -A INPUT -s 217.0.0.0/8 -j DROP

ILI sa

iptables -A INPUT -p tcp -s 217.0.0.0/8 --dport 22 -j DROP
iptables -A INPUT -p tcp -s 217.0.0.0/8 --dport 80 -j DROP

da li je mozda ovo drugo pravilo sigurnije ?

Takodjer da li imam potrebe nakon sto podesim iptabele , konfigurisati public and private keys od putty za one racunare koji imaju doyvoljen pristup ili je to suvisno ?


[ milosbeo @ 05.08.2012. 16:59 ] @
Redosled je bitan, u smislu da ako imas na vrhu lanca prvo pravilo

iptables -A INPUT -s 217.0.0.0/8 -j DROP

onda ti nema smisla neko ovakvo pravilo

iptables -A INPUT -p tcp -s 217.0.0.1 --dport 22 -j ACCEPT

posto se u gornjoj mrezi nalazi host koji hoces da propustis.

Treba da specificna pravila stavljas na vrh.
Ovako bi recimo valjalo:

1. iptables -A INPUT -p tcp -s 217.0.0.1 --dport 22 -j ACCEPT
2. iptables -A INPUT -s 217.0.0.0/8 -j DROP

Opet, ako vec imas polisu DROP, ovo ispod i nema bas smisla, posto ce paket biti dropovan ako ne dolazi sa src adrese 217.0.0.1 --dport 22

Dakle ova drop pravila ti nemaju svrhu posto vec imas na kraju lanca polisu koja sve dropuje, ako se dodje do nje.

Za kljuceve mislim da ne treba.


[ scenarist @ 05.08.2012. 20:45 ] @
Hm..
ali citajuci o IPtabelama sam naisao na dva koncepta:
PRVI: Blokiraj sve IPs i onda odobri onima koje zelis i
DRUGI: Odobri sve i onda blokiraj odredjene IPs

Opcija 1 se uobicajeno koristi za INPUT odnosno incoming pakete

Code:

The concept of default policies within chains raises two fundamental possibilities that we must first consider before we decide how we are going to organize our firewall.

1. We can set a default policy to DROP all packets and then add rules to specifically allow (ACCEPT) packets that may be from trusted IP addresses, or for certain ports on which we have services running such as bittorrent, FTP server, Web Server, Samba file server etc.

or alternatively,

2. We can set a default policy to ACCEPT all packets and then add rules to specifically block (DROP) packets that may be from specific nuisance IP addresses or ranges, or for certain ports on which we have private services or no services running.

Generally, option 1 above is used for the INPUT chain where we want to control what is allowed to access our machine and option 2 would be used for the OUTPUT chain where we generally trust the traffic that is leaving (originating from) our machine.


Ali uglavnom koliko sam prokuzio bitno je da specificna pravila tj. ACCEPT pisem prva i onda nakon njih DROP. TJ.

Code:

iptables -A INPUT -s 192.168.1.0/8 -j ACCEPT
iptables -A INPUT -s 195.222.0.0/16 -j ACCEPT i onda na kraju
iptables -P INPUT DROP

//dakle odobri samo gore napisanom opsegu IPs a svim ostalim zabrani.

Da sam obratnim redoslijedom napisao, mislim da onda nebi vrijedilo, jer bi mi odmah prvo pravilo dropovalo cak i ako pokusam pristupiti sa 192.168.1.20

Code:
iptables -P INPUT DROP
iptables -A INPUT -s 192.168.1.0/8 -j ACCEPT
iptables -A INPUT -s 195.222.0.0/16 -j ACCEPT


Eh sad da li je to ta logika ili ?
[ maksvel @ 05.08.2012. 20:55 ] @
Nema veze kojim redosledom postavljaš default polisu - ona se svakako primenjuje poslednja, posle pravila.
[ scenarist @ 06.08.2012. 14:38 ] @
OK. Shvatio sam.

No medjutim upravo sam pokusao da instaliram webmin no medjutim ne mogu jer ne mogu ga ni downloadovati zbog pravila
Code:
iptables -P INPUT DROP


zelim sada da izbrisem tu polisu ali ne znam kako ? Imam samo tri pravila, kako da izbrisem polisu iptables -D INPUT "rule_number"
Kada izlistam pravila sa rule numbers su

Code:
iptables -n -L -v --line-numbers

[root@go ~]# iptables -n -L -v --line-numbers
Chain INPUT (policy DROP 48921 packets, 2956K bytes)
num   pkts bytes target     prot opt in     out     source               destination
1    11141 1857K ACCEPT     all  --  *      *       192.168.1.0/24       0.0.0.0/0
2      171 16146 ACCEPT     all  --  *      *       213.143.103.43       0.0.0.0/0
3      984 91057 ACCEPT     all  --  *      *       195.222.0.0/16       0.0.0.0/0

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 74866 packets, 7251K bytes)
num   pkts bytes target     prot opt in     out     source               destination

Chain RH-Firewall-1-INPUT (0 references)
num   pkts bytes target     prot opt in     out     source               destination


Odnosno kako da napisem pravila da kada ja posaljem upit tj.da nesto downlodujem da imam tu mogucnost a da prethodno ne brisem polisu iptables -P INPUT DROP ? Ili cu svaki put kada nesto zelim downloadovati morati brisati (ili stopirati iptables) iptables -P INPUT DROP pa ponovno restore (ili iptables start,respektivno) ?
[ maksvel @ 06.08.2012. 15:49 ] @
Polisa treba da stoji, a pravilima odredi šta propuštaš. Bilo bi vrlo nepraktično da moraš svaki put da otvaraš/zatvaraš.
Da bi radio download, možeš da dodaš da se u INPUT propuštaju sve related,established konekcije, pa kada potražuješ sa Interneta, on u INPUT-u propusti poznatu, već uspostavljenu konekciju.

Npr.


iptables -A INPUT -p TCP -m state --state ESTABLISHED -j ACCEPT

Ili jednostavno da pustiš u INPUT sve što dolazi sa porta 80

iptables -A INPUT -p TCP --sport 80 -j ACCEPT
[ scenarist @ 06.08.2012. 16:10 ] @
Razumijem.

Ali recimo kada

kada hocu da obrisem sva pravila , kucam

Code:
iptables -F 


nakon toga obrise mi sva pravila ali ostane mi polisa

Code:
iptables -P INPUT DROP


kako da nju obrisem ?

Upravo sam to uradio i nemogu da pristupim udaljenom serveru, moram sad ici na lice mjesta. :)

mislim da je ovo gore tvoje prvo pravilo bolje, jer u prevodu na svaki moj sent paket, dobit cu response , ako sam dobro shvatio?
a ovo drugo tvoje pravilo, mi ne odgovara jer na portu 80 mi je web gui a nebi da ga otvaram svima.

da li sam trebao sa iptables -X

iptables -F // flush all chains
iptables -X // delete all chains
[ Miroslav Strugarevic @ 06.08.2012. 16:16 ] @
Kada testiras iptables obavezno u cron ubaci da na X minuta radi iptables -F

Pogledaj /etc/sysconfig/iptables
[ scenarist @ 06.08.2012. 16:25 ] @
Problem je taj sto kada sam ja uradio
iptables -F

automatski me je putty diskonektovao, sto znaci da mi je iptables -F izbrisao pravilo iptables -A INPUT -s 195.222.0.0/16, a ostavio polisu iptables -P INPUT DROP. Jer ne mogu vise pristupiti serveru sa 195.222.56.80. Odakle proizilazi da ne mogu raditi iptables -F sa udaljene lokacije.
[ maksvel @ 06.08.2012. 16:30 ] @
Posebno promeni polisu sa iptables -P INPUT ACCEPT
To možeš isto da ubaciš u cron - uz iptables -F, da te ne odseče kad ne treba
[ Miroslav Strugarevic @ 06.08.2012. 16:32 ] @
Pogledaj koja ti je default polisa u sysconfig/iptables fajlu.

p.s. Kada podesis iptables pravila moras ih sacuvati: service iptables save
[ scenarist @ 06.08.2012. 16:49 ] @
ok. Shvatio sam.

Samo prije pokretanja iptables -F , odradim iptables -P INPUT ACCEPT i nakon toga sam bez brige da me izbaci, a i pronasao sam skriptu za crontab Reset all rules of iptables. Handy to put in the root’s crontab while configuring a remote firewall.
[ scenarist @ 16.08.2012. 12:41 ] @
Citat:
maksvel:
Polisa treba da stoji, a pravilima odredi šta propuštaš. Bilo bi vrlo nepraktično da moraš svaki put da otvaraš/zatvaraš.
Da bi radio download, možeš da dodaš da se u INPUT propuštaju sve related,established konekcije, pa kada potražuješ sa Interneta, on u INPUT-u propusti poznatu, već uspostavljenu konekciju.

Npr.


iptables -A INPUT -p TCP -m state --state ESTABLISHED -j ACCEPT

Ili jednostavno da pustiš u INPUT sve što dolazi sa porta 80

iptables -A INPUT -p TCP --sport 80 -j ACCEPT


Da li ovo pravilo

iptables -A INPUT -s 77.0.0.0/8 -j ACCEPT // range od sip provajdera, dakle dozvolio sam incoming pristup sa datog opsega

znaci da je dozvoljen incoming pristup preko bilo kojeg porta ili moram konkretno naznaciti accept za pojedini port, jer ne uspijevam nakaciti sip trunk iako sam dozvolio incoming pristup cijelom ip opsegu sip provajdera?

dodao sam i slijedece ali opet ne prolazi

-A INPUT -s 77.0.0.0/255.0.0.0 -p udp -m udp --dport 4569 -j ACCEPT
-A INPUT -s 77.0.0.0/255.0.0.0 -p udp -m udp --dport 5060 -j ACCEPT
-A INPUT -s 77.0.0.0/255.0.0.0 -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
[ maksvel @ 16.08.2012. 12:57 ] @
DA - ako nisi naznačio port, odnosno protokol, prolazi sve (sa zadatih adresa).
Jedino da eventualno loguješ u poslednjem pravilu, da se vidi šta se odbacuje, odnosno šta ne stiže kako treba.
Npr, dodaš
iptables -A INPUT-j LOG --log-level 7 --log-prefix "DROP paketi"

i onda proveriš u /var/log/messages (ili u posebnom fajlu, zavisi gde se čuva log iptables na tom distrou) kakvi paketi su odbačeni.
[ scenarist @ 16.08.2012. 13:27 ] @
Rijesio sam tako sto uopste nisam koristio polisu

iptables -P INPUT DROP,

setovao sam je na ACCEPT

a onda odradio

iptables -A INPUT 0/0 -j DROP

i to je to :)
[ scenarist @ 16.08.2012. 16:01 ] @
Hm...ispricavam se...isti problem mi je ostao.

[Aug 16 16:58:34] WARNING[2421]: chan_sip.c:3225 create_addr: No such host: sip.justvoip.com
[Aug 16 16:58:34] WARNING[2421]: chan_sip.c:8291 transmit_register: Probably a DNS error for registration to xxxxxxx@sip.justvoip.com, trying REGISTER again (after 20

@maksvel

dodao sam pravilo kako si i napisao i ovo je sadrzaj var/log/messages
Code:

Aug 16 10:04:05 go syslogd 1.4.1: restart.
Aug 16 10:27:28 go kernel: ip_tables: (C) 2000-2006 Netfilter Core Team
Aug 16 10:38:49 go ntpd[1922]: synchronized to 91.198.174.204, stratum 2
Aug 16 11:06:53 go kernel: ip_tables: (C) 2000-2006 Netfilter Core Team
Aug 16 11:06:53 go kernel: Netfilter messages via NETLINK v0.30.
Aug 16 11:06:53 go kernel: ip_conntrack version 2.4 (4095 buckets, 32760 max) - 228 bytes per conntrack
Aug 16 12:51:42 go kernel: Removing netfilter NETLINK layer.
Aug 16 12:51:42 go kernel: ip_tables: (C) 2000-2006 Netfilter Core Team
Aug 16 12:51:42 go kernel: Netfilter messages via NETLINK v0.30.
Aug 16 12:51:42 go kernel: ip_conntrack version 2.4 (4095 buckets, 32760 max) - 228 bytes per conntrack
Aug 16 14:54:40 go ntpd[1922]: synchronized to 188.122.88.222, stratum 3
Aug 16 15:00:01 go ntpd[1922]: synchronized to LOCAL(0), stratum 10
Aug 16 16:17:04 go kernel: Removing netfilter NETLINK layer.
Aug 16 16:45:16 go kernel: ip_tables: (C) 2000-2006 Netfilter Core Team
Aug 16 16:45:16 go kernel: Netfilter messages via NETLINK v0.30.
Aug 16 16:45:16 go kernel: ip_conntrack version 2.4 (4095 buckets, 32760 max) - 228 bytes per conntrack


Pored var/log/messages imam i failove
var/log/messages1
var/log/messages2
var/log/messages3
var/log/messages4
[ maksvel @ 17.08.2012. 13:20 ] @
Diskusija je nastavljena ovde.
[ cerveni @ 16.10.2013. 23:36 ] @
A da malo zakomplikujemo stvar sa stelth portovima

prvo ako je vas racunar direktno izlozen internetu proverite kako se vide vasi portovi sa spolja

https://www.grc.com/Shieldsup!

Posle toga probajte da dodate mangle prerouting tabelu primer:

Code:

# Completed on Thu Oct 17 00:10:01 2013
# Generated by iptables-save v1.4.7 on Thu Oct 17 00:10:01 2013
*mangle
:PREROUTING ACCEPT [3656700:3189031252]
:INPUT ACCEPT [1245025:1400142682]
:FORWARD ACCEPT [2411625:1788884202]
:OUTPUT ACCEPT [1015096:720130025]
:POSTROUTING ACCEPT [3427223:2509104226]
:IANA-reserved - [0:0]
:MSYNFLOOD - [0:0]
-A PREROUTING -p igmp -j DROP 
-A PREROUTING -s 192.168.0.0/16 -j RETURN 
-A PREROUTING -i lo -j RETURN
-A PREROUTING -m state --state NEW -j IANA-reserved 
-A PREROUTING -m state --state NEW -j MSYNFLOOD 

-A IANA-reserved -s 255.255.255.255/32 -j DROP 
-A IANA-reserved -s 0.0.0.0/8 -j DROP 
-A IANA-reserved -s 10.0.0.0/8 -j DROP 
-A IANA-reserved -s 169.254.0.0/16 -j DROP 
-A IANA-reserved -s 172.16.0.0/12 -j DROP 
-A IANA-reserved -s 192.168.0.0/16 -j DROP
-A IANA-reserved -j RETURN 

-A MSYNFLOOD -f -m comment --comment "Fragments" -j LOG --log-prefix "Fragments Packets" 
-A MSYNFLOOD -f -j DROP 
-A MSYNFLOOD -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m limit --limit 1/sec -j RETURN 
-A MSYNFLOOD -p tcp -m comment --comment "sync" -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j LOG --log-prefix "Drop Syn" 
-A MSYNFLOOD -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP 
-A MSYNFLOOD -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP 
-A MSYNFLOOD -p tcp -m comment --comment "block bad stuff" -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,PSH,URG -j DROP 
-A MSYNFLOOD -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,PSH,ACK,URG -j DROP 
-A MSYNFLOOD -p tcp -m comment --comment "NULL packets" -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j LOG --log-prefix "NULL Packets" 
-A MSYNFLOOD -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP 
-A MSYNFLOOD -p tcp -m tcp --tcp-flags SYN,RST SYN,RST -j DROP 
-A MSYNFLOOD -p tcp -m tcp --tcp-flags FIN,SYN FIN,SYN -j DROP 
-A MSYNFLOOD -p tcp -m tcp --tcp-flags SYN,ACK SYN,ACK -m state --state NEW -j DROP 
-A MSYNFLOOD -p tcp -m comment --comment "XMAS" -m tcp --tcp-flags FIN,SYN FIN,SYN -j LOG --log-prefix "XMAS Packets" 
-A MSYNFLOOD -p tcp -m tcp --tcp-flags FIN,SYN FIN,SYN -j DROP 
-A MSYNFLOOD -p tcp -m tcp --tcp-flags FIN,RST FIN,RST -j DROP 
-A MSYNFLOOD -p tcp -m comment --comment "FIN packet scans" -m tcp --tcp-flags FIN,ACK FIN -j LOG --log-prefix "Fin Packets Scan" 
-A MSYNFLOOD -p tcp -m tcp --tcp-flags FIN,ACK FIN -j DROP 
-A MSYNFLOOD -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,ACK,URG -j DROP 
-A MSYNFLOOD -p tcp -m tcp --tcp-flags PSH,ACK PSH -j DROP 
-A MSYNFLOOD -p tcp -m tcp --tcp-flags ACK,URG URG -j DROP 
-A MSYNFLOOD -j RETURN 



proverite ponovo preko grc-a portove

javice vam failed zbog ICMP echo ali svi portovi treba da budu stealth.

[ kunc @ 06.06.2016. 16:33 ] @
Code:
iptables -F
iptables -A OUTPUT -j ACCEPT
iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport ssh -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
iptables -A INPUT -j DROP
iptables -A FORWARD -j DROP
iptables-save > /etc/iptables.up.rules
iptables-restore < /etc/iptables.up.rules



Pokušavam da zaštitim server što je moguće bolje. Šta ne odgovara ovdje..iptables mi blokira site..? Hvala drugari
[ Aleksandar Đokić @ 06.06.2016. 18:14 ] @
Ovo "iptables -A FORWARD -j DROP" ? Jes da bi to trebao da bude cisto trafik u "input" chain-u, ali mi nesto mirise da je ovo problem. I jesi siguran da iptables dropuje?

Izlistaj sa "iptables -L -n --list-numbers" pa sa "iptables -D INPUT BROJ_pravila" obrisi jedno po jedno pravilo ako bas dodje dotle. Dodaj prvo "iptables -I FORWARD -j ACCEPT" pa vidi jel radi sajt, pa dalje istrazuj.

[ Tyler Durden @ 06.06.2016. 21:33 ] @
Stavi

Code:
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
[ kunc @ 13.06.2016. 12:18 ] @
Code:
iptables -A INPUT -j DROP


bez ovoga radi sve ok

[ Aleksandar Đokić @ 13.06.2016. 12:49 ] @
Onda nije dobro "accept" pravilo, mada meni izgleda u redu.

iptables -A (probaj sa I) INPUT -p tcp --dport 80 -j ACCEPT

ili ono sto je Tyler napisao.