Vidokezo 23 vya Kuimarisha Seva ya CentOS - Sehemu ya 2
Kuendelea na mafunzo ya awali ya Jinsi ya Kulinda na Kuimarisha seva ya CentOS, katika makala hii, tutajadili vidokezo vingine vya usalama ambavyo vitawasilishwa kwenye orodha hapa chini.
- Vidokezo 20 vya Ugumu wa Usalama wa Seva ya CentOS - Sehemu ya 1
21. Zima Amri za SUID na SGID zisizo na maana
Ikiwa bits za setuid na setgid zimewekwa kwenye programu jozi, amri hizi zinaweza kutekeleza kazi na haki zingine za mtumiaji au kikundi, kama vile haki za mizizi ambazo zinaweza kufichua maswala mazito ya usalama.
Mara nyingi, mashambulizi ya kukidhi ya bafa yanaweza kutumia jozi za utekelezo ili kutekeleza msimbo ambao haujaidhinishwa na haki za mtumiaji wa nguvu ya mizizi.
# find / -path /proc -prune -o -type f \( -perm -4000 -o -perm -2000 \) -exec ls -l {} \;
Ili kutengua setuid kidogo tekeleza amri ifuatayo:
# chmod u-s /path/to/binary_file
Ili kutengua setgid kidogo endesha amri ifuatayo:
# chmod g-s /path/to/binary_file
22. Angalia Faili na Saraka zisizomilikiwa
Faili au saraka zisizomilikiwa na akaunti halali lazima zifutwe au zigawiwe kwa ruhusa kutoka kwa mtumiaji na kikundi.
Toa amri ya kupata hapa chini ili kuorodhesha faili au saraka bila mtumiaji na kikundi.
# find / -nouser -o -nogroup -exec ls -l {} \;
23. Orodhesha Faili Zinazoweza Kuandikwa Ulimwenguni
Kuweka faili inayoweza kuandikwa duniani kote kwenye mfumo inaweza kuwa hatari kutokana na ukweli kwamba mtu yeyote anaweza kurekebisha. Tekeleza amri iliyo hapa chini ili kuonyesha faili zinazoweza kuandikwa na maneno, isipokuwa Symlinks, ambazo zinaweza kuandikwa duniani kote kila wakati.
# find / -path /proc -prune -o -perm -2 ! -type l –ls
24. Unda Nywila Zenye Nguvu
Unda nenosiri la angalau vibambo nane. Nenosiri lazima liwe na tarakimu, vibambo maalum na herufi kubwa. Tumia pwmake kutoa nenosiri la biti 128 kutoka /dev/urandom faili.
# pwmake 128
25. Tumia Sera Imara ya Nenosiri
Lazimisha mfumo kutumia nenosiri dhabiti kwa kuongeza laini iliyo hapa chini kwenye faili /etc/pam.d/passwd.
password required pam_pwquality.so retry=3
Ukiongeza mstari hapo juu, nenosiri lililowekwa haliwezi kuwa na zaidi ya vibambo 3 katika mfuatano wa monotoniki, kama vile abcd, na zaidi ya vibambo 3 mfululizo vinavyofanana, kama vile 1111.
Ili kuwalazimisha watumiaji kutumia nenosiri lenye urefu usiopungua wa vibambo 8, ikijumuisha aina zote za vibambo, kuangalia nguvu kwa mfuatano wa herufi na herufi zinazofuatana ongeza mistari ifuatayo kwenye faili /etc/security/pwquality.conf.
minlen = 8 minclass = 4 maxsequence = 3 maxrepeat = 3
26. Tumia Nenosiri Kuzeeka
Amri ya malipo inaweza kutumika kwa kuzeeka kwa nenosiri la mtumiaji. Ili kuweka nenosiri la mtumiaji kuisha muda baada ya siku 45, tumia amri ifuatayo:
# chage -M 45 username
Ili kuzima muda wa kuisha kwa nenosiri tumia amri:
# chage -M -1 username
Lazimisha kumalizika kwa muda wa nenosiri mara moja (mtumiaji lazima abadilishe nenosiri wakati wa kuingia tena) kwa kutekeleza amri ifuatayo:
# chage -d 0 username
27. Funga Akaunti
Akaunti za mtumiaji zinaweza kufungwa kwa kutekeleza passwd au usermod amri:
# passwd -l username # usermod -L username
Ili kufungua akaunti tumia chaguo la -u
kwa amri ya passwd na chaguo la -U
kwa usermod.
28. Zuia Ufikiaji wa Akaunti ya Shell
Ili kuzuia akaunti ya mfumo (akaunti ya kawaida au akaunti ya huduma) kupata ufikiaji wa ganda la bash, badilisha ganda la mizizi kuwa /usr/sbin/nologin au /bin/false kwenye /etc/passwd faili kwa kutoa amri hapa chini:
# usermod -s /bin/false username
Ili kubadilisha ganda wakati wa kuunda mtumiaji mpya toa amri ifuatayo:
# useradd -s /usr/sbin/nologin username
29. Funga Dashibodi ya Mtumiaji Mtandaoni kwa kutumia vlock
vlock ni programu inayotumika kwa kufunga kikao kimoja nyingi kwenye koni ya Linux. Sakinisha programu na anza kufunga kikao chako cha mwisho kwa kutekeleza amri zifuatazo:
# yum install vlock # vlock
30. Tumia Mfumo wa Kati Kusimamia Akaunti na Uthibitishaji
Kutumia mfumo wa kati wa uthibitishaji kunaweza kurahisisha usimamizi na udhibiti wa akaunti. Huduma zinazoweza kutoa aina hii ya usimamizi wa akaunti ni IPA Server, LDAP, Kerberos, Microsoft Active Directory, Nis, Samba ADS au Winbind.
Baadhi ya huduma hizi kwa chaguomsingi zinalindwa sana kwa itifaki za kriptografia na kriptografia ya vitufe linganifu, kama vile Kerberos.
31. Lazimisha Uwekaji wa Kusoma Pekee wa Midia ya USB
Kwa kutumia huduma ya blockdev unaweza kulazimisha midia yote inayoweza kutolewa kuwekwa kama ya kusoma tu. Kwa mfano, unda faili mpya ya usanidi ya udev inayoitwa 80-readonly-usb.rules katika saraka ya /etc/udev/rules.d/ yenye maudhui yafuatayo:
SUBSYSTEM=="block",ATTRS{removable}=="1",RUN{program}="/sbin/blockdev --setro %N"
Kisha, tumia sheria na amri ifuatayo:
# udevadm control -reload
32. Kuzima Ufikiaji wa Mizizi kupitia TTY
Ili kuzuia akaunti ya mizizi kutekeleza kuingia kwa mfumo kupitia vifaa vyote vya dashibodi (TTY), futa maudhui ya faili yenye usalama kwa kuandika amri ifuatayo ya terminal kama mzizi.
# cp /etc/securetty /etc/securetty.bak # cat /dev/null > /etc/securetty
Kumbuka kuwa sheria hii haitumiki kwa vipindi vya kuingia kwa SSH
Ili kuzuia kuingia kwa mizizi kupitia SSH hariri faili /etc/ssh/sshd_config na kuongeza laini hapa chini:
PermitRootLogin no
33. Tumia POSIX ACL ili Kupanua Ruhusa za Mfumo
Orodha za Udhibiti wa Ufikiaji zinaweza kufafanua haki za ufikiaji kwa zaidi ya mtumiaji au kikundi kimoja tu na zinaweza kubainisha haki za programu, michakato, faili na saraka. Ukiweka ACL kwenye saraka, vizazi vyake vitarithi haki sawa kiotomatiki.
Kwa mfano,
# setfacl -m u:user:rw file # getfacl file
34. Weka SELinux katika Hali ya Utekelezaji
Uboreshaji wa SELinux kwenye kerneli ya Linux hutekeleza sera ya Udhibiti wa Lazima wa Ufikiaji (MAC), kuruhusu watumiaji kufafanua sera ya usalama ambayo hutoa ruhusa za punjepunje kwa watumiaji wote, programu, michakato, faili na vifaa.
Maamuzi ya udhibiti wa ufikiaji wa kernel yanatokana na muktadha wote unaohusiana na usalama na sio utambulisho wa mtumiaji uliothibitishwa.
Ili kupata hali ya Selinux na kutekeleza sera endesha amri zifuatazo:
# getenforce # setenforce 1 # sestatus
35. Sakinisha Huduma za Ziada za SELinux
Sakinisha kifurushi cha policycoreutils-python ambacho hutoa huduma za ziada za Python kwa uendeshaji SELinux: audit2allow, audit2why, chcat, na semanage.
Ili kuonyesha maadili yote ya boolean pamoja na maelezo mafupi, tumia amri ifuatayo:
# semanage boolean -l
Kwa mfano, ili kuonyesha na kuweka thamani ya httpd_enable_ftp_server, endesha amri hapa chini:
# getsebool httpd_enable_ftp_server
Ili kufanya thamani ya boolean iendelee katika kuwashwa tena, bainisha chaguo la -P
la setsebool, kama inavyoonyeshwa kwenye mfano ufuatao:
# setsebool -P httpd_enable_ftp_server on
36. Tumia Seva ya kumbukumbu ya kati
Sanidi daemon ya rsyslog ili kutuma ujumbe wa kumbukumbu wa huduma nyeti kwa seva ya kumbukumbu ya kati. Pia, fuatilia faili za logi kwa usaidizi wa matumizi ya logwatch.
Kutuma ujumbe wa kumbukumbu kwa seva ya mbali huhakikishia kuwa mfumo ukishaingiliwa, watumiaji hasidi hawawezi kuficha kabisa shughuli zao, kila mara wakiacha ufuatiliaji kwenye faili za kumbukumbu za mbali.
37. Wezesha Uhasibu wa Mchakato
Washa uhasibu wa mchakato kwa kusakinisha matumizi ya psacct na utumie lastcomm amri ili kuonyesha maelezo kuhusu amri zilizotekelezwa hapo awali kama ilivyorekodiwa katika faili ya uhasibu ya mfumo na sa kufanya muhtasari wa maagizo yaliyotekelezwa hapo awali kama yalivyorekodiwa katika faili ya uhasibu ya mfumo.
38. Ugumu /etc/sysctl.conf
Tumia sheria zifuatazo za kernel kulinda mfumo:
net.ipv4.conf.all.accept_source_route=0
ipv4.conf.all.forwarding=0
net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1
Zima kukubalika na kutuma kwa pakiti zilizoelekezwa kwingine za ICMP isipokuwa inahitajika haswa.
net.ipv4.conf.all.accept_redirects=0 net.ipv4.conf.all.secure_redirects=0 net.ipv4.conf.all.send_redirects=0
net.ipv4.conf.all.rp_filter=2
Puuza maombi yote ya mwangwi wa ICMP (imewekwa kuwa 1 kuwezesha)
net.ipv4.icmp_echo_ignore_all = 0
39. Tumia Huduma za VPN Kufikia Majengo yako kupitia Mitandao ya Umma Isiyolindwa
Tumia huduma za VPN kila wakati kwa watoa huduma kufikia majengo ya LAN kupitia Mtandao. Aina kama hizo za huduma zinaweza kusanidiwa kwa kutumia suluhu ya bure ya chanzo huria, kama vile hazina za Epel).
40. Fanya Uchunguzi wa Mfumo wa Nje
Tathmini usalama wa mfumo wako kwa udhaifu kwa kuchanganua mfumo kutoka kwa sehemu za mbali juu ya LAN yako kwa kutumia zana mahususi kama vile:
- Nmap – kichanganuzi cha mtandao 29 Mifano ya Amri ya Nmap
- Nessus – kichanganuzi cha usalama
- OpenVAS - hutumika kuchanganua udhaifu na udhibiti kamili wa athari.
- Nikto – kiolesura bora cha kawaida cha lango (CGI) kichanganuzi cha hati Changanua Athari za Wavuti katika Linux
41. Linda Mfumo wa Ndani
Tumia ulinzi wa mfumo wa ndani dhidi ya virusi, vifaa vya mizizi, programu hasidi, na, kama mazoea mazuri, sakinisha mifumo ya kugundua uvamizi ambayo inaweza kutambua shughuli zisizoidhinishwa (mashambulizi ya DDOS, uchunguzi wa mlango), kama vile:
- AIDE - Mazingira ya Kina ya Kugundua Uingiliaji - http://aide.sourceforge.net/
- ClamAV - Kichanganuzi cha Antivirus https://www.clamav.net
- Rkhunter – Kichunguzi cha Rootkit
- Lynis - Zana ya Usalama ya Ukaguzi na Kuchanganua kwa Linux
- Tripwire - Usalama na Uadilifu wa Data http://www.tripwire.com/
- Fail2Ban - Uzuiaji wa Mtandao wa Kuingilia
- OSSEC - (HIDS) Mfumo wa Kugundua Uvamizi wa Wapangishi http://ossec.github.io/
- Mod_Security - Protect Brute Force au Mashambulizi ya DDoS
42. Rekebisha Vigezo vya Mazingira ya Mtumiaji
Ongeza muundo wa tarehe na wakati ili kuhifadhi utekelezaji wa amri kwa kutoa amri ifuatayo:
# echo 'HISTTIMEFORMAT="%d/%m/%y %T "' >> .bashrc'
Lazimisha kurekodi HISTFILE papo hapo kila wakati amri inapoandikwa (badala ya kuondoka):
# echo ‘PROMPT_COMMAND="history -a"’ >> .bashrc
Weka kikomo cha muda wa kuingia katika akaunti. Bomoa ganda kiotomatiki wakati hakuna shughuli inayofanywa wakati wa muda wa kutofanya kitu. Ni muhimu sana kutenganisha vipindi vya SSH kiotomatiki.
# echo ‘TMOUT=120’ >> .bashrc
Tumia sheria zote kwa kutekeleza:
# source .bashrc
43. Data ya Hifadhi
Tumia vijipicha vya LVM, n.k ili kuhifadhi nakala ya mfumo wako, ikiwezekana nje ya tovuti, iwapo mfumo utashindwa.
Ikiwa mfumo utaathiriwa unaweza kurejesha data kutoka kwa nakala za awali.
Hatimaye, usisahau kwamba haijalishi ni hatua ngapi za usalama na hatua za ukinzani unachukua ili kuweka mfumo wako salama, hutawahi kuwa salama kabisa 100% mradi mashine yako imechomekwa na kuwashwa.