Аюулгүй нэвтрэлт танилт x window ubuntu. Линукс дээрх аюулгүй байдал нь харьцангуй ойлголт юм. Линуксийн бүрэн аюулгүй байдлыг хангахын тулд Линукс дээрх файлын системийг шифрлэцгээе


Олон хэрэглэгчид Ubuntu pop гэж үздэг бөгөөд Ubuntu серверноцтой биш. Ubuntu серверийг 5 жил дэмжсэн, Debian 5.0 нь 2009-2012 он хүртэл 3 жилийн турш худалдаанд гарсан гэдгийг олон хүмүүс мартдаг.

Дэмжлэгийн үнээр - Ubuntu Server-ийг Red Hat-тай харьцуулбал та үүнийг захиалсан ч үнэгүй авсан гэж хэлж болно 24/7 дэмжлэг 24х7х365.

Ubuntu-ийн бүх хувилбарт аюулгүй байдлын ямар шийдлүүд хэрэгжиж байгааг харж, түүнийг аюулгүй, найдвартай болго.

Боломжууд

Аюулгүй байдлын чадавхийн матриц

Боломж 8.04 LTS(Hardy Heron) 10.04 LTS(Lucid Lynx) 11.04 (Нэтти Нарвал) 11.10 (Онирик Оселот) 12.04 LTS(Нарийвчилсан Панголин) 12.10 (Квантал Кецаль)
Нээлттэй порт байхгүй бодлого бодлого бодлого бодлого бодлого бодлого
Нууц үгийн хэш md5 sha512 sha512 sha512 sha512 sha512
SYN күүки -- цөм ба систем цөм ба систем цөм ба систем цөм ба систем цөм ба систем
Файлын системийн боломжууд -- цөм цөм цөм цөм цөм
Тохируулах боломжтой галт хана ufw ufw ufw ufw ufw ufw
PR_SET_SECCOMP цөм цөм цөм цөм цөм цөм
AppArmor 2.1 2.5 2.6.1 2.7.0~бета1 2.7.0 2.7.0
SELinux орчлон ертөнц орчлон ертөнц орчлон ертөнц орчлон ертөнц орчлон ертөнц орчлон ертөнц
SMACK -- цөм цөм цөм цөм цөм
Шифрлэгдсэн LVM өөр суулгагч өөр суулгагч өөр суулгагч өөр суулгагч өөр суулгагч өөр суулгагч
eCryptfs -- ~/Хувийн эсвэл ~, файлын нэр ~/Хувийн эсвэл ~, файлын нэр ~/Хувийн эсвэл ~, файлын нэр ~/Хувийн эсвэл ~, файлын нэр ~/Хувийн эсвэл ~, файлын нэр
Стекийн хамгаалалт gcc засвар gcc засвар gcc засвар gcc засвар gcc засвар gcc засвар
Нуруулдан хамгаалах glibc glibc glibc glibc glibc glibc
Муухай заагч glibc glibc glibc glibc glibc glibc
ASLR стек цөм цөм цөм цөм цөм цөм
Libs/mmap ASLR цөм цөм цөм цөм цөм цөм
Exec ASLR цөм (-мм нөхөөс) цөм цөм цөм цөм цөм
brk ASLR цөм (асл ASLR) цөм цөм цөм цөм цөм
VDSO ASLR цөм цөм цөм цөм цөм цөм
PIE бүхий барилга -- багцын жагсаалт багцын жагсаалт багцын жагсаалт багцын жагсаалт багцын жагсаалт
-- gcc засвар gcc засвар gcc засвар gcc засвар gcc засвар
RELRO-той угсрах -- gcc засвар gcc засвар gcc засвар gcc засвар gcc засвар
BIND_NOW ашиглан барьж байна -- багцын жагсаалт багцын жагсаалт багцын жагсаалт багцын жагсаалт багцын жагсаалт
Гүйцэтгэх боломжгүй санах ой Зөвхөн PAE PAE, ia32 хэсэгчилсэн-NX-эмуляци PAE, ia32 хэсэгчилсэн-NX-эмуляци PAE, ia32 хэсэгчилсэн-NX-эмуляци PAE, ia32 хэсэгчилсэн-NX-эмуляци
/proc/$pid/maps хамгаалах цөм ба систем цөм цөм цөм цөм цөм
Симболын холбоосын хязгаарлалт -- -- цөм цөм цөм цөм
Хатуу холбоосын хязгаарлалт -- -- цөм цөм цөм цөм
ptrace хамрах хүрээ -- -- цөм цөм цөм цөм
0 хаягийн хамгаалалт цөм ба систем цөм цөм цөм цөм цөм
Хамгаалах /dev/mem цөм (-мм нөхөөс) цөм цөм цөм цөм цөм
/dev/kmem идэвхгүй болсон цөм (-мм нөхөөс) цөм цөм цөм цөм цөм
Модулийн ачааллыг блоклох CAP_SYS_MODULES-ыг хая систем систем систем систем систем
цөм цөм цөм цөм цөм цөм
Цөмийн стекийн хамгаалалт -- цөм цөм цөм цөм цөм
RO/NX модуль -- -- цөм цөм цөм цөм
-- -- цөм цөм цөм цөм
-- -- цөм цөм цөм цөм
Системийн дуудлагын шүүлтүүр -- -- -- цөм цөм цөм

Нээлттэй порт байхгүй

Ubuntu-н өгөгдмөл суулгац нь сүлжээний гаднаас хандах боломжтой нээлттэй портгүй. Энэ дүрмийн цорын ганц үл хамаарах зүйл нь DHCP клиент болон mDNS (Avahi/ZeroConf) зэрэг сүлжээний дэд бүтцийн үйлчилгээнд хамаарна.

Ubuntu серверийг суулгасан үед администратор нь Apache вэб сервер гэх мэт нэмэлт сүлжээний үйлчилгээг суулгаж болно. Гэхдээ анхдагч байдлаар, шинээр суулгасан систем дээр, хэрэв та netstat -an --inet | grep СОНСОХ | grep -v 127.0.0.1 , тэгвэл та Ubuntu нь сүлжээнээс систем рүү нэвтрэх портуудыг шаардлагагүйгээр нээхгүй байхыг хялбархан шалгаж болно.

Нууц үгийн хэш

Ubuntu-д нэвтрэхэд ашигладаг системийн нууц үгийг /etc/shadow-д хадгалдаг. Нэгэн цагт DES нууц үгийн хэш /etc/passwd-д хадгалагдаж байсан. Гэвч орчин үеийн Линукс хэшийг /etc/shadow-д удаан хугацаагаар хадгалсаар ирсэн бөгөөд эхлээд давстай MD5 дээр суурилсан хэш (давстай MD5-д суурилсан хэш crypt id 1) ашигласан. Давс хэрэглэхгүйгээр ижил нууц үгнүүд ижил хэштэй байсан тул давс нэвтрүүлснээр аюулгүй байдлыг сайжруулж, системийн олон хэрэглэгчдийн нууц үгийг тайлахад хэцүү болгосон.

Одоо MD5 нь найдваргүй гэж тооцогддог бөгөөд компьютеруудын тооцоолох чадвар нэмэгдэхийн хэрээр Ubuntu 8.10-д давстай SHA-512 хэшийг ашигладаг (давсалсан SHA-512 нууц үгийн хэш crypt id 6). Энэ нь хакердуулдаг харгис хүчбүх сонголтуудыг даван туулах замаар - гайхалтай төвөгтэй, цаг хугацаа их шаарддаг.

Man crypt-ийн талаар дэлгэрэнгүй мэдээлэл.

Туршилтын хувьд test-glibc-security.py ашиглана уу.

SYN күүки

Систем шинэ сүлжээний холболтоор дүүрсэн үед SYN күүки механизм нь SYN үерийн халдлагаас үүсэх хохирлыг багасгахад тусалдаг.

Файлын системийн боломжууд

Тэдгээрийг ажиллуулж байгаа хүнээс илүү өндөр зөвшөөрөлтэй ажилладаг setuid програмуудын хэрэгцээг xattrs гэх мэт файлын системийн чадавхийг ашиглан багасгаж болно. Ийм функцууд нь аюултай байж болзошгүй setuid програмуудыг буруугаар ашиглах эрсдлийг бууруулдаг.

Линукс цөм нь setuid програмуудын аюулгүй байдлыг сайжруулахын тулд xattrs төрлийн файлын чадавхийг ашиглахад зориулсан libcap2-bin-ийн дэмжлэг, хэрэглүүрээр хангадаг.

Туршилтын хувьд test-kernel-security.py ашиглана уу.

Тохируулах боломжтой галт хана

ufw нь Ubuntu дээр суулгаж ашигладаг iptables-ийн урд хэсэг боловч хэрэглэгч үүнийг бие даан идэвхжүүлэх ёстой. UFW нь iptables галт хана, гинж, хүснэгтийн тухай ойлголтгүй хүмүүст хэрэглэхэд хялбар интерфейсээр хангах зорилготой юм.

Үүний зэрэгцээ UFW нь юу хийж байгаагаа мэддэг администраторт туслахын тулд iptables нарийн төвөгтэй командуудыг хялбаршуулдаг.

UFW нь туслах бөгөөд график урд талын суурь юм.

Туршилтын хувьд ufw тестийг ашиглана уу.

PR_SET_SECCOMP

AppArmor

SELinux

SELinux нь файлын системийн индекс тодорхойлогч inode-ийн үзэл баримтлалд суурилсан заавал нэвтрэх хяналтын систем юм.

selinux багцыг суулгаснаар компьютер ачаалах үед шаардлагатай өөрчлөлт, тохируулга хийх болно.

Туршилтын хувьд test-kernel-security.py ашиглана уу.

SMACK

SMACK нь файлын системийн индексийн тодорхойлогч inode гэсэн ойлголт дээр суурилсан уян хатан, заавал нэвтрэх хяналтын систем юм.

Туршилтын хувьд test-kernel-security.py ашиглана уу.

Файлын системийн шифрлэлт

LVM шифрлэлт

Альтернатив суулгагчийг ашигладаг хэрэглэгчид Ubuntu-г шифрлэгдсэн LVM (Logical Volume Manage) дээр суулгаж болох бөгөөд энэ нь солилцооны хуваалт зэрэг бүх хуваалтыг шифрлэх болно.

eCryptfs

Шифрлэгдсэн хавтаснуудыг анх Ubuntu 8.10-д хэрэглэгчийн чухал мэдээллийг хадгалах аюулгүй газар болгон хэрэгжүүлсэн.

