Fórum Root.cz

Hlavní témata => Sítě => Téma založeno: darebacik 16. 05. 2018, 21:30:10

Název: Nastavení IPtables na serveru s Debianem
Přispěvatel: darebacik 16. 05. 2018, 21:30:10
Dobry den,
mam nainstalovany debian netinstall v KVM/qemu. Bezi mi tam len FTP server, ssh, openvpn a jedna sluzba na porte 17000.
Chcel by som si to zabezpecit netfilterom cez iptables
Debian (KVM) ma cez bridge realnu Ip adresu 192.168.1.100 (je v sieti 192.168.1.0/24)
Openvpn v debiane ma siet 10.8.0.0/24 (IP servera je teda 10.8.0.1)
Ako teda spravne nastavit iptables ?

Najprv by som asi vycistil vsetky retazce, vymazal vytvorene retazce a nastavil politiku
Kód: [Vybrat]
iptables -F FORWARD
iptables -F INPUT
iptables -F OUTPUT
iptables -X
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
Povolit lokalnu smicku
Kód: [Vybrat]
iptables -A INPUT -i lo -j ACCEPTpovolit naviazane a pribuzne spojenia
Kód: [Vybrat]
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPTSSH by som chcel nastavit len na jednu IP a tak isto aj FTP
Kód: [Vybrat]
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -s 192.168.1.4 -j ACCEPT
iptables -A INPUT -p tcp --dport 20 -m state --state NEW -s 192.168.1.4 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -m state --state NEW -s 192.168.1.4 -j ACCEPT
Otvorenie portu 17000 pre kazdeho
Kód: [Vybrat]
iptables -A INPUT -p tcp --dport 17000 -j ACCEPTDalej by mal byt otvoreny port pre pakety prichadzajuce na vstupne rozhranie, ktore vytvaraju openvpn spojenie (ano mam to na tcp)
Kód: [Vybrat]
iptables -A INPUT -s 10.8.0.0/24 -p tcp --dport 1194 -j ACCEPTVsetko ostatne ma byt zahodene (vid politika)

Forwarding sa na tomto stroji nekona.
Zatial som iptables nikdy nenastavoval, len som to trochu studoval a vyhladaval info ako to funguje.
Su v tom nejake chyby ? Bude to pracovat tak ako predpokladam?

Skript by vyzeral takto

Kód: [Vybrat]
#!/bin/bash
iptables -F FORWARD
iptables -F INPUT
iptables -F OUTPUT
iptables -X
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -s 192.168.1.4 -j ACCEPT
iptables -A INPUT -p tcp --dport 20 -m state --state NEW -s 192.168.1.4 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -m state --state NEW -s 192.168.1.4 -j ACCEPT
iptables -A INPUT -p tcp --dport 17000 -j ACCEPT
iptables -A INPUT -s 10.8.0.0/24 -p tcp --dport 1194 -j ACCEPT
PS iptables je potrebne ulozit do nejakeho suboru ako skript a pri kazdom starte spustat napr. cez rc.local ?
Název: Re:nastaveni iptables
Přispěvatel: David 16. 05. 2018, 22:04:51
Zkuste to přes iptables-restore, jak popisuji tady - https://david.cesal.cz/nastaveni-site/ .
Název: Re:nastaveni iptables
Přispěvatel: Vilith 16. 05. 2018, 22:18:27
Nebo si nainstaluj firewal ufw a res to v nem. Prijde mi prehlednejsi

Pro slozitejsi pravidla treba viz https://gist.github.com/kimus/9315140
Název: Re:Nastavení IPtables na serveru s Debianem
Přispěvatel: Martin Mlynář 17. 05. 2018, 07:56:46
Na debianu stačí použít https://packages.debian.org/stretch/admin/netfilter-persistent a nemusíš nic scriptovat
Název: Re:Nastavení IPtables na serveru s Debianem
Přispěvatel: darebacik 17. 05. 2018, 08:56:33
dakujem,
Zkuste to přes iptables-restore, jak popisuji tady - https://david.cesal.cz/nastaveni-site/ .
ked som iptables studoval, tak som si to na konci clanku vsimol https://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-linuxovy-firewall-zaklady-iptables-2 ten clanok je asi 8 rokov stary (ale je vyborne napisany) tak som si myslel ci nebude aj nejaky iny sposob zavedenia (ale toto je tiez v pohode).
Nebo si nainstaluj firewal ufw a res to v nem. Prijde mi prehlednejsi

Pro slozitejsi pravidla treba viz https://gist.github.com/kimus/9315140
UFW som pouzival do teraz. Je to v celku jednoduche aj pre zaciatocnikov, ale chcel som sa naucit viac iptables (mozno by uz bolo vhodnejsie nftables, ale nikdy nie je na skodu ist od zakladu (priznam sa, ze ipchains som neskusal)).
Na debianu stačí použít https://packages.debian.org/stretch/admin/netfilter-persistent a nemusíš nic scriptovat
skusim aj toto.

Ale nejak sa nikto nevyjadril k pravidlam.
Priznam sa, ze KVM pevadzkujem na proxmoxe, kde je pre kazdy VM (aj LXC) klikaci firewall. Mozno by to stacilo poriesit aj tam, ale ako som pisal vyssie chcem sa trocha priucit iptables
Název: Re:Nastavení IPtables na serveru s Debianem
Přispěvatel: Vilith 17. 05. 2018, 10:29:56
Na proxmoxu to delam tak, ze pomoci ufw zabezpecim proxmoxe a pak resim kazdou virtualku vlastnimi pravidly v ufw (bridge mod, kazda virtualka ma vlastni verejnou IP, KVM)

S LXC sou nejake problemy, nepouzivam, jen okrajove sleduji https://forum.proxmox.com/forums/proxmox-ve-networking-and-firewall.17/

Hodne lidi pouziva pfSense pro zabezpeceni svych virtualek
Název: Re:Nastavení IPtables na serveru s Debianem
Přispěvatel: jejda 17. 05. 2018, 10:49:17
Ještě bych tam přidal ICMP. Takto si ten stroj ani nepingneš.
Název: Re:Nastavení IPtables na serveru s Debianem
Přispěvatel: snuff1987 17. 05. 2018, 12:44:20
ufw to fakt nie preboha. to je pre lopaty.

este nezabudni pri tom porte 17000 (aj vsade) pouzit -m state --state NEW, pretoze takto ako to mas ti to prijme aj invalid.  ked uz robis stavovy firewall, tak nech to je allright.

a iptables nemusis ulozit do rc.local. Musis si najst (v centose to je ) /etc/sysconfig/iptables-config a tam mrkni co pisu.. enabluj sluzbu iptables a aj po restarte mas tam pravidla.. ano da sa to riesit aj cez rc.local ale to je skor workaround.
Název: Re:Nastavení IPtables na serveru s Debianem
Přispěvatel: kmarty 17. 05. 2018, 15:09:19
...
Musis si najst (v centose to je ) /etc/sysconfig/iptables-config a tam mrkni co pisu..
...enabluj sluzbu iptables a aj po restarte mas tam pravidla...
A proc myslis ze tazatel psal Debian? Tam sluzbu/initscript "iptables" nenajdes.
Kdysi v nejaky prehistoricky verzi distra to bylo, ale pak to zmenili na pouziti "iptables-restore" v "(pre-)up" v /etc/network/interfaces u (prvniho) iface (pripadne jako scriptik v /etc/network/if-pre-up.d/). V soucasny dobre nevim, protoze ifupdown balik nepouzivam, nahazuju sit pres systemd-networkd a iptables jsem nahazoval svym sakra podobnym nahazovadlem jako je vyse uvedeny "netfilter-persistent".

