Ahududu Pi'yi korumak için ne yapılmalı?


82

İnternete bağlı onbinlerce Raspberry Pi'nin olması, özellikle de çoğu kişi Pi sunucularını ağ sunucusu yapmak için kullanırken, küçük bilgisayarlara lezzetli şeyler yapmak isteyenlerin ilgisini çekecektir. Linux sağlam bir güvenlik sistemi dışında sağlam bir işletim sistemidir, ancak yalnızca şifreyi değiştirmenin yanı sıra, cihazdaki internete yönelik hizmetleri barındırmayı planlıyorsam Raspberry Pi'yi "sertleştirmek" için ne yapılmalı?

Eben Upton, "on binlerce" konuşmamı desteklemek için, "Raspberry Pi, temel bilgisayar modüllerinin 200.000'in üzerinde sattığını ve şu anda günde 4.000 birim sattığını" söyledi . Bu 200.000’den onbininin internete bağlı olduğunu varsaymak muhtemelen güvenlidir. İnternet bağlantılı onbinlerce kişinin Ahududu Pis'e halka açık bir web servisine ev sahipliği yaptığını varsaymak daha az güvenlidir, ancak korsanların coşku potansiyeli hala mevcuttur.


3
Bağlantılı “on binlerce” olmasına rağmen, şu anda mevcut 3 ayrı Linux dağıtımının (farkında olduğum) olduğunu ve hatta birkaç linux dışı proje olduğunu düşünüyorum. Bu, hacker'ın bakış açısını etkiler. Yine de güvenlik önemliyse, dağıtımınızı güncel tutun ve gerekirse cihazınızı güvenlik duvarının arkasında tutun.
RLH

İyi nokta RLH Ahududu Pi'nin cevabında bahsettiği Raspberry Pi'nin saldırı yüzeyi hakkında daha iyi bir fikir vermek için vahşi doğada Ahududu Pis sayısını destekleyen soruya biraz ek bilgi ekleyeceğim.
Dan B,

@DanB Saldırı yüzeyi Pi sayısının bir işlevi değil, saldırı için uygun sistem ve hizmetlerin sayısıdır. en.wikipedia.org/wiki/Attack_surface
Steve Robillard

@SteveRobillard Yorumda net değildim, kusura bakma ama yapılan düzenlemede soruya yaptığım düzenlemede, kamuya açık hizmetleri barındıran ve bu nedenle saldırı için uygun bir hizmet sunacak nitelikte bir biçimde kaynatmaya çalıştım .
Dan B,

SSH kullanırken ahududu pi'nizi nasıl güvence altına alacağınız konusunda kısa bir rehber buldum, çok temiz görünüyor. -> öğretici
Dominik Aziz

Yanıtlar:


54

Bilgisayarı güven altına almak basit bir işlem değildir, konuyla ilgili tüm kitaplar yazılmıştır. Pi'nin büyüklüğü olası bir saldırgana sunulan güvenlik tehdidini veya saldırı yüzeyini azaltmaz. Sonuç olarak, ilgili adımları anlatacağım ve daha ayrıntılı talimatlara ve derslere bağlantılar sunacağım.

