Lätt textbaserat program som hanterar iptables - finns det?

Permalänk
Medlem

Lätt textbaserat program som hanterar iptables - finns det?

Min, för tillfället avstängda, server står nog fullt öppen mot internexet. Nog för att jag inte direkt har något känsligt men ändå så vill jag säkra upp den lite.

Har gluttat lite på iptable guider osv och det ser ut som en läskigt svår vetenskap. Detta fick mig att undra om det finns något program som gör att man lätt kan ställa in sitt iptables.

Jag vill i princip att allt ska vara stängt förutom portar för SSH, proftpd, rtorrent och samba. Är det svårt att få detta ordnat vare sig med hjälpprogram eller rakt av i iptables?

Jag vill även att fail2ban ska fungera, kan man få det att fungera oavsett om man kan iptables eller inte?

mvh
benkaboy

Permalänk

Det är en ganska skarp inlärningskurva för iptables, men när man väl förstått grundprinciperna så är det inte alls svårt att göra det som du vill åstadkomma. Mitt eget iptables-script gör i princip det du vill, så det kanske kan vara till någon hjälp.

IPTABLES="/sbin/iptables" # Set standard policies $IPTABLES -P INPUT DROP $IPTABLES -P FORWARD DROP $IPTABLES -P OUTPUT ACCEPT # Flush rules $IPTABLES -F $IPTABLES -X # Drop invalid packets $IPTABLES -A INPUT -p tcp ! --syn -m state --state NEW -j DROP $IPTABLES -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP $IPTABLES -A INPUT -m state --state INVALID -j DROP $IPTABLES -A OUTPUT -m state --state INVALID -j DROP # Drop all 127.0.0.1 packets not going through lo $IPTABLES -A INPUT -i ! lo -s 127.0.0.1 -j DROP $IPTABLES -A INPUT -i ! lo -d 127.0.0.1 -j DROP $IPTABLES -A OUTPUT -o ! lo -s 127.0.0.1 -j DROP $IPTABLES -A OUTPUT -o ! lo -d 127.0.0.1 -j DROP # Accept ICMP echo-request $IPTABLES -A INPUT -p icmp --icmp-type 8 -j ACCEPT # Accept loopback $IPTABLES -A INPUT -i lo -j ACCEPT # Allow established and related connections $IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # Accept incoming to port 31771 (sshd), block for 100s after 3 login attempts $IPTABLES -A INPUT -p tcp -m state --state NEW --dport 31771 -m recent --update --seconds 100 --hitcount 3 -j DROP $IPTABLES -A INPUT -p tcp -m state --state NEW --dport 31771 -m recent --set -j ACCEPT # Accept incoming to port 4112 (DC) $IPTABLES -A INPUT -p tcp --dport 4112 -j ACCEPT $IPTABLES -A INPUT -p udp --dport 4112 -j ACCEPT # Accept incoming to port 53520 (rtorrent) $IPTABLES -A INPUT -p tcp --dport 53520 -j ACCEPT # Accept CUPS traffic from local network $IPTABLES -A INPUT -p tcp --dport 631 -s 192.168.1.0/24 -j ACCEPT $IPTABLES -A INPUT -p udp --dport 631 -s 192.168.1.0/24 -j ACCEPT # Accept NFS traffic from local network $IPTABLES -A INPUT -p tcp -m multiport --dport 111,2049,49018:49020 -s 192.168.1.0/24 -j ACCEPT $IPTABLES -A INPUT -p udp -m multiport --dport 111,2049,49018:49020 -s 192.168.1.0/24 -j ACCEPT # Reject other incoming data $IPTABLES -A INPUT -j REJECT

EDIT: Det finns flera program som är till för att vara behjälpliga med iptables-konfigurering, men det är inget som jag har någon erfarenhet av.

Permalänk
Medlem

shorewall brukade jag använda förr i tiden, men är det bara några små enkla saker så är nog rena iptables det minst problematiska. HerrEkbergs skript ser ju bra ut, det är väl bara att eventuellt ändra portar och ta bort överflödiga tjänser.

