PHP Отправить письмо по SSH - PullRequest
       13

PHP Отправить письмо по SSH

0 голосов
/ 23 февраля 2009

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

У нас уже есть настройка подключения SSH к серверам нашего клиента, и мне было интересно, если кто-нибудь знает, возможно ли отправить по электронной почте (возможно, с вложениями) через это подключение?

Наш веб-сервер является машиной Linux, и мы можем устанавливать приложения самостоятельно. Сервер клиента является сервером Unix, однако его система электронной почты - Microsoft Exchange.

Мы обсуждали PGP, и это не вариант для нашего клиента, они не будут устанавливать его в своих системах.

Спасибо за любую помощь.

Питер

Ответы [ 4 ]

1 голос
/ 23 февраля 2009

Чтобы сделать мой ответ более понятным, я вижу здесь три (3) системы.

  1. веб-сервер, на котором запущен скрипт PHP; позже упоминается как веб-сервер
  2. Сервер Unix, работающий на вашем клиентском сайте; позже упоминается как UnixServer
  3. Сервер Exchange, работающий на вашем клиентском сайте; позже упоминается как ExchangeServer

Что вы можете сделать, это использовать autossh для туннелирования соединения с WebServer через сервер UnixServer с конечной точкой на ExchangeServer. Это не сквозное шифрование, так как у вас не будет зашифрованной связи от UnixServer к ExchangeServer, это приблизит вас к вашей цели.

Полную документацию по autossh можно найти здесь

Основные шаги для настройки будут следующими:

A. Настройка аутентификации без пароля от WebServer до UnixServer. Вы должны быть осторожны, чтобы защитить сгенерированный ключ RSA, иначе вы только что открыли дыру в их системе. В идеале запускайте autossh под непривилегированным пользователем, а учетная запись, используемая на UnixServer, также должна быть непривилегированной. Убедитесь, что вы проверили соединение, прежде чем начать использовать autossh

B. Настройте параметры ssh для keepalive (autossh - запасной вариант). Убедитесь, что файл ~/.ssh/config для пользователя, запускающего autossh, имеет следующую настройку:

TCPKeepAlive yes
ClientAliveInterval 60 
ServerAliveInterval 15 
ServerAliveCountMax 3 

C. Настройка автосш. Linux.com как артикул об этом здесь и debianadmin.com как один здесь .

0 голосов
/ 24 февраля 2009

ssh -L $ LOCAL_LISTEN_PORT: $ EXCHANGE_SERVER_IP: 25 username @ sshdserver

http://www.ssh.com/support/documentation/online/ssh/adminguide/32/Port_Forwarding.html

0 голосов
/ 23 февраля 2009

Я был бы склонен безопасно хранить информацию на сервере и отправить уведомление по электронной почте пользователю, который затем сможет войти в систему и увидеть этот запрос (и все другие недавние?) На веб-странице.

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

0 голосов
/ 23 февраля 2009

Если сервер клиента настроен таким образом, что команда " mail " работает, вы должны иметь возможность использовать это. И это легко проверить: SSH и попробуйте.

В противном случае вы, вероятно, захотите перейти с smtp через SSL с шифрованием прямо на их почтовый сервер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...