Захист файлової системи для безпечного сервера SFTP


12

Це може не здаватися питанням розвитку, але по суті це так. Дозвольте пояснити, як. Наша основна увага в розвитку - це динамічні змістові сторінки. Деякі наші клієнти попросили нас дозволити їм місця на наших серверах (які вони платять) за їх старий статичний вміст. Ми використовуємо для цього, передаючи клієнту ftp-акаунт в інший домен. (наприклад, домен Клієнта - customer.com, але вони отримували доступ до їх статичного вмісту через otherdomain.com/customerstatic).

Тепер ми хочемо збільшити безпеку, надаючи клієнтам sftp акаунти на своїх Linux серверах. Я використовую openssh / sftp-сервер у своєму середовищі оболонки, тому вони не можуть увійти або виконати команди.

Проблема полягає в тому, що за своєю природою багато файлів файлової системи за замовчуванням (drwxr-xr-x), що означає, що будь-який користувач зможе прочитати вміст каталогу та, можливо, деякі файли. Я не думаю, що зміна всієї файлової системи на -rwxr-x - x є розумним кроком, оскільки я не знаю, скільки системних файлів знадобиться для дозволу читання.

Хтось стикався з цим питанням у минулому. Якщо є, чи могли б ви просвітити шлях?

Дякую


Хороше запитання та стисла повна відповідь - модератор, ймовірно, повинен змінити назву та перетворити її на не вікі-питання.
MikeyB

не можна скасовувати вікі питання; вибачте
Джефф Етвуд

Відповіді:


22

SFTP від ​​природи не є небезпечним; пускати їх у вашу всю файлову систему є. Перевірте це, щоб побачити, як ви можете дозволити доступ до SFTP на хронізованій основі, який заблокує каталоги, до яких вони можуть отримати доступ, скажімо, до своїх домашніх каталогів або куди ви хочете, щоб вони завантажили.

У Linux я звернув би увагу на цю частину (налаштування / etc / ssh / sshd_config):

  Match Group sftponly
         ChrootDirectory %h
         ForceCommand internal-sftp 
         AllowTcpForwarding no

Це означає, що будь-хто в групі користувачів «sftponly» буде обмежений у своїх домашніх каталогах.

Докладніше див. За посиланням, а також прочитайте сторінку sshd_config. Сподіваюся, що це допомагає.


Крім того, вам може знадобитися сказати OpenSSH використовувати його, internal-sftpколи клієнт вимагає підсистему sftp - можливо, вона була налаштована на використання зовнішньої sftp-serverпрограми. Для цього додайте або змініть рядок Subsystem sftp internal-sftpу головному розділі файлу конфігурації (не під Matchрозділом).
Нейт

Джош, ти коли-небудь придумував спосіб зробити так, щоб це не вимагало кореневої власності на домашні каталоги користувачів?
Метт Сіммонс


1

Коли ви говорите "Багато файлових систем за замовчуванням мають 755 дозволів", це фактично означає, що umask за замовчуванням встановлено на 022. Ви можете змінити цей за замовчуванням (для нових файлів), встановивши umask на 027, що зробить дозволи за замовчуванням 750, або встановіть umask на 007, що зробить дозволи 770 за замовчуванням.


0

Ви можете розглянути можливість створення сервера OpenVZ, а потім створити окремий невеликий VM ftp / sftp 'контейнер' для кожної компанії. Це робить їх усі окремими, і коли ви вішаєте OpenVZ, це дуже зручно для подібних дрібниць.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.