Permalänk
Medlem

Ta en titt på ferm.

Permalänk
Medlem

Ferm ser nice ut, men jag hittar ingen direkt guide som säger vilka regler jag måste ha med för att få brandväggen(iptables) att funka ordentligt.

HerrEkberg's config ser nice ut men det är några grejor som jag inte är 100% med:

1: # Accept NFS traffic from local network
2: # Accept CUPS traffic from local network
Dessa har jag inte fått grepp om

Allt övrigt som står i configen ovanför "Accept incoming to port" antar jag är något standard som ska finnas med i alla iptableconfigs?

Vad gäller mina portar sedan. Är det bara att byta ut "Accept incoming to port" portarna till de portar jag vill ha för olika program?
Hur vet jag sedan att mitt iptables fungerar?

Permalänk
Citat:

Ursprungligen inskrivet av Benkaboy
HerrEkberg's config ser nice ut men det är några grejor som jag inte är 100% med:

1: # Accept NFS traffic from local network
2: # Accept CUPS traffic from local network
Dessa har jag inte fått grepp om

De är regler som accepterar inkommande TCP- och UDP-paket från det lokala nätet på särskilda portar. Behöver du inte göra det så är det naturligtvis bara att ta bort dem.

Citat:

Ursprungligen inskrivet av Benkaboy
Allt övrigt som står i configen ovanför "Accept incoming to port" antar jag är något standard som ska finnas med i alla iptableconfigs?

Nja, det måste inte finnas med, men det är ganska vanliga regler.

Citat:

Ursprungligen inskrivet av Benkaboy
Vad gäller mina portar sedan. Är det bara att byta ut "Accept incoming to port" portarna till de portar jag vill ha för olika program?
Hur vet jag sedan att mitt iptables fungerar?

Det är bara att ändra som du vill ha det. Alla rader som börjar med # är dock kommentarer om du inte visste det, de gör ingenting utan är bara förklarande för dem som inte är flytande i iptables, så att säga.

iptables -L -v kan du använda för att lista alla regler som iptables för tillfället använder sig av, men i ett lite annorlunda format än vad som används i scriptet.

Permalänk
Avstängd

Kör man en Ubuntu 8.04 server så är UFW med som
utvecklades för att serveradmins skulle slippa den eländiga IPtables synatxen.

http://www.ubuntu-unleashed.com/2008/05/howto-take-use-setup-...

Utvecklarblog om varför den utvecklades och vad den ska användas till.
http://ubuntu-tutorials.com/index.php?s=ufw

Visa signatur

ASUS K56CB i7, W10 > Asus VivoBook S15 S530UN
HTC 10
ASUS Transformer Prime 32GB, Nougat :)
Ubiquiti Edge Lite, UniFi AP-AC-Lite (AP) samt ASUS AC68U och N66U (AP), fiber 500/100Mbit/s.
Mitt nätverk: https://imgur.com/aco9XQz Bild https://imgur.com/oQ2WG9Y

Permalänk
Medlem

UFW verkar extreeeemt nice tycker jag! Det ska studeras närmare. trodde först när jag såg det igår att det inte hade med iptables att göra.

Om jag nu vill blocka allt förutom ssh, ftp, rtorrent, samba(endast lokal åtkomst) och möjligheten att uppdatera.

Om jag nu startar ufw så är den ju i ACCEPTS mode som jag förstått, men börjar den blocka allt förutom det jag själv sätter regler för from det att jag gör första regeln eller måste jag skriva nåt så den kör DENY på allt innan jag börjar confa?
Är det sedan bara att köra "sudo ufw allow 53/tcp / sudo ufw allow 53/udp" för t.ex ssh om jag nu väljer att ha ssh på denna port som exempel?

Kan man fortfarande köra fail2ban om man använder sig utav ufw?

Permalänk
Avstängd

Det är ju bara att testa på...

fail2ban vet jag inte vad det men vet man bara portnummret som används så ska det
bara funka.

Sen kan man testa via Steve Gibson

https://www.grc.com/x/ne.dll?bh0bkyd2

