Во-первых, я делаю некоторые предположения, поэтому извините меня, если я упустил суть Вашего вопроса. Я предполагаю, что Вы предоставляете некоторые услуги веб-хостинга некоторым Вашим клиентам, и теперь они просят управление веб-хостом, в противоположность Вам делающий всю работу для них.
Два слова: виртуальная машина. Не предоставляйте им доступ к своему веб-серверу хоста. Позвольте им иметь полный контроль над экземпляром VM - если они пачкают его, Вашему более ценному хосту не повреждают или вмешиваются - только их сайты и сервисы. Затем можно дать им административный контроль над экземпляром и не иметь для волнения об этом (за исключением резервных копий их начального экземпляра - но это зависит от контракта с клиентами). Они будут также чувствовать себя более особенными, когда Вы сделаете им отчет администратора.:-) Я настоятельно рекомендую этот путь, если это вообще возможно для Вас.
Если бы это не опция, и Вы соглашаетесь с совместным использованием Вашей хост-системы с Вашими клиентами, я затем предложил бы делить один из Ваших дисковых массивов, таким образом, что у Вашего клиента есть их собственный объем для хостинга их сайтов и данных из. Вы могли создать базовый каталог для них в Вашем собственном, но затем необходимо слоняться без дела с полномочиями NTFS и наследованием, которое, в зависимости от сложности файловой системы, могло стать ужасным.
Если это - опция, намного более просто создать новый объем/раздел - с их собственным объемом для использования, безопасность будет очень, намного более проста, поскольку Вы могли дать им полный контроль над объемом, и можно присвоить ограничения дискового пространства также, таким образом, они не могут заполнить диски и остановить систему.
Я думаю, что Вы на правильном пути с пулами отдельного приложения и отдельными сайтами. Можно хотеть посмотреть на эту статью о делегации прав управлять сайтами и приложениями (iis7). Это станет более сложным, если они начнут использовать базы данных - однако, если все, что они хотят сделать, разместить некоторое статическое содержание, вышеупомянутое должно помешать им быть вне себя.
Причина, по которой мне не удалось подключиться к SMTP был вызван тем, что моя компания блокировала доступ по SMTP. Закончил использование локального SMTP и использовал Postfix с этими инструкциями, чтобы заставить его работать.
После изменения sendmail.mc
вы запускали / etc / mail / make
, чтобы собрать sendmail.cf
? Вы также запускали перезапуск службы sendmail
после создания нового sendmail.cf
?
Я также пробовал сделать это с помощью ретрансляции sendmail через gmail, но предпочел использовать postfix, так как это казалось НАМНОГО проще в настройке. Вам не нужно проходить процесс создания самозаверяющих сертификатов и т. Д. Это руководство предназначено для Gmail, но процесс должен быть очень похожим для Office 365. Просто вопрос поиска имен серверов и схемы аутентификации. http://rs20.mine.nu/w/2011/07/gmail-as-relay-host-in-postfix/ Geo
Я создал сценарий для добавления учетной записи Gmail в sendmail, если кому-то интересно.
#! /bin/bash
date=$(date +"%Y-%m-%d")
logFile=:Log File Location Goes HERE
authInfoPath="/etc/mail/authinfo/"
idpass="/etc/mail/authinfo/gmail-idpass"
sendmail="/etc/mail/sendmail.mc"
## Functions
determineLinuxFlavor()
{
os=$(grep -i "NAME=\"Amazon\ Linux\ AMI\"" /etc/os-release)
if [ -z "$os" ]; then
os=$(grep -i "NAME=\"Ubuntu\"" /etc/os-release)
if [ -z "$os" ]; then
os="UNKNOWN"
else
os="UBUNTU"
fi
else
os="CENTOS"
fi
printf $os
}
os=$(determineLinuxFlavor)
## About to start configuring send mail to relay through Gmail. ##
## @TODO: get the OS version and install dependencies based on OS
if [ $# -eq 5 ]; then
email=$1
password=$2
response=$3
choice=$4
personal=$5
else
# ask questions here
echo "## Enter the credentials of Gmail User account you wish to use. ##"
read -r -p "Enter the username of the Gmail account you are adding: " email
read -r -p "Enter the password of the Gmail account you are adding: " password
read -r -p "Would you like to send a test email? [y/N] " response
read -e -p "Would you like to check the log tail for errors? [y/n] " choice
read -e -p "Enter a personal email address to test the relay instalation: " personal
fi
## About to install the requiring dependencies... ##
if [ "$os" == "UBUNTU" ]; then
## Upgrading Ubuntu to the latest Sendmail Version. ##
apt-get install -y sendmail mailutils sasl2-bin > /dev/null 2>&1
elif [ "$os" == "CENTOS" ]; then
## Upgrading CentOS to the latest Sendmail Version. ##
yum -y install sendmail mailutils mailx sendmail-bin sendmail-cf cyrus-sasl-plain
else
Invalid Flavor of Linux
exit
fi
echo -e ' \t '
## Create Gmail authentication file in a folder in which you will add Gmail user name and password.
echo -e ' \t '
mkdir $authInfoPath
cd $authInfoPath
echo "AuthInfo: \"U:root\" \"I:$email\" \"P:$password\"" >> $idpass
makemap hash $idpass < $idpass
chmod 700 $authInfoPath
echo -e ' \t '
echo -e ' \t '
echo "## Gmail Authentication Info injection complete. ##"
echo "Backing up Sendmail config File."
cp $sendmail $sendmail.$date
echo "Injecting Gmail Relay Code into sendmail.mc file."
cat <<'eof' >/tmp/gmail.conf
# Adding config for gmail #
define(`SMART_HOST', `[smtp.gmail.com]')dnl
define(`RELAY_MAILER_ARGS', `TCP $h 587')dnl
define(`ESMTP_MAILER_ARGS', `TCP $h 587')dnl
define(`confAUTH_OPTIONS', `A p')dnl
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
FEATURE(`authinfo',`hash -o /etc/mail/authinfo/gmail-idpass.db')dnl
# End config for gmail #
eof
if [ "$os" == "UBUNTU" ]; then
sed -i $'/MAILER_DEFINITIONS/{e cat /tmp/gmail.conf\n}' $sendmail
elif [ "$os" == "CENTOS" ]; then
sed -i '/dnl MASQUERADE_DOMAIN(mydomain.lan)dnl/r /tmp/gmail.conf' $sendmail
fi
echo -e ' \t '
echo "## Injection of Gmail Relay Code into Sendmail.mc Complete. ##"
echo "Rebuilding Sendmail & Restarting Service."
make -C /etc/mail
/etc/init.d/sendmail restart
if [ "$os" == "UBUNTU" ]; then
mail="mail.log"
elif [ "$os" == "CENTOS" ]; then
mail="maillog"
fi
case "$response" in
[yY][eE][sS]|[yY])
echo -e "Mail Body - Test Message" | mail -s "TMBC is Mail Sending from CLI" -r $email $personal
[[ "$choice" == [Yy]* ]] && tail -n 10 /var/log/$mail || echo "Skipping log tail!"
;;
*)
echo "Skipping send test!"
;;
esac