Безпечні мережеві файлові системи для Linux: що роблять люди?


26

NFSv3 широко поширений, але модель безпеки за замовчуванням - це ... химерність . CIFS може використовувати автентифікацію Kerberos, але без POSIX семантики це не стартер. AFS ніколи не шифрував трафік на дроті і є krb4 - і в основному це мертвий проект. Фантазії нових експериментальних файлових систем ніколи не реалізуються або зосереджені на швидкості (і якщо вам пощастить, надійності даних) - наприклад, Luster використовує ту саму модель довіри клієнта, що і NFSv3. Для домашнього використання sshfs є чудовим, але це точно не масштабується.

І тоді, звичайно, є NFSv4, з sec = krb5p. Теоретично чудово, але через десять років, здається, він неспокійно використовується у реальному світі. Клієнт Linux щойно видалив експериментальний тег. А якщо поглянути на EMC Celerra, Isilon тощо, це все NFSv3. (Celerra підтримує NFSv4, але він дійсно похований у документації. Ісілон, мабуть, працював над додаванням RPCGSS підтримки до FreeBSD, тому, можливо, вона надходить, але зараз її немає.) Я навіть не можу позначити цю публікацію як "nfsv4", тому що я Я тут новий, і це буде новий тег .

Так, справді . Що ти все робиш?


Я хотів би сказати: "NFS3 over IPSEC", але не можу.
sysadmin1138

1
"NFS3 over IPSEC" допомагає вирішити проблему з бездротовим зв’язком, але не вирішує іншу фундаментальну проблему NFS: якщо клієнтська скринька отримує коріння або якщо ви перебуваєте в середовищі, де користувачі отримують корінь у власних системах, вони може банально себе представити будь-якому віддаленому користувачеві.
mattdm

Ось ви, новий тег;)
Cry Havok

1
AFAIK, Керберос був визначений для НФС
Хав'єр

2
Я не дуже впевнений у необхідності шифрування трафіку на дроті в середовищі локальної мережі (хоча автентифікація має бути зашифрована). Ви все одно повинні стежити за отруєнням ARP ...
Хуберт Каріо

Відповіді:


8

Оскільки це специфічне запитання (що ти все робиш), давайте відповімо на нього: нічого. Більшість адміністраторів та користувачів просто не турбуються про безпеку NFS, тому всі використовують NFSv3. Це, як правило, контрольоване середовище (в тому сенсі, що в мережі в першу чергу можуть приєднуватися лише відомі машини). Якщо когось зловживають зловживанням інфраструктурою, його звільняють або в'язницю.

Для даних, які ви дійсно не хочете, щоб хтось зміг їх прочитати, ви зашифруєте їх явно, наприклад, бази даних паролів Firefox, ssh-ключі або pgp-ключі. Ви робите це, оскільки знаєте, що адміністратор міг їх прочитати на файловому сервері, тому безпека мережевої файлової системи в будь-якому разі не допоможе.


14

Ви, здається, тут задаєте два питання:

Що ми насправді використовуємо? і що це робить?

Що я фактично використовую, це CIFS, у моїх випадках використання POSIX є менш важливим, тому у мене не було проблем. NFS3 використовується в областях, де безпека не важлива, наприклад, мій сервер встановлення SLES. І нарешті, sshfs / gvfs для простого обміну користувачем-землею. Шифрування проводової лінії не вважається необхідним, тому це не є важливим фактором для нас.

Що стосується іншого питання, то, здається, існує шість основних вимог до того, що ви шукаєте:

  1. Шифрує трафік на дроті.
  2. Шифрує автентифікацію.
  3. Семантика Posix.
  4. Сильне впровадження серверних ACL.
  5. Не є користувачем.
  6. Насправді використовується.

Я підозрюю, що пункти 5 і 6 будуть вбивцями тут, але тут йдеться (також, це пункт, коли таблиця була б дуже зручною, але розмітка / StackExchange не підтримує її).

NFSv3 + IPSec

  1. Зашифровані на дроті, передайте
  2. Немає зашифрованої аутентифікації, помилка
  3. Семантика Posix, пас
  4. Не вдалося застосувати сильне виконання серверних ACL, не вдалося
  5. Не користувальницька земля, пас
  6. Насправді використовується, передай

