Архив метки: установка

SSH клиент из браузера на FreeBSD

Задача: получить доступ по SSH к серверу через браузер.

Ставим shellinaboxd:

cd /usr/ports/www/shellinabox
 make install clean

в /etc/rc.conf

shellinaboxd_enable="YES"
 shellinaboxd_port="4200"

В /usr/local/etc/rc.d/shellinaboxd отключаем возможность удаленного подключения (т.е. разрешаем только localhost):

command_args="--user=${shellinaboxd_user} --group=${shellinaboxd_group} --port=${shellinaboxd_port} --background=${pidfile}"

изменяем:

command_args="--user=${shellinaboxd_user} --group=${shellinaboxd_group} --port=${shellinaboxd_port} --background=${pidfile} --localhost-only"

Запускаем сервис:

/usr/local/etc/rc.d/shellinaboxd start

Далее настраиваем apache для получения строки запуска SSH вида http://www.domen.ru/shell. Устанавливаем порты:

cd /usr/ports/www/apache22
 make config

Выбираем mod_proxy и mod_proxy_http

make deinstall
 make reinstall
 /usr/local/etc/rc.d/apache22 restart

В /usr/local/etc/apache22/httpd.conf добавляем:

LoadModule proxy_module libexec/apache22/mod_proxy.so
 LoadModule proxy_html_module libexec/apache22/mod_proxy_html.so
 LoadModule proxy_http_module libexec/apache22/mod_proxy_http.so

В виртуальные хосты apache:

ProxyPass /shell/ http://localhost:4200/
ProxyPassReverse /shell/ http://localhost:4200/

И снова перезапускаем:

/usr/local/etc/rc.d/apache22 restart

Установка Synapse и отправка письма с вложением..

  • Скачиваем исходники с http://synapse.ararat.cz/doku.php/download
  • Копируем папку lib в расположение вашего проекта
  • В свойствах проекта Lazarus: Проект-Параметры проекта-Пути-Другие модули добавляем путь куда положили содержимое lib.

На этом все. Теперь достаточно после uses добавлять необходимые для использования компоненты. Вот так например выглядит простейший пример отправки письма с вложением.

function SendMail (Host, Subject, pTo, From , TextBody,
                HTMLBody, login,password,filename : string) : boolean;
var Msg : TMimeMess; // сообщение
    StringList : TStringList; // содержимое письма
    MIMEPart : TMimePart; // части сообщения (на будущее)
begin
    Msg := TMimeMess.Create; // создаем новое сообщение
//      IdealCharsets:=[CP1251];
//      Msg.Header.CharsetCode:='CP1251';
      StringList := TStringList.Create;
      try
        // Добавляем заголовки
        Msg.Header.Subject := Subject;// тема сообщения
        Msg.Header.From := From; // имя и адрес отправителя
        Msg.Header.ToList.Add(pTo); // имя и адрес получателя
        // создаем корневой элемент
//        MIMEPart := Msg.AddPartMultipart('alternative', nil);
          Msg.AddPartMultipart('', nil);
        if length(TextBody)=0 then
        // если формат HTML
          begin
            StringList.Text := HTMLBody;
            Msg.AddPartHTML(StringList, Msg.MessagePart);
          end
        else
        // если текстовый формат
          begin
            StringList.Text := TextBody;
            Msg.AddPartText(StringList, Msg.MessagePart);
          end;
          if filename<>'' then
            Msg.AddPartBinaryFromFile(filename,Msg.MessagePart);

        // Кодируем и отправляем
        Msg.EncodeMessage;
        // Отправляем.
        if smtpsend.SendToRaw(From,pTo,Host,Msg.Lines,login,password) then
            SendMail:=true
        else
            SendMail:=false;

     finally
       Msg.Free;
       StringList.Free;
     end;
end;