Альтернатив болон серверийн диск суулгагч нь эхний хэрэглэгчдэд шифрлэгдсэн фолдеруудыг тохируулах боломжийг олгодог.

Ubuntu 9.04 дээр фолдер шифрлэлтийн дэмжлэг өргөжиж, хэрэглэгч гэрийн фолдерыг бүхэлд нь шифрлэх боломжтой болсон. Home хавтасны шифрлэлтийг хэрэглэгчийн тохиргоо/encrypt-home=true параметрээр дамжуулан өөр суулгагч болон ширээний суулгагч дээр дэмждэг.

Хэрэглэгчийн орон зайн аюулгүй байдлыг бэхжүүлэх

Аюулгүй байдлын олон функцуудыг програм хангамжийн багц болон цөмийг бүтээхдээ эмхэтгэлийн тугуудыг ашиглан хэрэгжүүлдэг.

Стекийн хамгаалалт

gcc -fstack-protector туг нь жижиг санамсаргүй тоог тэмдэглэгээ болгон байрлуулснаар стек халихаас хамгаалдаг. Энэ арга нь стек халилтыг янз бүрийн мөлжлөгт илүү төвөгтэй болгодог.

Үгүй олон тооныХэрэв энэ параметрээр хөрвүүлбэл программууд сайн ажиллахгүй ба -fstack-protector-ыг идэвхгүй болгосон.

Туршилтын хувьд test-gcc-security.py ашиглана уу.

Нуруулдан хамгаалах

GNU C Номын сангийн овоолгын хамгаалалт (ptmalloc-оор автоматаар болон гараар) glibc санах ойн менежер дэх гэмтсэн жагсаалт/холбоосыг арилгах/давхар үнэгүй/халих хамгаалалтыг хангадаг.

Энэ нь овоолгын санах ойн хэт ачааллаар дур зоргоороо код ажиллуулах боломжоос сэргийлж, улмаар овоолгын бүсийн бүтцийг гэмтээдэг.

Энэхүү хамгаалалт нь цаг хугацаа өнгөрөх тусам улам бүр олон хамгаалалтын сонголтуудыг нэмсэн. IN одоогийн байдал glibc 2.10 нь бүр нарийн довтолгооны нөхцлийг амжилттай эсэргүүцдэг.

Муухай заагч

Зарим glibc заагчууд нь glibc доторх PTR_MANGLE/PTR_UNMANGLE макрогоор дамждаг бөгөөд энэ нь заагчийг ажиллах үед дарж бичихээс сэргийлдэг.

test-glibc-security.py тестийг ашиглана уу.

Хаягийн орон зайд санамсаргүй байдлаар байршуулах. Хаягийн орон зайн байршлыг санамсаргүй болгох (ASLR)

ASLR нь цөмд хэрэгждэг бөгөөд ELF дуудагч нь хамгийн чухал бүтцийг санамсаргүй хаягуудад байрлуулдаг: стек, овоо, хуваалцсан номын сан гэх мэт.

Энэ нь халдагч ашиглахыг оролдох үед хаягийг урьдчилан таамаглахад хэцүү болгодог.

ASLR дэлхий даяар /proc/sys/kernel/randomize_va_space-ээр өөрчлөгддөг. Ubuntu 8.10-аас өмнө утга нь "1" байсан (идэвхжүүлсэн). brk ASLR-г агуулсан дараагийн хувилбаруудад утгыг "2" гэж тохируулсан (brk ASLR-р идэвхжүүлсэн).

ASLR стек

Програмын гүйцэтгэл бүрийн үр дүнг стекийн өөр өөр хэсэгт байрлуулна. Санах ойноос олох, хортой ачааллыг нэмж програм руу халдах нь хэцүү байдаг.

Libs/mmap ASLR

Номын сангууд санах ойн өөр өөр байршилд динамикаар ачаалагддаг тул халдагчид буцах цэгийг олоход хэцүү болгодог.

Хамгаалалт нь цөмийн 2.6.15 (Ubuntu 6.06)-аас боломжтой.

Exec ASLR

"-fPIE -pie" сонголтоор бүтээгдсэн программуудыг санах ойн өөр өөр байршилд ачаалдаг. Энэ нь санах ойн өөрчлөлтийн дайралт хийхийн тулд довтлох эсвэл хаяг руу үсрэхэд хэцүү болгодог.

Хамгаалалт нь цөмийн 2.6.25 (Ubuntu 8.04 LTS)-ээс боломжтой.

brk ASLR

Exec ASLR-ийн нэгэн адил brk ASLR нь жижиг санах ой хуваарилах хүсэлтэд зориулж exec болон brk хооронд санах ойн хаягуудыг зохицуулдаг. 2.6.26 цөмд (Ubuntu 8.10) brk exec санах ойн санамсаргүй офсет нэмэгдсэн.

VDSO ASLR

Програмыг ажиллуулах бүрт үр дүнг өөр vdso-д байрлуулдаг. Эхлээд цөмийн 2.6.18 (x86, PPC) болон 2.6.22 (x86_64) дээр гарч ирсэн боловч Ubuntu 8.04 LTS дээр устгагдсан COMPAT_VDSO-ийн улмаас Ubuntu 6.10-д ороогүй.

Syscall руу үсрэх халдлагаас хамгаална.

Зөвхөн x86-г glibc 2.6 дэмждэг байсан. glibc 2.7 (Ubuntu 8.04 LTS) аль хэдийн x86_64 ASLR vdso-г дэмждэг.

Эртний статик pre-libc6 vdso хэрэгтэй байгаа хүмүүс "vdso=2"-г цөмийн параметр болгон ашиглаж COMPAT_VDSO-г дахин авах боломжтой.

PIE бүхий барилга

"-fPIE -pie" сонголттой Position Independent Executables (PIE)-тай хөрвүүлсэн бүх программууд exec ASLR хамгаалалтын давуу талыг ашиглах боломжтой.

Энэ нь "текст рүү буцах" халдлагаас хамгаалж, ердийн санах ойг өөрчлөх халдлагыг ашиггүй болгодог.

PIE-ийн улмаас цөөн тооны ерөнхий зориулалтын регистрүүд (x86 гэх мэт) бүхий архитектурын гүйцэтгэл их хэмжээгээр (5-10%) буурч байна.

Тиймээс PIE-ийг аюулгүй байдлын хувьд чухал ач холбогдолтой цөөн тооны пакетуудад ашигладаг.

x86_64-д зориулсан PIE нь гүйцэтгэлийн асуудалгүй бөгөөд бүх багцад ашиглагддаг, гэхдээ илүү сайн тест хийх шаардлагатай.

Гялгар уут 8.04 LTS 9.04 9.10 10.04 LTS 10.10 11.04 11.10
openssh Тиймээ Тиймээ Тиймээ Тиймээ Тиймээ Тиймээ Тиймээ
apache2 -- Тиймээ Тиймээ Тиймээ Тиймээ Тиймээ Тиймээ
холбох9 -- Тиймээ Тиймээ Тиймээ Тиймээ Тиймээ Тиймээ
нээлттэй -- Тиймээ Тиймээ Тиймээ Тиймээ Тиймээ Тиймээ
postfix -- Тиймээ Тиймээ Тиймээ Тиймээ Тиймээ Тиймээ
аяга -- Тиймээ Тиймээ Тиймээ Тиймээ Тиймээ Тиймээ
postgresql-8.3 -- Тиймээ Тиймээ Тиймээ Тиймээ Тиймээ Тиймээ
самба -- Тиймээ Тиймээ Тиймээ Тиймээ Тиймээ Тиймээ
тагтаа -- Тиймээ Тиймээ Тиймээ Тиймээ Тиймээ Тиймээ
dhcp3 -- Тиймээ Тиймээ Тиймээ Тиймээ Тиймээ Тиймээ
ntp -- -- Тиймээ Тиймээ Тиймээ Тиймээ Тиймээ
amavisd-шинэ -- -- Тиймээ Тиймээ Тиймээ Тиймээ Тиймээ
далайн амьтан -- -- Тиймээ Тиймээ Тиймээ Тиймээ Тиймээ
Сайрус-сасл2 -- -- Тиймээ Тиймээ Тиймээ Тиймээ Тиймээ
exim4 -- -- Тиймээ Тиймээ Тиймээ Тиймээ Тиймээ
nagios3 -- -- Тиймээ Тиймээ Тиймээ Тиймээ Тиймээ
nagios-plugins -- -- Тиймээ Тиймээ Тиймээ Тиймээ Тиймээ
xinetd -- -- Тиймээ Тиймээ Тиймээ Тиймээ Тиймээ
ipsec хэрэгслүүд -- -- Тиймээ Тиймээ Тиймээ Тиймээ Тиймээ
mysql-dfsg-5.1 -- -- Тиймээ Тиймээ Тиймээ Тиймээ Тиймээ
нотлох баримт -- -- -- Тиймээ Тиймээ Тиймээ Тиймээ
firefox -- -- -- Тиймээ Тиймээ Тиймээ Тиймээ
gnome-control-center -- -- -- -- -- Тиймээ Тиймээ
тифф -- -- -- -- -- Тиймээ Тиймээ
тотем -- -- -- -- -- Тиймээ Тиймээ
qemu-kvm -- -- -- -- -- -- Тиймээ
пиджин -- -- -- -- -- -- Тиймээ

Fortify Source ашиглан бүтээнэ үү

"-D_FORTIFY_SOURCE=2" (болон -O1 ба түүнээс дээш) дээр бүтээгдсэн програмууд нь glibc-д хэд хэдэн эмхэтгэл болон ажиллах үеийн хамгаалалтыг идэвхжүүлдэг:

  • "sprintf", "strcpy" гэсэн тодорхойгүй хил хязгаартай дуудлагууд нь буферийн хэмжээг урьдчилан мэдэж байх үед хязгаарлагдмал N-тэй холбогдох функцээр солигдоно. Энэ нь санах ойн хэт ачаалалаас хамгаална.
  • стринг бичих эрхтэй санах ойн сегментэд байх үед "%n" стринг форматаар дамжуулан халдлагыг зогсоох.
  • Хамгийн чухал функц, аргументуудын буцаах кодыг шалгахыг шаарддаг (жишээлбэл, систем, бичих, нээх).
  • файл үүсгэх үед маскыг тодорхой зааж өгөхийг шаарддаг.

RELRO-той угсрах