NFSv4 + Krb + IPSec

  1. Зашифровані на дроті, передайте
  2. Зашифрована автентифікація, пройти
  3. Семантика Posix, пас
  4. Сильне виконання серверних ACL, пас
  5. Не користувальницька земля, пас
  6. Насправді не використовується, невдача

CIFS

  1. Не зашифрований на дроті, помилка
  2. Зашифрована автентифікація
  3. Семантика Posix, пас (Samba & Kernel зараз, Windows має шар Posix з NT днів)
  4. Сильне виконання серверних ACL, пас
  5. Не користувальницька земля, пас
  6. Насправді використовується, передай

CIFS + IPSec

  1. Зашифровані на дроті, передайте
  2. Зашифрована автентифікація
  3. Семантика Posix, пас (Samba & Kernel зараз)
  4. Сильне виконання серверних ACL, пас
  5. Не користувальницька земля, пас
  6. Насправді не використовується, невдача

SSHFS

  1. Зашифровані на дроті, передайте
  2. Зашифрована автентифікація, пройти
  3. Семантика Posix, пас
  4. Сильне виконання серверних ACL, пас
  5. Є користувальницька земля, помилка
  6. Насправді використовується, передай

AFP / NetATalk

  1. Зашифровано на дроті, помилка
  2. Зашифрована автентифікація, пройти
  3. Семантика Posix, пас
  4. Сильне виконання серверних ACL, пас
  5. Не користувальницька земля, пас
  6. Насправді використовується, невдача

І я не торкаюся розподілених файлових систем там. Просто немає жодної єдиної речі, яка б все це робила. Деякі наближаються (CIFS), а деякі вже є, але ніхто їх не використовує (NFS4 + IPSec, CIFS + IPSec). Чомусь захищена мережева файлова система - це те, що протягом багатьох років зазнавало безлічі компромісів.


Ви могли б згадати "NFSv4 + Krb" і додати "7. Чи досить швидко це (тобто порівняно з тим же стеком протоколів без шифрування)?" як питання. Що, мабуть, буде невдалим для NFSv4 + krb5p, але передайте питання 1-6.
ін.

може бути час для нової захищеної мережевої файлової системи SNFS?
Двірник Unix

@ user37899 Проблема, як завжди, полягає в тому, щоб переконати постачальників приладів підтримувати її, а також організації, що їх розгорнути.
sysadmin1138

1
Нам дуже пощастило, намагаючись використовувати CIFS в режимі POSIX. Можливо, час це переглянути.
mattdm

FWIW Я використовую CIFS + IPsec, але не з семантикою POSIX. сервер є EMC Celerra, клієнти win7. Тунелі ipsec виконані в режимі «lan-to-lan» між cisco ASA (поруч із celerra) та вбудованим програмою win7 в ipsec.
Dan Pritts

3

Я вже багато років використовую openafs у виробництві, як з клієнтами Linux, так і з Windows. Він чудово працює, має активне співтовариство з розробки, і його було набагато простіше встановити та адмініструвати протягом останніх кількох років, оскільки різні дистрибутиви Linux включали упаковку для нього. У неї є бородавки, але я виявив, що вони компенсуються більшою адміністративною гнучкістю, можливістю відокремлювати клієнтів та серверів повільними посиланнями, простотою резервного копіювання за межами сайтів та іншими позитивними AFSizmi.

Одне, що мені особливо подобається, це запуск виробничих веб-серверів, орієнтованих на Інтернет на openafs, із закритими ACL. Без квитка на kerberos не існує жодного процесу на машині - навіть той, що працює як root -, який може записувати у файлову систему. Я не можу порахувати, скільки разів ми помічали напади, які цілком провалюються через цю просту міру.

Є декілька досить великих користувачів опенів - найбільший комерційний користувач, якого я знаю, - це Морган Стенлі.


1

Як щодо OpenAFS, який ще живий, і VPN під ним, оскільки єдиним на даний момент шифруванням є DES.


2
Я використовував OpenAFS у виробництві. Чутки про його живність сильно перебільшені.
mattdm

У цьому місяці з'явилися нові випуски, а до цього були досить регулярні оновлення для підтримки нових версій Windows та нових версій ядра Linux (найновіший випуск підтримує 3.0).
Хуберт Каріо

1

