Hacking bashrc!!

Pershendetje, Isha duke pare disa manuale linux, dhe te them te drejten ishin goxha te mire duhet te permend ketu librat e no starch press (how linux work, Linux cook book , Linux for non Geeks) si dhe Linux Bible, Linux Troubleshooting Bible, Red Hat: The Complete Reference Enterprise Linux & Fedora Edition, etj por nuk gjeta tamam ate qe me interesonte… Siç e dime, bash eshte i ndertuar rreth kernelit, dhe nderhyn direkt ne sistem, prandaj thuhet “power came with bash”, po u kursej leksionet se ç’fare eshte bash, ç’fare funksioni ka, etj etj per kete hapni kapitullin qe u intereson ne nje nga librat e mesiperm. Ne ç’do direktori home /home/perdoruesi gjejm faile me .ekstension te cilat perdoruesi normal nuk i sheh (une tek sistemi im per arsye se i perdor shpesh i kam lene te shikueshem) keto faile ne pergjithesi jane faile konfigurimi apo reporte te ndryshme te programeve\sistemit. Ne te njejtin vend do te gjejm .bash_logout .bash_profile .bashrc dhe .bash_history te gjithe keto faile qe krijohen automatikisht nga Shelli. Nese kerkoni tjeter rekomandohet tcsh 😉 . Failet qe u cituan me siper sherbejn per konfigurimin e bash dhe faili .bash_history sherben si “utility” e sistemit per te mbajtur mend komandat te cilat jepen nga useri, .bash_logout egzekutohet kur bejm logout kurse bashrc sherben per te caktuar “aliases” dhe per te rregulluar sipas preferencave menyren se si vepron bash.

Bash si sistem tracking (Administratoret duhet te mbajn shenim kete pjese)

Cilesuam me siper nje file qe quhet .bash_history tek i cili perfundojn te gjitha komandat qe shtypim ne terminal, qofshin keto te gabuara dhe kur themi qofshin keto te gabuara , :) heh, tek .bash_history mund te perfundojn dhe sesionet e loginit te mysql-s apo loginet tona ne sisteme te ndryshme qe jane te instaluara ne sistemin operativ dhe ky informacion eshte shume sensitiv. Nga administratoret perdoret edhe per te ruajtur aktivitetin e perdoruesve dhe gjeja e pare (e mire) qe duhet te bente administratori per te ruajtur kete “privilegj” te tij mbi perdoruesin eshte:

1) Mos ti lejoj perdoruesit instalimin e ndonje shelli tjeter (zsh, sh, csh, tcsh etj)
a) Ti heqi privilegjet e egzekutimit te package managerit (ndryshoi me chown ose me chmod)
b) Ti heqi privilegjet e egzekutimit te kompilatoreve gcc etj (per te evituar instalimin nga source kodi, apo rikompilime per te bypasuar sistemin)

2)  Mos ti lejoj perdoruesit te ndryshoj menyren se si punon bash apo shelli qe perdor perdoruesi:
a)  Te ndryshoj me chmod failet .bashrc, .bash_history, .bash_logout, bash_profile ne menyre qe perdoruesi mos te kete mundesi per te ndryshuar permbajtjen e ketyre faileve, biles e mira eshte qe mos te kete mundesi as per ti pare, si dhe nje chmod 750 tcsh csh ksh do te ishte mire ne keto raste per te evituar perdorimin e shelleve qe jane te instaluar ne sistem.
b)  E mira eshte qe tek .bashrc te shtohet nje seksion me #ketu vendos une 😛 ku mbrapa te shkruhet HISTFILE=/diku/sistemilogging/centralizim . Pra besoj se e kutpuat ne kete menyre bash do depozitoj komandat e shtypura nga perdoruesi ne nje vend ku perdoruesi nuk e di :) (perderisa keni lene qe .bashrc te mos jete i shikueshem nga perdoruesi)

c)  Ne kete form edhe nese perdoruesi krijon nje link simbolik me /dev/null  psh ln -s /dev/null ~/.bash_history do te ishte komanda e perdoruesit per te çuar komplet komandat tek /dev/null (koshi) dhe edhe nese e bente kete, realisht do te lidhte vetem .bash_history me /dev/null kurse ne realitet komndat shkojn tek /diku/sistemilogging/centralizim (dhe jo tek .bash_history) ku perdoruesi nuk ka akses dhe nuk ka as dieni per kete trick qe perdorin administratoret me eksperienc.
d)Jepi nje chmod 750 history ne menyre qe perdoruesi mos te kete form per te dhene as history -c (per te pastruar historin)
Mekanizmi mund te fuqizohet akoma me shume duke shtuar tek .bashrc (i perdoruesit jo ai joti lol)
readonly PROMPT_COMMAND=”history -a”
shopt -s histappend
Metodat nuk kane te mbaruar, secili mund te kete stilin e tij :) , nuk harrohet qe ka dhe metoda bypasimi te cilat ua le juve ti zbuloni.

Po une qe nuk i dua keto?

Realiteti eshte qe gjeja e pare kur dikush deporton ne nje sistem linux eshte te japi nje komand “history” ne menyre qe e shikohen komandat e perdoruesit, kjo per te gjetur ndonje password te gatshem ne menyre qe ti kursej vetes edhe kohen e krakimit dhe te kursej dhe CPU :), keshtu qe akontin root dhe akontin e administratorit duhet ta mbrojm nga keto, per te kursyer gishtat e mi 😀 ja ku eshte .bashrc -ja im:

[Arditi@awizard ~]$ head -15 .bashrc
# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi

# User specific aliases and functions

#Pastrojm historin
HISTSIZE=19
HISTFILE=/dev/null
HISTFILESIZE=19
[Arditi@awizard ~]$

HISTSIZE=19 i kam dhene nje “mase” historis, ne menyre qe mos te shkruaj komandat qe perdor 100 here, HISTFILE=/dev/null eshte faili im i historis, pra komandat perfundojn ne dev/null dhe kur hap nje session te ri, ne histori nuk gjendet asgje. Normalisht siç e thame keto faile nuk duhet te jene te modifikueshme nga askush tjeter.

Leave a Reply

Your email address will not be published. Required fields are marked *