SSH nur für ausgewählte IPs freigeben - IPTABLES

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
mascoxx
Beiträge: 205
Registriert: 20.04.2005 01:14:09
Kontaktdaten:

SSH nur für ausgewählte IPs freigeben - IPTABLES

Beitrag von mascoxx » 07.02.2006 15:04:24

Hi!!

Bin auf der Suche nach der Regel, mit der ich denn Port 22 zumachen kann.
Es sollen lediglich IPs darauf zugreifen können, die freigegeben sind.
Unter anderem auch zB das komplette 192.168.2.x Subnetz.

Wie ist der Befehl hierfür??

Bitte um rasche Antwort...

MfG
Clemens

nil
Beiträge: 989
Registriert: 08.06.2005 13:28:36

Beitrag von nil » 07.02.2006 15:08:04

vielleicht so:

Code: Alles auswählen

# von Aussen zugreifbare TCP-Ports
EXT_PORTS_TCP="22,443"
#Subnetz
NET="192.168.2.0/24"

# von Aussen zugreifbare TCP-Ports
iptables -A INPUT -d $NET -p tcp -m multiport --dports $EXT_PORTS_TCP -j ACCEPT

mascoxx
Beiträge: 205
Registriert: 20.04.2005 01:14:09
Kontaktdaten:

Beitrag von mascoxx » 07.02.2006 15:12:13

ok, ergänzung...
# von Aussen zugreifbare TCP-Ports
EXT_PORTS_TCP="22,443"
#Subnetz
NET="192.168.2.0/24"
ich will lediglich den port 22 sperren, und die anderen wie sie sind offen lassen
-> (80,21,143,25,....)

mfg

nil
Beiträge: 989
Registriert: 08.06.2005 13:28:36

Beitrag von nil » 07.02.2006 15:16:08

Super, das erhöht die Security ja ungemein. Überleg Dir doch die Anwendungen die du installiert hast und trage die Ports mit Komma getrennt ein, ist ganz einfach.
FTP (2 Ports), UDP bzw. ICMP ist es schon etwas schwieriger. Aber wenn alles dicht ist dann schau dir die Logfiles an.

PS.: Warum willst du einen sicheren Dienst sperren? SSH kannst du doch von überall nutzen, und im Zweifelsfall mit Public/Private-Key und Passphrase.

Benutzeravatar
herrchen
Beiträge: 3257
Registriert: 15.08.2005 20:45:28
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Re: SSH nur für ausgewählte IPs freigeben - IPTABLES

Beitrag von herrchen » 07.02.2006 15:23:54

mascoxx hat geschrieben: Wie ist der Befehl hierfür?
iptables -D INPUT -p tcp --dport 22 -s ! 192.168.10.0/24 -j DROP
Bitte um rasche Antwort
sowas unterlasse bitte in zukunft.
wenn du es eilig hast, kannst du googeln, die doku lesen oder den supporter deines vertrauens beauftragen.

herrchen

ps. das die regel unfug ist, hat nil schon gesagt ...

mascoxx
Beiträge: 205
Registriert: 20.04.2005 01:14:09
Kontaktdaten:

Beitrag von mascoxx » 07.02.2006 15:25:19

Also....
1.) Der Server hängt sowieso hinter einem Router und ich habe nur absichtlich die nötigsten
Ports geforwarded (komisches Wort). Da ich den Port 22 leider immer wieder
wegen Remotearbeiten benötige, habe ich diesen auch weitergeleitet.

