Сервер 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