от X_console (15-03-2001)

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

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

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

В последно време 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 система в началото ще се стартират множество демони, повечето от които няма да ги използвате нито веднъж. Демонът е програма, която "слуша" и чака за определено събитие. Тя се стартира във фонов режим и чака да бъде извикана. Когато такова събитие се случи демона се активира и извършва дейности за които е създаден. За пример вашият 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.

Край на първа част.


<< Как да защитите вашият Linux (част 2) | Как да си направим собствен gateway под FreeBSD >>