Standardtest eller det mer kompletta.

Visa signatur

ASUS K56CB i7, W10 > Asus VivoBook S15 S530UN
HTC 10
ASUS Transformer Prime 32GB, Nougat :)
Ubiquiti Edge Lite, UniFi AP-AC-Lite (AP) samt ASUS AC68U och N66U (AP), fiber 500/100Mbit/s.
Mitt nätverk: https://imgur.com/aco9XQz Bild https://imgur.com/oQ2WG9Y

Permalänk
Medlem

Som jag lyckats läsa mig till och förstått så verkar det som att brandväggen blockar allt som inte har fått specifika regler innan man kör "sudo ufw enable", vilket gör att man tappar kontakten om man kör ssh.
Då kör man exempelvis detta kommando "$ sudo ufw allow proto tcp from any to any port 22" vilket gör att man behåller kontakten med servern via ssh.

Är det säkrare att ha ssh och ftp på andra portar än 21 och 22?

Permalänk
Medlem

Här har du en bra iptables guide: http://iptables-tutorial.frozentux.net/

Visa signatur

Fagerja

Permalänk
Avstängd
Citat:

Ursprungligen inskrivet av Benkaboy
Som jag lyckats läsa mig till och förstått så verkar det som att brandväggen blockar allt som inte har fått specifika regler innan man kör "sudo ufw enable", vilket gör att man tappar kontakten om man kör ssh.
Då kör man exempelvis detta kommando "$ sudo ufw allow proto tcp from any to any port 22" vilket gör att man behåller kontakten med servern via ssh.

Är det säkrare att ha ssh och ftp på andra portar än 21 och 22?

Ja... om man "härdar" sin serverburk så flyttar de flesta SSH porten för det är den som scannas
av de som inte har koll på "ditt o mitt".....

https://help.ubuntu.com/community/AdvancedOpenSSH

Rubbet om Ubuntu o Säkerhet (servrar en liten del)

http://ubuntuforums.org/showthread.php?t=765696

Med FTP gäller det ju att kontona är rätt uppsatta.

Sen det här med lösenord..... brute-forcarna lyckas ju pga för usla lösen....

Visa signatur

ASUS K56CB i7, W10 > Asus VivoBook S15 S530UN
HTC 10
ASUS Transformer Prime 32GB, Nougat :)
Ubiquiti Edge Lite, UniFi AP-AC-Lite (AP) samt ASUS AC68U och N66U (AP), fiber 500/100Mbit/s.
Mitt nätverk: https://imgur.com/aco9XQz Bild https://imgur.com/oQ2WG9Y

Permalänk
Hedersmedlem
Citat:

Ursprungligen inskrivet av Benkaboy
Är det säkrare att ha ssh och ftp på andra portar än 21 och 22?

Jobbigare är ett lämpligare ord. Är du paranoid över att någon skall komma över ditt lösenord är det bättre att byta till nyckelbaserad login. Då måste man ha en giltig nyckelfil + lösenordet till den för att kunna logga in alls. Fast risken att någon bruteforcear sig fram till ett bra lösenord över ssh, på mindre än ett par hundra år, är praktiskt taget obefintlig. fail2ban och liknande lösningar ser jag mer som ett bekvämt sätt att hålla logfilerna rena.

Visa signatur

Det kan aldrig bli fel med mekanisk destruktion

Permalänk
Medlem

Själv har jag SSH på port 22 som tar emot från kända IP där jag använder SSH ofta. På övriga ställen är en annan port öppen. Fungerar fin fint.

Permalänk
Medlem

Jag har aldrig orkat lära mig iptables, utan har kört frontends av olika slag istället - det jag har använt mest är nog shorewall, som i sig nog har lite inlärningskurva även om den är extremt mycket mindre än den hos iptables utan frontend. Dessutom är dokumentationen helt underbar - det är i 9 fall av 10 bara att tanka ner en färdig uppsättning filer och ändra vilka interfaces som ska göra vad.

Annars var firehol också helt okej, även om en del saker inte var helt intuitiva att göra (om jag minns rätt, firehol har inte inte kört sen typ 2003), men det kanske är fixat nu.