Und 2.) will ich den Port deswegen sperren, weil ich ungemein viele Attacken habe, die
dann wie folgt im Logile zu tausenden auftauchen:
Feb 6 21:15:42 www2 sshd[29591]: Invalid user staff from 60.248.204.54
Feb 6 21:15:45 www2 sshd[29596]: Invalid user sales from 60.248.204.54
Feb 6 21:15:48 www2 sshd[29601]: Invalid user recruit from 60.248.204.54
Feb 6 21:15:51 www2 sshd[29603]: Invalid user alias from 60.248.204.54
Feb 6 21:15:53 www2 sshd[29605]: Invalid user office from 60.248.204.54
Feb 6 21:15:56 www2 sshd[29607]: Invalid user samba from 60.248.204.54
Feb 6 21:15:59 www2 sshd[29609]: Invalid user tomcat from 60.248.204.54
Feb 6 21:16:05 www2 sshd[29615]: Invalid user spam from 60.248.204.54
Feb 6 21:16:07 www2 sshd[29617]: Invalid user virus from 60.248.204.54
Feb 6 21:16:10 www2 sshd[29619]: Invalid user cyrus from 60.248.204.54
Feb 6 21:16:15 www2 sshd[29621]: Invalid user oracle from 60.248.204.54
Feb 6 21:16:17 www2 sshd[29623]: Invalid user michael from 60.248.204.54
Feb 6 21:16:20 www2 sshd[29625]: Invalid user ftp from 60.248.204.54
Feb 6 21:16:23 www2 sshd[29627]: User test from 60-248-204-54.hinet-ip.hinet.net not allowed because not listed in AllowUsers
Feb 6 21:16:26 www2 sshd[29629]: Invalid user webmaster from 60.248.204.54
Feb 6 21:16:29 www2 sshd[29631]: Invalid user postmaster from 60.248.204.54
Feb 6 21:16:32 www2 sshd[29633]: Invalid user postfix from 60.248.204.54
Feb 6 21:16:35 www2 sshd[29635]: Invalid user postgres from 60.248.204.54
Feb 6 21:16:37 www2 sshd[29637]: Invalid user paul from 60.248.204.54
Feb 6 21:16:43 www2 sshd[29641]: Invalid user guest from 60.248.204.54
Feb 6 21:16:50 www2 sshd[29645]: Invalid user linux from 60.248.204.54
Feb 6 21:16:53 www2 sshd[29647]: Invalid user user from 60.248.204.54
Feb 6 21:16:56 www2 sshd[29649]: Invalid user david from 60.248.204.54
Feb 6 21:16:59 www2 sshd[29651]: Invalid user web from 60.248.204.54
Feb 6 21:17:03 www2 sshd[29653]: Invalid user apache from 60.248.204.54
Feb 6 21:17:06 www2 sshd[29678]: Invalid user pgsql from 60.248.204.54
Und so weiter und weiter und weiter.....

Deswegen benötige ich die IPTABLES Regel....

MfG


PS: Und sollte ich mal wo komplett anders sein, kann ich noch über RDP auf
den Windows Server und von dort weiter auf die Linux....

PS2: Ich habe den SSH Server eh schon auf spezielle Benutzernamen eingeschränkt
(-> 'allow user' Kommando), doch das hält die Leute trotzdem nicht wirklich davon ab,
mich zu attacken

Benutzeravatar
herrchen
Beiträge: 3257
Registriert: 15.08.2005 20:45:28
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von herrchen » 07.02.2006 15:28:13

mascoxx hat geschrieben: Deswegen benötige ich die IPTABLES Regel....
nein.
es reicht, den sshd auf einem hohen port lauschen zu lassen.

herrchen

ps. bei meiner regel oben wäre REJECT besser ...

nil
Beiträge: 989
Registriert: 08.06.2005 13:28:36

Beitrag von nil » 07.02.2006 15:32:52

Und 2.) will ich den Port deswegen sperren, weil ich ungemein viele Attacken habe, die
dann wie folgt im Logile zu tausenden auftauchen:
Man muss die Meldungen von iptables nicht unbedingt mitloggen. Außerdem sollten dadurch, dass du nur gewisse Ports forwardest, wenig Meldungen auftreten.

