SSH nur für ausgewählte IPs freigeben - IPTABLES
SSH nur für ausgewählte IPs freigeben - IPTABLES
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
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
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
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.
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.
- 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
iptables -D INPUT -p tcp --dport 22 -s ! 192.168.10.0/24 -j DROPmascoxx hat geschrieben: Wie ist der Befehl hierfür?
sowas unterlasse bitte in zukunft.Bitte um rasche Antwort
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 ...
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:
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
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:
Und so weiter und weiter und weiter.....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
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
Man muss die Meldungen von iptables nicht unbedingt mitloggen. Außerdem sollten dadurch, dass du nur gewisse Ports forwardest, wenig Meldungen auftreten.Und 2.) will ich den Port deswegen sperren, weil ich ungemein viele Attacken habe, die
dann wie folgt im Logile zu tausenden auftauchen:
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.
- meandtheshell
- Beiträge: 4054
- Registriert: 14.01.2005 17:51:30
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
wenn du dazu ein wenig im Forum suchst findest du massig info
markus
edit:
zu langsam
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>
markus
edit:
zu langsam
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)
die Verbindung über einen anderen Port aufgebaut wird.
Normalerweise verbinde ich über den Befehl 'ssh user@server'
MfG
ich noch keine Sicherheitsprobleme (zumindest hab ich noch nichts bemerkt)
Ok, ansich kein Problem, allerdings wie gebe ich dann bei Client an, dassnein.
es reicht, den sshd auf einem hohen port lauschen zu lassen.
die Verbindung über einen anderen Port aufgebaut wird.
Normalerweise verbinde ich über den Befehl 'ssh user@server'
MfG
Code: Alles auswählen
ssh user@server -p <portnummer>
scp -P <portnummer> user@server
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.welche Möglichkeit haltet ihr für die Beste ein IPtables Script zu erstellen?
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.
- meandtheshell
- Beiträge: 4054
- Registriert: 14.01.2005 17:51:30
lesen ---> verstehen ---> script schreibenmascoxx hat geschrieben: welche Möglichkeit haltet ihr für die Beste ein IPtables Script zu erstellen?
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
- meandtheshell
- Beiträge: 4054
- Registriert: 14.01.2005 17:51:30
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
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.