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.

  1. 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:

  1. Nmap – kichanganuzi cha mtandao 29 Mifano ya Amri ya Nmap
  2. Nessus – kichanganuzi cha usalama
  3. OpenVAS - hutumika kuchanganua udhaifu na udhibiti kamili wa athari.
  4. 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:

  1. AIDE - Mazingira ya Kina ya Kugundua Uingiliaji - http://aide.sourceforge.net/
  2. ClamAV - Kichanganuzi cha Antivirus https://www.clamav.net
  3. Rkhunter – Kichunguzi cha Rootkit
  4. Lynis - Zana ya Usalama ya Ukaguzi na Kuchanganua kwa Linux
  5. Tripwire - Usalama na Uadilifu wa Data http://www.tripwire.com/
  6. Fail2Ban - Uzuiaji wa Mtandao wa Kuingilia
  7. OSSEC - (HIDS) Mfumo wa Kugundua Uvamizi wa Wapangishi http://ossec.github.io/
  8. 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.