1

Последние 2 недели я пытался заставить приложения X11 работать через telnet-соединение с сервером. Я не беспокоюсь о безопасности, так как я запускаю VPN на сервере. Мне просто нужно, чтобы X11 работал все время, так как я открываю много приложений. Что я сделал на удаленной машине:

export DISPLAY=host-ip-address:0.0

На моей локальной машине:

xhost +remote-server-address

Затем я также добавил следующее в мой /etc/gdm/custom.conf:

[security]
DisallowTCP=false

Я перезагрузил компьютер. Но этого было недостаточно. Я также проверил, если 6000 слушает:

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

Здесь у меня закончились варианты, и мне нужна помощь. Есть идеи, почему X11 не работает? Я пробовал ssh -Xf но это не для меня. Поскольку я все время открываю и закрываю приложения X11. Когда я закрываю исходное приложение, открытое с помощью ssh, я не могу открыть больше приложений. У меня есть другой открытый вопрос , но я еще не получил ответ.

Изменить: Итак, я получил ответ, и я попробовал его, но это не помогло. Я должен был установить yum install iptables-services чтобы установить iptables, установленный в моей системе.

Затем я добавил следующее в мой файл /etc/sysconfig/iptables :

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

Я даже перезапустил службу iptables, используя service iptables restart . Но это все еще не заставило это работать. Есть еще идеи?

Изменить 2: Вывод моего 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

Должен ли я удалить строку REJECT?

2 ответа2

0

JvO абсолютно прав насчет telnet: просто не надо. SSH лучше во многих отношениях, не только в безопасности, но и в обработке пересылки и других битов.

NB. RHEL 7 по умолчанию использует firewalld, а не iptables.

пытаться:

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

чтобы увидеть ваши настройки. По умолчанию должно работать.

И убедитесь:

grep -i X11Forwarding /etc/ssh/sshd_config

подходит 'да.'

Попробуйте это с:

ssh -Y remote-server-address

Затем:

xclock

(если вы отключили IPv6 или хотите узнать больше, см. здесь: http://unix.stackexchange.com/a/225642/95470)

0

Открытие порта для вашего X-сервера не рекомендуется, SSH действительно является лучшим вариантом. Любой, кто проникнет на ваш удаленный сервер, сможет открыть программу на вашем X-сервере, записывать нажатия клавиш, просматривать экран и т.д. Таким образом, вы должны быть в состоянии доверять своему удаленному серверу.

В любом случае, для CentOS 6 должно работать следующее: оно может работать на Redhat 7. Файл, который вам нужно отредактировать, это /etc/sysconfig/iptables (от имени root!). Это должно начаться с чего-то вроде этого:

# 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 
....

Точный контент не имеет значения, важно то, что существуют правила брандмауэра. Как видите, порт 22 и порт 80 открыты, поэтому добавьте строку, чтобы открыть порт 6000; в качестве дополнительной меры безопасности предоставьте доступ только к вашему удаленному серверу:

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

Затем перезагрузите компьютер или перезагрузите правила брандмауэра (service iptables restart).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .