от X_console (22-03-2001)

рейтинг (3)   [ добре ]  [ зле ]

Printer Friendly Вариант за отпечатване

Статията е преведена от Славей Караджов
Адресът на оригиналната статия е http://xfactor.itec.yorku.ca/~xconsole/tutorials/security.html

Как да контролирате логването
Може да контолирате tty-ите, на които root-а може да се логне, като редактирате /etc/securetty файла. Да поясним: Може да контрилирате терминалните конзоли, от които root-a може да влезе в системата, за да намалите риска от пробив на кракер. Ако искате да позволите само на root-а да влиза в системата (много лоша идея между другото), изпълнете следната команда:

root# touch /etc/nologin

Този файл ще позволи само на root потребителя да се логне в системата. Когато някой потребител, различен от root, пробва да влезе в системата ще се отпечата съдържанието на /etc/nologin файла. Ако направите:

root# echo "Down for upgrade." > /etc/nologin

Всеки  който се логне, без root-a естесвено ще видят следното съобщение:

Linux 2.2.5

 Down for upgrade.
След което връзката ще бъде прекъсната. Много внимавайте, ако използвате това. Това ще увеличи малко сигурноста, но ще може  да влизате само като root и да изпълните команди, които може да са опасни за вашият Linux. Може да изтриете цялото съдържажние по невнимание например. Стартирайте командата run rm -rf / като root,  и не се чудете защо следващите часове ще ви се наложи да преинсталирате вашият Linux.

Свързване към други компютри
Обикновено може да използвате telnet за да се свържите към други компютри. Проблемът е че връзката между вашият и другия компютър може да бъде подслушана и да се прихванат паролите, това което вие определно не искате да стане. За кракерите не е проблем да подслушат връзката ви и да видят какво пишете на клавиатурата. Това е така защото връзката между компютрите не е криптирана и всичко се предава в чист вид. За да разрешите този проблем инсталирайте си SSH - Secure Shell или в превод сигурен шел. SSH криптира връзката между вашия компютър и прави подслувнато и разгадаването на информацията по-трудно. Може да си свалите SSH от http://www.ssh.fi/. Трябва също да деинсталирате различните r-помагала (rsh, rlogin и други ...). Те са несигурни и могат да позволят на кракерите да използват файлове, като .rhosts  за да проникнат в системата. След като инсталирате ssh спрете вашият telnet демон telnetd от /etc/inetd.conf.

Троянски коне и вируси
Троянските коне са програми които изглеждат безобидни, но тайно могат да бъдат използвани за добиране до важна информация. Те следват митът за Троянския кон, който Троя приела като подарък от Гърците и това станало причината за техния разгром. Троянските коне на вашата машина могат да доведат до непредвидими резултати, като отваряне на "задна врата" във вашата система, до разрушаване на цялата система. В повечето случаи кракерите, които са успеят да се доберат до вашата система оставят и троянски кон. Прост пример за това е да се замени командата ls с троянски кон, който е всъщност това:

#!/bin/sh
 # tainted ls program
 rm -rf /
Така, ако стартирате командата ls като root ще преинсталирате цялата система. Троянските коне се откриват много трудно. Например променена ps програма може да бъде направена така, че да стартира само това, което кракера иска да видите, като по този начин скрие опасните програми. Най-добрия начин да избегнете троянски кон е да не стартирате програма или да компилирате програма за която не сте сигурен(като версия на VmWare от руски кракерски сайт). Ако можете преди компилиране прегледайте изходния код на програмата, която се опитате да компилирате. В повечето случаи обаче, кода е голям и проверка на кода е практически невърможна. Тогава на помощ идват няколко неща. Едното е да сравните MD5 сумите на програмата, която сте свалили с тази, която е посочена в официалния сайт. Другият е да си инсталирате Tripwire. Tripwire проверява цялоста на вашата система и проверява дали има файлове, който са променени без ваше знание. Tripwire изгражда база с информация за програмите, които сте инсталирали в началото и следи дали някоя не е променена. Tripwire може да свалите от http://www.tripwiresecurity.com.

