GNU / Linux'ta güvenliği en üst düzeye çıkarın

Gelen arkadaşlarım DesdeLinux, vaat edilen şey bir borç ve işte bununla ilgili bir yazı Linux sistemlerinin koruması nasıl en üst düzeye çıkarılır ve öyle kal kasa davetsiz misafirlerden ve sunucularınızdaki, PC'lerinizdeki veya dizüstü bilgisayarlarınızdaki bilgileri korumanın yanı sıra !!!!

Comenzando

Başarısız2ban: Python'da, kaba kuvvet erişimine teşebbüs eden uzak bağlantıları cezalandırarak veya engelleyerek hareket eden, bir sisteme izinsiz girişi önlemek için yazılmış bir uygulamadır.

Kurulum:

Fedora, RHEL, CentOS:

yum install fail2ban

Debian, Ubuntu:

apt-get install fail2ban

Ayar:

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local nano /etc/fail2ban/jail.local

[VARSAYILAN] adlı bölümde açıklamayı kaldırıp, #bantime = 3600 değiştirip şu şekilde bırakıyoruz:

#bantime = 3600 bantime = 604800

[Sshd] bölümünde, şu şekilde bırakarak enable = true özelliğini tanıtıyoruz:

#enabled = true etkinleştirildi = true

CTRL + O ile kaydedip CTRL + X ile kapatıyoruz

Hizmeti başlatıyoruz:

Fedora, RHEL, CentOS:

systemctl fail2ban.service etkinleştirme systemctl start fail2ban.service

Debian, Ubuntu:

hizmet fail2ban başlatma

Ssh kullanarak root erişimini reddedin:

Makinemizi korumak için ssh'ı root kullanıcısı aracılığıyla reddedeceğiz. Bunu yapmak için / etc / ssh / sshd_config dosyasını aşağıdaki gibi düzenleriz:

cp sshd_config sshd_config.bck nano / etc / ssh / sshd_config

Yorumsuz ve değiştiririz

#Protocol 2 Protokol 2

Yorumsuz ve değiştiririz

#PermitRootLogin evet PermitRootLogin hayır

CTRL + O ile kaydedip CTRL + X ile kapatıyoruz

Hizmeti başlatıyoruz:

Fedora, RHEL, CentOS:

systemctl sshd.service etkinleştirin systemctl start sshd.service

Debian, Ubuntu:

hizmet sshd başlangıcı

Anahtar kullanarak bir ssh sunucusuna erişimi reddedin ve ssh'a yalnızca RSA anahtarlarıyla izin verin

PC1 ile Sunucu1'e bağlanmak istiyorsak ilk yapmamız gereken şey PC1'de anahtarımızı oluşturmaktır. Kullanıcılarımızla ve PC1'de root olmadan şunları gerçekleştiriyoruz:

ssh-keygen -t rsa -b 8192 (normalde 1024 ile 2048 arasındaki anahtarlar kullanıldığından bu, güvenli olmaktan çok daha fazlasını üretir)

Parolamızı aldıktan sonra, onu Sunucu1'e yüklüyoruz:

ssh-copy-id kullanıcı @ sunucu_ip

Bu yapıldıktan sonra, Sunucu1'e bağlanacağız ve nano / etc / ssh / sshd_config dosyasını kök izinlerle değiştireceğiz:

ssh kullanıcısı @ Sunucu1 nano / etc / ssh / sshd_config

#PasswordAuthentication evet yazan satırı buna değiştiriyoruz:

#PasswordAuthentication evet
Şifre Doğrulama no

CTRL + O ile kaydedip CTRL + X ile kapatıyoruz

Ssh hizmetini yeniden başlatıyoruz:

Fedora, RHEL, CentOS:

systemctl sshd.service'i yeniden başlat

Debian, Ubuntu:

hizmet sshd yeniden başlatma

Ssh dinleme bağlantı noktasını değiştir

