Чаму агульны TAP VPN усё яшчэ патрабуе HTTPS на партале
TAP VPN аўтэнтыфікуе партнёра, а не сэрвіс за ім. Пакіньце праверку імя хоста на партале і ізалюйце суседзяў, якім не давяраеце.
Дзве прылады маюць сапраўдныя ўліковыя даныя VPN і дзеляць адзін аб’яднаны мостам сегмент Ethernet. Толькі адна з іх павінна адказваць за офісны партал, а другая ўсё яшчэ можа заявіць адрас партала ў гэтым сегменце. Тунель зрабіў сваю працу: ён аўтэнтыфікаваў абодвух партнёраў і зашыфраваў кожны шлях да сервера. Чаго ён не зрабіў — не засведчыў, хто з іх валодае імем сэрвісу, і менавіта праз гэтую прагаліну партал усё яшчэ патрабуе сапраўднага сертыфіката.
Што VPN на самай справе аўтэнтыфікуе
Рукапоціск VPN адказвае на адно пытанне: які партнёр завяршыў гэты тунель і з якім ключавым матэрыялам. Гэты адказ тычыцца кожнага партнёра і кожнага злучэння і нічога не кажа пра сэрвісы, якія партнёр пасля гэтага прадстаўляе. У сегменце TAP партнёр нават не адзін адрас, бо можа прадставіць любы MAC і любы IP, які мост гатовы вывучыць. Аўтэнтыфікацыя спыняецца на канцы тунеля, а не на праграме.
Падзяліце тры пытанні замест таго, каб зліваць іх у адно. У кожнага свой механізм і свой рэжым адмовы.
| Question | Answered by |
|---|---|
| Which peer sent this packet? | VPN transport authentication |
| Which device owns this IPv4 address? | ARP, trusted only as far as the segment |
| Which service am I talking to? | Application TLS and hostname validation |
Разгортванне можа мець цалкам аўтэнтыфікаваны тунель і цалкам неаўтэнтыфікаваны сэрвіс за ім. Яно таксама можа мець правераны сертыфікат на хосце, адрас другога ўзроўню якога заяўляе іншы партнёр, і таму ў праекце павінны быць абодва кантролі, а не адзін замест другога. Табліца — гэта ўвесь аргумент у трох радках.
ARP у агульным сегменце — не даведнік
ARP супастаўляе адрас IPv4 з MAC на лакальным звяне і прымае адказы ад каго заўгодна ў гэтым звяне. У дапушчальным аб’яднаным сегменце партнёр можа заявіць адрас, які належыць іншай прыладзе, і мост перасылае кадры таму, хто адказаў апошнім. Шыфраванне кожнага кліенцкага шляху да сервера гэтага не мяняе, бо кадры расшыфроўваюцца да таго, як трапіць у мост. Мяжа даверу ARP — гэта сегмент, а не тунель.
Паглядзіце, што хост на самай справе вывучыў: ip neigh show пералічвае бягучыя супастаўленні і іх стан, а запіс, які падчас звычайнай працы перамыкаецца паміж двума адрасамі MAC, — гэта сімптом, які варта даследаваць, а не адкідваць. У здаровым невялікім сегменце такія запісы доўга застаюцца стабільнымі.
Ізаляцыя партнёраў і палітыка моста існуюць менавіта для гэтага выпадку. Маршрутызаваны дызайн звычайна лепшы адказ, калі сэрвіс толькі IP, а прылады не маюць ніякіх прычын бачыць кадры адна адной.
Трымайце праверку сертыфіката там, дзе знаходзіцца сэрвіс
TLS праграмы адказвае на пытанне, на якое тунель не можа: ці гэта той сэрвіс, да якога я хацеў дабрацца. Браўзер звярае імя хоста з сертыфікатам, і гэтая праверка — адзіная частка ланцуга, якая называе партал, а не партнёра.
Паглядзіце, што прадстаўляе сервер, перш чым лічыць папярэджанне касметычным. openssl s_client -connect portal.example.internal:443 -servername portal.example.internal друкуе ланцуг і альтэрнатыўныя імёны суб’екта. Калі набранага вамі імя няма ў гэтым спісе, папярэджанне правільнае і выпраўляць трэба сертыфікат. Звычка карыстальнікаў праходзіць папярэджанне без разбору ператварае працоўны кантроль ва ўпрыгожанне.
Кіраўніцтва па аб’яднанні OpenVPN апісвае мадэль Ethernet і палітычныя варыянты вакол яе, і гэта правільны даведнік для таго, што сегмент павінен дазваляць. Прачытайце яго перад паслабленнем правіла моста, бо апісаная там мадэль — гэта тое, што мяркуе кожная праверка вышэй.
Вырашыце, ці павінны гэтыя партнёры наогул дзяліць сегмент
Самае таннае выпраўленне — звычайна перастаць дзяліць другі ўзровень, калі патрабаванне толькі дасяжнасць IP. Маршрутызаваны VPN дае кожнаму кліенту свой адрас, выдаляе агульны дамен шырокавяшчання і ператварае трафік паміж партнёрамі ў палітычнае рашэнне замест прадвызначанага. Тады ў партала ёсць адзін адрас для абароны і няма суседзяў, якія могуць яго заявіць.
Калі сегмент павінен застацца, праверце наладу на баку сервера, якая дазваляе кліентам дасягаць адзін аднаго: grep -n client-to-client /etc/openvpn/server.conf. Калі яна адключана, кліенцкі трафік ідзе праз сервер і можа фільтравацца там. Калі яна ўключана, партнёры абменьваюцца кадрамі непасрэдна праз мост, і вашыя пункты фільтрацыі — мост і файрвол хоста.
Запішыце, на якія аховы кожны хост на самай справе абапіраецца: аўтэнтыфікацыя тунеля, ізаляцыя сегмента або TLS праграмы. Хост, які абапіраецца на ўсе тры, — у парадку. А хост, які абапіраецца на першую і лічыць, што дзве іншыя даліся з ёй, — гэта той, хто ўрэшце падае няправільны змест.