Ачаалагчийн санах ойг дарж бичихтэй тэмцэхийн тулд ELF програмуудыг чангатгах. GOT дарж бичих маягийн халдлагын магадлалыг бууруулдаг.

test-gcc-security.py тестийг ашиглана уу.

BIND_NOW ашиглан барьж байна

ELF программуудыг "шууд холбох" гэж нэрлэдэг бөгөөд эрэлт хэрэгцээний оронд эхлүүлэх үед динамик тэмдэгтүүдийг шийдвэрлэх зорилготой.

Энэ нь RELRO параметртэй хослуулан GOT-г зөвхөн унших боломжтой болгодог.

test-built-binaries.py тестийг ашигла.

Гүйцэтгэх боломжгүй санах ой

Орчин үеийн процессорууд өгөгдлийн санах ойн хэсгүүдийг (овоо, стек) кодыг гүйцэтгэхээс хамгаалдаг.

Энэ технологийг Non-eXecute (NX) эсвэл eXecute-Disable (XD) гэж нэрлэдэг. Хамгаалалт нь халдагчийн дур зоргоороо код байрлуулах чадварыг бууруулдаг.

Хамгаалалтад "PAE" шаардлагатай бөгөөд энэ нь мөн 3 ГБ-аас дээш RAM-г хаяглах боломжийг олгодог. 64 бит ба 32 бит - сервер ба - ерөнхий пае цөмүүд аль хэдийн PAE дээр бүтээгдсэн.

Ubuntu 9.10-аас эхлэн NX техник хангамжийг дэмждэггүй процессоруудад зориулсан 32 битийн цөмд хамгаалалтыг хэсэгчлэн эмуляци хийдэг.

Татаж авсны дараа та NX хамгаалалтын дэмжлэгийн түвшинг харж болно:

  • Техник хангамж: [ 0.000000] NX (Execute Disable) хамгаалалт: идэвхтэй
  • Эмуляци:
    [0.000000] NX хамгаалалтыг ойролцоолохын тулд x86 сегментийн хязгаарыг ашиглах

Хэрэв та NX-ийн талаар дурдаагүй бол BIOS тохиргоогоо шалгана уу. Ubuntu 11.04 хувилбарын хувьд NX-д зориулсан BIOS тохиргоог цөм үл тоомсорлодог.

Ubuntu 9.04 ба түүнээс өмнөх хувилбарууд
CPU NX дэмждэг CPU NX-г дэмждэггүй
BIOS-д NX идэвхжсэн BIOS дээр NX идэвхгүй болсон
i386 -386, -ерөнхий цөм (PAE бус) nx дэмждэггүй nx дэмждэггүй nx дэмждэггүй
-серверийн цөм (PAE) жинхэнэ nx nx дэмждэггүй nx дэмждэггүй
amd64 дурын цөм (PAE) жинхэнэ nx nx дэмждэггүй nx дэмждэггүй

test-kernel-security.py тестийг ашигла.

/proc/$pid/maps хамгаалах

ASLR ажиллаж байх үед процессуудын одоогийн санах ойн зураг нь халдагчдад маш үнэ цэнэтэй болдог. Газрын зургийн файлыг зөвхөн процесс өөрөө болон процессын эзэмшигч унших боломжтой.

Цөм 2.6.22-с хойш ашиглах боломжтой.

test-kernel-security.py тестийг ашигла.

Симбол холбоосын хязгаарлалт

Энэ согогийг ашиглах хамгийн түгээмэл арга бол root эрх бүхий хорлонтой үйлдэл хийхийн тулд халдагчийн үүсгэсэн симбол холбоосыг ашиглан root-г хүчээр ашиглах явдал юм.

Ubuntu 10.10 хувилбарын хувьд "дагагч" болон лавлах эзэмшигч нь тэмдэгт холбоосын эзэмшигчтэй ижил биш л бол /tmp гэх мэт сангууд дахь симбол холбоосуудыг дагах боломжгүй.

Энэ механизмыг Yama механизм /proc/sys/kernel/yama/protected_sticky_symlinks удирддаг. Yama-г Canonical боловсруулсан.

test-kernel-security.py тестийг ашигла.

Хатуу холбоосын хязгаарлалт

Хэрэв /etc/ болон /home/ сангууд нэг хуваалт дээр байрладаг бол энгийн хэрэглэгч /etc/shadow файл руу өөрийн нүүр хавтсанд нууц үгийн хэштэй хатуу холбоос үүсгэж болно. Мэдээжийн хэрэг, хэрэв тодорхой файлыг ямар ч хэрэглэгч унших эсвэл бичих боломжгүй бол хатуу холбоос энэ файлижил эрхтэй байх тул энэ хэрэглэгчдэд бас боломжгүй болно. Гэсэн хэдий ч, хатуу холбоосыг ашиглан халдагчид ийм файлыг хандах эрхтэй програм руу "гулсуулж" болно.

Yama нь эх файлд хандах зөвшөөрөлгүй хэрэглэгчдийг хатуу холбоос үүсгэхээс сэргийлж энэ халдлагыг хаах боломжийг танд олгоно.

Энэ зан үйлийг /proc/sys/kernel/yama/protected_nonaccess_hardlinks Yama удирддаг.

ptrace хамрах хүрээ

Тохиромжтой Yama хамгаалалтгүй бол CAP_SYS_PTRACE эрх бүхий аливаа процесс нь ижил UID-тэй бүх процессын санах ойд хандах боломжтой. Yama-г ашиглах үед та зөвхөн тухайн процессын удамд эзэмшдэг санах ойд хандах хандалтын хамрах хүрээг хязгаарлаж болно.

Ubuntu 10.10 ба түүнээс дээш хувилбар дээр хэрэглэгчид ptrace-ийн үр удам биш л бол процессуудыг дибаг хийх боломжгүй.

Энэ зан үйлийг /proc/sys/kernel/yama/ptrace_scope Yama удирддаг.

test-kernel-security.py тестийг ашигла.

Цөмийн хамгаалалтыг бэхжүүлэх

Довтолгоог улам хүндрүүлэхийн тулд цөмийн хамгаалалтын механизмыг идэвхжүүлсэн.

0 хаягийн хамгаалалт

Цөм болон хэрэглэгчийн орон зай нь виртуал санах ойн хаягуудыг хуваалцдаг тул "NULL" санах ой хамгаалагдсан байх ёстой бөгөөд "хэрэглэгч" санах ой нь 0 хаягаас эхлэх боломжгүй бөгөөд ингэснээр цөмийн хаягийн хаягжилтыг "NULL dereference" халдлагаас сэргийлнэ.

"mmap_min_addr" sysctl параметрээр дамжуулан 2.6.22 цөмөөс хамгаалалтыг авах боломжтой. Ubuntu 9.04-ийн байдлаар mmap_min_addr цөмд суурилагдсан - x86-д 64k, ARM-д 32k хаяг.

test-kernel-security.py тестийг ашигла.

Хамгаалах /dev/mem

Xorg гэх мэт зарим програмууд нь шууд хандахыг шаарддаг физик санах ойхэрэглэгчийн орон зайд. Тусгай файл /dev/mem ийм хандалтыг олгодог.

Өмнө нь халдагч root хандалт авсан тохиолдолд энэ файлаар дамжуулан цөмийн санах ойг харж, өөрчлөх боломжтой байсан.

Ийм оролдлогыг хаахын тулд CONFIG_STRICT_DEVMEM сонголтыг нэвтрүүлсэн (энэ сонголтыг CONFIG_NONPROMISC_DEVMEM гэж нэрлэдэг байсан).

test-kernel-security.py тестийг ашигла.

/dev/kmem идэвхгүй болсон

Орчин үеийн хэрэглэгчдийн хувьд /dev/kmem нь хамааралгүй, учир нь үүнийг халдагчид ихэвчлэн rootkit татаж авахад ашигладаг байсан.

CONFIG_DEVKMEM-г одоо "n" болгож тохируулсан.

/dev/kmem файл нь Ubuntu 8.04 LTS-ээс Ubuntu 9.04 хүртэлх хувилбаруудад байдаг боловч цөмд ямар нэгэн зүйлтэй холбоогүй бөгөөд ашиглагдаагүй байна.

test-kernel-security.py тестийг ашигла.

Модулийн ачааллыг блоклох

Ubuntu 8.04 LTS болон түүнээс өмнөх хувилбаруудад CAP_SYS_MODULES функцийг устгаж, шинэ цөмийн модулиудыг ачаалахаас урьдчилан сэргийлэх боломжтой байсан.

Энэ нь эвдэрсэн систем эхлэхэд rootkit татаж авахаас сэргийлэх өөр нэг хамгаалалтын түвшин байв.

Цөм 2.6.25 (Ubuntu 8.10) дээр энэ функц алга болсон. Ubuntu 9.10 хувилбараас хойш /proc/sys/kernel/modules_disabled-ийг "1" болгож тохируулснаар модулиудыг дахин идэвхгүй болгох боломжтой болсон.

test-kernel-security.py тестийг ашигла.

Зөвхөн унших боломжтой мэдээллийн хэсэг

Цөмийн өгөгдлийн хэсгийг зөвхөн уншигдах боломжтой гэж тэмдэглэх нь өөрчлөлтийг хаах болно. Энэ нь зарим rootkit-ээс хамгаалахад тусалдаг. CONFIG_DEBUG_RODATA сонголтоор идэвхжүүлсэн.

test-kernel-security.py тестийг ашигла.

Цөмийн стекийн хамгаалалт

Хэрэглэгчийн орон зайд ELF программыг хамгаалахтай адил цөм нь CONFIG_CC_STACKPROTECTOR сонголтоор дамжуулан дотоод стекээ хамгаалж чадна.

test-kernel-security.py тестийг ашигла.

RO/NX модуль

Энэ функц нь ачаалагдсан цөмийн модулиудын хязгаарлалтыг оруулахын тулд CONFIG_DEBUG_RODATA-г өргөтгөдөг. Энэ нь мөлжлөгөөс урьдчилан сэргийлэхэд тусалдаг. CONFIG_DEBUG_MODULE_RONX параметрээр идэвхжүүлсэн.

test-kernel-security.py тестийг ашигла.

Цөмийн хаягийг харуулах хязгаарлалт

Халдагчид цөмийн эмзэг байдлыг ашиглан хаана ч хамаагүй ашиглахыг оролдохдоо цөмийн дотоод бүтцийн байршлыг мэдэх хэрэгтэй.

Цөмийн хаягууд нь чухал мэдээллийн хувьд энгийн хэрэглэгчдэд боломжгүй байдаг.

