Безопасность данных
Современные компании должны гарантировать своим клиентам, что их системы смогут противостоять несанкционированному доступу и предотвращать утечки данных, при этом оставаясь доступными для пользователей. В прошлом атаки злоумышленников происходили реже, но с появлением современных цифровых инструментов бизнес все чаще становится мишенью киберпреступников.
Безопасность данных — это практика защиты конфиденциальной цифровой информации от нежелательного доступа в сети. Комплексная стратегия включает три основных принципа: конфиденциальность, целостность и доступность.
Необходимо защитить свои данные, предоставив доступ к ним только проверенным лицам (сотрудникам или клиентам). Шифрование и грамотная организация предоставления прав доступа — два распространенных метода, помогающих сохранить конфиденциальность.
Definition & RFC
SFTP was developed in the 1990’s and is detailed thoroughly in this RFC Draft Specification .
Unlike File Transfer Protocol (FTP), STFP communicates over a Secure connection initiated through SSH2 and is a Packet-Based protocol, instead of a Text-Based protocol like FTP, which in turn will faster due to less data being transferred over the wire than FTP text-based protocol.
Unlike FTP/S, you cannot turn off encryption with SFTP, which is nice when you are trying to ensure that all connections are Secured and Encrypted for anyone transferring files.
With SFTP, files are transferred in-line over the Main Control Connection, rather than having to open a new, separate connection for transfers like FTP.
The resulting benefits of this method is a Single, Efficient and Secure connection transferring data through the firewall, resulting in a faster transfer speed.
One of the most overlooked advantages of using SFTP and its underlying protocol is the ability to deliver files with all of their attributes if needed, including permissions, Time/Date, Size and other information that isn’t available when using FTP.
SFTP Клиент
SFTP-клиент встроен в пакет OpenSSH.
Форма вызова команды:
sftp хост sftp host]] sftp host]] sftp -b batchfile host
В первой форме sftp подключается к удалённому серверу SFTP хост и переходит в интерактивный режим работы.
Окно WinSCP Commander в одном из режимов работы
Во втором случае sftp скачивает файл1 с сервера и записывает его в текущий каталог с под именем файл1 (или файл2, если это имя указано).
Третья форма, также как и первая, переводит sftp в интерактивный режим; с той только разницей, что работа на удалённом сервере начинается с определённого каталога.
В четвёртой форме после подключения к серверу выполняется batchfile, содержащий команды sftp. В качестве имени файла может быть указан символ -, в этом случае batchfile читается со стандартного потока ввода.
Подробнее о синтаксисе sftp можно прочитать в sftp(1).
Программа sftp использует в качестве транспорта ssh, и аутентификация на удалённом сервер выполняется средствами ssh. Если есть необходимость вместо ssh использовать другую программу, это можно сделать указав её имя в опции -S sftp.
В качестве SFTP-клиента для Windows может использоваться WinSCP, PSFTP из пакета PuTTY или кросс-платформенный ftp-клиент Filezilla.
Настройка SFTP-сервера в Windows с помощью OpenSSH
Настройка SFTP-сервер в Windows состоит из двух частей:
- Установка OpenSSH
- Открытие порта SSH для работы SFTP
Установка OpenSSH (и активация необходимых сервисов)
Загрузите OpenSSH с GitHub.
Распакуйте архив в папку Program Files.
Откройте PowerShell от имени администратора и вставьте следующую команду в окно, чтобы перейти к папке:cd»C\Program Files\OpenSSH-Win64».
Для работы SSH требуются две службы: sshd и ssh-agent. Чтобы установить их, введите следующую команду в окно PowerShell:powershell.exe-ExecutionPolicy Bypass-File install-sshd.ps1.
Вы должны увидеть сообщение «Службы sshd и ssh-agent успешно установлены».
Закройте окно PowerShell.
Вы можете запустить службы вручную или настроить их автоматическое открытие с помощью Services.msc
Это создаст папку
C\ProgramData\ssh с вашим ключом хоста, который имеет важное значение для работы службы.
Открытие порта SSH в брандмауэре Windows
- SSH использует порт 22 для передачи / аутентификации, который закрыт в Windows, потому что SSH не включен по умолчанию. Чтобы открыть его, откройте брандмауэр Windows из панели управления.
- Нажмите на Входящие правила (на левой панели).
- На правой панели нажмите новое правило, выберите Порт и нажмите Далее.
- Введите число 22 в поле «Определенные локальные порты» и нажмите «Далее».
- Выберите «Разрешить подключение», нажмите «Далее» и выберите «Частный» для опции сети.
- Дайте правилу имя. Например, SSH или OpenSSH.
- Нажмите на Готово.
SFTP Protocol
The SFTP protocol runs over the SSH protocol as a subsystem. It was originally designed by Tatu Ylonen for SSH 2.0 in 1997-1998. There is no separate SFTP port; it uses the normal SSH port.
The full documentation of the SFTP protocol can be found in the Internet-Draft draft-ietf-secsh-filexfer-02
The protocol supports multiple concurrent operations. Each operation is identified by a unique number assigned by the client, and servers response contains the same identifying number. Server may process requests asynchronously and may return responses out-of-order. For performance reasons, file transfer clients often send multiple requests before stopping to wait for responses.
Operations or packet types supported by the protocol include:
INIT: sends client version numbers and extensions to the server
VERSION: returns server version number and extensions to the client
OPEN: opens or creates a file, returning a file handle
CLOSE: closes a file handle
READ: reads data from a file
WRITE: writes data to a file
OPENDIR: opens a directory for reading, returning a directory handle
READDIR: reads file names and attributes from a directory handle
MKDIR: creates a directory
RMDIR: removes a directory
REMOVE: removes a file
RENAME: renames a file
STAT: returns file attributes given a path, following symlinks
LSTAT: returns file attributes given a path, without following symlinks
FSTAT: returns file attributes given a file handle
SETSTAT: modifies file attributes given a path
FSETSTAT: modifies file attributes given a file handle
READLINK: reads the value of a symbolic link
SYMLINK: creates a symbolic link
REALPATH: canonicalizes server-size relative path to an absolute path
The following response packets are returned by the server:
STATUS: indicates success or failure of an operation
HANDLE: returns a file handle upon success
DATA: returns data upon success
ATTRS: returns file attributes upon success
There is also an extension mechanism for arbitrary vendor-specific extensions. The extensions that are supported are negotiated using the INIT and VERSION packets.
EXTENDED: sends a vendor-specific request from client to server
EXTENDED_REPLY: sends a vendor-specific response from server to client.
Active Mode vs Passive Mode FTP: Which Is More Suitable For You?
There’s a reason why I opted to simplify those two diagrams above. I wanted to focus on the main difference between active mode and passive mode FTP data transfers. If you compare those two diagrams, one of the things that should really stand out are the opposing directions at which the second arrows (which also represent the data channels) are pointing to.
In this section, we’ll focus on those second arrows and the ports associated with them.
In the active mode, the second arrow is pointing to the client. Meaning, the client initially specifies which client-side port it has opened up for the data channel, and the server initiates the connection.
By contrast, in the passive mode, the second arrow is pointing to the server. Here, the server specifies which server-side port the client should connect to and the client initiates the connection.
There shouldn’t be any problem had there not been any firewalls in existence. But threats to information security are on the rise and hence the presence of firewalls is almost always a given. In most cases, clients are located behind a firewall or a NAT (which basically functions like a firewall). In such cases, only a select number of predefined ports are going to be accessible from the outside.
Remember that in an active mode configuration, the server will attempt to connect to a random client-side port. So chances are, that port wouldn’t be one of those predefined ports. As a result, an attempt to connect to it will be blocked by the firewall and no connection will be established.
In this particular scenario, a passive configuration will not pose a problem. That’s because the client will be the one initiating the connection, something that a client-side firewall won’t have any problem with.
It’s possible for the server side to have a firewall too. However, since the server is expected to receive a greater number of connection requests compared to a client, then it would be logical for the server admin to adapt to the situation and open up a selection of ports to satisfy passive mode configurations.
Подключение к SFTP с помощью файлового менеджера Ubuntu — Gnome Files
Приложение Gnome Files — один из наиболее часто используемых файловых менеджеров во всем Linux, поскольку многие распространенные дистрибутивы Linux выбирают Gnome Shell в качестве рабочего стола. Вот как с его помощью подключиться к SFTP-серверу в Ubuntu.
Для начала запустите на рабочем столе файловый менеджер Ubuntu. Когда он открыт, найдите кнопку «Другие места» и щелкните по ней. Когда вы нажмете эту кнопку, вы попадете в область «Другие места».
Внутри «Другие места» найдите текстовое поле «Подключиться к серверу» и щелкните его мышью. Затем введите адрес сервера. Например:
sftp: //192.168.1.203
После ввода IP-адреса (или имени хоста) в поле нажмите кнопку «Подключиться». Когда вы нажимаете эту кнопку, появляется всплывающее окно. Затем введите свое имя пользователя и пароль, затем снова нажмите «Подключиться».
После подключения вы увидите свой SFTP-сервер в приложении файлов Ubuntu. Перетащите файлы на сервер, чтобы загрузить их, и скопируйте их в другие папки на своем ПК, чтобы загрузить.
Производные
FTPS
Явный FTPS — это расширение стандарта FTP, которое позволяет клиентам запрашивать шифрование сеансов FTP. Это делается путем отправки команды «AUTH TLS». Сервер может разрешить или запретить соединения, которые не запрашивают TLS. Это расширение протокола определено в RFC . Неявный FTPS — это устаревший стандарт FTP, который требовал использования SSL или TLS-соединения. Было указано использовать порты, отличные от обычного FTP.
Протокол передачи файлов SSH
Протокол передачи файлов SSH (хронологически второй из двух протоколов, сокращенно SFTP) передает файлы и имеет аналогичный набор команд для пользователей, но использует протокол Secure Shell (SSH) для передачи файлов. В отличие от FTP, он шифрует как команды, так и данные, предотвращая открытую передачу паролей и конфиденциальной информации по сети. Он не может взаимодействовать с программным обеспечением FTP.
Тривиальный протокол передачи файлов
Trivial File Transfer Protocol (TFTP) — это простой протокол FTP с блокировкой, который позволяет клиенту получить файл с удаленного хоста или поместить файл на него. Одно из его основных применений — на ранних этапах загрузки из локальной сети , потому что TFTP очень просто реализовать. TFTP не хватает безопасности и большинства расширенных функций, предлагаемых более надежными протоколами передачи файлов, такими как протокол передачи файлов. TFTP был впервые стандартизирован в 1981 году, а текущую спецификацию протокола можно найти в RFC .
Простой протокол передачи файлов
Простой протокол передачи файлов (первый протокол, сокращенно SFTP), как определено в RFC , был предложен как (незащищенный) протокол передачи файлов с промежуточным уровнем сложности между TFTP и FTP. Он никогда не был широко принят в Интернете , и теперь IETF присвоил ему статус Исторического . Он работает через порт 115 и часто получает инициализацию SFTP . Он имеет набор команд из 11 команд и поддерживает три типа передачи данных: ASCII , двоичный и непрерывный. Для систем с размером слова , кратным 8 битам, реализация двоичного и непрерывного языков одинакова. Протокол также поддерживает вход с идентификатором пользователя и паролем, иерархические папки и управление файлами (включая переименование , удаление , загрузку , загрузку , загрузку с перезаписью и загрузку с добавлением ).
Особенности TCP
Главной особенностью TCP (Transmission Control Protocol) является то, что он гарантирует доставку всех отправленных пакетов. При этом проверяется целостность пакетов и их порядок. Если пакет потерялся или испортился, то получатель запросит эти пакеты у отправителя снова. Если пакеты пришли не в том порядке, то они на принимающей стороне всё равно обработаются в правильном. Этот механизм контроля доставки накладывает дополнительную нагрузку в виде увеличения служебной информации, которую нужно передать вместе с полезными данными.
TCP делит поток информации на сегменты. В одном сегменте может быть несколько пакетов. Каждый сегмент проверяется на целостность, и если все хорошо, отправляется подтверждение передающей стороне. Таким образом подтверждается не каждый пакет, а каждый сегмент, но в сегменте может оказаться и всего лишь один пакет.
Поверх протокола TCP работают многие прикладные протоколы:
- сайты (http, https);
- электронная почта (imap, pop, smtp);
- передача файлов (cifs, nfs, ftp);
- удаленные подключения (rdp, ssh).
TCP пакеты передаются не просто так, а в рамках установленного соединения – которое называют TCP сессией.
Подключение можно выполнить только если вторая сторона прослушивает порт, к которому будет выполняться подключение.
Коды ошибок FTP
Опубликовал(а): Иван Иван
в: 08.11.2010
Всем нам известно что такое FTP (англ. File Transfer Protocol — протокол передачи файлов). Иногда в процессе эксплуатации или настройки нужного нам сервиса возникают ошибки которые описаны кодами ошибок FTP.
При FTP операциях некоторые клиенты не только пишут коды сообщений, но и расшифровавают их. Но не всегда. Например, при установке соединения, мы получили от FTP клиента код ошибки 434, и что это значит?
Попробуем разобраться разбив код ошибки на цифры (каждая позиция отвечает за свой набор значений):
Первая позиция
- 1 это — команда принята к выполнению но все еще не завершена
- 2 это — команда завершена успешно
- 3 это — команда принята, но ожидается дополнительная команда
- 4 это — в данный момент команда не может быть выполнена
- 5 это — невозможно выполнить команду в принципе
Вторая позиция
- 0 это — синтаксическая ошибка в команде
- 1 это — информационное сообщение
- 2 это — означает что сообщение относится к управляющему соединению либо соединению данных
- 3 это — сообщение о аутентификации пользователя и его правах
- 4 — не определено
- 5 — состояние файловой системы
Третья позиция
Третья цифра окончательно специфицирует ошибку.
Код | Описание |
100 | Запрошенное действие инициировано, дождитесь следующего ответа прежде, чем выполнять новую команду. |
110 | Комментарий |
120 | Функция будет реализована через nnn минут |
125 | Канал открыт, обмен данными начат |
150 | Статус файла правилен, подготавливается открытие канала |
200 | Команда корректна |
202 | Команда не поддерживается |
211 | Системный статус или отклик на справочный запрос |
212 | Состояние каталога |
213 | Состояние файла |
214 | Справочное поясняющее сообщение |
215 | Выводится вместе с информацией о системе по команде SYST |
220 | Слишком много подключений к FTP-серверу (можете попробовать позднее). В некоторых версиях указывает на успешное завершение промежуточной процедуры |
221 | Благополучное завершение по команде quit |
225 | Канал сформирован, но информационный обмен отсутствует |
226 | Закрытие канала, обмен завершен успешно |
227 | Переход в пассивный режим (h1,h2,h3,h4,p1,p2). |
228 | переход в длинный пассивный режим (длинный адрес, порт). |
229 | Переход в расширенный пассивный режим (|||port|). |
230 | Пользователь идентифицирован, продолжайте |
231 | Пользовательский сеанс окончен; Обслуживание прекращено. |
232 | Команда о завершении сеанса принята, она будет завершена по завершении передачи файла. |
250 | Запрос прошёл успешно |
257 | «ПУТЬ» создан. |
331 | Имя пользователя корректно, нужен пароль |
332 | Для входа в систему необходима аутентификация |
350 | Запрошенное действие над файлом требует большей информации |
404 | Данный удалённый сервер не найден |
421 | Процедура не возможна, канал закрывается |
425 | Открытие информационного канала не возможно |
426 | Канал закрыт, обмен прерван |
434 | Запрашиваемый хост недоступен |
450 | Запрошенная функция не реализована, файл не доступен, например, занят |
451 | Локальная ошибка, операция прервана |
452 | Ошибка при записи файла (недостаточно места) |
500 | Синтаксическая ошибка, команда не может быть интерпретирована (возможно она слишком длинна) |
501 | Синтаксическая ошибка (неверный параметр или аргумент) |
502 | Команда не используется (нелегальный тип MODE) |
503 | Неудачная последовательность команд |
504 | Команда не применима для такого параметра |
530 | Вход не выполнен! Требуется авторизация (not logged in) |
532 | Необходима аутентификация для запоминания файла |
550 | Запрошенная функция не реализована, файл не доступен, например, не найден |
551 | Запрошенная операция прервана. Неизвестный тип страницы. |
552 | Запрошенная операция прервана. Выделено недостаточно памяти |
553 | Запрошенная операция не принята. Недопустимое имя файла. |
Вот и все, надеюсь этот материал поможет Вам лучше понимать FTP :))
SSHFS & Using SFTP for File Sharing
SFTP can furthermore be used for file sharing, similar to Windows file sharing and Linux NFS. The main difference is that SFTP is secure, and can be used reliably over Network Address Translation (NAT) and the public Internet.
Sshfs is a network file system for Linux that runs over the SFTP protocol. It can use any SSH server as a server, and use remote files over the network as if they were local files. The remote file system can be mounted and unmounted as desired. It is the most convenient way to mount remote files ad hoc, without the need for any configuration by the server administrator. SSH keys can even fully automate establishing the connection to the server. Basically, anyone who is able to log into the server can mount its file system, with access to those files the user has access to.
Other file sharing implementations using SFTP include:
Автономные бесплатные серверы SFTP и FTPS (установка не требуется)
11. Syncplify.me Micro SFTP-сервер
В дополнение к бесплатной пробной версии Syncplify также предлагает сервер Micro SFTP для Windows. Это полностью автономный портативный SFTP-сервер, который можно запустить с USB-накопителя. В отличие от бесплатной ознакомительной версии полноценного SFTP-сервера Syncplify, версия Micro-сервера полностью бесплатна для использования в любых ситуациях, включая производственное и коммерческое использование. Вам нужно будет перейти на платную услугу, если вы хотите удаленный доступ к каталогу файлов через SSH.
12. Xlight FTP сервер
Бесплатный FTP-сервер Xlight поставляется в различных версиях, включая портативную автономную версию, которая не требует установки. 32-разрядные и 64-разрядные версии будут работать на Windows 2000, XP, Vista, 7, 10, 2003 Server, 2008 Server и 2012 Server. Этот инструмент может получить доступ к вашей реализации Active Directory для проверки подлинности пользователя. Он даже имеет файлы локализации, которые позволят вашему защищенному FTP-серверу отображать текст на разных языках, или вы можете написать свой собственный языковой файл, если нужный вам язык еще не доступен.
13. Core Mini SFTP-сервер
Основной мини-FTP-сервер — это бесплатный SFTP-сервер, который не требует установки. Вы можете просто загрузить его, указать имя пользователя и пароль, каталог, который будет использоваться для передачи по FTP, и все готово. Имейте в виду, что SFTP-сервер будет работать как ваш пользователь, поэтому нет защиты от SFTP-пользователей, портящих ваши файлы. Обязательно укажите безвредный или пустой каталог для использования FTP.
История
Первоначально разработанные в рамках исследовательской сети в рамках передовых исследовательских проектов обороны США или DARPA, протоколы управления передачей или ранее известные как Программа управления передачей, были разработаны и запущены в 1974 году учеными Винтоном Грей «Винт» Серфом и Робертом Эллиотом Каном. Позже их назвали «Отцами Интернета». ARPAnet был затем разработан как зрелая система межсетевых протоколов с TCP в качестве основного основного протокола. Написанная в 1973 году, она является первой версией предшественницы современной TCP. Он был пересмотрен и официально задокументирован в запросе на комментарии 675, озаглавленном Спецификация Программы контроля за передачей через Интернет, в декабре 1974 года. Протокол управления передачей данных является одним из наиболее широко используемых протоколов вместе с Интернет-протоколом. С момента своего создания в 1974 году, многие изменения, дополнения и нововведения, внесенные в настоящее время в Запрос комментариев (RFC), привели к тому, что многие из них стали реальностью.
1С:Предприятие Бухгалтерия переход с редакции 2.0 на 3.0. Практика перевода информационной базы для работы в управляемом приложении. Промо
Из информационного выпуска 1С № 16872 от 08.07.2013г. стало известно об относительно скором необходимом переходе на редакцию 1С:Бухгалтерия 3.0. В данной публикации будут разобраны некоторые особенности перевода нетиповой конфигурации 1С:Бухгалтерия 2.0 на редакцию 3.0, которая работает в режиме «Управляемое приложение».
Публикация будет дополняться по мере подготовки нового материала. Публикация не является «универсальной инструкцией».
Update 3. Права доступа. 14.08.2013
Update 4. Добавлен раздел 0. Дополнен раздел 4. Добавлен раздел 7. Внесены поправки, актуализирована информация. 23.11.2013.
1 стартмани
Как подключиться к FTP-серверу через терминал Linux
В Linux к FTP можно подключиться через системное приложение «Терминал». Это очень похоже на использование командной строки в Windows. Последовательность абсолютно та же – набираем команду ftp и активируем ее нажатием на кнопку Enter. Потом пишем open ссылка_на_хост. Не забываем, что затем надо указать логин и пароль.
Вот примеры доступных опций:
- Is – отображение списка файлов и папок.
- get – скачивание файла.
- mget – скачивание документов определенного формата. Например, mget * – все данные в каталоге, mget *, php – файлы формата php.
- put – загрузка файла на ресурс.
- mput – загрузка нескольких документов единого формата.
- mkdir – создание нового каталога.
- rmdir – удаление каталога.
- delete – удаление файла.
- bye – завершение работы.
- close – выход из текущего сеанса и возврат в контекст командной строки FTP.
- status – отображение статуса FTP клиента.
В Linux предусмотрен и другой вариант подключения к FTP. Сначала надо установить нужный пакет, дав вот такой запрос:
sudo apt-get install curlftpfs
Следом нужно предоставить права на определенную папку:
sudo chmod 777 ~/ftp
Теперь производится монтирование ftp-директории:
sudo curlftpfs -o allow_other ftp://user: password@server.ru /home/virtdiver/ftp/
Если работать необходимо от имени пользователя, то вводится вот такая опция:
-o allow_other
Для размонтирования FTP-папки используем такую команду:
sudo umount ~/ftp
Добавляем пользователя ssh в chroot директорию
Для начала создадим нового системного пользователя без шелла. Вообще, это не обязательно делать, можно настроить в ssh подключение не системных пользователей. Но я не вижу проблемы с системным пользователем. В моем случае для одного пользователя нет смысла заморачиваться с какими-то дополнительными настройками. Добавляем пользователя:
# useradd -s /sbin/nologin sftpuser
Дальше редактируем конфиг ssh. Открываем /etc/ssh/sshd_config. Комментируем существующую строку и добавляем следом за ней еще несколько:
# mcedit /etc/ssh/sshd_config
#Subsystem sftp /usr/libexec/openssh/sftp-server Subsystem sftp internal-sftp Match User sftpuser ChrootDirectory /var/www/site.ru ForceCommand internal-sftp
Сохраняем и перезапускаем ssh. В случае с centos 6 команда такая:
# service sshd restart
Настройка подключения sftp с ограничением доступа за пределами конкретной папки закончена.
SSH
А что же с SSH? Говоря простыми словами, если предыдущие протоколы изначально разрабатывались для простой передачи файлов, что здесь можно говорить об изначальном создании защищенного протокола, создающего туннель между пользователем и сервером в любой среде передачи. О большой функциональности такого протокола говорить не стоит, однако если вы хотите получить самую высокую степень защиты, то этот протокол подойдет оптимально. Некоторые хостеры предоставляют доступ по такому протоколу за отдельную плату, поскольку кроме всего прочего протокол позволяет удаленно запускать любые программы на сервере. В этом его главное преимущество.
Процедура подключения похожа с предыдущим случаем, но с некоторыми отличиями: здесь нужно указывать порт и особые логин с паролем для доступа на сервер,а также потребуется свободно распространяемая и бесплатная программа PuTTY или WinSCP.
Passive Mode FTP
In passive mode, the client still initiates a command channel (control connection) to the server. However, instead of sending the PORT command, it sends the PASV command, which is basically a request for a server port to connect to for data transmission. When the FTP server replies, it indicates what data port number it has opened for the ensuing data transfer.
Here’s how passive mode works in a nutshell:
- The client connects from a random port to port 21 on the server and issues the PASV command. The server replies, indicating which (random) port it has opened for data transfer.
- The client connects from another random port to the random port specified in the server’s response. Once connection is established, data transfers are made through these client and server ports.
Сервер 1С:Предприятие на Ubuntu 16.04 и PostgreSQL 9.6, для тех, кто хочет узнать его вкус. Рецепт от Капитана
Если кратко описать мое отношение к Postgres: Использовал до того, как это стало мейнстримом.
Конкретнее: Собирал на нем сервера для компаний среднего размера (до 50 активных пользователей 1С).
На настоящий момент их набирается уже больше, чем пальцев рук пары человек (нормальных, а не фрезеровщиков).
Следуя этой статье вы сможете себе собрать такой же и начать спокойную легальную жизнь, максимально легко сделать первый шаг в мир Linux и Postgres.
А я побороться за 1. Лучший бизнес-кейс (лучший опыт автоматизации предприятия на базе PostgreSQL).
Если, конечно, статья придется вам по вкусу.