Kazdopadne v Debianu odkazovat na /etc/sysconfig/... a pripadne servicu iptables... tss tss tss, to si nech pro RH based distra.
Název: Re:Nastavení IPtables na serveru s Debianem
Přispěvatel: darebacik 17. 05. 2018, 15:33:03
ufw to fakt nie preboha. to je pre lopaty.

este nezabudni pri tom porte 17000 (aj vsade) pouzit -m state --state NEW, pretoze takto ako to mas ti to prijme aj invalid.  ked uz robis stavovy firewall, tak nech to je allright.

a iptables nemusis ulozit do rc.local. Musis si najst (v centose to je ) /etc/sysconfig/iptables-config a tam mrkni co pisu.. enabluj sluzbu iptables a aj po restarte mas tam pravidla.. ano da sa to riesit aj cez rc.local ale to je skor workaround.
jj na icmp protokol som zabudol, takze poupraveny skript
Kód: [Vybrat]
#!/bin/bash
iptables -F FORWARD
iptables -F INPUT
iptables -F OUTPUT
iptables -X
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -s 192.168.1.4 -j ACCEPT
iptables -A INPUT -p tcp --dport 20 -m state --state NEW -s 192.168.1.4 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -m state --state NEW -s 192.168.1.4 -j ACCEPT
iptables -A INPUT -p tcp --dport 17000 -m state --state NEW -j ACCEPT
iptables -A INPUT -s 10.8.0.0/24 -p tcp --dport 1194 -m state --state NEW -j ACCEPT
Název: Re:Nastavení IPtables na serveru s Debianem
Přispěvatel: darebacik 17. 05. 2018, 16:11:29
doplnujuca otazka,
vsimol som si, ze niekto dropuje aj output retazec.
Je dobre ho dropovat a obdobne pravidla pisat aj pre output, alebo output moze byt accept (nie som odbornik a verim linuxovemu jadru a inym odbornikom, ktori ho napisali a kontroluju (aj ked si vzdy stahujem hotove distro, ale veriiim)).
Název: Re:Nastavení IPtables na serveru s Debianem
Přispěvatel: karlik 17. 05. 2018, 20:17:39
jj na icmp protokol som zabudol, takze poupraveny skript
Kód: [Vybrat]
#!/bin/bash
iptables -F FORWARD
iptables -F INPUT
iptables -F OUTPUT
iptables -X
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -s 192.168.1.4 -j ACCEPT
iptables -A INPUT -p tcp --dport 20 -m state --state NEW -s 192.168.1.4 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -m state --state NEW -s 192.168.1.4 -j ACCEPT
iptables -A INPUT -p tcp --dport 17000 -m state --state NEW -j ACCEPT
iptables -A INPUT -s 10.8.0.0/24 -p tcp --dport 1194 -m state --state NEW -j ACCEPT
[/quote]

Nemělo by to být spíše takto?

iptables -F FORWARD
iptables -F INPUT
iptables -F OUTPUT
iptables -X
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -s 192.168.1.4 -j ACCEPT
iptables -A INPUT -p tcp --dport 20 -s 192.168.1.4 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -s 192.168.1.4 -j ACCEPT
iptables -A INPUT -p tcp --dport 17000 -j ACCEPT
iptables -A INPUT -s 10.8.0.0/24 -p tcp --dport 1194 -j ACCEPT

iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Název: Re:Nastavení IPtables na serveru s Debianem
Přispěvatel: darebacik 17. 05. 2018, 20:22:55
Ano vyzera to rozumne. Ja zatial s iptables velke skusenosti nemam, ale urcite to vyskusam
dik
Název: Re:Nastavení IPtables na serveru s Debianem
Přispěvatel: Lol Phirae 17. 05. 2018, 23:40:56
Tady to jede furt dokola... Odchozí port 20 je vám tam zcela k hounu (http://slacksite.com/other/ftp.html), a naopak bez příslušného conntrack modulu si ani neškrtnete.

(http://slacksite.com/images/ftp/activeftp.gif)
(http://slacksite.com/images/ftp/passiveftp.gif)
Název: Re:Nastavení IPtables na serveru s Debianem
Přispěvatel: uf 18. 05. 2018, 14:59:13
Nemělo by to být spíše takto?

iptables -F FORWARD
iptables -F INPUT
iptables -F OUTPUT
iptables -X
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -s 192.168.1.4 -j ACCEPT
iptables -A INPUT -p tcp --dport 20 -s 192.168.1.4 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -s 192.168.1.4 -j ACCEPT
iptables -A INPUT -p tcp --dport 17000 -j ACCEPT
iptables -A INPUT -s 10.8.0.0/24 -p tcp --dport 1194 -j ACCEPT

iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT


Koukám špatně, nebo z toho stroje pak nepůjde udělat nic (nepojede ntp, dns, ping, ... cokoliv původem v tom stroji)?
Název: Re:Nastavení IPtables na serveru s Debianem
Přispěvatel: uf 18. 05. 2018, 15:15:02
Klidně bych to nechal jako spustitelný skript v /etc/network/if-pre-up.d/.

Nestačí jedno "iptables -F"?

Ohledně VPN: Neměl by být port 1194 přístupný spíš z NEvpn adres? Přece navazování se tvoří na reálných IP, teprve po navázaní se vytvoří rozhraní s 10.8.0.1. Pro povolení provozu vpn by mohla stačit (záleží na üvaze) i jen vazba na příslušné rozhraní (iptables -A INPUT -i vpn -j ACCEPT)
Název: Re:Nastavení IPtables na serveru s Debianem
Přispěvatel: pb. 18. 05. 2018, 15:41:35
ufw to fakt nie preboha. to je pre lopaty.

Nepoužívám ufw (používám shorewall), takže to nedovedu zhodnotit. Každopádně je dobré mít alespoň základní ponětí o iptables. Ale dělat takhle jednoduchý fw v iptables může být... ztráta času (jo, cosi se naučíte - z tohoto pohledu to ztráta času není).

Dělat pak v iptables složitější firewall s různými zónami a nedejbože v IPv4 je šílenost. Některá speciální pravidla musíte aplikovat do mnoha směrů a tabulek (nat, prerouting, postrouting, forward). Stačí jeden překlep nebo opomenutí a máte na několik hodin o zábavu vystaráno.

Mezi speciální pravidla můžete započítat i takovou trivialitu, jako je přístup k poště v demilitarizované zóně, pokud chcete, aby se vám mohli pohybovat uživatelé libovolně po internetu, ve vnitřní síti nebo na různých pobočkách firmy.

Je to jak s programováním: v assembleru uděláte všechno, cokoliv jiného je pro lopaty. Ale JavaScript (Java, C, C++, PHP — dle vlastního výběru) bude v libovolných rukách efektivnější a bezpečnější.
Název: Re:Nastavení IPtables na serveru s Debianem
Přispěvatel: darebacik 20. 05. 2018, 11:13:13
Tady to jede furt dokola... Odchozí port 20 je vám tam zcela k hounu (http://slacksite.com/other/ftp.html), a naopak bez příslušného conntrack modulu si ani neškrtnete.

(http://slacksite.com/images/ftp/activeftp.gif)
(http://slacksite.com/images/ftp/passiveftp.gif)
Ano takze dalsi zadrhel ?
Priznam sa, ze zatial som tie pravidla netestoval  ;) len si ich pripravujem a rad by som ich skonzultoval.
Co sa tyka FTP, tak FTP server budem vyuzivat len ja. Pouzity FTP server je ProFTPd na ktorom je mozne nastavit v proftpd.conf aj
Kód: [Vybrat]
PassivePorts 51001 51002kde by som este povolil 2 dalsie vysoke porty, ale toto asi nebude idalne riesenie.
Nasiel som toto https://unix.stackexchange.com/questions/93554/iptables-to-allow-incoming-ftp
Takze chce to zaviest modul  ip_conntrack_ftp (resp  nf_conntrack_ftp) a dalsie pravidla
Kód: [Vybrat]
modprobe ip_conntrack_ftp
iptables -A INPUT  -p tcp -m tcp --dport 21 -m conntrack --ctstate ESTABLISHED,NEW -j ACCEPT -m comment --comment "Allow ftp connections on port 21"
iptables -A OUTPUT -p tcp -m tcp --dport 21 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT -m comment --comment "Allow ftp connections on port 21"
iptables -A INPUT  -p tcp -m tcp --dport 20 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT -m comment --comment "Allow ftp connections on port 20"
iptables -A OUTPUT -p tcp -m tcp --dport 20 -m conntrack --ctstate ESTABLISHED -j ACCEPT -m comment --comment "Allow ftp connections on port 20"
iptables -A INPUT  -p tcp -m tcp --sport 1024: --dport 1024: -m conntrack --ctstate ESTABLISHED -j ACCEPT -m comment --comment "Allow passive inbound connections"
iptables -A OUTPUT -p tcp -m tcp --sport 1024: --dport 1024: -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT -m comment --comment "Allow passive inbound connections"
Alebo ako je uvedene dalej
Kód: [Vybrat]
lsmod | grep ftp
modprobe nf_conntrack_ftp
lsmod | grep ftp
iptables -A INPUT -s 192.168.1.0/24 -d 192.168.1.0/24 -p tcp -m tcp --dport 21 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -d 192.168.1.0/24 -p tcp -m tcp --dport 20 -m conntrack --ctstate ESTABLISHED -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -d 192.168.1.0/24 -p tcp -m tcp --sport 1024: --dport 1024: -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -s 192.168.1.0/24 -d 192.168.1.0/24 -p tcp -m tcp --sport 21 -m conntrack --ctstate ESTABLISHED -j ACCEPT
iptables -A OUTPUT -s 192.168.1.0/24 -d 192.168.1.0/24 -p tcp -m tcp --sport 20 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -s 192.168.1.0/24 -d 192.168.1.0/24 -p tcp -m tcp --sport 1024:65535 --dport 1024:65535 -m conntrack --ctstate ESTABLISHED -j ACCEPT
Kde by som si upravil pri inpute -s na 192.168.1.4 a -d 192.168.1.100 a pri outpute -s na 192.168.1.100 a -d 192.168.1.4 (pokial tomu spravne rozumiem (IP servera 192.168.1.100 a moja ip (klient) 192.168.1.4).
Klidně bych to nechal jako spustitelný skript v /etc/network/if-pre-up.d/.

Nestačí jedno "iptables -F"?

Ohledně VPN: Neměl by být port 1194 přístupný spíš z NEvpn adres? Přece navazování se tvoří na reálných IP, teprve po navázaní se vytvoří rozhraní s 10.8.0.1. Pro povolení provozu vpn by mohla stačit (záleží na üvaze) i jen vazba na příslušné rozhraní (iptables -A INPUT -i vpn -j ACCEPT)

Ano stacilo by pouzit F bez retazcov, vtedy to vycisti vsetky + zrusil som pri prihlasovani sa na openvp 1194 -s 10.8.0.0/24
Ping tam je  (NTP a DNS by sa asi tiez zisiel)
Nemělo by to být spíše takto?

iptables -F FORWARD
iptables -F INPUT
iptables -F OUTPUT
iptables -X
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -s 192.168.1.4 -j ACCEPT
iptables -A INPUT -p tcp --dport 20 -s 192.168.1.4 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -s 192.168.1.4 -j ACCEPT
iptables -A INPUT -p tcp --dport 17000 -j ACCEPT
iptables -A INPUT -s 10.8.0.0/24 -p tcp --dport 1194 -j ACCEPT

iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT


Koukám špatně, nebo z toho stroje pak nepůjde udělat nic (nepojede ntp, dns, ping, ... cokoliv původem v tom stroji)?
ping by tam mal byt. Takze este pridam ntp, dns.

Takze teraz by skript mohol vyzerat nejak takto
Kód: [Vybrat]
#!/bin/bash
iptables -F
iptables -X
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -s 192.168.1.4 -j ACCEPT
modprobe nf_conntrack_ftp
iptables -A INPUT -s 192.168.1.4 -d 192.168.1.100 -p tcp -m tcp --dport 21 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -s 192.168.1.4 -d 192.168.1.100 -p tcp -m tcp --dport 20 -m conntrack --ctstate ESTABLISHED -j ACCEPT
iptables -A INPUT -s 192.168.1.4 -d 192.168.1.100 -p tcp -m tcp --sport 1024: --dport 1024: -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -s 192.168.1.100 -d 192.168.1.4 -p tcp -m tcp --sport 21 -m conntrack --ctstate ESTABLISHED -j ACCEPT
iptables -A OUTPUT -s 192.168.1.100 -d 192.168.1.4 -p tcp -m tcp --sport 20 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -s 192.168.1.100 -d 192.168.1.4 -p tcp -m tcp --sport 1024:65535 --dport 1024:65535 -m conntrack --ctstate ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --dport 17000 -j ACCEPT
iptables -A INPUT -p tcp --dport 1194 -j ACCEPT
iptables -A INPUT -p udp --sport 123 -j ACCEPT #povolit NTP
iptables -A INPUT -p udp --sport 53 -m state --state ESTABLISHED -j ACCEPT #DNS udp
iptables -A INPUT -p tcp --sport 53 -m state --state ESTABLISHED -j ACCEPT #DNS tcp
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Nuz ale ako by to fungovalo neviem  :)
Název: Re:Nastavení IPtables na serveru s Debianem
Přispěvatel: pb. 20. 05. 2018, 15:14:51
Takze teraz by skript mohol vyzerat nejak takto
Kód: [Vybrat]
#!/bin/bash
....
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
...
Nuz ale ako by to fungovalo neviem  :)
[/quote]

A co třeba fragmentace? Protokol ICMP není jenom ping, potřebujete toho povolit více. Takhle to může dopadnout tak, že za týden se budete ptát: "Přes VPN se přihlásím, ale když udělám ls -l, tak spojení zamrzne".
Název: Re:Nastavení IPtables na serveru s Debianem
Přispěvatel: uf 21. 05. 2018, 09:51:18
>>> Ping tam je  (NTP a DNS by sa asi tiez zisiel)

>> Koukám špatně, nebo z toho stroje pak nepůjde udělat nic (nepojede ntp, dns, ping, ... cokoliv
>> původem v tom stroji)?

> ping by tam mal byt. Takze este pridam ntp, dns.

Takze teraz by skript mohol vyzerat nejak takto
Kód: [Vybrat]
#!/bin/bash
iptables -F
iptables -X
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -s 192.168.1.4 -j ACCEPT
modprobe nf_conntrack_ftp
iptables -A INPUT -s 192.168.1.4 -d 192.168.1.100 -p tcp -m tcp --dport 21 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -s 192.168.1.4 -d 192.168.1.100 -p tcp -m tcp --dport 20 -m conntrack --ctstate ESTABLISHED -j ACCEPT
iptables -A INPUT -s 192.168.1.4 -d 192.168.1.100 -p tcp -m tcp --sport 1024: --dport 1024: -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -s 192.168.1.100 -d 192.168.1.4 -p tcp -m tcp --sport 21 -m conntrack --ctstate ESTABLISHED -j ACCEPT
iptables -A OUTPUT -s 192.168.1.100 -d 192.168.1.4 -p tcp -m tcp --sport 20 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -s 192.168.1.100 -d 192.168.1.4 -p tcp -m tcp --sport 1024:65535 --dport 1024:65535 -m conntrack --ctstate ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --dport 17000 -j ACCEPT
iptables -A INPUT -p tcp --dport 1194 -j ACCEPT
iptables -A INPUT -p udp --sport 123 -j ACCEPT #povolit NTP
iptables -A INPUT -p udp --sport 53 -m state --state ESTABLISHED -j ACCEPT #DNS udp
iptables -A INPUT -p tcp --sport 53 -m state --state ESTABLISHED -j ACCEPT #DNS tcp
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Nuz ale ako by to fungovalo neviem  :)
[/quote]

----------- Tady je teprve moje reakce ----------

No já tam právě nevidím ani ping, ani dns atd., když má žádost původ v tomto PC. Tyhle všechny INPUTy povolí pakety odjinud dovnitř (pokud se týkají pingu, dns apod.), ale ten PC si nemůže zažádat o čas, poslat dotaz na DNS, ..., protože OUTPUT = DROP (a nespadá to do related ani established) a ta žádost vůbec neodejde.
Být tebou, začal bych s původním "iptables -P OUTPUT ACCEPT".

Nahoře máš
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
jakékoliv následující definice podmnožin jsou zbytečné
(iptables -A INPUT -p udp --sport 53 -m state --state ESTABLISHED -j ACCEPT #DNS udp
iptables -A INPUT -p tcp --sport 53 -m state --state ESTABLISHED -j ACCEPT #DNS tcp)

A "modprobe" bych sem určitě nemíchal, ve skriptu by to prošlo, ale jestli si chceš pravidla ukládat v tom zpracovaném tvaru, tak těžko (podle mne). Tip pro tebe: /etc/modules.
Název: Re:Nastavení IPtables na serveru s Debianem
Přispěvatel: darebacik 21. 05. 2018, 15:08:53
OK, takze znova trochu prerobime (mozno by to uz chcelo nejaky verzovaci system, aby v tom nebol taky bor*el :) )
Pokial dobre viem a malo by to tak byt, tak ked pouzijem pravidla
Kód: [Vybrat]
iptables -P OUTPUT ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Tak prve hovori o tom, ze akakolvek komunikacia z vnutra bude povolena a druhe pravidlo (stavove) hovori, ze vsetka komunikacia zapocata z vnutra  ocakavajuca odpoved z vonka bude prijata (contrack si o tom uchovava info a prepusta to co bolo nadviazane  a zavedene).  V contrack sa daju nastavovat nejake parametre, limity, timeouty a pod .... takze napr. ak by paket z nadviazanej komunikacie dorazil, ale z casovym oneskorenim, alebo nejaky zatulany paket, bude vyhlaseny za invalid a mal by byt zahodeny.
Kód: [Vybrat]
iptables -A INPUT -m state --state INVALID -j DROP
Nahoře máš
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
jakékoliv následující definice podmnožin jsou zbytečné
(iptables -A INPUT -p udp --sport 53 -m state --state ESTABLISHED -j ACCEPT #DNS udp
iptables -A INPUT -p tcp --sport 53 -m state --state ESTABLISHED -j ACCEPT #DNS tcp)

A "modprobe" bych sem určitě nemíchal, ve skriptu by to prošlo, ale jestli si chceš pravidla ukládat v tom zpracovaném tvaru, tak těžko (podle mne). Tip pro tebe: /etc/modules.

Preco DNS port 53 je zbytocny ?
Aby tu nebol velky bordel, tak asi to ulozim sem (http://textuploader.com/dfn4a)
Název: Re:Nastavení IPtables na serveru s Debianem
Přispěvatel: snuff1987 21. 05. 2018, 15:26:31

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
jakékoliv následující definice podmnožin jsou zbytečné
(iptables -A INPUT -p udp --sport 53 -m state --state ESTABLISHED -j ACCEPT #DNS udp
iptables -A INPUT -p tcp --sport 53 -m state --state ESTABLISHED -j ACCEPT #DNS tcp)

Pretoze uz v  prvom INPUT pravidle pustas RELATED,ESTABLISHED komunikaciu, cize odpoved z DNS dotazu Ti pusti dane pravidlo a tie dalsie sa uz ani nevyhodnocuju..

iptables -nvL  a vsimaj si countery..

Dalsia vec pouzivaj iptables-save > pravidla a iptables-restore <  pravidla... Lepsie sa to upravuje ako taketo skripty. Dobra vec je tiez iptables-apply < pravidla, ktora Ti loadne pravidla a ak sa do 10 sekund nestlaci klavesa tak ist vrati naspat.(Pre pripad, ze si sa tymi pravidlami odrezal)
Název: Re:Nastavení IPtables na serveru s Debianem
Přispěvatel: darebacik 21. 05. 2018, 19:47:58
V tom pripade nepotrebujem ani pravidlo pre cas NTP.
takze tieto pravidla mozem odmazat
Co sa tyka loadnutia pravidiel, to zatial neriesim, skusam to na LXC, takze v pripade odrezania rebootujem LXC.
Zatial je vsetko v stadiu pomaleho testovania. Az ked to bude ako tak vychytane, tak potom zacnem riesit ako spustat pravidla pri boote
update_rev(1) (http://textuploader.com/dfn4a)
Název: Re:Nastavení IPtables na serveru s Debianem
Přispěvatel: pb. 21. 05. 2018, 21:18:36
Ještě jednou:
ICMP není jen ping a musíte toho povolit více. Už jsem vzpomínal fragmentaci, abyste se nedivil, až vám vpn zkrátí mtu, a spojení vám bude chodit/nechodit. Když se vám to stane, budete hledat řešení týden nebo dva. Jako další mě napadá TTL. Nebo přesměrování na jiný router. To jsou zásadní věci nutné pro fungování sítě. Teď to máte všechno zakázané.

Zapomeňte na to, že ufw je pro lopaty a podívejte se, jak se to řeší tam. Chápu, že si chcete dělat vše ručně, ale nikdo vám nebrání opisovat.
Název: Re:Nastavení IPtables na serveru s Debianem
Přispěvatel: Vilith 21. 05. 2018, 21:23:20
Rozebehni si ufw firewall, rozchod to pod nim, a pak si muzes pravidla ulozit a prostudovat/upravit. Pripadne ufw odinstalovat/zapomenout na neho

Treba ti aspon tohle pomuze pro inspiraci:

Kód: [Vybrat]
~# iptables-save
# Generated by iptables-save v1.6.0 on Mon May 21 21:21:02 2018
*nat
:PREROUTING ACCEPT [11893633:779635282]
:INPUT ACCEPT [1916299:74516571]
:OUTPUT ACCEPT [1403492:1042277230]
:POSTROUTING ACCEPT [6427205:1214224191]
-A POSTROUTING -s 10.99.99.0/24 -o eth0 -j MASQUERADE
-A POSTROUTING -s 10.99.99.0/24 -o vmbr0 -j MASQUERADE
COMMIT
# Completed on Mon May 21 21:21:02 2018
# Generated by iptables-save v1.6.0 on Mon May 21 21:21:02 2018
*filter
:INPUT DROP [67:4047]
:FORWARD ACCEPT [5:200]
:OUTPUT ACCEPT [0:0]
:f2b-sshd - [0:0]
:ufw-after-forward - [0:0]
:ufw-after-input - [0:0]
:ufw-after-logging-forward - [0:0]
:ufw-after-logging-input - [0:0]
:ufw-after-logging-output - [0:0]
:ufw-after-output - [0:0]
:ufw-before-forward - [0:0]
:ufw-before-input - [0:0]
:ufw-before-logging-forward - [0:0]
:ufw-before-logging-input - [0:0]
:ufw-before-logging-output - [0:0]
:ufw-before-output - [0:0]
:ufw-logging-allow - [0:0]
:ufw-logging-deny - [0:0]
:ufw-not-local - [0:0]
:ufw-reject-forward - [0:0]
:ufw-reject-input - [0:0]
:ufw-reject-output - [0:0]
:ufw-skip-to-policy-forward - [0:0]
:ufw-skip-to-policy-input - [0:0]
:ufw-skip-to-policy-output - [0:0]
:ufw-track-forward - [0:0]
:ufw-track-input - [0:0]
:ufw-track-output - [0:0]
:ufw-user-forward - [0:0]
:ufw-user-input - [0:0]
:ufw-user-limit - [0:0]
:ufw-user-limit-accept - [0:0]
:ufw-user-logging-forward - [0:0]
:ufw-user-logging-input - [0:0]
:ufw-user-logging-output - [0:0]
:ufw-user-output - [0:0]
-A INPUT -p tcp -m multiport --dports 22 -j f2b-sshd
-A INPUT -j ufw-before-logging-input
-A INPUT -j ufw-before-input
-A INPUT -j ufw-after-input
-A INPUT -j ufw-after-logging-input
-A INPUT -j ufw-reject-input
-A INPUT -j ufw-track-input
-A FORWARD -j ufw-before-logging-forward
-A FORWARD -j ufw-before-forward
-A FORWARD -j ufw-after-forward
-A FORWARD -j ufw-after-logging-forward
-A FORWARD -j ufw-reject-forward
-A FORWARD -j ufw-track-forward
-A OUTPUT -j ufw-before-logging-output
-A OUTPUT -j ufw-before-output
-A OUTPUT -j ufw-after-output
-A OUTPUT -j ufw-after-logging-output
-A OUTPUT -j ufw-reject-output
-A OUTPUT -j ufw-track-output
-A f2b-sshd -j RETURN
-A ufw-after-input -p udp -m udp --dport 137 -j ufw-skip-to-policy-input
-A ufw-after-input -p udp -m udp --dport 138 -j ufw-skip-to-policy-input
-A ufw-after-input -p tcp -m tcp --dport 139 -j ufw-skip-to-policy-input
-A ufw-after-input -p tcp -m tcp --dport 445 -j ufw-skip-to-policy-input
-A ufw-after-input -p udp -m udp --dport 67 -j ufw-skip-to-policy-input
-A ufw-after-input -p udp -m udp --dport 68 -j ufw-skip-to-policy-input
-A ufw-after-input -m addrtype --dst-type BROADCAST -j ufw-skip-to-policy-input
-A ufw-after-logging-input -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW BLOCK] "
-A ufw-before-forward -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A ufw-before-forward -p icmp -m icmp --icmp-type 3 -j ACCEPT
-A ufw-before-forward -p icmp -m icmp --icmp-type 4 -j ACCEPT
-A ufw-before-forward -p icmp -m icmp --icmp-type 11 -j ACCEPT
-A ufw-before-forward -p icmp -m icmp --icmp-type 12 -j ACCEPT
-A ufw-before-forward -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A ufw-before-forward -j ufw-user-forward
-A ufw-before-input -i lo -j ACCEPT
-A ufw-before-input -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A ufw-before-input -m conntrack --ctstate INVALID -j ufw-logging-deny
-A ufw-before-input -m conntrack --ctstate INVALID -j DROP
-A ufw-before-input -p icmp -m icmp --icmp-type 3 -j ACCEPT
-A ufw-before-input -p icmp -m icmp --icmp-type 4 -j ACCEPT
-A ufw-before-input -p icmp -m icmp --icmp-type 11 -j ACCEPT
-A ufw-before-input -p icmp -m icmp --icmp-type 12 -j ACCEPT
-A ufw-before-input -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A ufw-before-input -p udp -m udp --sport 67 --dport 68 -j ACCEPT
-A ufw-before-input -j ufw-not-local
-A ufw-before-input -d 224.0.0.251/32 -p udp -m udp --dport 5353 -j ACCEPT
-A ufw-before-input -d 239.255.255.250/32 -p udp -m udp --dport 1900 -j ACCEPT
-A ufw-before-input -j ufw-user-input
-A ufw-before-output -o lo -j ACCEPT
-A ufw-before-output -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A ufw-before-output -j ufw-user-output
-A ufw-logging-allow -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW ALLOW] "
-A ufw-logging-deny -m conntrack --ctstate INVALID -m limit --limit 3/min --limit-burst 10 -j RETURN
-A ufw-logging-deny -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW BLOCK] "
-A ufw-not-local -m addrtype --dst-type LOCAL -j RETURN
-A ufw-not-local -m addrtype --dst-type MULTICAST -j RETURN
-A ufw-not-local -m addrtype --dst-type BROADCAST -j RETURN
-A ufw-not-local -m limit --limit 3/min --limit-burst 10 -j ufw-logging-deny
-A ufw-not-local -j DROP
-A ufw-skip-to-policy-forward -j ACCEPT
-A ufw-skip-to-policy-input -j DROP
-A ufw-skip-to-policy-output -j ACCEPT
-A ufw-track-forward -p tcp -m conntrack --ctstate NEW -j ACCEPT
-A ufw-track-forward -p udp -m conntrack --ctstate NEW -j ACCEPT
-A ufw-track-output -p tcp -m conntrack --ctstate NEW -j ACCEPT
-A ufw-track-output -p udp -m conntrack --ctstate NEW -j ACCEPT
-A ufw-user-input -p tcp -m tcp --dport 22 -j ACCEPT
-A ufw-user-input -p tcp -m tcp --dport 8006 -j ACCEPT
-A ufw-user-input -p tcp -m tcp --dport 80 -j ACCEPT
-A ufw-user-input -p tcp -m tcp --dport 443 -j ACCEPT
-A ufw-user-input -p tcp -m tcp --dport 5666 -j ACCEPT
-A ufw-user-limit -m limit --limit 3/min -j LOG --log-prefix "[UFW LIMIT BLOCK] "
-A ufw-user-limit -j REJECT --reject-with icmp-port-unreachable
-A ufw-user-limit-accept -j ACCEPT
COMMIT
# Completed on Mon May 21 21:21:02 2018

Kód: [Vybrat]
~# ufw status
Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere
8006/tcp                   ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
443/tcp                    ALLOW       Anywhere
5666/tcp                   ALLOW       Anywhere
22/tcp (v6)                ALLOW       Anywhere (v6)
8006/tcp (v6)              ALLOW       Anywhere (v6)
80/tcp (v6)                ALLOW       Anywhere (v6)
443/tcp (v6)               ALLOW       Anywhere (v6)
5666/tcp (v6)              ALLOW       Anywhere (v6)
Název: Re:Nastavení IPtables na serveru s Debianem
Přispěvatel: darebacik 22. 05. 2018, 12:32:57
Ještě jednou:
ICMP není jen ping a musíte toho povolit více. Už jsem vzpomínal fragmentaci, abyste se nedivil, až vám vpn zkrátí mtu, a spojení vám bude chodit/nechodit. Když se vám to stane, budete hledat řešení týden nebo dva. Jako další mě napadá TTL. Nebo přesměrování na jiný router. To jsou zásadní věci nutné pro fungování sítě. Teď to máte všechno zakázané.

Zapomeňte na to, že ufw je pro lopaty a podívejte se, jak se to řeší tam. Chápu, že si chcete dělat vše ručně, ale nikdo vám nebrání opisovat.
Nieco som si o tom nasiel (https://www.daemon.be/maarten/icmpfilter.html) a odporuca sa nastavit
Kód: [Vybrat]
iptables -A INPUT -p icmp --fragment -j DROP
iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -p icmp --icmp-type time-exceeded -j ACCEPT
iptables -A INPUT -p icmp --icmp-type fragmentation-needed -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type time-exceeded -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type fragmentation -needed -j ACCEPT
iptables -A INPUT -p ICMP -j DROP
iptables -A OUTPUT -p ICMP -j DROP
Kedze output mam nastavene na accept, tak predpokladam, ze outputy nepotrebujem
Kód: [Vybrat]
iptables -A INPUT -p icmp --fragment -j DROP
iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
iptables -A INPUT -p icmp --icmp-type time-exceeded -j ACCEPT
iptables -A INPUT -p icmp --icmp-type fragmentation-needed -j ACCEPT
iptables -A INPUT -p ICMP -j DROP
Rozebehni si ufw firewall, rozchod to pod nim, a pak si muzes pravidla ulozit a prostudovat/upravit. Pripadne ufw odinstalovat/zapomenout na neho

Treba ti aspon tohle pomuze pro inspiraci:

Kód: [Vybrat]
~# iptables-save
# Generated by iptables-save v1.6.0 on Mon May 21 21:21:02 2018
*nat
:PREROUTING ACCEPT [11893633:779635282]
:INPUT ACCEPT [1916299:74516571]
:OUTPUT ACCEPT [1403492:1042277230]
:POSTROUTING ACCEPT [6427205:1214224191]
-A POSTROUTING -s 10.99.99.0/24 -o eth0 -j MASQUERADE
-A POSTROUTING -s 10.99.99.0/24 -o vmbr0 -j MASQUERADE
COMMIT
# Completed on Mon May 21 21:21:02 2018
# Generated by iptables-save v1.6.0 on Mon May 21 21:21:02 2018
*filter
:INPUT DROP [67:4047]
:FORWARD ACCEPT [5:200]
:OUTPUT ACCEPT [0:0]
:f2b-sshd - [0:0]
:ufw-after-forward - [0:0]
:ufw-after-input - [0:0]
:ufw-after-logging-forward - [0:0]
:ufw-after-logging-input - [0:0]
:ufw-after-logging-output - [0:0]
:ufw-after-output - [0:0]
:ufw-before-forward - [0:0]
:ufw-before-input - [0:0]
:ufw-before-logging-forward - [0:0]
:ufw-before-logging-input - [0:0]
:ufw-before-logging-output - [0:0]
:ufw-before-output - [0:0]
:ufw-logging-allow - [0:0]
:ufw-logging-deny - [0:0]
:ufw-not-local - [0:0]
:ufw-reject-forward - [0:0]
:ufw-reject-input - [0:0]
:ufw-reject-output - [0:0]
:ufw-skip-to-policy-forward - [0:0]
:ufw-skip-to-policy-input - [0:0]
:ufw-skip-to-policy-output - [0:0]
:ufw-track-forward - [0:0]
:ufw-track-input - [0:0]
:ufw-track-output - [0:0]
:ufw-user-forward - [0:0]
:ufw-user-input - [0:0]
:ufw-user-limit - [0:0]
:ufw-user-limit-accept - [0:0]
:ufw-user-logging-forward - [0:0]
:ufw-user-logging-input - [0:0]
:ufw-user-logging-output - [0:0]
:ufw-user-output - [0:0]
-A INPUT -p tcp -m multiport --dports 22 -j f2b-sshd
-A INPUT -j ufw-before-logging-input
-A INPUT -j ufw-before-input
-A INPUT -j ufw-after-input
-A INPUT -j ufw-after-logging-input
-A INPUT -j ufw-reject-input
-A INPUT -j ufw-track-input
-A FORWARD -j ufw-before-logging-forward
-A FORWARD -j ufw-before-forward
-A FORWARD -j ufw-after-forward
-A FORWARD -j ufw-after-logging-forward
-A FORWARD -j ufw-reject-forward
-A FORWARD -j ufw-track-forward
-A OUTPUT -j ufw-before-logging-output
-A OUTPUT -j ufw-before-output
-A OUTPUT -j ufw-after-output
-A OUTPUT -j ufw-after-logging-output
-A OUTPUT -j ufw-reject-output
-A OUTPUT -j ufw-track-output
-A f2b-sshd -j RETURN
-A ufw-after-input -p udp -m udp --dport 137 -j ufw-skip-to-policy-input
-A ufw-after-input -p udp -m udp --dport 138 -j ufw-skip-to-policy-input
-A ufw-after-input -p tcp -m tcp --dport 139 -j ufw-skip-to-policy-input
-A ufw-after-input -p tcp -m tcp --dport 445 -j ufw-skip-to-policy-input
-A ufw-after-input -p udp -m udp --dport 67 -j ufw-skip-to-policy-input
-A ufw-after-input -p udp -m udp --dport 68 -j ufw-skip-to-policy-input
-A ufw-after-input -m addrtype --dst-type BROADCAST -j ufw-skip-to-policy-input
-A ufw-after-logging-input -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW BLOCK] "
-A ufw-before-forward -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A ufw-before-forward -p icmp -m icmp --icmp-type 3 -j ACCEPT
-A ufw-before-forward -p icmp -m icmp --icmp-type 4 -j ACCEPT
-A ufw-before-forward -p icmp -m icmp --icmp-type 11 -j ACCEPT
-A ufw-before-forward -p icmp -m icmp --icmp-type 12 -j ACCEPT
-A ufw-before-forward -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A ufw-before-forward -j ufw-user-forward
-A ufw-before-input -i lo -j ACCEPT
-A ufw-before-input -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A ufw-before-input -m conntrack --ctstate INVALID -j ufw-logging-deny
-A ufw-before-input -m conntrack --ctstate INVALID -j DROP
-A ufw-before-input -p icmp -m icmp --icmp-type 3 -j ACCEPT
-A ufw-before-input -p icmp -m icmp --icmp-type 4 -j ACCEPT
-A ufw-before-input -p icmp -m icmp --icmp-type 11 -j ACCEPT
-A ufw-before-input -p icmp -m icmp --icmp-type 12 -j ACCEPT
-A ufw-before-input -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A ufw-before-input -p udp -m udp --sport 67 --dport 68 -j ACCEPT
-A ufw-before-input -j ufw-not-local
-A ufw-before-input -d 224.0.0.251/32 -p udp -m udp --dport 5353 -j ACCEPT
-A ufw-before-input -d 239.255.255.250/32 -p udp -m udp --dport 1900 -j ACCEPT
-A ufw-before-input -j ufw-user-input
-A ufw-before-output -o lo -j ACCEPT
-A ufw-before-output -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A ufw-before-output -j ufw-user-output
-A ufw-logging-allow -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW ALLOW] "
-A ufw-logging-deny -m conntrack --ctstate INVALID -m limit --limit 3/min --limit-burst 10 -j RETURN
-A ufw-logging-deny -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW BLOCK] "
-A ufw-not-local -m addrtype --dst-type LOCAL -j RETURN
-A ufw-not-local -m addrtype --dst-type MULTICAST -j RETURN
-A ufw-not-local -m addrtype --dst-type BROADCAST -j RETURN
-A ufw-not-local -m limit --limit 3/min --limit-burst 10 -j ufw-logging-deny
-A ufw-not-local -j DROP
-A ufw-skip-to-policy-forward -j ACCEPT
-A ufw-skip-to-policy-input -j DROP
-A ufw-skip-to-policy-output -j ACCEPT
-A ufw-track-forward -p tcp -m conntrack --ctstate NEW -j ACCEPT
-A ufw-track-forward -p udp -m conntrack --ctstate NEW -j ACCEPT
-A ufw-track-output -p tcp -m conntrack --ctstate NEW -j ACCEPT
-A ufw-track-output -p udp -m conntrack --ctstate NEW -j ACCEPT
-A ufw-user-input -p tcp -m tcp --dport 22 -j ACCEPT
-A ufw-user-input -p tcp -m tcp --dport 8006 -j ACCEPT
-A ufw-user-input -p tcp -m tcp --dport 80 -j ACCEPT
-A ufw-user-input -p tcp -m tcp --dport 443 -j ACCEPT
-A ufw-user-input -p tcp -m tcp --dport 5666 -j ACCEPT
-A ufw-user-limit -m limit --limit 3/min -j LOG --log-prefix "[UFW LIMIT BLOCK] "
-A ufw-user-limit -j REJECT --reject-with icmp-port-unreachable
-A ufw-user-limit-accept -j ACCEPT
COMMIT
# Completed on Mon May 21 21:21:02 2018

Kód: [Vybrat]
~# ufw status
Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere
8006/tcp                   ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
443/tcp                    ALLOW       Anywhere
5666/tcp                   ALLOW       Anywhere
22/tcp (v6)                ALLOW       Anywhere (v6)
8006/tcp (v6)              ALLOW       Anywhere (v6)
80/tcp (v6)                ALLOW       Anywhere (v6)
443/tcp (v6)               ALLOW       Anywhere (v6)
5666/tcp (v6)              ALLOW       Anywhere (v6)
Ja neviem ci ufw je to prave orechove. Ako som pisal na zaciatku ufw som pouzival do teraz, ale chcem sa viac orientovat na iptables
update_(rev2) (http://textuploader.com/dfn4a)
Název: Re:Nastavení IPtables na serveru s Debianem
Přispěvatel: Vilith 22. 05. 2018, 12:47:37
ufw neni zadna magie, ufw je jen snadneni prostredi pro nastavovani iptables pravidel.

Pokud se v iptables neorientujes, vygeneruj si sva vlastni zakladni pravidla v ufw, uloz si je,  a nasledne si je uprav.

Pak muzes ufw odinstalovat a zapomenout na nej

Nebo dal zkus vymyslet kolo...
Název: Re:Nastavení IPtables na serveru s Debianem
Přispěvatel: darebacik 22. 05. 2018, 17:09:21
Radsej ostanem pri nastavovani netfiltra pomocou iptables  ;)
Prve testy:
zatial spusteny len skript s pravidlami.
Vyzera to OK
Testoval som len FTP spojenie z 192.168.1.4 a to fungovalo OK (treba vsak nastavit vo filezilla na aktivny rezim prenosu).
Zatial som nic nelogoval, ani nekontroloval pomocou tcpdump (pretoze to si musim este nastudovat) ale skusil som sa pripojit z inej ip adresy ako je 192.168.1.4 a tam sa ani len nesnazilo o pripojenie, cize firewall funguje dobre.
Zaujmave je, ze mudul conntrack_ftp som nemusel vobec nacitavat a funguje to aj bez neho.
Ak si po reboote VM vipisem moduly
Kód: [Vybrat]
Module                  Size  Used by
tun                    28672  2
bochs_drm              20480  1
ttm                    98304  1 bochs_drm
drm_kms_helper        155648  1 bochs_drm
pcspkr                 16384  0
joydev                 20480  0
evdev                  24576  1
ftdi_sio               53248  2
usbserial              49152  5 ftdi_sio
shpchp                 36864  0
drm                   360448  4 bochs_drm,ttm,drm_kms_helper
sg                     32768  0
serio_raw              16384  0
virtio_balloon         16384  0
button                 16384  0
ip_tables              24576  0
x_tables               36864  1 ip_tables
autofs4                40960  2
ext4                  585728  3
crc16                  16384  1 ext4
jbd2                  106496  1 ext4
crc32c_generic         16384  4
fscrypto               28672  1 ext4
ecb                    16384  0
glue_helper            16384  0
lrw                    16384  0
gf128mul               16384  1 lrw
ablk_helper            16384  0
cryptd                 24576  1 ablk_helper
aes_x86_64             20480  0
mbcache                16384  4 ext4
dm_mod                118784  9
hid_generic            16384  0
usbhid                 53248  0
hid                   122880  2 hid_generic,usbhid
sd_mod                 49152  3
sr_mod                 24576  0
cdrom                  61440  1 sr_mod
ata_generic            16384  0
virtio_net             32768  0
virtio_scsi            20480  2
psmouse               135168  0
ata_piix               36864  0
ehci_pci               16384  0
uhci_hcd               45056  0
ehci_hcd               81920  1 ehci_pci
virtio_pci             24576  0
virtio_ring            24576  4 virtio_net,virtio_scsi,virtio_balloon,virtio_pci
virtio                 16384  4 virtio_net,virtio_scsi,virtio_balloon,virtio_pci
i2c_piix4              24576  0
libata                249856  2 ata_piix,ata_generic
usbcore               253952  6 usbhid,ehci_hcd,uhci_hcd,ftdi_sio,usbserial,ehci_pci
usb_common             16384  1 usbcore
scsi_mod              225280  5 sd_mod,virtio_scsi,libata,sr_mod,sg
floppy                 69632  0
tak tam ziadny conntrack neni.
Ak pustim skript z pravidlami (ale conntrack nespustam) tak sa tam uz conntrack objavi + niekolko dalsich modulov navyse (min. prvych 6).
Dovod neviem (je mozne, ze zavedenim niektorych pravidiel firewallu sa automaticky natiahnu aj moduly ???)
Kód: [Vybrat]
Module                  Size  Used by
nf_conntrack_ipv4      16384  6
nf_defrag_ipv4         16384  1 nf_conntrack_ipv4
xt_tcpudp              16384  8
xt_conntrack           16384  6
nf_conntrack          114688  2 nf_conntrack_ipv4,xt_conntrack
iptable_filter         16384  1
tun                    28672  2
bochs_drm              20480  1
ttm                    98304  1 bochs_drm
drm_kms_helper        155648  1 bochs_drm
pcspkr                 16384  0
joydev                 20480  0
evdev                  24576  1
ftdi_sio               53248  2
usbserial              49152  5 ftdi_sio
shpchp                 36864  0
drm                   360448  4 bochs_drm,ttm,drm_kms_helper
sg                     32768  0
serio_raw              16384  0
virtio_balloon         16384  0
button                 16384  0
ip_tables              24576  1 iptable_filter
x_tables               36864  4 ip_tables,iptable_filter,xt_tcpudp,xt_conntrack
autofs4                40960  2
ext4                  585728  3
crc16                  16384  1 ext4
jbd2                  106496  1 ext4
crc32c_generic         16384  4
fscrypto               28672  1 ext4
ecb                    16384  0
glue_helper            16384  0
lrw                    16384  0
gf128mul               16384  1 lrw
ablk_helper            16384  0
cryptd                 24576  1 ablk_helper
aes_x86_64             20480  0
mbcache                16384  4 ext4
dm_mod                118784  9
hid_generic            16384  0
usbhid                 53248  0
hid                   122880  2 hid_generic,usbhid
sd_mod                 49152  3
sr_mod                 24576  0
cdrom                  61440  1 sr_mod
ata_generic            16384  0
virtio_net             32768  0
virtio_scsi            20480  2
psmouse               135168  0
ata_piix               36864  0
ehci_pci               16384  0
uhci_hcd               45056  0
ehci_hcd               81920  1 ehci_pci
virtio_pci             24576  0
virtio_ring            24576  4 virtio_net,virtio_scsi,virtio_balloon,virtio_pci
virtio                 16384  4 virtio_net,virtio_scsi,virtio_balloon,virtio_pci
i2c_piix4              24576  0
libata                249856  2 ata_piix,ata_generic
usbcore               253952  6 usbhid,ehci_hcd,uhci_hcd,ftdi_sio,usbserial,ehci_pci
usb_common             16384  1 usbcore
scsi_mod              225280  5 sd_mod,virtio_scsi,libata,sr_mod,sg
floppy                 69632  0
Název: Re:Nastavení IPtables na serveru s Debianem
Přispěvatel: Vilith 22. 05. 2018, 17:17:37
Proc to delat jednoduse pomoci iptables-saveiptables-restore, kdyz si na to umim napsat script :(

Stastny clovek, ktery ma kupu volneho casu...
Název: Re:Nastavení IPtables na serveru s Debianem
Přispěvatel: uf 23. 05. 2018, 09:29:21
Proc to delat jednoduse pomoci iptables-saveiptables-restore, kdyz si na to umim napsat script :(

Stastny clovek, ktery ma kupu volneho casu...

Co vidíš špatného na skriptu? Taky to tak (skriptem) dělám. Skript se mi snadno upravuje, můžu si tam dopsat komentáře, ..., pak ho spustím a je aktualizováno.
Název: Re:Nastavení IPtables na serveru s Debianem
Přispěvatel: Vilith 23. 05. 2018, 09:31:49
A neni jednodussi a efektivnejsi upravovat/komentovat vystupy z iptables-save?
Kazdeho volba
Název: Re:Nastavení IPtables na serveru s Debianem
Přispěvatel: uf 23. 05. 2018, 09:43:45
Zatial som nic nelogoval, ani nekontroloval pomocou tcpdump (pretoze to si musim este nastudovat) ale skusil som

Ke zkoumání firewallu zkus taky
iptables -A ... -j LOG
iptables -A ... -j LOG --log-prefix="cokoliv"
Záznamy jsou v syslogu.
Název: Re:Nastavení IPtables na serveru s Debianem
Přispěvatel: darebacik 23. 05. 2018, 14:46:48
OK, nechcem sa tu teraz hasterit o to ci iptables nacitat cez skript, alebo save/restore.
Pre mna je dolezite spravne a bezpecne nastavit pravidla netfiltra aby fungoval ako pozadujem.
V podstate (vid moj prvy prispevok) ten netfilter prepusta/blokuje to co som pozadoval.
Pozadoval som aby bolo povolene z jednej (lokalnej) IP FTP a SSH a to funguje.
Port 17000 funguje a openvpn este nemam otestovane, ale myslim si, ze mal by fungovat tiez.
Pre ovpn je standardne pravidlo
Kód: [Vybrat]
iptables -A INPUT -p tcp --dport 1194 -j ACCEPTktore otvora port 1194 pre kazdeho. Predpokladam, ze openvpn server nebude robit problemy a kazdemu odpovie, kedze politika output je accept.

Teraz by som si chcel este logovanim overit ako to dropuje pakety ak pridu odkial by chodit nemali. Zrejme pouzjem nie velmi filtrovacie pravidlo, ale skusim logovat vsetko na vstupe
Kód: [Vybrat]
iptables -A INPUT -j LOG --log-prefix 'iptables_input_all'predpokladam, ze logy najdem v /var/log/kern.log, alebo /var/log/syslog

PS este by som chcel vediet ako by som si ten firewall skutocne otestoval. Skusil som skenovat porty nmapom, ale ukazovalo mi to zvlastne porty ... hmm ....  k tomu sa ale dostanem mozno neskor