Ubuntu 11.04-ээс эхлэн /proc/sys/kernel/kptr_restrict-г "1" болгож, цөмийн хаягийн мэдээлэл алдагдахыг блоклодог.

Түүнээс гадна, янз бүрийн файлуудмөн сангуудыг зөвхөн root-ээр уншдаг
/boot/vmlinuz*, /boot/System.map*, /sys/kernel/debug/, /proc/slabinfo

test-kernel-security.py тестийг ашигла.

Ховор протоколуудын хар жагсаалт

Ерөнхийдөө цөм нь бүх сүлжээний протоколуудыг MODULE_ALIAS_NETPROTO(PF_...) макрогоор дамжуулан хүссэн үедээ автоматаар ачаалах боломжийг олгодог.

Эдгээр протоколуудын ихэнх нь хуучирсан, ховор, тэр ч байтугай ашиглахад бага байдаг байнгын хэрэглэгч Ubuntu нь үл мэдэгдэх эмзэг байдлыг агуулж болзошгүй тул Ubuntu 11.04-ээс эхлэн хар жагсаалтад орсон.

Хар жагсаалтад орсон: ax25, netrom, x25, rose, decnet, econet, rds болон af_802154.

Хэрэв эдгээр протоколуудын аль нэг нь шаардлагатай бол modprobe-ээр эсвэл /etc/modprobe.d/blacklist-rare-network.conf-г засварлаж ачаалж болно.

test-kernel-security.py тестийг ашигла.

Системийн дуудлагын шүүлтүүр

Програмууд нь seccomp_filter ашиглан цөмийн дуудлагыг шүүж болно.

Найдваргүй байж болох программ хангамжийг хязгаарлахын тулд үүнийг контейнер эсвэл хамгаалагдсан хязгаарлагдмал орчинд хийдэг.

test-kernel-security.py тестийг ашигла.

Доод шугам

Уншсаны дараа энэ нь тодорхой байна Canonical нь Ubuntu-ийн аюулгүй байдлыг нухацтай авч үздэг. AppArmor болон Yama гэсэн хоёр төсөл нь Ubuntu-тай удаан хугацааны турш холбоотой байсан бөгөөд аюулгүй байдлыг сайжруулахад тусалдаг. Ubuntu нь анхдагч байдлаар сүлжээн дэх шаардлагагүй портуудыг нээхгүй бөгөөд адал явдал гарахыг хүлээхгүй. Сүлжээнд ажилладаг гол программуудад зориулж AppArmor профайлыг үүсгэсэн бөгөөд энэ нь програмуудыг хяналтандаа байлгадаг.

Ubuntu-ийн тусламжтайгаар таны компьютер аюулгүй байх болно!

2015 онд жил бүр болдог LinuxCon бага хурал дээр GNU/Linux цөмийг бүтээгч Линус Торвалдс системийн аюулгүй байдлын талаар санал бодлоо хуваалцсан. Зарим алдааны үр нөлөөг чадварлаг хамгаалалтаар багасгах шаардлагатайг тэрээр онцлон тэмдэглэж, хэрэв нэг бүрэлдэхүүн хэсэг доголдвол дараагийн давхарга нь асуудлыг хамарна.

Энэ материалд бид энэ сэдвийг практик талаас нь авч үзэхийг хичээх болно.

7. Галт хана суурилуулах

Саяхан Линукс дээр ажилладаг серверүүд дээр DDoS халдлага хийх боломжийг олгодог шинэ эмзэг байдал гарч ирэв. Системийн цөмд алдаа 2012 оны сүүлээр 3.6 хувилбар дээр гарч ирэв. Энэ эмзэг байдал нь хакеруудад татаж авах файл, вэб хуудас, нээлттэй Tor холболт руу вирус оруулах боломжийг олгодог бөгөөд хакердах нь их хүчин чармайлт шаарддаггүй - IP хууран мэхлэх арга ажиллах болно.

Шифрлэгдсэн HTTPS эсвэл SSH холболтын хамгийн их хохирол нь холболтын тасалдал боловч халдагчид хамгаалалтгүй траффик руу хортой програм зэрэг шинэ контент оруулах боломжтой. Галт хана нь ийм халдлагаас хамгаалахад тохиромжтой.

Галт хана ашиглан хандалтыг хаах

Галт хана нь хүсээгүй ирж ​​буй урсгалыг хаах хамгийн чухал хэрэгслүүдийн нэг юм. Бид зөвхөн шаардлагатай хөдөлгөөнийг зөвшөөрч, бусад бүх зүйлийг бүрэн хаахыг зөвлөж байна.

Пакет шүүлтүүрийн хувьд ихэнх Linux түгээлтүүд iptables хянагчтай байдаг. Үүнийг ихэвчлэн ахисан түвшний хэрэглэгчид ашигладаг бөгөөд хялбаршуулсан тохиргоог хийхийн тулд та Debian/Ubuntu эсвэл Fedora дахь FirewallD дээрх UFW хэрэгслүүдийг ашиглаж болно.

8. Шаардлагагүй үйлчилгээг идэвхгүй болгох

Виржиниагийн их сургуулийн мэргэжилтнүүд ашигладаггүй бүх үйлчилгээг идэвхгүй болгохыг зөвлөж байна. Зарим арын процессыг автоматаар эхлүүлж, систем унтрах хүртэл ажилладаг. Эдгээр програмуудыг тохируулахын тулд та эхлүүлэх скриптүүдийг шалгах хэрэгтэй. Үйлчилгээг inetd эсвэл xinetd-ээр эхлүүлж болно.

Хэрэв таны систем inetd-ээр тохируулагдсан бол /etc/inetd.conf файлаас та жагсаалтыг засах боломжтой. суурь програмууд"Чөтгөрүүд" үйлчилгээг ачаалахыг идэвхгүй болгохын тулд мөрийн эхэнд "#" тэмдэг тавьж, үүнийг гүйцэтгэгчээс тайлбар болгон хувиргахад хангалттай.

Хэрэв систем нь xinetd ашигладаг бол түүний тохиргоо нь /etc/xinetd.d санд байх болно. Лавлах файл бүр нь энэ жишээн дээрх шиг disable = yes гэж зааж өгснөөр идэвхгүй болгож болох үйлчилгээг тодорхойлдог.

Үйлчилгээний хуруу ( socket_type = урсгал хүлээх = хэрэглэгч байхгүй = хэн ч сервер = /usr/sbin/in.fingerd disable = тийм)
Мөн inetd эсвэл xinetd-ээр удирдуулдаггүй байнгын процессуудыг шалгах нь зүйтэй. Та /etc/init.d эсвэл /etc/inittab сангаас эхлүүлэх скриптүүдийг тохируулах боломжтой. Өөрчлөлтүүдийг хийсний дараа root дансны доор тушаалыг ажиллуулна уу.

/etc/rc.d/init.d/inet дахин эхлүүлэх

9. Серверийг физикийн хувьд хамгаалах

Сервер рүү физик хандалттай халдагчийн халдлагаас бүрэн хамгаалах боломжгүй юм. Тиймээс таны систем байрладаг өрөөг хамгаалах шаардлагатай. Мэдээллийн төвүүд аюулгүй байдлыг нухацтай хянаж, серверт хандах хандалтыг хязгаарлаж, хамгаалалтын камер суурилуулж, байнгын хамгаалалтыг томилдог.

Мэдээллийн төвд орохын тулд бүх зочдод баталгаажуулалтын тодорхой үе шатуудыг давах ёстой. Мөн төвийн бүх хэсэгт хөдөлгөөн мэдрэгчийг ашиглахыг зөвлөж байна.

10. Серверийг зөвшөөрөлгүй хандалтаас хамгаалах

Зөвшөөрөлгүй хандалтын систем эсвэл IDS нь системийн тохиргоо болон файлын өгөгдлийг цуглуулж, эдгээр өгөгдлийг системд хортой эсэхийг тодорхойлохын тулд шинэ өөрчлөлтүүдтэй харьцуулдаг.

Жишээлбэл, Tripwire болон Aide хэрэгслүүд нь мэдээллийн санг цуглуулдаг системийн файлуудмөн тэдгээрийг түлхүүрийн багцаар хамгаална. Psad-ийг мөрдөхөд ашигладаг сэжигтэй үйл ажиллагаагалт ханын тайланг ашиглах.

Bro нь сүлжээг хянах, сэжигтэй үйл ажиллагааны хэв маягийг хянах, статистик мэдээлэл цуглуулах, системийн командуудыг гүйцэтгэх, сэрэмжлүүлэг үүсгэх зориулалттай. RKHunter-ийг вирус, ихэнхдээ руткиттерээс хамгаалахад ашиглаж болно. Энэ хэрэгсэл нь таны системийг мэдэгдэж буй эмзэг байдлын мэдээллийн баазтай харьцуулан шалгаж, програмын аюултай тохиргоог тодорхойлох боломжтой.

Дүгнэлт

Дээр дурдсан хэрэгслүүд болон тохиргоонууд нь системийг хэсэгчлэн хамгаалахад туслах боловч аюулгүй байдал нь таны зан байдал, нөхцөл байдлын талаарх ойлголтоос хамаарна. Анхаарал, болгоомжлол, өөрийгөө байнга сургахгүйгээр бүх хамгаалалтын арга хэмжээ ажиллахгүй байж магадгүй юм.

Сайн байцгаана уу... Ubuntu-ийн бүх шинэхэн администраторууд сүлжээний интерфэйсүүдийг (сүлжээ, сүлжээний картууд) тохируулах үүрэгтэй. Энэ нийтлэлд би үүнийг хэрхэн хийхийг харуулах болно... Энэ нь маш энгийн байдлаар хийгдсэн ...

Хэрэв та ямар нэгэн байдлаар сүлжээгээ тохируулахаа орхисон эсвэл түгээлтийг суулгахад бэрхшээлтэй байсан бол одоо бид үүнийг гараар хийх болно. Тиймээс бид түгээлтийг суулгасан бөгөөд биднийг дайралтанд хүлээж байна ... Бид 2 сүлжээний картыг тохируулах хэрэгтэй ..... Бидний нэг нь үйлчилгээ үзүүлэгчтэй, нөгөө нь дотоод сүлжээтэй тулгардаг. Нэн даруй зөвшөөрч, интерфэйс болон хаягаа тодорхойлъё.

