NFS извоз закључан на VPN адресу: шта то не доказује
Правило извоза проверава одакле је пакет дошао; AUTH_SYS тврди локални UID, а Kerberos аутентификује корисника. Одлучите шта је вашој датотечној служби потребно.
Домаћин извози директоријум на VPN адресу, монтирање успева и пројекат се записује као аутентификован. Оно што то правило заиста ограничава јесте одакле пакети изгледају да долазе. Да ли је особа која води датотечну операцију она за коју се представља зависи од безбедносног профила NFS, а код већине оваквих извоза нико га није променио у односу на подразумевано.
Три идентитета могу се појавити у једном захтеву
VPN партнер носи регистровани идентитет, попут клијентског сертификата или партнерског кључа. Унутрашњи IP пакет носи изворну адресу. Датотечна операција носи оне корисничке акредитиве које пружа њен NFS механизам. Пројекат који адресу третира као замену за сва три тихо је претпоставио управо онај део који је требало проверити.
| Identity | What it proves | What it does not |
|---|---|---|
| VPN peer | Which peer was accepted by the tunnel | Which user runs on that machine |
| Inner source address | Where the packet appears to originate | That only the intended client can use it |
| NFS credential | What the file service believes about the caller | Anything, if the flavour only asserts local IDs |
Записивање та три реда је цела вежба. Највећи део расправе о томе да ли је извоз безбедан руши се када постане јасно у ком реду живи која контрола.
Власништво над адресом је детаљ имплементације
Пролаз може прихваћеном партнеру доделити тунелску адресу или му одобрити рутирану подмрежу. Да ли имплементација затим одбија пакет чије унутрашње извориште припада другом клијенту је својство те имплементације, и вреди то проверити уместо претпоставити.
Код сервера у корисничком простору традиционалног Community OpenVPN може, на пример, да одбије извориште повезано са другим клијентом пре него што се пакет достави кроз TUN уређај. То је провера власништва над адресом са стварном вредношћу, и још увек није аутентификација NFS корисника, јер ништа не говори о томе који рачун обавља операцију.
Превођење изворишта нагриза и то. NAT пролаз може сваког клијента представити једном адресом, и тада правило извоза не може да разликује људе иза ње. Привидна прецизност правила тада постаје измишљотина коју одржава дијаграм. Ако је извоз важан, држите адресирање изричитим уместо да преводилац одлучује ко се броји као ко.
Прочитајте безбедносни профил пре него што поверујете извозу
Red Hat смернице за NFS раздвајају sec=sys, који користи локалне UNIX UID-ове и GID-ове кроз AUTH_SYS, од Kerberos режима. krb5 додаје аутентификацију корисника, krb5i додаје заштиту интегритета, а krb5p додаје заштиту приватности саобраћаја.
AUTH_SYS акредитиви садрже поља попут UID-а позиваоца и идентификатора група, и RFC 5531 јасно упозорава да тај профил сам по себи не пружа безбедност и зависи од спољашње заштите. Његово покретање унутар VPN-а пружа заштиту преноса и ништа не мења у тврдњи унутар пакета.
exportfs -v
showmount -e nfs.example.internal
Прочитајте профил у том излазу пре листе клијената. Извоз који изгледа ограничен може бити ограничен само адресом док сваки позивалац и даље тврди који год UID жели.
Изаберите модел, па задржите дозволе
Изаберите модел аутентификације датотечне службе који одговара клијентима којима заиста управљате. Kerberos захтева идентитет и распоређивање службе иза себе, тако да промена једне опције монтирања није миграција и једноставно ће пропасти док не постоје Kerberos домен, принципали и keytab датотеке.
У оба модела задржите дозволе извоза и ауторизацију датотечног система које ограничавају шта аутентификовани принципал сме да ради. Аутентификација вам каже ко пита; ауторизација одлучује да ли одговор треба да буде да. Стапање тога двога у једну поставку је начин на који миграција на крају даје више него што је давала стара конфигурација.
Користите правило адресе за његову стварну сврху
Ограничавање службе на одобрени пут и изворишта остаје вредно, укључујући политику улаза домаћина када VPN крајња тачка и NFS сервер деле машину. Правила која прослеђују саобраћај не уређују захтеве усмерене на службу која ради локално на истом домаћину. Та празнина објашњава изненађујуће много извоза који су требали бити приватни. Проверите локалну политику улаза изричито уместо да претпостављате да је правила тунела покривају.
Проверите да други интерфејс или пролаз са превођењем изворишта не може неочекивано да задовољи правило, и узмите то као разлог да утврдите порекло, а не као тврдњу да кршење адресе гарантује радно монтирање.
Спроведите три случаја прихватања уместо једног. Почните са одобреним клијентом који делује као одобрени корисник, затим поновите са партнером који никада није одобрен, а потом покушајте нешто што одобрени корисник још увек не сме. Затим питајте шта се мења ако овлашћени клијент буде компромитован, јер аутентификација преноса не чини сваки процес на тој машини поузданим. Украдени сертификат и радознао локални рачун различити су проблеми са различитим контролама.