УСТАНОВКА И НАСТРОЙКА PURE-FTPD ПОД UBUNTU

УСТАНОВКА PURE-FTPD

Сначала, используя apt устанавливаем pure-ftpd пакет — он доступен в репозиториях по умолчанию:

sudo apt-get update
sudo apt-get install pure-ftpd

По завершении установки демон  будет запущен и слушать на 21 порту:

Подход к конфигурации демона pure-ftpd отличается от других программ тем, что параметры демона задаются полностью параметрами командной строки, а для формирования этих параметров, написана программа-обертка. Сама конфигурация pure-ftpd представляет из себя набор однострочных конфигурационных файлов — отдельный файл для каждого параметра.

Вот как выглядит конфигурация pure-ftpd:

cd /etc/pure-ftpd/conf/
ls -al
Результат выполнения команды будет следующего вида:

Каждый конфигурационный  файл описывает отдельный параметр командной строки демона pure-ftpd. Например, файл AltLog содержит формат и путь к журналу передачи (tranfer log file):

cat AltLog

Содержимое выглядит приблизительно так:

НАСТРОЙКА PURE-FTPD

Настройка основных параметров сервера (сервер слушает на порту 21 на всех доступных интерфейсах и будет использвать IP 12.34.56.78 и порты 4500-4600 для пассивного режима — следует настроить перенаправление на NAT маршрутизаторе, если сервер находится за ним):

sudo -i
echo ,21 > Bind
echo 12.34.56.78 > ForcePassiveIP
echo 4500 4600 > PassivePortRange

Настройка параметров безопасности:

echo yes > ChrootEveryone
echo yes > ProhibitDotFilesRead
echo yes > ProhibitDotFilesWrite
echo yes > NoChmod
echo yes > BrokenClientsCompatibility

Настройка ограничений:

echo 4 > MaxClientsPerIP
echo 20 > MaxClientsNumber

Теперь нужно решить какие будут использоваться методы авторизации. Имеются следующие варианты:

  • Unix Authentication (любой пользователь, имеющий системную учетную запись сможет зайти на FTP сервер)
  • PureDB авторизация использует отдельную базу виртуальных пользователей pure-ftpd.

Предпочтительнй использовать второй вариант, который мы и настроим. Итак, отключим Unix и PAM вторизацию, установим путь к PureDB базе пользователей и добавим PureDB как метод вторизации путем создаия символической ссылки в директории /etc/pure-ftpd/auth:

echo no > PAMAuthentication
echo no > UnixAuthentication
echo /etc/pure-ftpd/pureftpd.pdb > PureDB
ln -s /etc/pure-ftpd/conf/PureDB ../auth/50pure

Добавим системную группу и пользователя, с правами которых будут храниться файлы, выгружаемые на сервер виртуальными пользователями. Из соображений безопасности, этот пользователь не должен иметь домашнней директории  (-d /bin/null) и не иметь доступа к командной оболочке (-s /bin/false) :

groupadd -g 2001 ftpgroup
useradd -u 2001 -s /bin/false -d /bin/null -c "pureftpd user" -g ftpgroup ftpuser

ДОБАВЛЕНИЕ ПОДДЕРЖКИ TLS/SSL

Сгенерируем сертификат безопасности:

sudo apt-get install openssl
echo 1 > TLS
sudo openssl req -x509 -nodes -newkey rsa:1024 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem

Изменяем права доступа на сертификат, чтоб он не был доступен никому, кроме рутового пользователя:

sudo chmod 600 /etc/ssl/private/pure-ftpd.pem

В последний раз перезапускаем сервер для применения нашей свежей конфигурации:

sudo service pure-ftpd restart

Вот и все. Наш сервер настроен, осталось только добавить пользователей.

ДОБАВЛЕНИЕ ПОЛЬЗОВАТЕЛЕЙ В БАЗУ PUREFTPD.

Создадим нового пользователя, назовем его «pureusertest»:

sudo pure-pw useradd pureusertest -u ftpuser -g ftpgroup -d /home/pureftp/pureusertest -N 10

Программа попросит ввести пароль и его подтверждение.

Не забудьте выполнить команду pure-pw mkdb: она нужна для того, чтоб применить изменения, сделанные в базе виртуальных пользователей, по умолчанию находящуюся по пути /etc/pure-ftpd/pureftpd.passwd:

sudo pure-pw mkdb

Формат базы пользователей —  двоичный, для ускорения поиска в базе имеется индекс.

ПОЛУЧЕНИЕ ИНФОРМАЦИИ О ПОЛЬЗОВАТЕЛЯХ PURE-FTPD