eth0— 192.168.0.1 (энэ нь үйлчилгээ үзүүлэгчийн гаргасан хаяг гэж бодъё) Интернэт рүү хардаг интерфейс (үзүүлэгч)
eth1— 10.0.0.1 (бидний энэ интерфейс рүү өгөхийг хүссэн хаяг) Дотоод сүлжээнд тулгарч буй интерфейс

Юуны өмнө бид аль интерфэйсүүдийг командаар эхлүүлсэн болохыг шалгацгаая ifconfigТа үүнтэй төстэй зүйлийг харах болно (ххххх биш зөвхөн таны датагаар)

Eth0 Link encap:Ethernet HWaddr хх:хх:хх:хх:хх:хх inet хаяг:xxx.xxx.xxx.xxx Bcast:xxx.xxx.xxxx.xxx Маск:255.255.255.252 inet6 addr: xxx:x :xxx:xxxx/64 Хамрах хүрээ:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Метрик:1 RX пакет:31694097 алдаа:0 уналт:0 хэтрүүлсэн: 0 фрейм:0 TX багц:15166512 алдаа:0 хэтэрсэн:0ri 0 мөргөлдөөн: 0 txqueuelen: 100 RX байт: 2215593127 (2.2 ГБ) TX байт: 1577680249 (1.5 ГБ) Санах ой: b8820000-b8840000 eth1 Холбоосын хавтас: Ethernet Hxxx: 0.x inc: Ethernet HWadrx: 0.x: 1.x нэмэх. 0.1 Bcast:10.0.0.255 Mask:255.255.255.0 inet6 xxxx: xxxx::xxxx:xxxf:xxx:xxx/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:11352041 errors:0 dropped:0 overruns :0 хүрээ: 0 TX пакетууд: 21539638 алдаа: 0 уналт: 0 хэтэрсэн: 0 зөөгч: 0 зөрчил: 0 txqueuelen: 100 RX байт: 1262641422 (1.2 ГБ) TX байт: 1922838889 (1:9 GB) lo8000y Link-080y encap:Local loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Хамрах хүрээ:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX пакет:3823 алдаа:0 уналт:0 фрэйм: overrun 0 TX пакетууд: 3823 алдаа: 0 уналт: 0 хэтэрсэн: 0 зөөгч: 0 мөргөлдөөн: 0 txqueuelen: 0 RX байт: 717663 (717.6 KB) TX байт: 717663 (717.6 KB)

Хэрэв интерфэйсүүдийн аль нэг нь харагдахгүй байвал зүгээр. Зүгээр л идэвхгүй болсон, командаар асаацгаая sudo ifconfig eth1 дээш(eth1-ийн оронд интерфэйсээ бичнэ үү, хэрэв танд 2 сүлжээний карт байгаа бол зөвхөн 2 интерфейс байна: eth0 болон eth1) Тиймээс бид интерфэйсээ идэвхжүүлнэ:

sudo ifconfig eth1 дээш

Ингээд тохируулж эхэлцгээе.

Дараах тушаалаар үйлчилгээ үзүүлэгчээс гаргасан IP хаягийг eth0 интерфэйсэд оноож үзье.

sudo ifconfig eth1 inet 192.168.0.2

Мөн сүлжээний маскыг зааж өгнө үү:

sudo ifconfig eth0 сүлжээний маск 255.255.255.0

Серверийг дахин ачаалсны дараа ийм байдлаар хийсэн тохиргоог дахин тохируулна.
Үүнээс урьдчилан сэргийлэхийн тулд та тохиргоог өөрчлөх хэрэгтэй тохиргооны файлсүлжээний интерфейсүүд. Үүний тулд танд Root эрх хэрэгтэй. Эрхийг нь авцгаая Үндэсдараах тушаалаар:

sudo su

Сүлжээний интерфейсийн тохиргооны файл нь дараах хаягаар байрлана /etc/network/interfacesҮүнийг засахын тулд бид Nano засварлагчийг ашигладаг (та өөрийн редакторыг ашиглаж болно) Надад таалагдаж байна Нано

нано /гэх мэт/сүлжээ/интерфэйсүүд

Бид дараахь зүйлийг харж байна.

# Энэ файл нь таны системд байгаа сүлжээний интерфэйсүүдийг тодорхойлдог # мөн тэдгээрийг хэрхэн идэвхжүүлэх талаар. Дэлгэрэнгүй мэдээллийг интерфэйс(5)-аас үзнэ үү. # Сүлжээний холболтын интерфейс авто хар iface lo inet loopback # Сүлжээний үндсэн интерфейс//Үндсэн сүлжээний интерфейс автомат eth0//Сүлжээний интерфэйсэд дараах шинж чанаруудыг оноож байна iface eth0 inet статик//Сүлжээний интерфейсийг автоматаар идэвхжүүлнэ хаяг 192.168.0.2//манай ip хаяг сүлжээний карт(үйлчилгээ үзүүлэгчээс гаргасан) сүлжээний маск 255.255.255.0//Манай IP байрладаг сүлжээний маск сүлжээ 192.168.0.0//Бүх хүрээний сүлжээ нэвтрүүлэг 192.168.0.255//Макс. хаягийн тоо гарц 192.168.0.1//Гарц Хэрэв суулгасан бол # dns-* сонголтуудыг resolvconf багц хэрэгжүүлдэг

Үүнийг дараах хэлбэрт оруулах шаардлагатай байна

# Энэ файл нь таны системд байгаа сүлжээний интерфэйсүүд болон тэдгээрийг хэрхэн идэвхжүүлэх талаар тайлбарласан болно. Дэлгэрэнгүй мэдээллийг интерфэйс(5)-аас үзнэ үү. # Сүлжээний давталтын интерфэйс auto lo iface lo inet loopback # Сүлжээний үндсэн интерфэйс auto eth0 iface eth0 inet статик хаяг 192.168.0.2 сүлжээний маск 255.255.255.0 сүлжээ 192.168.0.0 гарц 192.168.0.0 багц сонголтуудыг дахин хэрэгжүүлсэн. dns-nameservers суулгасан бол 192.168.22.22 192.168.33.33 #Дотоодын сүлжээнд харагдах интерфэйс авто eth1 iface eth1 inet статик хаяг 10.0.0.1 сүлжээний маск 255.255.255.0

Ctrl + O товчийг дарж өөрчлөлтүүдийг хадгалаад Ctrl + X дээр дарж гарна уу

Хаяг DNS серверүүд/etc/network/interfaces файлд тохируулж болох боловч Ubuntu дахь DNS серверийн хаягуудыг /etc/resolv.conf файлаар удирддаг; миний хувьд дараах байдалтай байна:

нэрийн сервер xx.xx.xx.xx нэрийн сервер xx.xx.xx.xx

DNS тохиргоог хийцгээе, үүнийг хийхийн тулд мөрөнд дараах тушаалыг оруулна уу.

Sudo nano /etc/resolv.conf # Таны үйлчилгээ үзүүлэгчийн DNS серверийн нэрийн серверийн IP хаягууд хх.ххх.ххх.ххх нэрийн сервер ххх.ххх.хх.ххх

Хадгалцгаая Ctrl+Oтэгээд бид гадагш гарна Ctrl + xта мөн дараах тушаалаар сүлжээг дахин ачаалах хэрэгтэй.

Бидний хэн нь ч хувийн мэдээлэл буруу гарт орохыг хүсдэггүй. Гэхдээ системээ халдлага, мэдээлэл хулгайлахаас хэрхэн хамгаалах вэ? Та үнэхээр тохируулах, шифрлэх алгоритмын талаар километрийн урт гарын авлагыг унших шаардлагатай байна уу? Огт шаардлагагүй. Энэ нийтлэлд би Линукс системийг 30 минутын дотор хэрхэн аюулгүй болгохыг танд хэлэх болно.

Оршил

Бид эрин зуунд амьдарч байна хөдөлгөөнт төхөөрөмжүүдмөн байнгын онлайн. Бид зөөврийн компьютертэй кафед орж, гэрийн машин дээрээ интернетэд нээлттэй вэб сервер ажиллуулдаг. Бид олон зуун сайтад бүртгүүлж, вэб үйлчилгээнд ижил нууц үгийг ашигладаг. Бид үргэлж халаасандаа хэдэн арван нууц үг, хэд хэдэн SSH серверийн түлхүүр бүхий ухаалаг утастай байдаг. Бид гуравдагч этгээдийн үйлчилгээнд бидний хувийн нууцад санаа тавихад маш их дассан тул үүнд анхаарлаа хандуулахаа больсон.

Ухаалаг утсаа алдах үед түүн дээр суулгасан хулгайн эсрэг төхөөрөмж ажиллаж, төхөөрөмжийн санах ойноос бүх өгөгдлийг алсаас устгах боломжийг олгосонд би маш их азтай байсан. Би нууц үггүй (!) хэрэглэгчтэй гэрийн машин дээр санамсаргүйгээр SSH портыг гадаад ертөнцөд (!!) нээхэд скриптийн хүүхдүүд машин дээр сууж, инээдтэй бүрхүүлийн түүхийг эс тооцвол би маш азтай байсан. системд тэдний оршихуйн ноцтой ул мөр үлдээхгүй байх. Би санамсаргүй байдлаар Gmail-ийн нууц үгээ интернэтэд байршуулахад энэ талаар надад анхааруулсан сайхан сэтгэлтэй хүн байсанд би маш их азтай байсан.

Магадгүй би тэнэг байж магадгүй, гэхдээ эдгээр мөрүүдийг уншсан олон хүнд үүнтэй төстэй үйл явдал тохиолдсон гэдэгт би итгэлтэй байна. Эдгээр хүмүүс надаас ялгаатай нь машинаа хамгаалахад нухацтай хандсан бол сайн хэрэг. Эцсийн эцэст, хулгайн эсрэг арга нь ажиллахгүй байж магадгүй бөгөөд скрипт хүүгийн оронд ноцтой хүмүүс машинд суусан байж магадгүй бөгөөд би ухаалаг утас биш, харин хэрэглэгчийн нууц үгээс өөр хамгаалалтгүй зөөврийн компьютерээ алдсан байж магадгүй юм. . Үгүй ээ, та энэ цаг үед Google-ийн хоёр хүчин зүйлийн баталгаажуулалт, тэнэг нууц үгэнд найдах ёсгүй, танд илүү ноцтой зүйл хэрэгтэй.