Hangi dağıtımı kullandığınızdan bahsetmediğiniz için, önerilen Raspbian Distro'yu alacağım.

  1. Varsayılan şifreyi değiştirin. Raspbian dağıtımı bunu ilk başlangıç ​​betiğinde bir seçenek olarak içerir. Bunu yapmadıysanız , değiştirmek için passwd komutunu kullanabilirsiniz. Güçlü bir şifre seçtiğinizden emin olun .
  2. Kullanılmayan hizmetleri devre dışı bırakın . Önerilen Raspbian dağıtımının Apache web sunucusunu içerdiğini ve başlangıçta etkinleştirildiğini gördüm (birisi bunu onaylayabilir) . Gerçekten çalışan bir web sunucusuna ihtiyacınız var mı? Değilse devre dışı bırakın. Apache mutlaka çalıştırmak gerekir yoksa bunu emniyete ve diğer hizmet (örneğin FTP, Nginx, MySQL gibi) için aynı şekilde yapın, A google arama birkaç kaynağı açmak gerekir.
  3. Iptables'ı kurun ve yapılandırın .
  4. Sisteminizi güncel tutun. Bunu cron kullanarak veya cron-apt kullanarak otomatikleştirebilirsiniz .
  5. Girişleri ve başarısız giriş denemelerini izlemek için günlüğü yapılandırın . Mümkünse, sizi / var bölümünü barındırmak için harici bir Sabit disk kullanın, bu size daha fazla alan sağlar, kayıt dosyalarının SD Kartı doldurmasını önler ve SD Kartınızın ömrünü uzatır.

Düşünmek isteyebileceğiniz bazı ek şeyler:

Bu soruyu da okumalısınız . İnternete bağlamadan önce izinsiz girişlere ve zararlı yazılımlara karşı nasıl koruyabilirim (özellikle halka açık bir IP adresinde)? .

Bu, Pi'nizi güvence altına almanız için yalnızca minimum adımdır. Daha fazla bilgi için Debian Güvenceye Alma Kılavuzunu okumak isteyebilirsiniz .


6
Kendi ssh anahtarlarınızı oluşturduğunuzdan emin olun. Bence bazı görüntülerde zaten anahtarlar var.
John La Rooy

2
Apache raspbian dilinde varsayılan olarak kurulmamıştır (kullanıcı php5-mysql IIRC gibi bir şey kurmuştur). Çıplak iptable'lardan biraz daha kolay olan bir paket filtresi için, belki ufw'yi ve belki de GUI frontend gufw'unu tavsiye etmeliyiz?
elmicha

1
Bir yönlendiricinin arkasında olsanız bile iptables yüklemek mantıklı mı?
keiki

2
@ otakun85 Evet, derinlemesine savunma olarak adlandırılır. Yönlendiricinize tamamen güvenerek birinin yönlendiriciyi geçmesi gerekiyorsa iptables çalıştırılması ve çalıştırılması daha fazla istismar yapmasını zorlaştırır.
Steve Robillard

2
Kullanılmayan hizmetleri devre dışı bırakmak da başlangıç ​​zamanına yardımcı olur ve (küçük) miktarda bellek ve CPU tasarrufu sağlar.
TomG

11

RPI'ye baktığınızda, birkaç şey yaptığınız sürece, kutunun dışında oldukça güvenli bir cihaz gibi görünüyor.

Varsayılan kullanıcı / şifre ihtiyaçları değiştirildi. En azından şifreyi değiştirin. Daha iyi güvenlik için kullanıcı adını da değiştirin. (Yeni bir kullanıcı ekleyin, sonra PI'yi devre dışı bırakın. Yine de varsayılan olarak sanırım, ancak ROOT'un SSH girişinden de devre dışı bırakıldığını kontrol edin.)

RPI'yi taramak, SSH bağlantısı olan 22 tane olan ve yalnızca gösterilmeden önce açılması gereken yalnızca bir açık bağlantı noktası olan 22'yi döndürür (yine de çoğu kişinin bir monitör, klavye ve fare yerine kullanacağını düşünüyorum) bir {web} sunucusu)

SSH port numarasını değiştirebilirsiniz, ancak port yeterince kolay taranabildiğinden fazla bir şey yapmaz. Bunun yerine, SSH-Key kimlik doğrulamasını etkinleştirin.

Artık doğru SSH anahtarı, kullanıcı adı ve şifre olmadan makinenize hiç kimse giremez.

Ardından, web sunucunuzu kurun. Apache bulunduğu yerde oldukça fazla. Bu, varsayılan olarak 80 numaralı bağlantı noktasını oturacak ve izleyecek ve web sayfalarınıza hizmet veren tarayıcılardan gelen bağlantılara otomatik olarak yanıt verecektir.