Es ist generell immer das gleiche Problem der Anwender. Mit viel Mühe installiert und für die Sicherheit war keine Zeit mehr. Sobald du 2 Rechner hinter deinem Router hast und der zweite von außen gehackt wurde, wäre eine eigene Firewall auf deinem Debian schon ganz schön. Und außerdem kann man viel dabei lernen.

Benutzeravatar
meandtheshell
Beiträge: 4054
Registriert: 14.01.2005 17:51:30

Beitrag von meandtheshell » 07.02.2006 15:34:21

wie wäre es den den sshd NICHT auf port 22 lauschen zu lassen?

Wenn du den auf 22 lässt wo die ganzen Standart Portscaner vorbei schaun musst du dich nicht wundern.

In /etc/ssh/sshd_config

Code: Alles auswählen

Port <higher than 1023>
wenn du dazu ein wenig im Forum suchst findest du massig info

markus

edit:
zu langsam :D

mascoxx
Beiträge: 205
Registriert: 20.04.2005 01:14:09
Kontaktdaten:

Beitrag von mascoxx » 07.02.2006 15:36:42

Ja, eine Firewall werde ich mir bei Zeiten eh mal einrichten müssen....bis jetzt hatte
ich noch keine Sicherheitsprobleme (zumindest hab ich noch nichts bemerkt)
nein.
es reicht, den sshd auf einem hohen port lauschen zu lassen.
Ok, ansich kein Problem, allerdings wie gebe ich dann bei Client an, dass
die Verbindung über einen anderen Port aufgebaut wird.

Normalerweise verbinde ich über den Befehl 'ssh user@server'

MfG

nil
Beiträge: 989
Registriert: 08.06.2005 13:28:36

Beitrag von nil » 07.02.2006 15:38:42

Code: Alles auswählen

ssh user@server -p <portnummer>
scp -P <portnummer> user@server
PS.: mit iptables ist deine Firewall eigentlich fertig, fehlen nur die richtigen Reglen dadrin.

mascoxx
Beiträge: 205
Registriert: 20.04.2005 01:14:09
Kontaktdaten:

Beitrag von mascoxx » 07.02.2006 15:39:02

Wenn wir gleich beim Thema sind....
welche Möglichkeit haltet ihr für die Beste ein IPtables Script zu erstellen?

nil
Beiträge: 989
Registriert: 08.06.2005 13:28:36

Beitrag von nil » 07.02.2006 15:41:27

welche Möglichkeit haltet ihr für die Beste ein IPtables Script zu erstellen?
einfach klauen, hab dir mal eben meins (etwas allgemeine Form) zugeschickt, solltest du nach /etc/init.d kopieren und dann entsprechend in den Runleveln aufrufen lassen.

Anmerkung: ja verstehen solltest du es dann doch, könnte ja Sicherheitslücken enthalten.
Zuletzt geändert von nil am 07.02.2006 15:43:22, insgesamt 1-mal geändert.

Benutzeravatar
herrchen
Beiträge: 3257
Registriert: 15.08.2005 20:45:28
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von herrchen » 07.02.2006 15:41:38

mascoxx hat geschrieben: Ok, ansich kein Problem, allerdings wie gebe ich dann bei Client an, dass
die Verbindung über einen anderen Port aufgebaut wird.
es haben sich einige leute die mühe gemacht und manualpages geschrieben.
-p wird dort stehen ...

herrchen

Benutzeravatar
meandtheshell
Beiträge: 4054
Registriert: 14.01.2005 17:51:30

Beitrag von meandtheshell » 07.02.2006 15:42:20

mascoxx hat geschrieben: welche Möglichkeit haltet ihr für die Beste ein IPtables Script zu erstellen?
lesen ---> verstehen ---> script schreiben
http://iptables-tutorial.frozentux.net/ ... orial.html

auch auf die Gefahr hin das du damit noch nichts anfangen kannst:
das was du versuchst zu machen ist blacklisting. Das Gegenteil und das was man machen sollte ist whitelisting.
Ein Dienst der ein zero-Day Exploit hat erlaubt es schon einem "normal" versierten User dein System aufzumachen wie eine Dose Maiskörner wenn du so filterst wie du denkst das es gut ist - das ist es nicht!

