Не сте регистриран! Регистрирайте се БЕЗПЛАТНО, за да използвате услугите на сайта!

   Рубрики
 
 
 
 

 Форуми
» SEO и оптимизация
» Всичко за PHP и Perl
» Всичко за C, C++ и .NET
» Всичко за Java и JSP
» Всичко за SQL и MySQL
» Всичко за XHTML и CSS
» Презентация на сайтове
 Как да защитим своя Linux ?
  1. Как да защитим своя Linux ?
Inventive
     
Автор  Inventive (05.02.2005 11:36)  съобщение до автора
Погледнат  4331 пъти  добави към любими
Оценка  добави коментар
Гласове  1  изпрати на приятел
Коментари  (0)  абонирай се за Unix
    Страница 1 / 1

 



В последно време Linux се радва на особена популярност и все повече хора го използват. Linux използва цялата сила на UNIX операционната система и е много по-стабилен и по-бърз от операционните системи на Microsoft. Да не забравяме, че Linux е безплатна за сваляне или струва съвсем малко или почти нищо, ако искате да си го купите. Програмистите и хакерите са особено доволни от Linux, защото могат да разгледат изходния му код и да го променят по техен вкус. Изучаването на Linux в подробности отнема време и увеличаването на сигурността на системата изиска нейното познаване в детайли. Нещо, което начинаещите потребители на Linux не са придобили. И затова съществува тази статия - за да направи процеса по увеличаването на сигурноста на системата по-лесен и по-бърз.

Какво се дискутира в тази статия?

Основните техники за увеличаване на сигурноста в Linux, а те са:

подсигуряване на паролите.

предотвратяване на достъпа на нежелани личности до системата.

подсигуряване на "демоните".

криптиране на важните файлове.

троянски коне и вируси.

файлови права.

сканиране на портовете.

подсигуряване на програмите.

какво да четете по-нататък.

В тази статия предполагаме, че вие:

Използвате Linux за домашна употреба, а не като сървър.

Знаете основните Linux команди и може да се справяте с имената на файловете.

В момента използвате Linux, а не други UNIX варианти, като FreeBSD например.

Знаете как да използвате текстов редактор, примерно: vi, emacs, pico, други...

Съзнавате, че man командата може да ви помогне.

От каква степен на сигурност се нуждаете?

Може да имате доста подсигурена система, но това ще ви попречи да използвате някои програми и ще ограничи възможностите, който може да ви предостави една Linux система. Трябва да си отговорите на въпроса какво точно искате да защитите. Дали имате важна информация, като номера на кредитни карти например? Дали ви пука, ако някой наистина се вмъкне във вашата система? Задайте си тези въпроси преди да започнете да прилагате мерките за сигурност, които се дискутират по-долу.

Подсигуряване на паролите

Паролите са вашата първа защитна стена и в повечето случаи най-атакуваното нещо от кракерите. Множество компютърни вандали се стремят да отгатнат паролата ви за да проникнат в системата. root-ската парола е най-важната и тя трябва да е най-трудна за отгатване. Как да я подсигурите? Ето няколко предложения:

Трябва да използвате максималната дължина, позволена от системата, за вашата парола.

Трябва да съдържа числа, букви и специални символи.

Да съдържа малки и големи букви.

Трябва да е трудна за запомняне и да не я записвате никъде.

Не трябва да означава нищо.

Да не е дума, която може да бъде открита в речника.

Да е дума която не съществува.

Добре, сега след като измислите най-неразгадаемата парола на света какво да правите с нея? Като за начало свалете програма, която ще се опита да кракне вашата парола. Тези програми са известни като password cracker-и. Да обясним: Linux автоматично ще криптира вашата парола за да не може да се прочете и използва директно. Кракването на паролата е процеса на декриптирането на криптираната парола, което ще рече да се направи нечетимата парола четима. Ако успеете да кракнете собствената си парола, измислете нова по-сигурна и опитайте пак. От доста места може да си свалите password cracker-и. Ще откриете няколко от http://www.rootshell.org/. Ако искате да създадете "най-неразгадаемата" парола може да експериментирате с /dev/urandom. Ето и начин да направите това:

root# head -c 6 /dev/urandom | uuencode - | cat -n | grep 2 | cut -f2 | cut -c 2,3,4,5,6,7,8,9

Това ще генерира една парола за вас. Все още не сме приключили. Следващото нещо е да добавите вашата парола в shadow файловете. Процесът на замъгляне(shadowing) на вашата парола представлява преместването на криптираната парола от файла /etc/passwd, който може да бъде четен от всеки, който има достъп до системата, във файла /etc/shadow, който може да бъде четен само от root-а. За да проверите дали вашата система изполва "замъгляне" на паролите направете следното:

root# cat /etc/passwd | grep root

Ако видите нещо от рода на root:x, тогава вашите пароли се записват в shadow файла. В противен случай те не се записват в shadow файла и за да го направите трябва да използвате командата pwconv.

Спиране на демоните

Кагото инсталирате вашата Linux система в началото ще се стартират множество демони (daemons), повечето от които няма да ги използвате нито веднъж. Демонът е програма, която "слуша" и чака за определено събитие. Тя се стартира във фонов режим и чака да бъде извикана. Когато такова събитие се случи демона се активира и извършва дейности за които е създаден. За пример вашият finger демон ще чака докато някой се свърже с него. Това което ще направи е да даде информация за вас или да откаже връзката. Повечето демони се стартират от /etc/inetd.conf файла. inetd е вашият супер сървър. Той контролира всички останали демони на вашата система. Когато някой се опита да се свържи с даден демон връзката минава през inetd, който ще препрати връзката на съответния демон. Описанието на finger демона изглежда горе-долу така:

finger  stream  tcp     nowait  /usr/etc/in.fingerd   
 in.fingerd
В този случай вашият finger демон е стартиран и чакащ. Ако някой се опита на направи finger към root-а на системата ще получи нещо подобно като резултат:

xconsole$ finger root@localhost
 Login: root                     Name: root
 Directory: /root                Shell: /bin/bash
 On since Sun Mar 7 00:43 (EST) on ttyp0 from :0.0
 Mail last read Sun Feb 28 20:58 1999 (EST)
 No Plan
Това обикновено се третира като риск за сигурността. Няма причина заради която някой да иска да види статуса на root-а. Ето защо е добра идея да спрете finger демона. Това става като добавите символа диез # преди командата. Т.е:


#finger stream  tcp     nowait  /usr/etc/in.fingerd   
 in.fingerd
Запишете файла и после изпълнете следната команда

killall -HUP inetd

за да накарате inetd да зареди новата комфигурация. Когато дадете finger root ще получите:



xconsole$ finger root@localhost
 [localhost]
 finger: connect: Connection refused
Успешно спряхме finger демона. Това обаче не значи, че не може да изполваме finger. Все още може да използвате finger за да гледате инфомацията на други компютри, но те не могат да гледат вашата. Може би ще е добре да спрете и още някои други демони. Кандидати за спиране са следните:

echo

discard

daytime

chargen

ftp

telnet

gopher

shell

login

exec

talk

tftp

finger

netstat

systat

Не е добре да имате стартирани демони, които не използвате. Ако се питате как да направите така, че хем да оставите finger демона стартиран, хем други да не могат да се доберат до информацията, която връща fingering, тогава tcp_wrapper идва на помощ. tcp_wrapper логва всички връзки към демони, които наблюдавате. tcp_wrapper също може да забрани на дадени IP-та да се доберат до даден демон. tcp_wrapper може да си свалите от ftp://ftp.win.tue.nl/pub/security/. Почти всички дистрибуции вече го инсталират по подразбиране. Ето как да използвате tcp_wrapper при конфигуриране на /etc/inetd:

finger  stream  tcp     nowait  /usr/sbin/tcpd
in.fingerd
Забележете, че сега finger демона се контролира от tcpd. Ако някой се опита да се свърже с finger демона неговият опит ще бъде записан във файл по ваш избор. Проверете /etc/syslog.conf как се контролира логването на информацията и напишете man syslog.conf за да разберете как да промените /etc/syslog.conf. Предполагам, че tcp_wrapper следи всички демони независимо дали те са пуснати или не. Повечето дистрибуции използват tcp_wrapper при стартиране на демоните така, че не е нужно да се притеснявате как да го инсталирате. За да разберете, как да конфигурирате tcp_wrapper-a пишете man tcpd.

 

Как да контролирате логването

Може да контолирате 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 от SSH.fi. Трябва също да деинсталирате различните r-помагала (rsh, rlogin и други ...). Те са несигурни и могат да позволят на кракерите да използват файлове, като .rhosts  за да проникнат в системата. След като инсталирате ssh спрете вашият telnet демон telnetd от /etc/inetd.conf.

Троянски коне и вируси

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

#!/bin/sh
  1. tainted ls program
rm -rf /

Така, ако стартирате командата ls като root ще преинсталирате цялата система. Троянските коне се откриват много трудно. Например променена ps програма може да бъде направена така, че да стартира само това, което кракера иска да видите, като по този начин скрие опасните програми. Най-добрия начин да избегнете троянски кон е да не стартирате програма или да компилирате програма за която не сте сигурен(като версия на VmWare от руски кракерски сайт). Ако можете преди компилиране прегледайте изходния код на програмата, която се опитате да компилирате. В повечето случаи обаче, кода е голям и проверка на кода е практически невърможна. Тогава на помощ идват няколко неща. Едното е да сравните MD5 сумите на програмата, която сте свалили с тази, която е посочена в официалния сайт. Другият е да си инсталирате Tripwire. Tripwire проверява цялоста на вашата система и проверява дали има файлове, който са променени без ваше знание. Tripwire изгражда база с информация за програмите, които сте инсталирали в началото и следи дали някоя не е променена. Tripwire може да свалите от Tripwiresecurity.com.

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

Сканиране на портовете

Сканирането на портовете(Port scanning) е метод по който може да проверите какви портове на дадена система са отворени в момента. Да поясним: Мислете за портовете като за врата през която влиза и излиза информация. Сканирането ви дава информация за това коя врата е отворена. Понякога тези портове са уязвими от експлойти, особено ако програмите, които слушат на тези портове не се обновяват често. Така, че за да се предпазите е добре сами да проверите кои портове са отворени на вашата система. Обикновено, ако спрете вашият finger демон, вие затваряте и порта, който използва finger. Естествено има и други портове, които е нужно да проверите. Ако искате да си свалите програма с която да сканирате ви препоръчвам Nmap. Nmap може да свалите от 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 и кракерите трябва да разберете как те мислят и как работят. Ето и малък списък със сайтове който могат да ви помогнат:

cert.org

rootshell.com

Insecure.org

Hideaway.net

Hackers.com

Linux-howto.com/LDP/HOWTO/Security-HOWTO.html

Linux-howto.com/LDP/HOWTO/Shadow-Password-HOWTO.html

Securityfocus.com

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



   


Ключови думи: unix Linux защита


Още уроци от тази рубрика


 
  • Подобни теми от myLinks
 

 За автора: Inventive  
На 14 години съм и се казвам Светослав Генов. Занимавам се с PHP и MySQL предимно. Също така съм и mIRC скирптер. Имам опит и с Adobe Photoshop.
   
 1 посетител чете този урок (0 потребители и 1 гост)  
Активни потребители: ---
   
  

Еmail  
 

 

 
  • Интересно от Софтуер
 



IT-PLACE.NET © 2004 - 2008