Энэхүү нийтлэл нь Линукс машиныг бүх зүйлээс хамгаалахад зориулагдсан паранойд Unixoid-д зориулсан гарын авлага юм. Энд тайлбарласан бүх зүйлийг заавал хэрэглэх ёстой гэж хэлэхээс эргэлзэж байна. Үүний эсрэгээр, энэ бол таны тодорхой нөхцөл байдалд шаардлагатай түвшинд өөрийгөө болон мэдээллээ хамгаалахад ашиглаж болох жор, мэдээллийн цуглуулга юм.

Нууц үг!

Энэ бүхэн нууц үгээс эхэлдэг. Тэдгээр нь хаа сайгүй байдаг: Линукс түгээлтийн нэвтрэх цонхонд, интернет сайтууд дахь бүртгэлийн маягтууд, FTP болон SSH серверүүд, ухаалаг утасны түгжигдсэн дэлгэц дээр. Өнөөдөр нууц үгийн стандарт нь холимог үсгээр 8-12 тэмдэгтээс бүрдэх ба тоонуудыг оруулаад байна. Ийм нууц үгийг өөрийн бодлоор үүсгэх нь нэлээд уйтгартай боловч үүнийг автоматаар хийх хялбар арга бий:

$ openssl rand -base64 6

Байхгүй гадаад програмууд, вэб хөтчүүдэд зориулсан өргөтгөл байхгүй, OpenSSL нь ямар ч машин дээр байдаг. Хэдийгээр энэ нь хэн нэгэнд илүү тохиромжтой бол тэд эдгээр зорилгоор pwgen суулгаж, ашиглаж болно (тэд нууц үг илүү хүчтэй болно гэж хэлдэг):

$ pwgen -Bs 8 1

Нууц үгээ хаана хадгалах вэ? Өнөөдөр хэрэглэгч бүр ийм олон зүйлтэй байдаг тул түүний толгойд бүх зүйлийг хадгалах боломжгүй юм. Хөтөчийнхөө автомат хадгалах системд итгэх үү? Энэ нь боломжтой, гэхдээ Google эсвэл Mozilla тэдэнд хэрхэн хандахыг хэн мэдэх билээ. Энэ нь тийм ч сайн биш гэж Сноуден хэлэв. Тиймээс нууц үгийг машин дээр өөрөө шифрлэгдсэн саванд хадгалах ёстой. Үүсгэн байгуулагч аавууд үүний тулд KeePassX-г ашиглахыг зөвлөж байна. График дүрслэл нь үүсгэн байгуулагчдынх нь хувьд тийм ч таалагддаггүй, гэхдээ энэ нь алдартай Android Google проб (KeePassDroid) зэрэг хаа сайгүй ажилладаг. Зөвхөн нууц үг бүхий мэдээллийн санг шаардлагатай газарт шилжүүлэх л үлдлээ.

Шифрлэцгээе

Шифрлэлт - энэ үгэнд маш их зүйл бий... Өнөөдөр шифрлэлт хаа сайгүй, хаана ч нэгэн зэрэг байна. Бид вэбсайтуудын HTTPS хувилбарыг ашиглахаас өөр аргагүй болсон ч бидэнд хамаагүй. Тэд бидэнд "Гэрийн лавлахыг шифрлээрэй" гэж хэлэхэд бид "Тэгвэл би үүнийг тохируулна" гэж хэлдэг. Тэд бидэнд: "Dropbox-ын ажилчдын дуртай зугаа цэнгэл бол хэрэглэгчдийн хувийн зургийг хараад инээх явдал" гэж хэлдэг бол бид: "Тэд инээцгээе." Үүний зэрэгцээ, шифрлэлт нь өнөөдөр хамгаалах цорын ганц үнэмлэхүй хэрэгсэл юм. Энэ нь бас маш хямд бөгөөд үрчлээг толигор болгодог.

Линукс нь хатуу дискний хуваалтаас эхлээд ганц файл хүртэлх бүх зүйлийг шифрлэх олон сонголттой. Хамгийн алдартай, цаг хугацаагаар туршсан гурван хэрэгсэл бол dm-crypt/LUKS, ecryptfs, encfs юм. Эхнийх нь бүхэл бүтэн диск болон хуваалтуудыг, хоёр, гурав дахь нь чухал мэдээлэл бүхий сангуудыг, файл бүрийг тусад нь шифрлэдэг бөгөөд хэрэв та нэмэлт нөөцлөлт хийх эсвэл Dropbox-той хамт ашиглах шаардлагатай бол маш тохиромжтой. Жишээлбэл, TrueCrypt гэх мэт цөөн хэдэн алдартай хэрэгслүүд байдаг.

Дискийг бүхэлд нь шифрлэх нь хэцүү ажил бөгөөд хамгийн чухал нь ашиггүй гэдгийг би даруй захиалъя. Үндсэн лавлахад онцгой нууц зүйл байхгүй бөгөөд байж ч болохгүй, гэхдээ гэрийн лавлах болон своп нь ердөө л мэдээллийн эрдэнэсийн сан юм. Түүгээр ч барахгүй, хоёр дахь нь эхнийхээс ч том, учир нь өгөгдөл, нууц үг нь шифрлэгдсэн хэлбэрээр орж ирдэг (энгийн програмистууд системд ийм өгөгдлийг своп руу оруулахыг хориглодог, гэхдээ ийм хүмүүс цөөнх байдаг). Аль алинд нь шифрлэлтийг тохируулах нь маш энгийн, зүгээр л ecrypts хэрэгслүүдийг суулгаарай:

$ sudo apt-get суулгах ecryptfs-utils

Үнэн хэрэгтээ шифрлэлтийг идэвхжүүлнэ үү:

$ sudo ecryptfs-setup-swap $ ecryptfs-setup-private

Дараа нь нэвтрэхэд ашигласан нууц үгээ оруулаад системд дахин нэвтэрнэ үү. Тийм ээ, энэ үнэхээр энгийн. Эхний тушаал нь солихыг шифрлэж, дахин холбож, өөрчлөгдөнө шаардлагатай шугамууд/etc/fstab дотор. Хоёр дахь нь ~/.Private болон ~/Private сангуудыг үүсгэх бөгөөд тэдгээрт шифрлэгдсэн болон шифрлэгдсэн файлууд тус тус хадгалагдах болно. Таныг нэвтрэн ороход pam_ecryptfs.so PAM модулийг идэвхжүүлэх бөгөөд энэ нь ил тод өгөгдөл шифрлэлтээр эхний лавлахыг хоёр дахь директор руу холбох болно. Салгасны дараа ~/Private хоосон байх ба ~/.Private нь шифрлэгдсэн хэлбэрээр бүх файлуудыг агуулна.

Гэрийн лавлахыг бүхэлд нь шифрлэхийг хориглодоггүй. Энэ тохиолдолд гүйцэтгэл тийм ч их буурахгүй, гэхдээ ижил файлыг оруулаад бүх файлууд хамгаалагдах болно сүлжээний лавлах~/Dropbox. Үүнийг дараах байдлаар хийдэг.

# ecryptfs-migrate-home -u vasya

Дашрамд хэлэхэд, дискний зай нь васягийн өгөгдлөөс 2.5 дахин их байх ёстой тул үүнийг урьдчилан цэвэрлэхийг зөвлөж байна. Үйл ажиллагаа дууссаны дараа та шууд хэрэглэгчийн нэрээр нэвтэрч, функцийг шалгах хэрэгтэй.

$mount | grep Хувийн /home/vasya/.Private on /home/vasya type ecryptfs ...

Хэрэв бүх зүйл хэвийн байвал та өгөгдлийн шифрлэгдээгүй хуулбарыг дарж бичиж болно:

$ sudo rm -r /home/vasya.*

Бидний мөрийг хааж байна

За, нууц үг нь аюулгүй газар, хувийн файлууд, одоо яах вэ? Одоо бид хувийн мэдээллийнхээ зарим хэсэг буруу гарт орохгүй байхыг анхаарах ёстой. Файлыг устгасан ч дараа нь форматласан ч одоогийн агуулга нь медиа дээр үлддэг нь нууц биш юм. Бидний шифрлэгдсэн өгөгдөл устгагдсан ч аюулгүй байх болно, гэхдээ флаш диск болон бусад санах ойн картуудын талаар юу хэлэх вэ? Энд бидэнд файлыг устгаад зогсохгүй үлдсэн өгөгдлийн блокуудыг хог хаягдлаар дүүргэдэг srm хэрэгсэл хэрэгтэй болно.

$ sudo apt-get суулгах аюулгүй-устгах $ srm secret-file.txt home-video.mpg

# dd хэрэв=/dev/zero of=/dev/sdb

Энэ тушаал нь sdb флаш диск дээрх бүх өгөгдлийг устгах болно. Дараа нь хуваалтын хүснэгтийг (нэг хуваалттай) үүсгэж, хүссэн файлын системд форматлах л үлдлээ. Үүний тулд fdisk болон mkfs.vfat-г ашиглахыг зөвлөж байна, гэхдээ та график gparted-ээр ч бас болно.

BruteForce халдлагаас урьдчилан сэргийлэх

Fail2ban нь сүлжээний үйлчилгээний нууц үгийг таах оролдлогын логийг сканнердсан демон юм. Хэрэв ийм оролдлого олдвол сэжигтэй IP хаягийг iptables эсвэл TCP Wrappers ашиглан хаадаг. Энэ үйлчилгээ нь хост эзэмшигчид тохиолдлын талаар имэйлээр мэдэгдэж, тодорхой хугацааны дараа хаалтыг дахин тохируулах боломжтой. Fail2ban нь анх SSH-г хамгаалах зорилгоор бүтээгдсэн бөгөөд өнөөдөр Apache, lighttpd, Postfix, Exim, Cyrus IMAP, нэртэй гэх мэтийн бэлэн жишээг санал болгож байна. Түүнээс гадна нэг Fail2ban процесс нь хэд хэдэн үйлчилгээг нэг дор хамгаалах боломжтой.

Ubuntu/Debian дээр суулгахын тулд бид дараахыг бичнэ.

# apt-get суулгах fail2ban

Тохиргоонууд нь /etc/fail2ban санд байрладаг. Тохиргоог өөрчилсний дараа та дараах тушаалаар fail2ban-г дахин эхлүүлэх хэрэгтэй.

# /etc/init.d/fail2ban дахин эхлүүлэх

Гаднаас заналхийлж байна