markus

mascoxx
Beiträge: 205
Registriert: 20.04.2005 01:14:09
Kontaktdaten:

Beitrag von mascoxx » 07.02.2006 15:51:57

Danke für eure Hilfe, werde mich so rasch wie möglich damit beschäftigen.

MfG
Clemens

Benutzeravatar
meandtheshell
Beiträge: 4054
Registriert: 14.01.2005 17:51:30

Beitrag von meandtheshell » 07.02.2006 15:55:33

Code: Alles auswählen

dig mascoxx.com

; <<>> DiG 9.3.1 <<>> mascoxx.com
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51808
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;mascoxx.com.                   IN      A

;; ANSWER SECTION:
mascoxx.com.            86400   IN      A       195.202.171.65

;; AUTHORITY SECTION:
mascoxx.com.            86310   IN      NS      ns1.hostprofis.com.
mascoxx.com.            86310   IN      NS      ns2.hostprofis.com.

;; ADDITIONAL SECTION:
ns1.hostprofis.com.     84826   IN      A       217.195.34.120
ns2.hostprofis.com.     83419   IN      A       62.27.12.133

;; Query time: 105 msec
;; SERVER: 195.58.160.194#53(195.58.160.194)
;; WHEN: Tue Feb  7 16:53:31 2006
;; MSG SIZE  rcvd: 124
markus (geht Dosenöffner holen :mrgreen:)

mascoxx
Beiträge: 205
Registriert: 20.04.2005 01:14:09
Kontaktdaten:

Beitrag von mascoxx » 07.02.2006 15:58:38

ja schon, aber das ist ja lediglich eine auflistung der nameserver und mx einträge?!
:o

nil
Beiträge: 989
Registriert: 08.06.2005 13:28:36

Beitrag von nil » 07.02.2006 15:58:43

... ssh geht nicht, schade eigentlich ...

Benutzeravatar
herrchen
Beiträge: 3257
Registriert: 15.08.2005 20:45:28
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von herrchen » 07.02.2006 16:02:53

nil hat geschrieben:... ssh geht nicht, schade eigentlich ...
er hat meine regel verwendet. :)

herrchen

nil
Beiträge: 989
Registriert: 08.06.2005 13:28:36

Beitrag von nil » 07.02.2006 16:06:54

Ich hatte ihm meine Filterregeln gemailt, dann wäre SSH weiterhin über Port 22 gegangen, dafür wäre alles andere nicht mehr möglich. Die Kombination ist wohl das Optimum und das System ist dann recht sicher. Aber vielleicht ist sein SSH-Daemon ja woanders, wer hostet schon seinen Domain in seinem Wohnzimmer.

mascoxx
Beiträge: 205
Registriert: 20.04.2005 01:14:09
Kontaktdaten:

Beitrag von mascoxx » 07.02.2006 16:08:11

Hehe....
Und jetzt die Masterfrage....auf welchen Port hab ich es geändert??

:lol:
*hmmm*

nil
Beiträge: 989
Registriert: 08.06.2005 13:28:36

Beitrag von nil » 07.02.2006 16:12:43

2222
22222

mascoxx
Beiträge: 205
Registriert: 20.04.2005 01:14:09
Kontaktdaten:

Beitrag von mascoxx » 07.02.2006 16:14:20

nöö :P

nil
Beiträge: 989
Registriert: 08.06.2005 13:28:36

Beitrag von nil » 07.02.2006 16:20:58

Ok, aber wenn ich deine IP hätte würde ich mit "nmap" auch diesen Port jenseits von gut und böse finden. Wenn ich jedoch im Internet Rechner suchen würde, würde ich natürlich nicht alle Ports auf allen Rechnern durchsuchen. Da würde ich wohl nur Port 22 versuchen.

Antworten