Вирусите са програми, които се прикачват към други изпълними програми и заразяват цялата система. Когато стартирате заразена програма тя заразява и други. Някои от вирусите може да са разрушителни или просто да показват досадни съобщения. За радост, Linux е почти имунизиран спрещу вируси заради начина по който на файловете се дават правата. Това ще рече, че е сигурен дотолкова, че ако някой се зарази то вирусът ще зарази само неговите файлове и тези върху които му е позволено да пише. Това обаче не е голямо успокоение а и никога не може да си сигурен, че няма да се заразиш с разрушителен вирус. Анти-вирусни програми може да свалите от http://www.hbedv.com/.

Сканиране на портовете
Сканирането на портовете(Port scanning) е метод по който може да проверите какви портове на дадена система са отворени в момента. Да поясним: Мислете за портовете като за врата през която влиза и излиза информация. Сканирането ви дава информация за това коя врата е отворена. Понякога тези портове са уязвими от експлойти, особено ако програмите, които слушат на тези портове не се обновяват често. Така, че за да се предпазите е добре сами да проверите кои портове са отворени на вашата система. Обикновено, ако спрете вашият finger демон, вие затваряте и порта, който използва finger. Естествено има и други портове, които е нужно да проверите. Ако искате да си свалите програма с която да сканирате ви препоръчвам Nmap. Nmap може да свалите от http://www.insecure.org/nmap/index.html. Една от възможностите, които има Nmap е да определи каква операционна система използва машината. Колкото по-малко отворени портове открие Nmap, толкова по-защитена е вашата система.

Файлови права
Файловите права и тяхното използване са много важен момент за защитата на една система. Ако искате и други да използват вашата Linux система, ще трябва да има направите акаунти на системата и да ограничите тяхния достъп до определени файлове. Уверете се, че важните файлове могат да бъдат четени и редактирани само от root-а. Не сменяйте правата на /etc/passwd файла! Той трябва да може да се чете от всеки за да могат някои програми да работят. Ако не знаете как да смените правата на файловете напишете man chmod за повече информация. Научете се как да зиползвате umask. umask ще ви гарантира, че новите файлове ще имат желаните от вас права. Ако например имате umask 077, новосъздадените файлове ще имат права -rw-------. Добавете тази команда във вашият ~/.bash_profile файл за да сте сигурни, че файловете които създавате са само за вашите очи.

SUID (Set-User-ID) и SGID (Set-Group-ID) програми са опасни, защото когато се изпълянват потребителя придобива привилегиите на потребителя, който е определил правата. Това ще рече, че ако root-а направи дадена програма SUID-ната, нормален потребител, който стартира тази програма временно ще придобие правата на root-a. Ето и пример. Изпълнете това като root:

root# cp /bin/bash /bin/root_shell
 root# chmod 4755 /bin/root_shell
Сега стартирайте /bin/root_shell. Ще забележите, че промта ще се смени на '#'. Сега изпъленте следното:
root# whoami
 root
Сега вече сте root. SGID програмите са подобни на SUID програмите, с тази разлика че те променят групата на потребителя с групата на този който  е създал файла. За да откриете всички SUID и SGID програми, стартирайте следната команда:

 root# find / -type f \(-perm -04000 -o -perm -02000 \)

Уверете се, че стартирате командата като root. В противен случай няма да може да откриете SUID и SGID програми в директории, в които нямате право да четете. Имайте предвид също така, че някои програми трябва да са SUID като root за да работят! Програми катоpasswd, която ви позволява да си смените паролата, трябва да се SUID-не като root за да може да пише в /etc/passwd файла, в който може да пише единствено root-а. За да направите някоя програма SUID-ната направете следното chmod 4755 . 4 ви дава SUID правото. Останалите три числа определят нормалните права на потребителите и групите. За да направите един файл SGID-нат, сменете правата на chmod 2755. 2 е тази която ви дава SGID правото.