Одоо гүнээс гарч буй аюул заналхийллийг анхаарч үзье дэлхийн өргөн сүлжээ. Эндээс би iptables болон OpenBSD-г ажиллуулж байгаа зориулалтын машин дээр ажиллаж байгаа pf-ийн тухай ярьж эхлэх ёстой, гэхдээ ipkungfu байгаа үед энэ бүхэн илүүц болно. Энэ юу вэ? Энэ бол бидний хувьд галт ханыг тохируулах бүх бохир ажлыг хийх скрипт бөгөөд олон км урт дүрмийн жагсаалтыг бичих шаардлагагүй юм. Суулгах:

$ sudo apt-get суулгах ipkungfu

Тохиргоог засах:

$ sudo vi /etc/ipkungfu/ipkungfu.conf # Дотоод сүлжээ, байгаа бол сүлжээний хаягийг масктай хамт бичнэ үү, үгүй ​​бол Loopback хаягийг бичнэ үү LOCAL_NET="127.0.0.1" # Манай машин гарц биш GATEWAY=0 # Шаардлагатай портуудыг хаах FORBIDDEN_PORTS="135 137 139" # Блок ping, хүүхдийн 90% нь энэ үе шатанд унах болно BLOCK_PINGS=1 # Сэжигтэй пакетуудыг хаях (янз бүрийн төрлийн үерийн) SUPECT="DROP" # "Буруу" пакетуудыг (зарим төрлийн DoS) унагах нь МЭДЭГДСЭН_МУУ="DROP" # Скан хийж байна портууд? Траш! PORT_SCAN="ДУСАХ"

Ipkungfu-г идэвхжүүлэхийн тулд /etc/default/ipkungfu файлыг нээж, IPKFSTART = 0 мөрийг IPKFSTART = 1 болгож өөрчилнө үү.

$sudo ipkungfu

Нэмж хэлэхэд, /etc/sysctl.conf-д өөрчлөлт оруулъя:

$ sudo vi /etc/systcl.conf # ICMP дахин чиглүүлэлтүүдийг буулгах (MITM халдлагын эсрэг) net.ipv4.conf.all.accept_redirects=0 net.ipv6.conf.all.accept_redirects=0 # TCP syncookies механизмыг идэвхжүүлнэ net.ipv4 . tcp_syncookies=1 # Төрөл бүрийн тохируулга (хуурамчлахын эсрэг, “хагас нээлттэй” TCP холболтын дарааллыг нэмэгдүүлэх гэх мэт) net.ipv4.tcp_timestamps=0 net.ipv4.conf.all.rp_filter=1 net.ipv4.tcp_max_syn_backlog 1280 цөм .core_uses_pid=1

Өөрчлөлтүүдийг идэвхжүүлэх:

$ sudo sysctl -p

Халдлага илрүүлэх

Snort бол админуудын дуртай хэрэгслүүдийн нэг бөгөөд аюулгүй байдлын бүх гарын авлагын гол дүр юм. Олон жилийн түүхтэй, асар их чадвартай, бүхэл бүтэн номнууд зориулагдсан зүйл. Энэ нь бидний гарын авлагад юу хийдэг вэ хурдан тохируулга аюулгүй систем? Энэ нь энд хамаарна; Snort-г тохируулах шаардлагагүй:

$ sudo apt-get install snort $ snort -D

Бүгд! Би тоглоогүй, стандарт тохиргооХурхирах нь ердийнхөөс хамгаалахад хангалттай сүлжээний үйлчилгээ, хэрэв танд мэдээж байгаа бол. Та зүгээр л үе үе логыг харах хэрэгтэй. Үүнээс та дараах мөрүүдийг олж болно.

[**] MS-SQL шалгалтын хариу халих оролдлого [**] http://www.securityfocus.com/bid/9407]

Өө. Хэн нэгэн MySQL дээр буфер халихыг оролдсон. Мөн асуудлын дэлгэрэнгүй тайлбар бүхий хуудасны холбоос байдаг. Гоо сайхан.

Хэн нэгэн өвлөн авсан ...

Ялангуяа ухаалаг хэн нэгэн манай галт ханыг тойрч, Snort-ыг даван туулж чадсан язгуур эрхсистемд байгаа бөгөөд одоо суулгасан арын хаалга ашиглан системд тогтмол нэвтэрдэг. Сайн биш, арын хаалгыг олж, арилгах, системийг шинэчлэх хэрэгтэй. Руткит болон арын хаалга хайхын тулд бид rkhunter ашигладаг:

$ sudo apt-get суулгах rkhunter

Эхлүүлье:

$ sudo rkhunter -c --sk

Програм хангамж нь системийг бүхэлд нь rootkit байгаа эсэхийг шалгаж, үр дүнг дэлгэц дээр харуулах болно. Хэрэв хортой програм олдсон хэвээр байвал rkhunter тухайн байршлыг зааж өгөх бөгөөд үүнийг устгах боломжтой. Илүү нарийвчилсан бүртгэл энд байрладаг: /var/log/rkhunter.log. Rkhunter-ийг өдөр бүр cron ажил болгон ажиллуулах нь дээр.

$ sudo vi /etc/cron.daily/rkhunter.sh #!/bin/bash /usr/bin/rkhunter -c --cronjob 2>&1 | mail -s "RKhunter сканнерийн үр дүн" [имэйлээр хамгаалагдсан]

Бид Васягийн имэйл хаягийг өөрийн хаягаар сольж, скриптийг гүйцэтгэх боломжтой болгодог.

$ sudo chmod +x /etc/cron.daily/rkhunter.sh

$ sudo rkhunter - шинэчлэлт

Дашрамд хэлэхэд та үүнийг cron скрипт дэх шалгах командын өмнө нэмж болно. Өөр хоёр rootkit хайлтын хэрэгсэл:

$ sudo apt-get суулгах бар $ sudo бар $ sudo apt-get суулгах lynis $ sudo lynis -c

Үндсэндээ шувууны нүдээр харахад эдгээр нь ижил Фабержийн өндөг боловч өөр өөр суурьтай байдаг. Магадгүй тэдний тусламжтайгаар рхунтер юу алдсаныг тодорхойлох боломжтой байх. Эхлэхийн тулд debsums бол эвлэрүүлэх хэрэгсэл юм. шалгах нийлбэрфайлууд, стандарттай суулгасан багцууд. Бид тавих:

$ sudo apt-get суулгах debsums

Шалгалтаа явуулцгаая:

$ sudo debsums -ac

Ердийнх шигээ? эхлүүлэлтийг cron ажлуудад нэмж болно.



Гадаа

Одоо интернетэд нэрээ нууцлах, янз бүрийн зохиогчийн эрх эзэмшигч байгууллагууд болон бусад Mizulins-ийн хүсэлтээр хаагдсан сайт, хуудсуудад хэрхэн нэвтрэх талаар ярилцъя. Үүнийг хийх хамгийн хялбар арга бол дэлхий даяарх мянга мянган прокси серверүүдийн аль нэгийг ашиглах явдал юм. Тэдгээрийн олонх нь үнэ төлбөргүй байдаг ч ихэнхдээ сувгийг эртний аналог модемийн хурдаар тасалдаг.

Вэбсайтуудыг хялбархан үзэж, шаардлагатай үед л прокси асаахын тулд та прокси шилжүүлэгчийн хүсэлтээр лавлахаас хялбархан олох боломжтой Chrome болон Firefox-д зориулсан олон өргөтгөлүүдийн аль нэгийг ашиглаж болно. Бид суулгаж, шаардлагатай проксиүүдийн жагсаалтыг оруулаад, хуудасны оронд "Ноён Скумбриевичийн хүсэлтээр хуудас руу нэвтрэх эрх хязгаарлагдмал" гэсэн тэмдгийг хараад шаардлагатай руу шилжинэ.

Сайт бүхэлдээ шүүлтүүрийн дор орж, хаяг нь үйлчилгээ үзүүлэгчийн DNS серверийн талд хар жагсаалтад орсон тохиолдолд та хаяг нь нийтлэгдсэн үнэгүй DNS серверүүдийг ашиглаж болно. Та дуртай хоёр хаягаа аваад /etc/resolv.conf руу нэмнэ үү:

Нэрийн сервер 156.154.70.22 нэрийн сервер 156.154.71.22

Төрөл бүрийн DHCP клиентүүд болон NetworkManager-ууд үйлчилгээ үзүүлэгч эсвэл чиглүүлэгчээс хүлээн авсан хаягтай файлыг дарж бичихээс урьдчилан сэргийлэхийн тулд бид өргөтгөсөн шинж чанаруудыг ашиглан файлыг дахин бичих боломжгүй болгодог.

$ sudo chattr +i /etc/resolv.conf

Үүний дараа файл нь root гэх мэт хүн бүрт бичихээс хамгаалагдсан болно.

Хайлтын туршлагаа цаашид нэрээ нууцлахын тулд та сайт руу холбогдоход ашигладаг прокси серверээс гадна DNS серверийн бүх хүсэлтийг шифрлэх dnscrypt демоныг ашиглаж болно. Суулгах:

$ wget http://download.dnscrypt.org/dnscrypt-proxy/dnscrypt-proxy-1.3.2.tar.bz2 $ bunzip2 -cd dnscrypt-proxy-*.tar.bz2 | tar xvf - $ cd dnscrypt-proxy-* $ sudo apt-get install build-essential $ ./тохируулах && хийх -j2 $ sudo суулгах

/etc/resolv.conf доторх давталтын хаягийг зааж өгнө үү:

$ vi /etc/resolv.conf нэрийн сервер 127.0.0.1

Демоныг эхлүүлцгээе:

$ sudo dnscrypt-proxy --demonize

Дашрамд хэлэхэд Windows, iOS болон Android-д зориулсан dnscrypt-ийн хувилбарууд байдаг.

Сонгины чиглүүлэлт

Сонгины чиглүүлэлт гэж юу вэ? Энэ бол Тор. Мөн Tor нь эргээд интернетэд нэвтрэх бүрэн нэргүй сүлжээ үүсгэх боломжийг олгодог систем юм. Энд "сонгино" гэсэн нэр томьёо нь аливаа сүлжээний пакет нь шифрлэлтийн гурван давхаргад "боогддог" үйлдлийн загвартай холбоотой бөгөөд хүлээн авагч руу хүрэх замд гурван зангилаа дамжин өнгөрөх бөгөөд тус бүр нь өөрийн давхаргыг арилгах болно. мөн үр дүнг цааш дамжуулах. Мэдээжийн хэрэг бүх зүйл илүү төвөгтэй боловч бидний хувьд цорын ганц чухал зүйл бол энэ нь таныг нэрээ нууцлах боломжийг олгодог цөөн тооны сүлжээний зохион байгуулалтын нэг юм.

