1. Përshëndetje dhe mirësevini në forumin e Itshqip.com
    Nëse akoma nuk jeni pjesë e IT komunitetit më të madhë Shqiptarë nga fusha e Teknologjisë Informative, ju ftojmë që të bëheni pjesë e këtij komuniteti që tani duke u regjistruar këtu - procedura është shumë e thjeshtë dhe e lehtë. Gjithashtu ju mund të regjistroheni edhe përmes rrjetit social Facebook, Twitter, Google+.

[Linux] Rrit sigurin e serverit tuaj

Tema tek 'Siguria në përgjithësi' e hapur nga DEVILAL, 3 Korrik 2020.

  1. DEVILAL

    DEVILAL Anëtar Fillestar

    Postimet:
    69
    Pëlqimet:
    60
    Pikë nga trofetë:
    28
    [Linux] Rrit sigurin e serverit tuaj

    Pershendetje, ne ket tem do mundohem ti perfshij disa hapa bazik qe duhet tmerrni per trritur sado pak sigurin e serverit tuaj (qe perdorni per web applications apo qfardo qoft)

    un po perdori Ubuntu Server 20.04 LTS, por komandat qe i jap duhet tfunksjonojn nshumicen e sistemeve operative debian-based

    1. Update&upgrade gjithqka
    Para se me vazhdu me hapat tjer, spari tbojm 1 update&upgrade duhet perdorur "apt"
    Code:
    sudo apt -y update && sudo apt -y upgrade
    kjo komand mundet me zgjat prej disa sekonda deri ndisa or

    2. Ndrysho root password dhe ndalo login permes ssh direkt n'root account
    Pasi qe "root" osht account kryesor edhe nese ndokush munet me mar access n'root account at'her osht gameover per juve. Prandaj duhet tperdoret 1 account tjter dhe jo root

    pra hapi i par nese nuk keni user tjeter esht ta krijojm 1:
    [​IMG]

    [​IMG]

    Code:
    sudo useradd -s /bin/bash testUser # shto 1 user me emrin testUser dhe si default shell tperdor "bash"
    sudo passwd testUser # vendos 1 password per "testUser", +14 karaktere nese esht e mundshme
    sudo usermod -aG sudo testUser # jepi akses userit "testUser" per me perdor "sudo" qe me pas akses njejt si root por pak ma sigurt
    sudo mkhomedir_helper testUser # krijo directory per user testUser pra: /home/testUser
    
    note. nqs jeni root at'her skeni nevoj tshtoni komanden "sudo" perpara
    qfar esht sudo?: sudo perdoret per tegzekutu 1 komand si root nga nje user tjter
    [​IMG]

    tani te ndalojm login si root nga ssh
    kte e bejm duke ndryshu config-at e ssh tek file: /etc/ssh/sshd_config
    ne ket file duhet tket access vetem root, prandaj do perdorim sudo perseri

    futemi ne editor (vim dhe nano jan 2 text editor ndryshem qe jan t'instalum nshumicen e sistemeve operative linux)
    Code:
    sudo vim /etc/ssh/sshd_config
    # ose
    sudo nano /etc/ssh/sshd_config # me i leht per tu perdor
    
    tek rreshti 34 gjindet "PermitRootLogin"
    [​IMG]

    dhe nese keni # perpara fjales at'her fshijeni dhe ndryshone yes apo diqka tjter tek "no":

    [​IMG]

    tani duhet 1 restart i "sshd" qe mund tbehet permes "systemctl"
    Code:
    sudo systemctl restart sshd
    tani edhe pse passwordi i root esht korrekt, un smund tlogohem permes ssh
    [​IMG]

    dhe gjeja e fundit esht tndrrohet password i root tek diqka +14 karaktere (nese dikush ka akses fizik tek serveri at'her nese nuk ka password tvendosur tek "root" personi mund tmarr full-access tek serveri pa perdorur asni password)

    Code:
    sudo passwd root
    3. Perdor privatekey n'vend tpassword per login permes ssh
    Per trritur sigurin e login permes ssh duhet tperdoret login permes private-public keys
    Si funksjonon:
    ne krijojm 1 public key edhe 1 private key, private key e mbajm ne n1 vend tsigurt dhe public key e vendosim ne server tek 1 file /home/testUser/.ssh/authorized_keys
    at'her mund te logohemi me private key dhe keshtu ndalojm brute-force attacks tek ssh

    Hapi i par: krijimi i public/private keys permes ssh-keygen:
    [​IMG]
    tek "enter passphrase:" mund tvendosni password per siguri mat madhe pasi nese vendosni password at'her smundet tjter kush me perdor private key pa e dit passwordin

    tani koha ta transferojm public key tek serveri, ket mund ta bejm me "ssh-copy-ip"
    [​IMG]

    Code:
    ssh-copy-id -i <public key file> <username>@<server ip>
    chmod 400 id_rsa # qe vetem ne tmund tlexojm private key e cila esht ruajtur tek file "id_rsa"
    
    tani mund te logohemi ne server permes private key
    [​IMG]

    edhe tani duhet tndalojm login permes password, edhe perseri duke ndryshuar /etc/ssh/sshd_config
    Code:
    sudo vim /etc/ssh/sshd_config
    # ose
    sudo nano /etc/ssh/sshd_config
    
    tani tek rreshti 124 ndryshoni "PasswordAuthentication yes" tek "PasswordAuthentication no"
    [​IMG]
    dhe prap duhet tbejm restart sshd
    Code:
    sudo systemctl restart sshd
    tani mund tlogohemi vetem me private key
    [​IMG]

    4. Ndalo service tpanevojshme dhe lejo vetem ato qe nevoiten
    Ne rast se jeni duke perdorur serverin per ndoni web application, servicet qe duhet tken akses nga jasht jan ssh, http/s
    pra tjerat si p.sh ftp, smtp, etj. jan te panevojshme nshumicen e rasteve.
    Transferimi i filev dhe tjera per menagjim mund tkryhet permes ssh pa perdorur ftp apo ndonje gje tjeter

    per hapin e par instaloni net-tools duke perdorur "apt"
    Code:
    sudo apt install net-tools
    tani shiko port-et e hapura duke perdorur "netstat"
    [​IMG]

    Code:
    sudo netstat -antp
    pra shikoni posht "Local Address" mund ta shikoni se a esht port-i i hapur per te gjith apo vetem per juve (vetem per serverin) dhe ne anen e djatht posht "'PID/Program name" mund ta shikoni se qfar applikacioni poe mban ket port hapur

    [​IMG]
    Code:
    0.0.0.0:<port num> # porti esht i hapur per te gjith
    127.0.0.1:<port num> # porti esht i hapur vetem per serverin
    
    tani ta ndalim vsftpd pasi nuk nevoitet
    jep 2 komandat e meposhtme
    Code:
    sudo systemctl disable vsftpd # mos te startoj nese behet serveri reboot
    sudo systemctl stop vsftpd # ndaloje qe nga tani
    
    tani ftp esht ndalur
    [​IMG]

    E njejta rrug mund tmerret edhe per tndaluar tjera programe

    5. Perdor firewall per tlejuar vetem traffikun e deshiruar
    Per tvendosur disa rregulla per firewall un do perdor "ufw" i cili esht me pak i komplikuar se "iptables"
    mund ta instaloni duket perdorur "apt"
    Code:
    sudo apt install ufw
    sudo ufw status # verteto qe ufw esht instaluar
    
    nese ju shfaqet diqka si kjo at'her esht nrregull
    [​IMG]
    tani tvendosim rregullat dhe tlejojm ufw tket kontroll ne traffik
    Code:
    sudo ufw default deny incoming # refuzo qfardo vjen nserver
    sudo ufw default allow outgoing # lejo qfardo del nga server, pra qe ne tmund tkemi akses ne internet
    sudo ufw allow ssh # lejo lidhjen me ssh
    sudo ufw allow http # lejo http
    sudo ufw allow https # lejo https
    sudo ufw enable # fut ne perdorim kto rregulla
    
    pas ktyre komandav askush smund tlidhet me ndonje port qe osht hap padashje nga ndonje program tjeter dhe vetem port-et 22,80,443 jan te lejuara te rrin hapur

    Code:
    sudo ufw status # per tshikuar se a esht firewall aktiv, dhe qfar rregulla jan te lejuara
    [​IMG]

    Gjithsesi kto jan vetem disa rregulla bazike te cilat jan mir tvendosen, por nuk mbrojn nga gjdo sulm i mundshem.
    P.sh nqs ndokush mund tgjej 1 RCE (Remote Code Execution) nWeb App, mundet qe me kriju 1 reverse shell i cili lidhet nga serveri yn tek serveri qe personi cakton, pra pasi ne lejuam gjdo trafik qe del nga serveri me komanden "sudo ufw default allow outgoing" at'her sdo kemi asnje mbrojtje kunder kti sulmi.
    Prandaj web apps duhet me u ndertu me kujdes vertet tmadh qe me e zvoglu rrezikun ndaj ktyne sulmev sa ma shum.


    Me kaq poe mbyll ket tem edhe pse nuk esht komplet , po esht vetem 1 baz e vogel e cila mendoj se esht mir ta vendosesh qe tkesh sado pak ma shum siguri nserver.
    Perndryshe per tperfshi tgjitha temat per mbrojtje tserverit at'her muna me than shlir se mbushet 1 liber e prap sdo ishte komplet.

    Nese kam ba ndoni gabim apo diqka nuk funksjonon si duhet, mundni mem dergu msg ose me shenu ktu n'tem edhe do mundona ta rregulloj.
     
    ThumperTM, RexhepS, Fannol Gashi dhe 10 anëtarë tjerë pëlqejnë postimin.
  2. mrbajraktari1234

    mrbajraktari1234 Anëtar Aktiv

    Postimet:
    178
    Pëlqimet:
    81
    Pikë nga trofetë:
    38
    Faleminderit shum man shum tutorial i mir , big up :cool:
     
    bthaci pëlqen postimin.
  3. Jãşhť'Sşeriĕ

    Jãşhť'Sşeriĕ Anëtar Legjendë

    Postimet:
    1,692
    Pëlqimet:
    530
    Pikë nga trofetë:
    208
    prsh Shum tutorial i bukur nuk mbesohet qe ke shkrujt kaq shum per krijimin e ssh keys dhe mbylljen e portave.

    Tek fillimi kam kte problem kur bej login me testUser
    Code:
    Cannot execute /bin/bash: No such file or directory
    
    m`ndimon pak ta zgjidh?
     
  4. DEVILAL

    DEVILAL Anëtar Fillestar

    Postimet:
    69
    Pëlqimet:
    60
    Pikë nga trofetë:
    28
    Tkam dergu msg, shiko nqs mund tma dergosh OS version, pastaj tmundona ta krijoj problemin tek un qe ta gjej 1 zgjidhje
     
  5. Jãşhť'Sşeriĕ

    Jãşhť'Sşeriĕ Anëtar Legjendë

    Postimet:
    1,692
    Pëlqimet:
    530
    Pikë nga trofetë:
    208
    Code:
    [email protected]:~# find / -name bash 2>/dev/null
    [email protected]:~#
    [email protected]:~# file /bin/bash
    /bin/bash: cannot open `/bin/bash' (No such file or directory)
    [email protected]:~# hostnamectl
       Static hostname: dopeweb
             Icon name: computer-vm
               Chassis: vm
            Machine ID: d1e05a336f44421cb29b12d1bec42290
               Boot ID: 4862362e67c84cc39296a2e08f19e6ba
        Virtualization: google
      Operating System: Debian GNU/Linux 9 (stretch)
                Kernel: Linux 4.19.0-0.bpo.9-cloud-amd64
          Architecture: x86-64
    
     
  6. DEVILAL

    DEVILAL Anëtar Fillestar

    Postimet:
    69
    Pëlqimet:
    60
    Pikë nga trofetë:
    28
    Code:
       
    Static hostname: debian
    Icon name: computer-vm
    Chassis: vm
    Machine ID: bb12091e517848eaa804c5b49af5698a
    Boot ID: 746e73bcafbe4901ad34cab1a03520a9
    Virtualization: vmware
    Operating System: Debian GNU/Linux 9 (stretch)
    Kernel: Linux 4.9.0-12-amd64
    Architecture: x86-64
    
    fresh install po prap nuk po mundna me shkaktu tnjejtin problem tek un, pasi bash egzistoja by default
    gjithsesi mund ta provosh 1her me "sh" nvend t"bash"
    Code:
    chsh -s /bin/sh testUser
    gjithashtu edhe kto dyjta tek root nqs mun memi dergu
    Code:
    echo $SHELL # qfar shell po perdor root
    echo /etc/shells # qfar shells egzistojn nsistem
     
  7. DardanDaci

    DardanDaci Anëtar me Përvoj

    Postimet:
    1,340
    Pëlqimet:
    1,031
    Pikë nga trofetë:
    193
    Nuk eshte shelli valid

    Per ta rregullu provo kshtu

    Code:
    sudo chsh -s /bin/bash root
    ose duke edituar rekordet e root logins ne /etc/passwd , por jo direkt.

    Code:
    sudo vipw
    Ne shumicen e sistemeve Linux, hyrja ne skedarin qe hapet ne redaktues kur perdorim vipw duhet te duket kshtu diqka

    Code:
    root:x:0:0:root:/root:/bin/bash
     
  8. DEVILAL

    DEVILAL Anëtar Fillestar

    Postimet:
    69
    Pëlqimet:
    60
    Pikë nga trofetë:
    28
    Mendoj qe ka problem me "testUser" dhe jo me root.
    Gjithashtu mund ta provoj edhe ket nga root
    Code:
    chsh -s $SHELL testUser
    Pom qudit fakti se si bash nuk esht valid, pasi ende smka ndodh me has 1 sistem ku bash nuk esht valid.
    Prandaj edhe provova ta instaloj tnjejtin version t'debian, por perseri tek un shkoi gjithqka nrregull.
     
  9. p4r4d0x

    p4r4d0x Anëtar Fillestar

    Postimet:
    74
    Pëlqimet:
    6
    Pikë nga trofetë:
    8
    shume basic!!!
     
  10. DEVILAL

    DEVILAL Anëtar Fillestar

    Postimet:
    69
    Pëlqimet:
    60
    Pikë nga trofetë:
    28
    Vlla nqs tdoken shum basic osht mundsia me hap tem tjeter edhe me postu tutorialin tond, perndryshe mos komento fare ktu nqs e bon me at mendjen me ofendim e me tregu se je ma i dijshem.
     
    Last edited: 17 Gusht 2020
    mrbajraktari1234 pëlqen postimin.
  11. p4r4d0x

    p4r4d0x Anëtar Fillestar

    Postimet:
    74
    Pëlqimet:
    6
    Pikë nga trofetë:
    8
    Prandaj eksistojn temat qe kur dikush e lexhon te mundet te kritikoj !!!
    Edhe e kritikova!! Ne qjoft se nuk te pelqejen kritikat vlaj mos hap threads!
    PS : kur hapja e temes filon me kete :
    Pershendetje, ne ket tem do mundohem ti perfshij disa hapa bazik qe duhet tmerrni per trritur sado pak sigurin e serverit tuaj (qe perdorni per web applications apo qfardo qoft)
    Me vjen keq po nuk e shkruajta une!

    Pse shkruajta " Shume Basic" :

    1) merja e titulit :
    [LINUX] Rrit sigurin e serverit tuaj
    a). Nga Kush : Nga personat qe manxhojn serverin apo na persona qe jan jasht serverit ?

    2) Ke Treguar (shpjeguar) 3 Pika :
    a) Perditesimi <==== jam 100% me ty
    b) Ndryshimi i passwd : <== shumica e rasteve kur ndyshojm password ne server ateher ke me shume % qe te thyhet serveri nga persona te ndryshem ! Passwordi qe eshet gjeneruar nga hosti eshet me i fuqishem se sa ajo qe do perdoresh ty!
    c) Modifikimi i SSH: modifikimi qe ke Shpjeguar eshet modifikim per te lehtesuar jeten edhe jo sigurie!!!!
    Ne se vertet do te blokosh bruteforce attacks ose na nje exploit 0-day qe mundet te dali edhe te te japi mundesin e kohes per ta ber update ssh eshet vetem me keto qe do tete them me posht!
    a) Ndryshojm port e serverit ne nje port te ndryshme ! nuk e mbajm kur ne portat default!

    b) Ndryshoj banner te ssh : mundesh ta besh edit ose mundesh te shkarkosh teter ssh edhe para se ta besh compiled edhe ta installosh te modifikosh headers qe kur ti jipet skanim nga nmap ose nc mos te indetifikohet si SSH service!

    c) Lejo personat qe duhet te ken access ne server! sh~: AllowUsers DEVILAL [email protected].....

    d) Limito aksesin nga iptables rules Ps:
    Code:
    iptables -A INPUT -p tcp -d 0/0 -s IP_JOTE_KETU--dport 22 -j ACCEPT
    iptables -A INPUT -p tcp -d 0/0 --dport 22 -j DROP
    PO gjeja me e mira qe do te sugjeroja te krijosh nje program shume te thjesht si Dydns os no-ip shume e thjesht ta realizosh
    edhe ne vend te ips mundesh te vesh germat (varet si do ta konfigurosh ps : [email protected])
    edhe programi qe do behet cdo 20 minuta update do mari ip-n jote edhe ateher mundesh te besh login tek serveri !!!

    e) Mundesh konfigurosh iptables edhe me –hashlimit-mode ne kete menyre cdo lidhje ne ssh per ip brenda nje minuti!

    f) Si per fund mundesh te perdoresh Port knocking qe e ben akoma me te veshtire per nje sulmus! !!!

    Nuk Do i perqendrohem pjeses qe ndalojm services qe duam apo nuk duam!!!!
    Gjithmon ndalon dicka qe ka bugs edhe e dy qe ne rast se hyri dikush do e lejoj te mari root!

    Per fund :
    Uncomplicated Firewall ndryshe UFW

    Firewall ne Linux ...... o_O ??? Pse ? kur ben te njeten gje me Iptables .. qe eshet nje firewall !!! pse duhet te shtosh dicka tjeter edhe qe nuk ja ke edhe besim ne se do kry punen ne maximum!

    Pse e them ate se iptables eshet e installuar ne linux po thuj se tetera systemet linux os e kan brenda!
    edhe sa per dieni marveshja e mire e nje systemi nuk
    te ben te intallosh sende te tjera!!!!

    Nuk hapa tem te re edhe nuk jam duke te offenduar po duhet ca her te pranojm edhe kritiken !

    klm!

     
  12. DEVILAL

    DEVILAL Anëtar Fillestar

    Postimet:
    69
    Pëlqimet:
    60
    Pikë nga trofetë:
    28
    E kisha fjalen per password default qe nshumicen e rasteve osht "toor" gjithashtu edhe passwordi i generuar nga hostet nese osht 8-16 karaktere edhe nese osht i generum ( numra/shkronja) at'her nuk konsiderohet ma i sigurt se 1 password qe un p.sh e vendosi me 128 karaktere t'gjenerum prej 1 password manager offline

    Gjithashtu kjo nuk tlehtson komplet jeten se ofrohet mundsia tvendosesh password edhe tek private key dmth smund ta perdor askush pa pas passwordin, po nese perdorusit nuk vendosin password edhe dikush arrin me mar private key at'her aj osht komplet i pambrojtun

    Pajtohem me pikat qe ke cek ti, po ssh nuk osht fort i njohur per critical vulns. por gjithsesi gjithqka duhet me u prit edhe pikat qe ceke ti japin mundsi tmir me u mbrojt prej 1 sulmi tpapritur

    Vendos ufw nvend t'iptables pershkak se osht ma i thjesht per meu perdor per fillestar edhe ma i pa komplikum siq e shpjegon edhe emri. Prapseprap iptables osht zgjedhje ma e mir nese perdoret si duhet

    kritika si kjo replika jote e fundit jan tmirpritura pasi mndihmoj edhe mu me msu gjana treja edhe ndrejtim mat mir gjithashtu edhe tjert qe vin tmarin ndonje dije ktu. Ndersa si ajo e para "shume basic!!!" nuk ndihmon asgje dhe askend prandaj mu duk si kritik pa vler.
     
  13. p4r4d0x

    p4r4d0x Anëtar Fillestar

    Postimet:
    74
    Pëlqimet:
    6
    Pikë nga trofetë:
    8
    Do qendroj vetem tek keto 2 pika!

    1)Password: Pra kur shkruan tut Duhet edhe ty thuash atyt qe e lexhon qe nje password 128 karaktere eshet me i sigurt po
    ketu hasim nje problem faktori NJERIHU! Gjithmon po kerkojm per gjera te thjeshta qe mos te na lodhin ... Mendon se jan shume veta ata qe perdorin pass 128 karaktera? nga 100% te jap nje 0.5% !!! (nuk flasim per ty flasim ne general)

    2)Sa do te ndryshosh nga password te vesh ne private key qe i ben save ne server keto files PRAP se PRAPI nuk je i siguruar !!!
    Qelimi nga ajo qe te shkruajta jan thjesht 2 gjera per vec menyrave jan edhe disa gjera me te thela!

    1) Cfar do bej dikush brenda ne server kur te mari te drejtat per te hyr!
    2) Cfar gjera private ke len aty !
    3) Cfar do humbasesh ne se dikush hyn aty!

    Ty mundesh te sigurosh nje server 99%(maximum) se pse 100% nuk eshet online serveri!
    po e zejm se eshet 99% ajo 1% qe ngell mundet te mari dikush te drejta per te hyr
    nga ato extra programet qe installohen ne server modules / add ons/ cms / services / .... (faktor humain)

    dikur kam degjuar nje shpreje : Qe te mbrohesh nga nje hajdut Duhet te mendosh si nje hajdut qe do te thote behu hajdut!

    Ne se do te kesh maximum security ne server duhet te mesosh edhe te mendosh si aji qe do mari te drejtat per te hyr!
    Po te rij edhe te shkruaj nuk do mbarojm kur se si mundet spesifik nje linux server ta mblindosh gjeri ne palc!
    Edhe cfar gjeje qe te shkruhet prap BASIC do jen Vetem ne se krijojm menyra te reja ! ateher nuk do jet basic!
     
    DEVILAL pëlqen postimin.

Shpërndaje faqen

Loading...