Güvenlik açıklarını ele almanın birçok yolu vardır, ancak bilmeniz gereken ilk şey, Linux'un diğer İşletim Sistemleri gibi izinsiz girişlere duyarlı olmamasıdır. Bu, temel olarak * NIX'i hedefleyen kötü amaçlı yazılımların bulunmamasından kaynaklanmaktadır. Bununla birlikte, sisteminize nasıl erişilebileceğini bilmek istersiniz.
Şifreler
Öncelikle giriş yapabilen herhangi bir kullanıcı için varsayılan şifreleri değiştirmelisiniz. Debian için bu sadece varsayılan kullanıcı Pi'dir . Arch Linux için bu süper kullanıcı köküdür . Parolalar kullanıcı olarak oturum açtığında passwd
komut satırına yazılarak değiştirilir .
Varsayılan parolanıza kaba kuvvet sözlüğü saldırıları yapmak oldukça basit olacağından güvenli bir parola ilkesi önerilir. Düzgün, orta uzunlukta bir şifre seçin.
bilinmezlik
Uzaktan erişim muhtemelen en önemli güvenlik açığıdır. Burada kullanabileceğimiz şey belirsizlikten güvenlik olarak adlandırılır . Yaygın bir saldırı yöntemi, açık portlar için bir dizi IP adresini taramaktır. Bu yüzden alabileceğimiz en basit önlemlerden biri, varsayılan portları kullanmayan bir kullanıcı olmak .
Burada yapılması gereken tek şey, yaygın olarak kullanılan protokoller için varsayılan portları değiştirmektir. Örneğin, varsayılan SSH portu 22 ve FTP 21'dir. Sistemimde SSH, bu protokolleri herhangi bir otomatik saldırıdan gizlemek zorunda olan 222 ve FTP 221'i kullanır.
Bağlantı Güvenliği
Öncelikle, en önemli güvenlik endişesi kök hesabı gerektiğidir değil SSH ile giriş yapmaya muktedir. /etc/ssh/sshd_config
Bu satırı yorumlayarak veya kaldırarak dosyadaki kök girişini devre dışı bırakabilirsiniz :
PermitRootLogin yes
Varsayılan olarak hayır olarak ayarlanmalıdır, ancak emin olmak en iyisidir.
Çok fazla SSH kullanıyorsanız ve orta saldırılardaki adam için endişeleniyorsanız, şifrenizle ilgili sözlük saldırıları yaparsanız, o zaman kullanabilirsiniz SSH Keys
.
Anahtar tabanlı kimlik doğrulama, şifre kimlik doğrulamasına göre birkaç avantaja sahiptir; örneğin, anahtar değerlerin kaba kuvveti zorlamak, düz şifrelerden çok daha zordur.
SSH anahtar doğrulamasını ayarlamak için önce anahtar çiftini oluşturmanız gerekir. Bu, istemci makinenizde (Pi'ye erişmek istediğiniz makine) en kolay şekilde yapılır.
# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/pi/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/pi/.ssh/id_rsa.
Your public key has been saved in /home/pi/.ssh/id_rsa.pub.
Gördüğünüz gibi, bu iki dosya yarattı, özel anahtar id_rsa
ve genel anahtar id_rsa.pub
.
Özel anahtar yalnızca sizin tarafınızdan bilinir ve güvenli bir şekilde korunmalıdır . Buna karşılık, genel anahtar, bağlanmak istediğiniz herhangi bir SSH sunucusuyla serbestçe paylaşılabilir.
Öyleyse yapmak istediğimiz, genel anahtarı Ahududu Pi'ye kopyalamak . Bunu çok kolay bir şekilde yapabiliriz:
ssh-copy-id pi@address
Nerede pi
Ahududu Pi kullanıcı adı ve address
Pi IP adresidir.
Tekrar ediyorum, genel anahtarı dağıtıyoruz . Özel anahtar sizindir. Bu anahtarı serbest bırakmak için sıkıca tutun, sistemin güvenliğini bozar.
Arch Wiki Bunun nasıl mükemmel bir açıklama vardır:
Bir SSH sunucusu dosyada ortak anahtarınız olduğunda ve bir bağlantı istediğinizi gördüğünde, size bir meydan okuma oluşturmak ve göndermek için ortak anahtarınızı kullanır. Bu zorluk kodlanmış bir mesaj gibidir ve sunucu size erişim izni vermeden önce uygun yanıtla karşılanmalıdır. Bu kodlanmış mesajı özellikle güvenli kılan şey, yalnızca özel anahtarı olan biri tarafından anlaşılabilmesidir. Açık anahtar, mesajı şifrelemek için kullanılabilirken, aynı mesajın şifresini çözmek için kullanılamaz. Özel anahtarın sahibi yalnızca siz, sorunu doğru anlayabilecek ve doğru cevabı verebileceksiniz.
Genel anahtar kimlik doğrulamasının güvenliği hakkında daha fazla bilgi için Wikipedia'nın kapsamlı bir açıklaması vardır .
SSH güvenliğiyle, çok miktarda şifreli, güvenli veri aktarımı yapabilirsiniz. Pratik olarak, diğer tüm bağlantı noktalarının bağlantısı gerektiğinde SSH üzerinden yönlendirilebilir. X oturumunu SSH üzerinden de ileri sürerek başka bir makinede görünmesini sağlayabilirsiniz.
İlginç bir örnek olarak, dün Masaüstümde Eclipse kullanıyor, Raspberry Pi'mde görüntülüyordum ve fare ve klavyeyi Netbook'umdan kontrol ediyordum. SSH'nin gücü budur.
İzinler
Dosya izinleri, Linux güvenlik sisteminin bir parçasıdır. Dosyalarınızı ve klasörlerinizi kimin görebileceğini etkiler ve verilerinizi korumada çok önemli olabilirler. Örneğin, Raspberry Pi’ye normal bir kullanıcı olarak giriş yapın ve şunları çalıştırın:
cat /etc/shadow
shadow
Dosya sisteminde kullanıcılar için şifrelenmiş parolaları içerdiğinden, onu ona bakmak için kimse hakkında sadece istemem! Yani bu cevabı görmelisin:
cat: /etc/shadow: Permission denied
Bunun neden dosya izinlerine bakılarak olduğunu görebiliriz:
ls -l /etc/shadow
-rw------- 1 root root 821 Jun 11 22:13 /etc/shadow
Bu bize dosyanın root'a ait olduğunu ve sadece sahibinin okuma / yazma izinlerine sahip olduğunu söyler. Bu çıktıyı kıralım.
-rw-------
Bu izinlerin durumu. İlk bit bize dosyanın türünü söyler ( -
normal dosya anlamına gelir). Sonraki üç bit , dosya sahibinin kullanabileceği işlemleri temsil eder . İkinci üç bit grubu temsil eder ve son üç diğer veya herkes içindir. Böylece tam izinlere sahip bir dizin şöyle görünür:
drwxrwxrwx 10 root root 280 Jun 20 11:40 tmp/
Bu, sahibi, grubu ve diğer herkes için izinleri okur, yazar ve yürütür.
Bir sonraki önemli kısım iki isimdir. Bizim durumumuzda root root
. İlk kullanıcı dosyanın sahibi . İkincisi, kullanıcı grubu . Mesela şunları görmek yaygın olurdu:
drwxr-xr-x 10 pi users 280 Jun 20 11:40 home/pi
Bu, kullanıcının pi
kendi dizininde okuma / yazma erişimine ve diğer tüm kullanıcılar için okuma erişimine izin verir .
Sekizlik değerler kullanılarak en sık belirtilen ve kontrol edilen izinler. Örneğin, sadece sahibi için rw ayarlamak istiyorsak şunu yazarız:
chmod 600 /path/to/file
Bu, Linux dosya izinleri hakkında daha fazla bilgi için temel bir genel bakış, işte size güzel bir makale.
Bu anlayış, dosya ve klasörleri güvence altına alırken önemlidir. Örneğin, az önce SSH anahtarlarını kurduğumuzu söyleyin. Kesinlikle başka kullanıcıların ~/.ssh
dizinimizde görmesini istemiyoruz , ya da özel anahtarımızı alabilecekler. Böylece onların okuma ayrıcalıklarını kaldırıyoruz:
chmod 700 ~/.ssh
ls -la ~/.ssh
drwx------ 2 james users 4096 Jun 18 03:05 .
Umarım bu, Linux’u güvenceye alma konusundaki endişelerinizi giderir. Bundan oldukça güvenli bir sistem olduğunu görebilmelisiniz ve dikkatli olursanız güvenlik sorunlarınız olmamalıdır.
su
Onlara deneyerek kontrol edebilirsiniz.