Cloudflare tunnels – bezpieczny dostęp do aplikacji

Gdzie jest kłopot?

 Często jak już postanawiamy używać jakiejś aplikacji czy to użytek własnej organizacji czy własny czy nawet publicznie stajemy przed pytaniem jak wystawić to na świat. Możemy wydzierżawić jakoś serwer lub maszynkę wirtualną u jednego czy drugiego dostawcy takich usług. To częściowo rozwiązuje sprawę bo na ogół dostajemy w komplecie publiczne IP, ktoś się tym serwerem zajmuje i to fajna sprawa. Nadaj jednak nie jestem fanem wystawiania publicznie wewnętrznych aplikacji wykorzystywanych przez nasze organizacje. Dodatkowo często i tak mamy już u siebie jakieś serwery z aplikacjami lub serwery plików.

 

Zawsze możemy się zdecydować na wykupienie stałego publicznego IP w naszej siedzibie i wystawienia tam swojej aplikacji ale wtedy pozostaje nam zabawa z firewall z certyfikatem SSL. No i upubliczniamy nasze adresy IP i narażamy się ataki DDOS utrudniające, eufemistyczni mówiąc, życie nam i użytkownikom naszej aplikacji. Jasne najlepiej schować wszystko w sieci wewnętrznej i dać dostęp tylko przez VPN – TAK ale można a czasem trzeba trochę inaczej.

 

Dlaczego tunel Cloudflare

 Z pomocą przychodzi nam Cloudflare i ich usługa tuneli. Wspomnę tylko że nie jest to materiał sponsorowany mówię o tym ponieważ uważam, że to bardzo ciekawa usługa i to dostarczana przez firmę z dobrą renomą. W dodatku naprawdę usługi wydają się dobre, łatwe do konfigurowania no i nie bez znaczenia w ograniczonym zakresie całkiem za darmo. Ale sporo to takie fajne i bezpłatne to dlaczego to robią pewnie zapytacie. No właśnie to już raczej pytanie bezpośrednio do nich. Moim zdaniem jest to element zachęcenia do korzystania a rozszerzonych fikcjonalności. Nie oszukujmy się jak będziemy mili spory ruch na naszej usłudze czy stronie to pewnie będziemy na niej zarabiać a jak będziemy zadowoleni to i tak zapłacimy. Dodatkowo Cloudflare jest znany takich swoich usług jak ochrona przed atkami DDOS i nie tylko. Maja również darmową usługę DNS potrafiącą filtrować różne zagrożenia ale i pornografię zresztą zrobiłem o tym materiał.

 

Jak to działa

Wskazujemy serwery Cloudflare jako serwery DNS dla naszej domeny. To sprawia, że całością DNS i certyfikatami zajmie się za nas Cloudflare. Następnie w miejscu gdzie mamy naszą usługę którą będziemy chcieli wystawić publicznie, np. TrueNAS lub inny serwer, instalujemy specjalną aplikację, usługę , serwis, demona nazwa nie ma tu znaczenia. Ta aplikacja łączy się do serwerów Cloudflare dedykowanym dla nas szyfrowanym tunelem.

 

To sprawia, że serwery Clouflare maja bezpośredni dostęp do naszej usługi bez potrzeby dedykowanego czy nawet stałego IP.
Po porwanym skonfigurowaniu jeżeli będziemy się chcieli dostać na przykład do naszego Nextcloud z Internetu to nasza przeglądarka odwoła się do serwera Cloudflare, ten przez stworzony tunel odwoła na do naszego schowanego głęboko, głeboko w piwnicy serwera z naszymi plikami i zaserwuje żądane pliki. Wszystko to z legitnym certyfikatem. Piękna sprawa. Co może pójść nie tak.

 

Bezpieczeństwo rozwiązania

 A no może coś pójść nie tak, i to kilka rzeczy.
To zależy od poziomu paranoi administratora i wagi tego co tam staramy się upublicznić czy schować zależy jak na to spojrzeć.
Pamiętajmy że w tej sytuacji w praktyce Cleoudflare staj się naszym proxy i będzie miał bezpośredni dostęp do przetwarzanych danych. Co prawda będzie to transmisja szyfrowana SSL ale między urządzeniem użytkownika a właśnie serwerem Cloudflare który to musi te dane rozpakować i przesłać do naszego serwera.

 

W praktyce sami instalujemy sobie tzw atak Man-in-the-middle. Poruszam ten temat nie po to żeby nie korzystać z tej usługi tylko, żeby brać pod uwagę wszystkie za i przeciw. Oznacza to, że z góry musimy zakładać uczciwość i zachowanie dobrych praktyk Cloudflare. Dodatkowo taka aplikacja Cloudflare instalowana w naszej sieci daje dostęp do WSZYSTKICH zasobów naszej sieci dostępnej z serwera na której jest zainstalowana. Jest to przydatna funkcjonalność co zaraz pokażę w laboratorium ale i olbrzymie niebezpieczeństwo. W praktyce przejmując nasze konto Cloudflare można wystawić na świat każdą usługą do której ma dostęp serwer z aplikacją, czy to jakiś panel administracyjny, czy panel naszego rutera.

 

To prowadzi do przynajmniej dwóch oczywistych wniosków. Pierwszy zawsze używaj dwu etapowej weryfikacji do logowanie i to nie tylko do Cloudflare. Drugi nie możemy zaniedbywać bezpieczeństwa również w naszych sieciach wewnętrznych. Drugim Zagrożeniem jest to, że może ktoś podkraść nam token tunelu i zamiast nas serwować swoje treści zamiast właściwych ale to pewnie szybko by wyszło na jaw.

 

Ostatni fragment nieco ujawnił moją paranoję bo mimo wszystko uważam, że to fajna usługa i warto jej używać zwłaszcza przy drobnych projektach.

 

Z zalet o których warto wspomnieć jest możliwość autoryzacji dostępu do naszej usługi dostępnej publicznie. Na przykład dostęp tylko dla użytkowników posiadających mail w określonej domenie czy określone IP i kilka innych to też pokażę. I może wspominałem głównie o wadach to na zestawienie wad i zalet zapraszam na końcu materiału do podsumowania.

 

Podsumowanie

W krótkich słowach rozwiązanie:

+ brak konieczności posiadania publicznego IP

+ brak konieczności konfigurowania firewall, sieci, ruterów

+ darmowy, automatyczny certyfikat SSL

+ ochrona przed atakami DDOS i nie tylko

+ możliwa autoryzacja dostępu

+ prostota konfiguracji

+ darmowy w mniejszych projektach

 

– brak informacji w logach o rzeczywistych użytkownikach.

– ryzyko dostępu do naszej sieci

 

A jeżeli usługa jest naprawdę krytyczna to pytanie czy w ogóle powinniśmy ją wystawiać publicznie.

 

 

Jeśli chcielibyście dowiedzieć się więcej o TrueNAS napiszcie do nas. Opowiemy Wam jak działa i dlaczego warto?