telnet x11 auf REDHAT 7 (Gnome 3)


1

Ich habe in den letzten 2 Wochen versucht, X11-Apps über eine Telnet-Verbindung zum Server zum Laufen zu bringen. Ich mache mir keine Sorgen um die Sicherheit, da ich auch ein VPN zum Serverstandort betreibe. Ich brauche nur X11, um die ganze Zeit zu arbeiten, da ich viele Apps öffne. Was ich auf der entfernten Maschine gemacht habe:

export DISPLAY=host-ip-address:0.0

Auf meinem lokalen Computer:

xhost +remote-server-address

Dann habe ich auch folgendes zu meinem hinzugefügt /etc/gdm/custom.conf:

[security]
DisallowTCP=false

Ich habe meinen Computer neu gestartet. Aber das war nicht genug. Ich habe auch nachgesehen, ob 6000 zuhört:

$ netstat -a --numeric-ports | grep 6000
tcp        0      0 0.0.0.0:6000            0.0.0.0:*               LISTEN     
tcp6       0      0 [::]:6000               [::]:*                  LISTEN     

Hier sind mir die Optionen ausgegangen und ich hätte gerne Hilfe. Irgendwelche Ideen, warum X11 nicht funktioniert? Ich habe es versucht, ssh -Xfaber es ist nichts für mich. Da ich X11 Apps die ganze Zeit öffne und schließe. Wenn ich die mit ssh geöffnete Original-App schließe, kann ich keine weiteren Apps öffnen. Ich habe eine andere Frage offen, aber noch keine Antwort erhalten.

Edit: Also ich habe eine Antwort bekommen und ich habe es versucht, aber es hat nicht geholfen. Ich musste installieren yum install iptables-services, um die Iptables auf meinem System zu installieren .

Dann habe ich Folgendes in meine /etc/sysconfig/iptablesDatei aufgenommen:

-A INPUT -p tcp -m tcp --dport 6000 -m state --state NEW -j ACCEPT

Ich habe sogar den iptables-Dienst mit neu gestartet service iptables restart. Aber das hat immer noch nicht funktioniert. Noch mehr Ideen?

Edit 2: Ausgabe von my iptables -L

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     icmp --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:ssh
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:x11 state NEW

Sollte ich die REJECT-Zeile entfernen?


1
Ich nehme an, Sie haben den Befehl 'xhost' auf Ihrem lokalen Computer ausgeführt.
JvO

Ja. Ich tat. Ich habe die Frage bearbeitet.
SUB

Überprüfen Sie, ob Sie den X-Port von Ihrem Remote-Server aus erreichen können (dh, Sie können über Port 6000 Telnet-Verbindungen zu Ihrem eigenen Computer herstellen). iptables -L
Dies

Ich kann vom Remote-Server aus kein Telnet auf meinen eigenen Computer zurücksenden. Ich sehe Port 6000 auch nicht in der Ausgabe von iptables. Wie kann das Firewall-Problem behoben werden?
SUB

Firewalls blockieren normalerweise alles. Wenn also Port 6000 nicht angezeigt wird, ist dies zu erwarten. Was ist die Standardrichtlinie Ihrer INPUT-Regel? Wenn es sich nicht um "ACCEPT" handelt, ist eine Firewall aktiv. Das Hinzufügen einer Firewall-Regel ist systemabhängig. Bei Redhat können Sie versuchen, die Datei / etc / sysconfig / iptables aufzurufen.
JvO

Antworten:


0

Das Öffnen eines Ports für Ihren X-Server wird nicht empfohlen. SSH ist wirklich eine bessere Option. Jeder, der in Ihren Remote-Server einbricht, kann dann ein Programm auf Ihrem X-Server öffnen, Tastendrücke erfassen, den Bildschirm anzeigen usw. Sie müssen also in der Lage sein, Ihrem Remote-Server zu vertrauen.

Auf jeden Fall sollte das Folgende für CentOS 6 funktionieren, möglicherweise für Redhat 7. Die Datei, die Sie bearbeiten müssen, ist /etc/sysconfig/iptables(als root!). Es sollte mit so etwas beginnen:

# Generated by iptables-save v1.3.5 on Sun May 11 18:20:27 2014
*filter
:INPUT DROP [237324:104418063]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [311602:113967214]
:FTP - [0:0]
-A INPUT -i lo -j ACCEPT 
-A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP 
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 80 -m state --state NEW -j ACCEPT 
....

Der genaue Inhalt spielt keine Rolle, wichtig ist, dass es Firewall-Regeln gibt. Wie Sie sehen, sind Port 22 und Port 80 geöffnet. Fügen Sie also eine Zeile hinzu, um Port 6000 zu öffnen. Geben Sie als zusätzliche Sicherheitsmaßnahme nur Zugriff auf Ihren Remote-Server:

-A INPUT -p tcp -m tcp --dport 6000 -s ip.of.remote.server/32 -m state --state NEW -j ACCEPT

Starten Sie dann Ihren Computer neu oder laden Sie die Firewall-Regeln neu ( service iptables restart).


Ich habe die Datei / etc / sysconfig / iptables nicht. Bedeutet das nicht, dass momentan alle Ports blockiert sind? Ich sollte nur eine neue Datei erstellen. Ich möchte klarstellen, dass Redhat 7.2 mein Desktop und nicht der Server ist.
SUB

Sorry, mein Wissen hier hört dann auf. Aber ja, die Iptables sollten sich auf Ihrem Desktop befinden. Schau dich um, vielleicht ist es woanders.
JvO

Wissen Sie, wo Sie die in Ihrer Antwort erwähnte Zeile einfügen sollen? Ich habe gerade die Ausgabe meiner Iptables gepostet. soll der neue tcp an der spitze sein?
SUB

0

In Bezug auf Telnet hat JvO absolut Recht: Tun Sie es einfach nicht. SSH ist in vielerlei Hinsicht besser, nicht nur in Bezug auf die Sicherheit, sondern auch in Bezug auf die Weiterleitung und andere Aspekte.

Hinweis: RHEL 7 verwendet standardmäßig eine Firewall und keine Iptables.

Versuchen:

firewall-cmd --zone=public --list-all

um Ihre Einstellungen zu sehen. Der Standard sollte funktionieren.

Und stellen Sie sicher:

grep -i X11Forwarding /etc/ssh/sshd_config

kommt auf "ja".

Probieren Sie es aus mit:

ssh -Y remote-server-address

Dann:

xclock

(Wenn Sie IPv6 deaktiviert haben oder weitere Informationen wünschen, lesen Sie hier: http://unix.stackexchange.com/a/225642/95470 )

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.