Visa signatur

There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.

@oscar:prutt.party / monotux@freenode

Permalänk
Medlem

Har använt mig av UFW nu och det fungerar finemang men jag kan inte använda samba när brandväggen är igång. Vilken port kör samba på ?

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Benkaboy
Har använt mig av UFW nu och det fungerar finemang men jag kan inte använda samba när brandväggen är igång. Vilken port kör samba på ?

139.

Permalänk
Medlem

Re: Lätt textbaserat program som hanterar iptables - finns det?

Citat:

Ursprungligen inskrivet av Benkaboy
Min, för tillfället avstängda, server står nog fullt öppen mot internexet. Nog för att jag inte direkt har något känsligt men ändå så vill jag säkra upp den lite.

Har gluttat lite på iptable guider osv och det ser ut som en läskigt svår vetenskap. Detta fick mig att undra om det finns något program som gör att man lätt kan ställa in sitt iptables.

Jag vill i princip att allt ska vara stängt förutom portar för SSH, proftpd, rtorrent och samba. Är det svårt att få detta ordnat vare sig med hjälpprogram eller rakt av i iptables?

Jag vill även att fail2ban ska fungera, kan man få det att fungera oavsett om man kan iptables eller inte?

mvh
benkaboy

ufw är för dig. textbaserat och betyder "uncomplicated firewall"

http://www.ubuntugeek.com/ufw-uncomplicated-firewall-for-ubun...

I ditt fall räcker följande:

$ sudo ufw default deny
$ sudo ufw allow 22/tcp
...
$ sudo ufw enable

Permalänk
Medlem

Re: Re: Lätt textbaserat program som hanterar iptables - finns det?

Citat:

Ursprungligen inskrivet av Soulfly
ufw är för dig. textbaserat och betyder "uncomplicated firewall"

http://www.ubuntugeek.com/ufw-uncomplicated-firewall-for-ubun...

I ditt fall räcker följande:

$ sudo ufw default deny
$ sudo ufw allow 22/tcp
...
$ sudo ufw enable

Kardemumma det där!

Undrar nu vad skillnaden på UDP och TCP är och när man ska använda de olika?

Permalänk
Medlem

TCP används när man vill ha en förbindelse där paketen garanterat går fram. Mottagaren kvitterar varje paket och om kvittans inte fås inom utsatt tid så skickas paketet om. Används av t.ex. SSH, FTP, HTTP och HTTPS.

UDP har ingen kvittering. UDP är snabbare än TCP, men risken för att data inte kommer fram finns. UDP används t.ex för DNS-förfrågningar och DHCP.

Det tredje viktiga protokollet är ICMP (Internet Control Message Protocol). ICMP används för ping och felmeddelanden. Du bör tillåta ICMP-paket, som är relaterade till dina sända paket. Inkommande ping från Internet är det skäl att stoppa.

Visa signatur

Fagerja

Permalänk
Hedersmedlem
Citat:

Ursprungligen inskrivet av fagerja
Inkommande ping från Internet är det skäl att stoppa.

Varför? De är inte farliga och servrar bör i regel gå att pinga.

Visa signatur

Det kan aldrig bli fel med mekanisk destruktion

Permalänk
Medlem

gShield har jag använt och det fungerar bra
http://muse.linuxmafia.org/gshield/

Permalänk
Citat:

Ursprungligen inskrivet av fagerja
...

Ett tillägg: UDP används väldigt mycket av spel.

Permalänk

Satt precis i dagarna och tittade på en enkel brandvägg att säkra upp min ny installerade och konfigurerade Ubuntu Server 8.04 och ufw är precis vad jag letade efter.

Blockerar allt utom det jag verkligen behöver använda och hoppas att detta åtminstone skall täcka upp en del säkerhetshål man kanske inte annars tänker på.

Nu återstår bara att klura ut en vettig lösning för att göra backup på webbsidorna som hostas samt databasen men det lär väl inte vara så kneppigt det heller.

Mvh,
Viper@God