CentOS 6.4 и альтернативный SSH порт не работают

у меня есть CentOS 6.4 машина и хотел бы изменить SSH порт по умолчанию, и следовал этим инструкциям:

CentOS Wiki

после внесения этих изменений (включая "semanage port-a-t ssh_port_t-p tcp 2345") и перезапуска SSHD я все еще не могу подключиться через новый альтернативный порт.

Я вижу, что хост слушает новый порт:

# netstat -antp | grep 2345 | grep LISTEN
tcp        0      0 0.0.0.0:2345                0.0.0.0:*                   LISTEN      6998/sshd           
tcp        0      0 :::2345                     :::*                        LISTEN      6998/sshd 

и я вижу, что политика SELINUX выглядит так правильно:

# /usr/sbin/semanage port -l | grep ssh
ssh_port_t                     tcp      2345, 22

и я вижу, что IPTABLES тоже выглядят правильными:

# iptables -L -v
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     udp  --  virbr0 any     anywhere             anywhere            udp dpt:domain 
    0     0 ACCEPT     tcp  --  virbr0 any     anywhere             anywhere            tcp dpt:domain 
    0     0 ACCEPT     udp  --  virbr0 any     anywhere             anywhere            udp dpt:bootps 
    0     0 ACCEPT     tcp  --  virbr0 any     anywhere             anywhere            tcp dpt:bootps 
 179K  145M ACCEPT     all  --  any    any     anywhere             anywhere            state RELATED,ESTABLISHED 
  185  7200 ACCEPT     icmp --  any    any     anywhere             anywhere            
    2    99 ACCEPT     all  --  lo     any     anywhere             anywhere            
   39  2028 ACCEPT     tcp  --  any    any     anywhere             anywhere            state NEW tcp dpt:ssh 
29763   11M REJECT     all  --  any    any     anywhere             anywhere            reject-with icmp-host-prohibited 

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  any    virbr0  anywhere             192.168.122.0/24    state RELATED,ESTABLISHED 
    0     0 ACCEPT     all  --  virbr0 any     192.168.122.0/24     anywhere            
    0     0 ACCEPT     all  --  virbr0 virbr0  anywhere             anywhere            
    0     0 REJECT     all  --  any    virbr0  anywhere             anywhere            reject-with icmp-port-unreachable 
    0     0 REJECT     all  --  virbr0 any     anywhere             anywhere            reject-with icmp-port-unreachable 
    0     0 REJECT     all  --  any    any     anywhere             anywhere            reject-with icmp-host-prohibited 

Chain OUTPUT (policy ACCEPT 118K packets, 24M bytes)
 pkts bytes target     prot opt in     out     source               destination         

наконец, я могу telnet к порту локально:

# telnet localhost 2345
Trying ::1...
Connected to localhost.
Escape character is '^]'.
SSH-2.0-OpenSSH_5.3

но не может telnet К или SSH к новому, альтернативному порту извне.

Я не за брандмауэром любого рода.

любые идеи, предложения? Я в смятении.

Dan

10
задан fixer1234
16.01.2023 13:09 Количество просмотров материала 2740
Распечатать страницу

2 ответа

похоже, что ваши iptables не настроены на разрешение на порту 2345, только на 22, который передается через правило

tcp  --  any    any     anywhere             anywhere            state NEW tcp dpt:ssh

вы хотите правило, которое делает то же самое для порта 2345, и вы можете получить это с помощью

iptables -A INPUT -p tcp --dport 2345 -m conntrack --ctstate NEW -j ACCEPT

и вы хотите, чтобы это правило было именно там, где было ваше старое правило SSH. Это все предполагает, что вы используете простые iptables для настройки брандмауэра, а не какой-то обертки для него. Если последний случай, вы, вероятно, захотите использовать обертку программа для смены порта с 22 на 2345.

для дальнейшего использования, если вы можете подключиться к сервису через localhost, но не извне, то проблема заключается в вашей сети (например, брандмауэр). Localhost будет иметь другое поведение, потому что трафик будет проходить через петлевое устройство,которое в вашей системе настроено на прием всего трафика.

1
отвечен Aaron Okano 2023-01-17 20:57

то, что я сделал в конце концов было использовать GUI Брандмауэр, чтобы открыть порт 2345, сохранить и перезагрузить брандмауэр, и теперь я хорошо идти.

Я вижу, что это внесло изменения в файл /etc/sysconfig/iptables, но по какой-то причине мои попытки командной строки не работали.

1) добавьте альтернативный порт в /etc/ssh/sshd_config:

Port 2345 # the additional SSH port
Port 22 # just in case

2) Установите "semanage", чтобы внести изменения в SELinux:

# yum -y install policycoreutils-python

3) Добавить новый порт в политику SELinux:

# semanage port -a -t ssh_port_t -p tcp 2345

4) перезапустить SSHD:

# service sshd restart

5) в графическом интерфейсе брандмауэра CentOS в разделе "другие порты" добавьте 2345 в качестве TCP (игнорируйте тот факт, что сервис считает DBM), примените, перезагрузите

сделал

0
отвечен Dan 2023-01-17 23:14

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх