Сервер CentOS отказывается от всех подключений, кроме ssh telnet и http

По какой-то причине мой CentOS VPS отказывается от всех соединений, кроме HTTP, SSH и Telnet. Всякий раз, когда я пытаюсь подключиться к порту, например 25 (SMTP) или даже к случайному порту, например, 225. Я получаю сообщение об ошибке отказа в соединении:S netstat -ap показывает, что сервер прослушивает, и iptables выключен.

Однако я могу взаимодействовать с теми же портами на сервере через Telnet...

# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination    

# netstat -an | fgrep LISTEN
tcp        0      0 0.0.0.0:25                  0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:225                 0.0.0.0:*                   LISTEN      
tcp        0      0 :::22                       :::*                        LISTEN      
tcp        0      0 :::80                       :::*                        LISTEN      
unix  2      [ ACC ]     STREAM     LISTENING     169786017 /tmp/.font-unix/fs7100
unix  2      [ ACC ]     STREAM     LISTENING     169786045 /var/run/saslauthd/mux

Это сообщение об ошибке, которое я получаю из моего PHP-скрипта. Мой PHP-скрипт отлично работает со всеми другими SMTP-серверами, с которыми я сталкивался. Предупреждение: fsockopen() [function.fsockopen]: невозможно установить соединение:25 (соединение отказано)

2 ответа

Решение

Похоже, что что-то выше вашего VPS блокирует доступ, за исключением отмеченных портов. Вам следует связаться с вашим провайдером VPS и спросить их об этом.

Хорошо, чтобы прояснить ситуацию - если вы используете CentOS, есть вероятность, что вы находитесь в выпуске 5 с sendmail по умолчанию. В этом случае вы не будете подключаться извне, потому что sendmail по умолчанию будет прослушивать только localhost. Чтобы он прослушивал основной IP-адрес, вам нужно отключить строку в /etc/sendmail.mc из этого:

DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl

к этому:

dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl

Затем пересоберите sendmail.cf со следующим:

/etc/mail/make
/etc/init.d/sendmail restart

(если это postfix, это может быть другая история. IIRC, postfix будет прослушивать по умолчанию только на локальном хосте, поэтому вам нужно будет также настроить его для прослушивания основного IP).

ОДНАКО, поскольку вы просто пытаетесь протестировать внешнее соединение, вам может понадобиться установить nc, а затем запустить его, чтобы прослушать конкретный файл. Вот мой пример:

[root@kvm0006 mail]# nc -l 50

Здесь я слушаю на порту 50 (следовательно, -l). Теперь, когда я подключусь извне к серверу через этот порт, я получу следующее:

yvaine:Downloads rilindo$ telnet 192.168.15.36 50
Trying 192.168.15.36...
Connected to kvm0006.monzell.com.
Escape character is '^]'.
Hello

Который вернет следующее на стороне сервера:

[root@kvm0006 mail]# nc -l 50
Hello

Чтобы установить nc:

yum -y install nc
Другие вопросы по тегам