Yine / etc / ssh / sshd_config dosyasını düzenleriz ve porta atıfta bulunan kısımda şu şekilde bırakırız:

# Bağlantı Noktası 22 Bağlantı Noktası 2000 (veya 2000'den büyük herhangi bir sayı. Örneklerimizde bunu kullanacağız.)

CTRL + O ile kaydedip CTRL + X ile kapatıyoruz

Ssh hizmetini yeniden başlatıyoruz:

Fedora, RHEL, CentOS:

systemctl sshd.service'i yeniden başlat

Debian, Ubuntu:

hizmet sshd yeniden başlatma

Fail2ban kullanırlarsa, sshd'nin bağlantı noktasını ayarlamasına ilişkin yapılandırmayı değiştirmek gerekir.

nano /etc/fail2ban/jail.local

[sshd]
port    = ssh, 2000

[sshd-ddos]
port    = ssh, 2000

[dropbear]
port    = ssh, 2000

[selinux-ssh]
port    = ssh, 2000

CTRL + O ile kaydedip CTRL + X ile kapatıyoruz

Hizmeti yeniliyoruz:

Fedora, RHEL, CentOS:

systemctl yeniden fail2ban.service

Debian, Ubuntu:

hizmet fail2ban yeniden başlatma

güvenlik duvarı

Fedora, RHEL, CentOS:

Selinux ve Iptables bu sistemlerde varsayılan olarak etkinleştirilmiştir ve bu şekilde devam etmenizi tavsiye ederim. İptables ile bir port nasıl açılır? Daha önce değiştirdiğimiz ssh portunun yeni port 2000'i nasıl açacağımızı görelim:

Açık:

nano / etc / sysconfig / iptables

ve varsayılan ssh port 22'ye başvuran satırı değiştirip şöyle bırakıyoruz:

# -Bir GİRİŞ -m durum - durum YENİ -m tcp -p tcp --dport 22 -j KABUL -A GİRİŞ -p tcp -m durum - durum YENİ -m tcp --dport 2000 -j KABUL

CTRL + O ile kaydedip CTRL + X ile kapatıyoruz

Hizmeti yeniden başlatıyoruz:

systemctl iptables'ı yeniden başlat

Debian, Ubuntu:

Debian veya Ubuntu ve türevlerinde, Netfilter'i çok kolay yönettiği için hayatımızı kolaylaştıracak bir UFW güvenlik duvarına sahibiz.

Kurulum:

apt-get install ufw ufw etkinleştir

Yürüttüğümüz açık bağlantı noktalarının durumunu görmek için:

ufw durumu

Bir bağlantı noktası açmak için (örneğimizde yeni ssh bağlantı noktası 2000 olacaktır):

ufw izin 2000

Bir bağlantı noktasını reddetmek için (bizim durumumuzda bu, ssh'nin varsayılan bağlantı noktası 22 olacaktır):

ufw deny 22 ufw sil deny 22

Ve hazır arkadaşlar. Bu şekilde makinelerinizi güvende tutacaklar. Yorum yapmayı unutmayın ve bir dahaki sefere kadar: D.


41 yorum, sizinkini bırakın

Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: Miguel Ángel Gatón
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.

  1.   günahkar dijo

    ve aşağıdaki gibi bir şifreleme sistemi: https://www.dyne.org/software/tomb/

    1.    günahkar dijo

      Ayrıca evinizdeki kullanıcıları tty ile bağlanırlarsa kafesleyin:
      http://olivier.sessink.nl/jailkit/index.html#intro
      https://operativoslinux.wordpress.com/2015/02/21/enjaular-usuarios-en-linux/ (kolay yol)

    2.    yukiteru dijo

      Tüm dosya sistemini şifrelemek çok daha iyi ve daha güvenlidir.

    3.    Petercheco dijo

      Linux'ta güvenlikle ilgili aşağıdaki eğitim için bunu dikkate alacağım: D.

      1.    yukiteru dijo

        Çekirdeğin sysctl aracılığıyla sertleştirilmesi, onu destekleyen çekirdekte rastgele yığın ve Exec-Shield'in etkinleştirilmesi, dmesg ve / proc dosya sistemine erişim sağlanması, bir denetim arka plan programı çalıştırılması, TCP korumasının SYN'nin etkinleştirilmesi hakkında konuşmak da iyi olacaktır , / dev / mem'e erişimi kısıtlayın, sistemi tehlikeli veya güvenli olmayan TCP / IP yığın seçeneklerini devre dışı bırakın (yönlendirme, yankı, kaynak yönlendirme), kullanıcıların güçlü parolalar oluşturması için pam_cracklib'i kullanın, Tomoyo gibi MAC sistemi kullanımının önemi , AppArmor ve SELinux.

  2.   Belki dijo

    çok kullanışlı!!!! tam aradığım şey teşekkürler 🙂

    1.    Petercheco dijo

      Rica ederim arkadaş :).

  3.   melek bıçağı dijo

    Apache kullanıyorsanız, botlardan kaçınmak için mod_rewrite ile kural eklemekten zarar gelmez. Çok kullanışlı

    http://perishablepress.com/eight-ways-to-blacklist-with-apaches-mod_rewrite/

    1.    rolo dijo

      ve nginx için herhangi bir numara veya konfigürasyon var mı?

  4.   rolo dijo

    Debian 8'de / etc / ssh / sshd_config dosyasında zaten Protokol 2 etkin ve PermitRootLogin işlevi şifresiz seçeneğiyle (yalnızca kimlik doğrulama anahtarıyla ve özel anahtara sahip bilgisayardan root girebilirsiniz)

    debian 8 firewalld'de pd geldi ve ufw'yi küçük bıraktı

    1.    dhunter dijo

      Ferm gördün mü? Kuralların nasıl tanımlandığını seviyorum.

      http://ferm.foo-projects.org/download/examples/webserver.ferm

    2.    Petercheco dijo

      Debian 8'in güvenlik duvarı kullanmasına sevindim çünkü çok çok çok iyi ...

  5.   dhunter dijo

    Bir saldırganın yerel bilgisayarın ip'i ile paketler ürettiği ve DOS'u çok kolaylaştırdığı için fail2ban'a dikkat edin.

    1.    Hery dijo

      Adam, yerel PC IP'si ve geri döngü IP'si Fail2ban listesinin dışında tutuldu.
      Aksi takdirde, yanlış pozitiflerimiz olabilir.

  6.   Jason soto dijo

    İyi ve çok etkili Öneriler… Tabii ki, sunucu ortamında ve eğer bir web sitesi barındırıyorsak, ek adımlar içerir…. Şu anda JackTheStripper adında, web uygulamaları için en iyi güvenlik uygulamalarını izleyerek bir sunucuyu GNU / Linux ile hazırlayan ve koruyan bir bash Betiğinden başka bir şey olmayan bir proje yürütüyoruz ... projeyi şuradan öğrenebilirsiniz: http://www.jsitech.com/jackthestripper ....

    1.    yukiteru dijo

      Kernel.randomize_va_space = 2 değerini korumayı sevmeme rağmen güzel bir betik

      1.    Jason soto dijo

        İşin iyi yanı, çalıştırmadan önce ihtiyaçlarınıza göre biraz değiştirebilirsiniz ..... A Merhaba ...

    2.    Petercheco dijo

      Merhaba, elbette yazım temel bir sigortalıyla ilgileniyor ve her biri, LAMP veya FTP, SFTP, BIND ve uzun vb. Sistemlerinde kurduğu hizmetlere bağlı olarak kendini az çok korumalı :)

      Güvenlik ile ilgili bir sonraki yazıda bu sorunları ele alacağım.

      Olumlu geribildirim için teşekkürler :).

  7.   nex dijo

    @petercheco, kılavuzlarınız mükemmel, FreeeBSD sistemi için iyi bir şifreleme kılavuzu olur, FreeBSD, masaüstlerinin yapılandırılması ve özelleştirilmesi, Güvenlik Duvarı, oluşturma ve oluşturma hakkında ikinci bölümü ne zaman yapacağınızı bilmiyorum. bir kablosuz ağın yapılandırılması.

    1.    Petercheco dijo

      Selam dostum,
      Seyrek paylaşımların gösterdiği gibi biraz meşgulüm, ancak bunu bir sonraki FreeBSD gönderisinde aklımda tutacağım.

      Kutlama :).

  8.   Solrak Gökkuşağı dijo

    Bu yorumlarda seviyelendirildi, neden bahsettiğiniz hakkında hiçbir fikrim yok, kimse xD
    Harika makale!

  9.   Xunil dijo

    Bu güvenlik eylemi, ekipmanın bir şekilde sınırlandırılması anlamına mı geliyor?

    1.    Petercheco dijo

      Hayır ... Sistemin normal kullanımı hiçbir şekilde sınırlı değildir.

  10.   günahkar dijo

    Ve komik (trajik) şey şu ki, Lenovo makinelerinde gördüğümüz gibi, eğer bios ürün yazılımı kötü amaçlı yazılımla değiştirilirse, yaptığınız hiçbir şeyin önemi yoktur.

    1.    Petercheco dijo

      Üretici tarafından önceden yüklenmiş Windows'u kullandığınız sürece ...

      1.    günahkar dijo

        hata: bios aygıt yazılımına yüklediklerini unutmayın, yani sistem her yeniden başlatmada, işletim sisteminden önce, şeytanlardan önce başlar ve her şeyden önce ona karşı hiçbir şey yapmanıza izin vermez. çok az saldırı yapılabilir, bu yüzden uefi fikri prensipte iyidir.

  11.   Paul dijo

    İlginç makale, bu öğleden sonra daha dikkatli okuyacağım. Teşekkür ederim.

    1.    Petercheco dijo

      Rica ederim :). Memnun oldum.

  12.   Carlos En İyi dijo

    Harika bir makale, bütün öğleden sonra okuyarak kendimi eğlendirdim. Her şeyi çok dikkatli bir şekilde açıklamaya ayırdığınız zaman takdir ediliyor.

    Şili selamlar
    Carlos

    1.    Petercheco dijo

      Merhaba Carlos,
      Çok teşekkürler :).

  13.   Bryon dijo

    Lenovo makineleri, eğer bios aygıt yazılımı kötü amaçlı yazılım ile müdahale edilmiş gibi görünüyorsa, makineler (Dizüstü Bilgisayar-Masaüstü Bilgisayar) yukarıdakilere göre üretici tarafından her zaman Windows ile birlikte gelir… gönderi… .petercheco?

    1.    yukiteru dijo

      Tüm bunları yapmadan bile işe yarıyor, çünkü kötü amaçlı yazılım Linux için değil Windows için yapıldı.

  14.   SynFlag dijo

    İptables'da pek çok şey ve püf noktası eksiktir, örneğin baş döndürücü nmap gibi, tüm açık portlar arasında, ttl ve pencere boyutunu kullanan bir Windows bilgisayarı, scanlogd, apache mod güvenliği, grsec, selinux veya bunun gibi bir şey. Ftp'yi sftp ile değiştirin, bir DDoS'den önce bizi hizmetsiz bırakmalarını önlemek için X bağlantı noktasındaki her bir hizmete IP başına bağlantı sayısını sınırlayın ve çok sayıda UDP gönderen IP'leri saniyeler boyunca engelleyin.

    1.    Petercheco dijo

      Sunduğunuz örneklerle, yeni bir kullanıcı onu okumaktan deliye döner ... Her şeyi tek bir gönderiye koyamazsınız. Birkaç giriş yapacağım :).

  15.   shini kire dijo

    Bu noktada başlangıç ​​servisini verirken archlinux'ta bir hata alıyorum, ona durum veriyorum ve bu çıkıyor:
    sudo systemctl durumu fail2ban
    ● fail2ban.service - Fail2Ban Hizmeti
    Yüklendi: yüklendi (/usr/lib/systemd/system/fail2ban.service; etkin; satıcı ön ayarı: devre dışı)
    Aktif: başarısız (Sonuç: başlangıç ​​sınırı), Cum 2015-03-20 01:10:01 CLST'den beri; 1 sn. Önce
    Dokümanlar: adam: fail2ban (1)
    İşlem: 1695 ExecStart = / usr / bin / fail2ban-client -x start (kod = çıkıldı, durum = 255)

    Mar 20 01:10:01 Gundam systemd [1]: Fail2Ban Hizmeti başlatılamadı.
    Mar 20 01:10:01 Gundam systemd [1]: Unit fail2ban.service başarısız durumuna girdi.
    Mar 20 01:10:01 Gundam systemd [1]: fail2ban.service başarısız oldu.
    Mar 20 01:10:01 Gundam systemd [1]: başlatma isteği fail2ban… ice için çok hızlı tekrarlandı
    Mar 20 01:10:01 Gundam systemd [1]: Fail2Ban Hizmeti başlatılamadı.
    Mar 20 01:10:01 Gundam systemd [1]: Unit fail2ban.service başarısız durumuna girdi.
    Mar 20 01:10:01 Gundam systemd [1]: fail2ban.service başarısız oldu.
    İpucu: Bazı çizgiler elipsize edildi, tam olarak göstermek için -l kullanın.
    biraz yardım? D:

    1.    Petercheco dijo

      Merhaba, systemctl ile fail2ban'ı etkinleştirdiyseniz fail2ban.service'i etkinleştirdiyseniz ve systemctl start fail2ban.service ise, sorun yaptığınız jails yapılandırmasında olacaktır. Lütfen hapishanenizi kontrol edin ve her şeyin yolunda olduğunu doğrulayın.

      selamlar
      PeterÇek

      1.    maykel franco dijo

        Her şeyden önce iyi öğretici. Pek çok şey eksik ama temellere odaklandınız.

        shini-kire, /var/log/fail2ban.log'unuzu kontrol edin

        Selamlar.

      2.    Petercheco dijo

        Teşekkür ederim @Maykel Franco :).

  16.   jony127 dijo

    iyi,

    fail2ban bir ev bilgisayarına mı kurmalı yoksa sunucular için mi daha fazlası ???

    Teşekkür ederim.

    1.    Petercheco dijo

      Daha ziyade sunucular için ama sizden daha fazla kişi tarafından erişilebilen bir wifi üzerindeyseniz, bu iyidir ...

  17.   Rodrigo dijo

    Merhaba arkadaşım, bana Gnu / Linux dağıtımlarındaki kısa bir yangının bölümünde iyi bir güvenlik yazısı gibi görünüyor.Bu yorumu yazıyorum çünkü bunu Ubuntu 14.04 dağıtımında yapıyorum çünkü zaten 15.04'te olduğunu bilerek neler oluyor Aşağıdaki problem nano /etc/fail2ban/jail.local'ı root olarak giriyorum ve sshd kısmında görselleştirme yapmıyorum ve kaydediyorum [VARSAYILAN] bölümünde açıklamayı kaldırıp değiştiriyoruz #bantime = 3600 ve
    [Sshd] bölümünde, şu şekilde bırakarak enable = true özelliğini tanıtıyoruz:
    #etkin = doğru
    etkin = doğru
    Görünüşe göre sshd'nin önceki sürümü çalıştığım için olabileceği görünmüyor, teşekkürler