Просмотр списка пользователей:

pure-pw list

Получение информации, касающейся определенного пользователя:

pure-pw show pureusertest

Если вы обратили внимание, что строка «Directory: /home/pubftp/pureusertest/./» заканчивается на ./ — не стоит переживать по этому поводу. Это всего-лишь chroot инструкция для данного пользователя, что обозначает, что он не может попасть в директории, находящиеся «выше».

Изменение пароля пользователя:

sudo pure-pw passwd pureusertest

После изменения пароля, не забудьте выполнить команду pure-pw mkdb:

sudo pure-pw mkdb

Вот и все. Pure-FTPd настроен. Если есть вопросы, замечания — пишите в комментах.

Источник: http://profhelp.com.ua

Multiple php 7.0 + 5.6 + ubuntu + nginx

документация по установке тут :
https://pehapkari.cz/blog/2017/03/27/multiple-php-versions-the-easy-way/

пхп 5.6 просто так на убунте 16.04 не ставит, а просит библиотеку libssl1.1
Берём отсюда:
https://debian.pkgs.org/sid/debian-main-amd64/libssl1.1_1.1.0e-1_amd64.deb.html

Прокси чекер

Общая логика такова:
1. В админке задаём урл ресурса с проксями, xpath-выражения для ip, port, type. По крону обходим все ресурсы, собираем адреса и кладем в базу.
2. Другой скрипт их постепенно чекает на анонимность, локацию и скорость. Полученный ответ записываем, в виде статуса: OK, TIMEOUT, DELETE. Со статусом DELETE удаляем через 1 день. Со статусом TIMEOUT проходим еще раз (в настройках ограничиваем количество таких обращений, и если прокси не ожил, ставим ему статус DELETE).
4. Выборку проксей с минимальным ответом и используем по назначению.

Для работы с xpath использовал плагин FF FirePath. После установки FirePath в FireBug появляется дополнительная вкладка.
Для проверки анонимности на сервер положим простой скрипт ip.php:

$ip = getenv(REMOTE_ADDR);
echo $ip;

Читать далее Прокси чекер

Cервер проверки подписи OpenSSL+ GOST

Мануал по настройке:

OpenSSL и ГОСТ. Настройка

OpenSSL и ГОСТ. Генерация ключей

Команды OpenSSL:
http://firstwiki.ru/index.php/%D0%9A%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D1%8B_OpenSSL

Получилось настроить OpenSSL с поддержкой алгоритмов gost.
В фуникции openssl_verify в качестве обязательного параметра нужно указывать публичный ключ.
Достать его из подписанного сообщения не получилось, посылать отдельно тоже.
Проприетарный криптопровайдер (КриптоПро) генерирует сертификат и ключи к нему в виде (header.key, masks.key, masks2.key, name.key, primary.key, primary2.key) криптоконтейнера, что не подходит для работы с OpenSSL. (вариант конвертации ключей, понимаемых в OpenSSL: https://habrahabr.ru/post/275039/ )
Capicom-master.tar

Поиск ближайших точек по координатам

http://zcentric.com/2010/03/11/calculate-distance-in-mysql-with-latitude-and-longitude/

SELECT office_address, office_coordinates, ((ACOS(SIN($lat * PI() / 180) * SIN(lat * PI() / 180) + COS($lat * PI() / 180) * COS(lat * PI() / 180) * COS(($lon - lon) * PI() / 180)) * 180 / PI()) * 60 * 1.1515) AS `distance` FROM `members` HAVING `distance`<=100 ORDER BY `distance` ASC

в yii2:

$query->select("*, ((ACOS(SIN({$params['lat']} * PI() / 180) * SIN(lat * PI() / 180) + COS({$params['lat']} * PI() / 180) * COS(lat * PI() / 180) * COS(({$params['lon']} - lon) * PI() / 180)) * 180 / PI()) * 60 * 1.1515) AS distance")
->having("distance <= {$params['radius']}") ->orderBy("distance ASC");

Использование ЭЦП на сайте при помощи capicom

Для аутентификации будем использовать старую добрую майкрософтовскую библиотеку capicom.

Описание:
https://msdn.microsoft.com/en-us/library/windows/desktop/aa376489(v=vs.85).aspx
https://msdn.microsoft.com/ru-ru/library/windows/desktop/aa376542(v=vs.85).aspx
https://msdn.microsoft.com/ru-ru/library/windows/desktop/aa376525(v=vs.85).aspx

Читать далее Использование ЭЦП на сайте при помощи capicom