Гэсэн хэдий ч нэрээ нууцалсан газар холболтын асуудал бас байдаг. Tor-д дор хаяж гурав байдаг: энэ нь маш удаан (шифрлэлт болон зангилааны гинжин хэлхээний дамжуулалтын ачаар), энэ нь таны сүлжээнд ачаалал үүсгэх болно (учир нь та өөрөө зангилааны нэг байх болно), энэ нь эмзэг юм. замын хөдөлгөөнийг саатуулах. Сүүлийнх нь Tor сүлжээнээс интернетэд нэвтрэх чадварын байгалийн үр дагавар юм: сүүлчийн зангилаа (гаралт) нь шифрлэлтийн сүүлчийн давхаргыг устгаж, өгөгдөлд хандах боломжтой болно.

Гэсэн хэдий ч Tor нь суулгах, ашиглахад маш хялбар:

$ sudo apt-get суулгах tor

Энэ бол одоо локал машин руу чиглэсэн прокси сервертэй байх болно Tor сүлжээ. Хаяг: 127.0.0.1:9050, та үүнийг ижил өргөтгөлийг ашиглан хөтөч рүү оруулах эсвэл тохиргооноос нэмж оруулах боломжтой. Энэ нь HTTP прокси биш SOCKS гэдгийг санаарай.


МЭДЭЭЛЭЛ

Tor-ийн Android хувилбарыг Orbot гэж нэрлэдэг.

Оруулсан тушаалын мөрНууц үг түүхэнд хадгалагдаагүй бол та "командын эхэнд хоосон зай нэмэх" гэсэн ухаалаг заль мэхийг ашиглаж болно.

Энэ нь Ubuntu дахь гэрийн лавлахыг шифрлэхэд ашигладаг ecryptfs юм.

Үерийн эсрэг тэмцэнэ

Би таны хостыг усанд автуулахад туслах хэдэн тушаал өгөх болно.

Нэг бүрийн холболтын тоог тоолж байна тусгай порт:

$ netstat -na | grep ": порт\ " | wc -l

"Хагас нээлттэй" TCP холболтын тоог тоолох:

$ netstat -na | grep ": порт\ " | grep SYN_RCVD | wc -l

Холболтын хүсэлт ирдэг IP хаягуудын жагсаалтыг харна уу:

$ netstat -na | grep ": порт\ " | ангилах | uniq -c | sort -nr | бага

tcpdump ашиглан сэжигтэй пакетуудыг шинжлэх:

# tcpdump -n -i eth0 -s 0 -w output.txt dst порт порт болон IP серверийн хост

Бид халдагчийн холболтыг устгадаг:

# iptables -A INPUT - халдагчийн IP -p tcp --destination-port порт -j DROP

Бид нэг IP-ээс тодорхой порт руу "хагас нээлттэй" холболтын дээд тоог хязгаарладаг.

# iptables -I INPUT -p tcp --syn --dport порт -m iplimit --iplimit-10-аас дээш -j DROP

ICMP ECHO хүсэлтийн хариуг идэвхгүй болгох:

# iptables -A INPUT -p icmp -j DROP --icmp-type 8

дүгнэлт

Тэгээд л болоо. Дэлгэрэнгүй мэдээлэл, гарын авлагыг судлах шаардлагагүйгээр бид гадны халдлагаас, rootkit болон бусад халдвараас, хүний ​​шууд оролцоо, замын хөдөлгөөнийг таслан зогсоох, тандалт хийхээс хамгаалагдсан Линукс хайрцагыг бүтээсэн. Үлдсэн зүйл бол системийг тогтмол шинэчлэх, SSH-ээр дамжуулан нууц үгээр нэвтрэхийг хориглох, шаардлагагүй үйлчилгээг устгах, тохиргооны алдаанаас зайлсхийх явдал юм.

2015 онд жил бүр болдог LinuxCon бага хурал дээр GNU/Linux цөмийг бүтээгч Линус Торвалдс системийн аюулгүй байдлын талаар санал бодлоо хуваалцсан. Зарим алдааны үр нөлөөг чадварлаг хамгаалалтаар багасгах шаардлагатайг тэрээр онцлон тэмдэглэж, хэрэв нэг бүрэлдэхүүн хэсэг доголдвол дараагийн давхарга нь асуудлыг хамарна.

Энэ материалд бид энэ сэдвийг практик талаас нь авч үзэхийг хичээх болно.

7. Галт хана суурилуулах

Саяхан Линукс дээр ажилладаг серверүүд дээр DDoS халдлага хийх боломжийг олгодог шинэ эмзэг байдал гарч ирэв. Системийн цөмд алдаа 2012 оны сүүлээр 3.6 хувилбар дээр гарч ирэв. Энэ эмзэг байдал нь хакеруудад татаж авах файл, вэб хуудас, нээлттэй Tor холболт руу вирус оруулах боломжийг олгодог бөгөөд хакердах нь их хүчин чармайлт шаарддаггүй - IP хууран мэхлэх арга ажиллах болно.

Шифрлэгдсэн HTTPS эсвэл SSH холболтын хамгийн их хохирол нь холболтын тасалдал боловч халдагчид хамгаалалтгүй траффик руу хортой програм зэрэг шинэ контент оруулах боломжтой. Галт хана нь ийм халдлагаас хамгаалахад тохиромжтой.

Галт хана ашиглан хандалтыг хаах

Галт хана нь хүсээгүй ирж ​​буй урсгалыг хаах хамгийн чухал хэрэгслүүдийн нэг юм. Бид зөвхөн шаардлагатай хөдөлгөөнийг зөвшөөрч, бусад бүх зүйлийг бүрэн хаахыг зөвлөж байна.

Пакет шүүлтүүрийн хувьд ихэнх Linux түгээлтүүд iptables хянагчтай байдаг. Үүнийг ихэвчлэн ахисан түвшний хэрэглэгчид ашигладаг бөгөөд хялбаршуулсан тохиргоог хийхийн тулд та Debian/Ubuntu эсвэл Fedora дахь FirewallD дээрх UFW хэрэгслүүдийг ашиглаж болно.

8. Шаардлагагүй үйлчилгээг идэвхгүй болгох

Виржиниагийн их сургуулийн мэргэжилтнүүд ашигладаггүй бүх үйлчилгээг идэвхгүй болгохыг зөвлөж байна. Зарим арын процессыг автоматаар эхлүүлж, систем унтрах хүртэл ажилладаг. Эдгээр програмуудыг тохируулахын тулд та эхлүүлэх скриптүүдийг шалгах хэрэгтэй. Үйлчилгээг inetd эсвэл xinetd-ээр эхлүүлж болно.

Хэрэв таны систем inetd-ээр тохируулагдсан бол /etc/inetd.conf файлаас арын "демон" програмуудын жагсаалтыг засах боломжтой бөгөөд үйлчилгээг ачаалахыг идэвхгүй болгохын тулд мөрийн эхэнд "#" тэмдэг тавихад хангалттай. үүнийг гүйцэтгэх боломжтой байдлаас тайлбар болгон хувиргах.

Хэрэв систем нь xinetd ашигладаг бол түүний тохиргоо нь /etc/xinetd.d санд байх болно. Лавлах файл бүр нь энэ жишээн дээрх шиг disable = yes гэж зааж өгснөөр идэвхгүй болгож болох үйлчилгээг тодорхойлдог.

Үйлчилгээний хуруу ( socket_type = урсгал хүлээх = хэрэглэгч байхгүй = хэн ч сервер = /usr/sbin/in.fingerd disable = тийм)
Мөн inetd эсвэл xinetd-ээр удирдуулдаггүй байнгын процессуудыг шалгах нь зүйтэй. Та /etc/init.d эсвэл /etc/inittab сангаас эхлүүлэх скриптүүдийг тохируулах боломжтой. Өөрчлөлтүүдийг хийсний дараа root дансны доор тушаалыг ажиллуулна уу.

/etc/rc.d/init.d/inet дахин эхлүүлэх

9. Серверийг физикийн хувьд хамгаалах

Сервер рүү физик хандалттай халдагчийн халдлагаас бүрэн хамгаалах боломжгүй юм. Тиймээс таны систем байрладаг өрөөг хамгаалах шаардлагатай. Мэдээллийн төвүүд аюулгүй байдлыг нухацтай хянаж, серверт хандах хандалтыг хязгаарлаж, хамгаалалтын камер суурилуулж, байнгын хамгаалалтыг томилдог.

Мэдээллийн төвд орохын тулд бүх зочдод баталгаажуулалтын тодорхой үе шатуудыг давах ёстой. Мөн төвийн бүх хэсэгт хөдөлгөөн мэдрэгчийг ашиглахыг зөвлөж байна.

10. Серверийг зөвшөөрөлгүй хандалтаас хамгаалах

Зөвшөөрөлгүй хандалтын систем эсвэл IDS нь системийн тохиргоо болон файлын өгөгдлийг цуглуулж, эдгээр өгөгдлийг системд хортой эсэхийг тодорхойлохын тулд шинэ өөрчлөлтүүдтэй харьцуулдаг.

Жишээлбэл, Tripwire болон Aide хэрэгслүүд нь системийн файлуудын мэдээллийн санг цуглуулж, түлхүүрүүдийн багц ашиглан хамгаалдаг. Psad нь галт ханын тайланг ашиглан сэжигтэй үйл ажиллагааг хянахад ашиглагддаг.

Bro нь сүлжээг хянах, сэжигтэй үйл ажиллагааны хэв маягийг хянах, статистик мэдээлэл цуглуулах, системийн командуудыг гүйцэтгэх, сэрэмжлүүлэг үүсгэх зориулалттай. RKHunter-ийг вирус, ихэнхдээ руткиттерээс хамгаалахад ашиглаж болно. Энэ хэрэгсэл нь таны системийг мэдэгдэж буй эмзэг байдлын мэдээллийн баазтай харьцуулан шалгаж, програмын аюултай тохиргоог тодорхойлох боломжтой.

Дүгнэлт

Дээр дурдсан хэрэгслүүд болон тохиргоонууд нь системийг хэсэгчлэн хамгаалахад туслах боловч аюулгүй байдал нь таны зан байдал, нөхцөл байдлын талаарх ойлголтоос хамаарна. Анхаарал, болгоомжлол, өөрийгөө байнга сургахгүйгээр бүх хамгаалалтын арга хэмжээ ажиллахгүй байж магадгүй юм.