# [solved] Vncserver richtig absichern

## Child_of_Sun_24

Hi @all

Nachdem am Sonntag jemand verucht hat meinen Server zu hacken (Denke nicht das er es geschafft hat, da die logs voll mit seiner IP waren) musste (Bzw. bin noch dabei, das wichtigste läuft aber schon) ich meinen Server neu aufsetzen (Wirklich ein dummes Problem, er hat versucht meinen Vnc Server zu hacken und dabei sind die logs so groß geworden das sie den gesamten Systemplattenplatz verbraucht haben, morgens beim automatischen update hat er dann die glibc aktualisiert [jedenfalls versucht] naja löschen konnte er sie, aber leider nicht neu einspielen [Muss wohl in der Zeitspanne das log wieder vergrößert worden sein] jedenfalls hat er sie nur teilweise neu eingespielt, einige libs fehlten also und somit konnte ich meinem System adios sagen [Mache jetzt keine Automatischen Updates mehr, manuell ist mir sicherer])

Auf jeden Fall bin ich gerade dabei meinen Vnc Server neu aufzuspielen, und jetzt meine Frage dazu, ich hatte vorher mit iptables auf den Tcp Ports 4900-4920 jegliche Verbindung vom Interface ppp0 untersagt, leider waren die udp Ports offen, da ich dachte das wäre nicht so wild, letztendlich hat es in diesem Hackversuch geendet wo er sich am Vnc hätte anmelden können, hat er aber aufgrund einer inkompatieblen Version nicht geschafft (Soweit ich das lesen konnte jedenfalls), was auch gleich zu meiner Frage führt, jeden anderen Dienst den ich im Netzwerk anbiete habe ich so konfiguriert das er nur auf Anfragen vom internen Netzwerk antwortet oder halt vom lokalen Rechner, nur bei Vnc (Benutze RealVNC 4.1.2) habe ich das nicht geschafft und deshalb hatte ich die Ports (leider nur Tcp) blockiert was mir aber seit diesem Versuch zu unsicher ist, also würde ich gerne auch diesen Dienst so konfigurieren das er nur auf Anfragen von eth1 reagiert und auf eth0 und ppp0 erst gar keinen Dienst anbietet, aber irgendwie finde ich nichts passendes dafür.

Habe jetzt natürlich alle Ports geschlossen (In der sektion filter von rules-save habe ich INPUT DROP gesetzt und dann das interne Netzwerk und das lokale loopback freigegeben) weil ich so etwas nicht nochmal erleben will, aber wie gesagt ich will auch den vncserver richtig absichern, aber ich weiß nicht wie.

Danke schon mal,

CoS24Last edited by Child_of_Sun_24 on Wed May 09, 2007 1:26 pm; edited 1 time in total

----------

## schmutzfinger

Also erstmal ein grundsätzlicher Fehler. Auf nem öffentlich Server würde ich /var immer ne extra Partition gönnen. Genau weil logs, Druckaufträge etc. sonst die Platte voll machen können. Und das kann sehr unangenehm werden. Der zweite offensichtliche Fehler ist updates automatisch zu machen. Mache nen sync cronjob der die "emerge -auvDN world" mailt und mache die updates von Hand. Ein emerge -f kannst du vielleicht auch noch mit cron machen aber das kann die Platte auch überfüllen.

Und nun zum Thema:

Ich würde dir nx statt vnc empfehlen. Das geht komplett über ssh, auth geht somit über PAM oder Schlüssel. Wenn du wirklich vnc willst dann würde ich emfehlen es über ssh zu tunneln und nur clients von localhost reinzulassen.

ssh ist auf den meisten Servern eh offen und wird schon genug mit brute-force belegt. Dazu kommt das vnc nicht verschlüsselt ist und ich würde darüber kein root-xterm auf nem Server haben wollen.

----------

## dakjo

Auf einen Server gehoert einfach kein X solange er von extern erreichbar ist. Fertig.

Es gibt nicht was mann nicht ueber ssh/web machen koennte.

----------

## Child_of_Sun_24

Der Server ist mein alter PC er steht neben mir.