Я бачу, що багато людей у ​​цій темі говорять про приховування даних, тобто нападів, які не можуть прослухати ваші дані. Не менш важливо думати про цілісність та достовірність даних. Чи справді ці пакети nfs з вашого сервера nfs? Чи змінився пакет nfs під час транзиту?


NFS через IPsec піклується про це (на широких посиланнях), а моніторинг на отруєння ARP робить це в локальній мережі
Хуберт Каріо

хтось насправді використовує ipsec з успіхом?
Двірник Unix

1

Ну, мені здається, одна з цих розподілених файлових систем була б для вас. Я б не дуже хотів рекомендувати OpenAFS, так як він старий, ще не підтримує IPv6, ..

Я сам задоволений GlusterFS . Gluster досить зрілий, добре працює і має гарний набір функцій. Однак, як нещодавно обговорювалося в IRC, Gluster також не підтримує IPv6 стабільно. Ця функція запланована на 3,6 або 3,7.

Існує також проект під назвою HekaFS, який базується на Gluster, який додає більш вдосконалені функції аутентифікації та SSL. Це надзвичайно добре документоване і дуже добре розроблене.

Що може зацікавити вас, це XtreemFS , який призначений для глобальних обчислень в сітці, тому він постачається з SSL та іншими компонентами. Мій вибір щодо використання впав саме на Gluster, оскільки громада здається активнішою і, таким чином, краще задокументована.

Вони, звичайно, сумісні з позиціями.


0

Я використовую NFS. Але NFS від сервера до сервера виконується за допомогою спеціальної мережевої магістралі, тому шифрування не потрібне, а автентифікація є безглуздою. Просто встановіть кожен експорт, щоб надати спільний доступ до вибраного каталогу серверу на основі IP-адреси.


спеціальна мережа, доки хтось не заткнеться в рейковий перемикач за допомогою дротяного наконечника.
Двірник Unix

То тоді проблема фізичної безпеки. Як тільки вони опиняються в одній кімнаті з серверами, це все-таки гра.
Ганок

-2

З усією повагою ви повністю дивитесь на цю проблему неправильно, і вам слід відійти від консолі на кілька годин.

Практично все io зберігання незашифровано, оскільки це не має значення на цьому шарі стека абстракції. Сумніваюся? Покладіть крап на перемикач з парчі, і ви побачите, що волоконний канал, як і iscsi та nfs, - це все незашифрований безлад - за задумом. Вирішення цієї проблеми є середньою проблемою, а не проблемою з протоколом зберігання даних. Наприклад, хочете захищені та зашифровані nfs? Створений лан, який зашифрований, щоб вказати між клієнтом nfs та сервером за допомогою ipsec / ssl / tls або чистого апаратного рішення.


Я думаю, ви пропускаєте ключовий момент. Як зазначено в питанні, проблема полягає в моделі безпеки NFS. Хоча шифрування приємно, це, як ви кажете, вирішувана проблема. Велика проблема NFS полягає в тому, що після встановлення файлової системи в системі кожен, хто має кореневий доступ до цієї системи, може отримати доступ до будь-якого файлу в цій файловій системі, незалежно від права власності чи дозволів. Така система, як AFS або, теоретично, NFSv4 з sec = krbp5, вимагає надійних облікових даних для доступу до файлів, і таким чином являє собою значне підвищення безпеки. Укорінений клієнт NFS не зрівняється з масовим впливом даних.
larsks

1
Якщо ви не попросите користувача ввести облікові дані для кожного доступу, облікові дані будуть зберігатися. Користувач, котрий захищається корінням, швидше за все, легко відмовиться від збереженого ключа. Будь-яка мережева файлова система збільшить експозицію файлової системи до компромісу.
BillThor

@BillThor Це те, про що я думав .. Чи все ще відкрито атакувати, якщо облікові дані є в пам'яті ядра? Я думаю, що модуль ядра може бути завантажений, щоб прочитати будь-який фрагмент пам'яті ядра.
Роб Олмос

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

2
@BillThor: з kerberos ризик значно пом'якшується, оскільки зловмисник матиме доступ лише до файлових систем користувачів, які переслали свої квитки, і лише протягом життя цих квитків. За допомогою аутентифікації, заснованої на системі (a la nfsv3), root може отримувати доступ до файлів будь-якого користувача та керувати ними , навіть якщо цей користувач ніколи не мав нічого спільного з компрометованою системою.
mattdm
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.