Güvenlik duvarınız veya yönlendiriciniz varsa, RPI bağlantı noktalarını değiştirebilir ve yönlendiricinin trafiği bir bağlantı noktasından diğerine yönlendirmesini sağlayabilirsiniz. Örneğin, yönlendiricideki 80 numaralı bağlantı noktası RPI'daki 75 numaralı bağlantı noktasına yönlendirilir ve 22'deki SSH bağlantı noktası 72'ye yönlendirilir. Bu, başka bir koruma katmanı ekler, ancak biraz daha karmaşıktır.

Açıkça her şeyi güncel ve yamalı tutun.

Bu sizi daha sonra ekleyebileceğiniz java, flash, SQL server'lardan, vb. Kullanan saldırılardan korumaz, ancak temelleri budur.

Ayrıca, yeni bir hizmet kurarsa, sisteminize giren herhangi birinin farklı bir bağlantı noktasından çıkmasını yavaşlatan bir güvenlik duvarı ekleyebilirsiniz. Yönlendiriciniz bununla ilgileniyor olmalıdır, ancak doğrudan bağlıysa, o zaman kurun ve ne kadar sürdüğü konusunda, yine de çalıştırıyor olabilirsiniz - sistem kaynakları yoluna fazla bir şey katmaz.

Eklemek isteyebileceğiniz bir diğer şey, birden çok oturum açma girişimini engellemek ve sözlük saldırılarını engellemek için bir güvenlik duvarı kuralı ekleyen fail2ban ( http://www.fail2ban.org/wiki/index.php/Main_Page ) ' dır . Yukarıdakileri uyguladıysanız bunlar sisteminizde çalışmasa da, bir nedenden ötürü yalnızca SSH auth (parola) girişini yapmanız gerekiyorsa (örneğin, birçok farklı makineden uzaktan giriş yapıyorsanız) bir sözlük saldırısını önler Çalışmaktan. Belirttiğiniz girişimlerin sayısından sonra, bu IP adresinden gelen girişimleri bir süre daha engeller. (Herhangi bir yönlendirici / yerel IP adresi görmemesine ve çok erken veya çok uzun süredir yasaklamasına dikkat edin!)

Eklemek için düzenlendi: Her şeyi güzel bir şekilde ayarladıktan sonra, SD kartınızın tam bir akıllıca yedeğini almak için dd veya Win32DiskImager gibi bir araç kullanın. Bu şekilde, eğer bir şeyler ters giderse, aynı karta geri yükleyebilir veya yeni bir karta yazabilir ve ne olursa olsun devam edebilirsiniz. (Ancak saldırıya uğradıysa, hangi deliğin bulunduğunu hesaplamak ve belki de ilk önce onu kapatmak istersiniz!)


1
Yönlendirici üzerindeki RPi portlarını değiştirmenin başka bir koruma katmanı eklediğini açıklayabilir misiniz?
Andrei,


-1

İşletim sistemini sertleştirmenin yanı sıra, cihazınıza / cihazından / cihazındaki etkinliği izlemek ve istenmeyen bir şey tespit edilirse uyarıları almak için bulut tabanlı bir güvenlik izleme hizmeti kullanmayı da düşünebilirsiniz. Günümüzde mevcut birkaç bulut tabanlı SIEM aracı var ve bazıları (siemless gibi) bir freemium model kullanıyor, böylece ev kullanıcıları bir kuruş ödemek zorunda kalmıyorlar. Böyle bir servisi kullanmak için, tüm Linux işletim sistemi dağıtımlarının standart bir parçası olan rsyslog / syslog gibi şeylerle tanışmanız gerekir.


1
Bulut araçları saldırı yüzeyini artırır, yerel güvenlik izlemesi (logwarn / check) iyi araçlardır, ancak bu cevap eksik ve daha bir yorum.
user1133275
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.