Vnc benutze ich weil ich darunter im Hintergrund Programme laufen lassen kann und eine praktische GUI habe um darauf zuzugreifen.

Ist vielleicht bequemlichkeit.

Werde mich mal über nx schlau machen, danke schonmal.

CoS24

----------

## tgurr

Du kannst auch nur den SSH-Port nach außen hin öffnen und den Rest da durch tunneln.

Empfehlenswert ist auch immer ein Router/Firewall zwischen dem Server und dem www zu haben.

----------

## slick

Durch ein unsicheres Netz würde ich OpenVPN nutzen und dann den Service (VNC) an des interface von OpenVPN (tap*) binden. Somit spart man sich das getrixe mit iptables.

----------

## Child_of_Sun_24

Das Netz ist intern sicher, ich will ja nur erreichen das von außen kein Zugriff möglich ist, habe jetzt per iptables alles standardmäßig blockiert, das interne Netz freigegeben und das loopback freigegeben, auf dem ppp0 interface habe ich nur Ports für Azureus amule und den Webserver freigegeben, dürfte jetzt sicher sein.

Was ich wollte ist das der Vnc Server so wie z.B. Samba nur auf Anfragen vom eth1 Interface reagiert aber das scheint nicht möglich zu sein, zumindest läuft es jetzt und macht keine Probleme.

CoS24

----------

## Child_of_Sun_24

Sorry habe jetzt erst richtig gelese was du geschrieben hast (Bin noch net ganz wach  :Smile:  ) Wie bindet man denn Vnc an ein bestimmtes Interface ? Würde ihn dann einfach an eth1 binden (Interne Netzwerkkarte) und dann wäre alles in Ordnung und so wie ich es haben will, weiß aber net wie ich das machen soll.

CoS24

----------

## firefly

hmm such doch mal im internet nach

<dein VNC programm> bind to interface  :Wink: 

als ich nur nach "VNC bind to interface" gesucht habe fand ich das hier:

 *http://www.realvnc.com/pipermail/vnc-list/2002-April/029763.html wrote:*   

> TightVNC (and VNC) have an option to either bind to all interfaces
> 
> (default), bind to a specfic interface (-interface ip_address) or bind to
> 
> localhost interface (-localhost).

 

----------

## Child_of_Sun_24

Komisch ich benutze jetzt die Interface Option, aber irgendwie startet da nichts, er teilt mit das er jetzt :3 benutzt und es sieht auch alles ganz normal aus, aber irgendwie scheint er den Prozess nicht zu starten, ich kann keine Verbindung aufbauen und wenn ich den Befehl mit -interface nochmal starte kommt wieder :3 anstatt :4 wie es dann ja normal weitergehen sollte.

Starting applications specified in /home/p2p/.vnc/xstartup

New 'Babylon32:3 (p2p)' desktop is Babylon32:3

Starting applications specified in /home/p2p/.vnc/xstartup

Log file is /home/p2p/.vnc/Babylon32:3.log

in den logs steht dann das der Parameter -interface ungültig ist, er gibt mir dann eine liste mit gültigen Optionen für X und Vnc aber da steht nichts von einer Option die Vnc an ein bestimmtes Interface bindet.

Werde mal tightvnc ausprobieren, ob es damit geht.

Danke schonmal,

CoS24

----------

## Child_of_Sun_24

Alles klar, der normal erhältliche Vnc Server scheint diese Option nicht zu unterstützen, tightvnc hingegen schon, habe jetzt endlich alles schön sicher, allerdings noch ein Problem mit ssh, aber dafür gibts nen anderen Thread.

Ich danke nochmal allen für eure Hilfe,

CoS24

----------

## sschlueter

Der realvnc-Server kann sich ebenfalls ausschließlich ans Loopback-Interface binden:

```
vncserver :0 -localhost -nolisten tcp
```

Dann hat man einen Xvnc-Prozess, der auf 127.0.0.1:5900 lauscht und keine weiteren lauschenden Prozesse.

Ich greife dann per SSH-Portforwarding darauf zu.

----------