Криптиране
Криптирането е начин за използване на различни алгоритми за да направите даден файл нечетим. Енкрипцията така меша файла, че никой не може да го прочете. Това ви предпазва от кракер, който вече е проникнал в системата, да прочете важна информация. Най-добрата програма за криптиране в момента е Pretty Good Privacy (PGP). Има и други естествено, но аз ви препоръчвам да използвате PGP. PGP e лесна за употреба, сигурна и може да бъде свалена от http://www.pgpi.com.

Бекъпи(правене на копия)
Винаги правете бекъпи на всички важни файлове. Така ако някой проникне във вашата система, то  вие винаги ще сте сигурен, че имате копие на важните неща. Използвайте tar за да архивирате и компресирате вашите файлове. Ако искате да копирате цялата си система на дискети направете следното:

root# tar cvMf /dev/fd0 /

След като някоя дискете се запълни, ще получите съобщение да сложите следващата. Това е само един начин да бекъпнете системата. Друг начин да направите това е бекъпнете целия дял от диска на друг диск.

Следене дали някой се опитва да проникне в системата
Виначи е добре да сте уведомен когато някой прави опит да се добере до вашата система - било като сканира портовете или пише командата su след като се има акаунт на системата ви и се опитва да компрометира сигурността. Добрата новина е, че под Linux това е възможно да се разлизира! Това става като редактирате /etc/syslog.conf файла. /etc/syslog.conf инструктира syslogd какви събития да записва(логва). Може да изберете дали събитието да бъде записано във файл или да се изпечатва на екрана. Няма да се разпростирам и да обяснява, как да си редактирате syslog.conf файла. За тази цел ръковоството на syslog.conf ще ви помогне. Основният синтаксис е:

 тип_на_предупреждението.ниво_на_важност  лог_файл

Така например за да логнете всеки опит да се използва командата su от кракер, който се опитва да отгатне парола добавете следните редове в /etc/syslog.conf файла:

auth.*    /dev/console
authpriv.*    /dev/console

Това естествено е при положение, че вие сте единствен, който използва Linux системата. Всеки опит да се отгатне парола ще бъде отпечатан моментално на /dev/console. Ако в този момент сте стартирали X-Window, съощението ще бъде отпечатано на xconsole (ако сте я стартирали в момента разбира се). Направете тези промени в /etc/syslog.conf файла само ако не смятате да има други потребители, които да използват системата ви. В противен случай те ще видят това съобщени и на тяхната конзола. Разгледайте сегашната конфигурация на вашият /etc/syslog.conf файл за да разберете как да добавите нови настройки. След като премените файла стартирайте команда по-долу за да може syslogd за вземе предвид новите промени:

root# killall -HUP syslogd

Нещо като заключение
Тази статия изобщо не претендира, че дискутира всички техники за увеличаване на сигурноста на вашата система. Тази тема е може пълно да се разгледа в една дебела книга например. Тук не споменах за повечето пропуски в сигурноста, които се откриват почти всеки ден. Откриват се нови пропуски в сигурноста, като и нови техники за защита. За да сте в крак с промените трябва редовно да се информирате, за това което се случва. За да се предпазите от така наречените script-kiddies и кракерите трябва да разберете как те мислят и как работят. Ето и малък списък със сайтове който могат да ви помогнат:

От тук нататък ви очаква много да научите и много техники да приложите. Не забравяйте, че както вие така и кракерите се образоват. Разликата е в подбудите. Редовната профилактика на системата ще ви предпази от много проблеми за напред. И ако не може да се предпазите поне направете проникването колкото се може по-трудно.

X_console


<< (почти)Пълно ръководство за модулите в Linux ядрото [част 1] | Как да защитите вашият Linux (част 1) >>