Ограничаване и следене на потребители в Linux -------------------------------------------------------------------------------- Автор: Kurt Seifried (seifried@seifried.org) Превод: А. Кенов - linuxbg.hit.bg http://www.securityportal.com/lasg/ -------------------------------------------------------------------------------- Ограничаване на потребители PAM Bash Quota Следене на потребители ttysnoop UserIPAcct -------------------------------------------------------------------------------- Ограничаване на потребители -------------------------------------------------------------------------------- Има доста лоши неща, които юзерите може да причинят на система, ако имат интерактивен шел акаунт. Има също много начини за предотвратяването им. Употребата на потребителските квоти, CPU натоварване и други са добро начало, по-напредналите техники като следене на потребители за големите среди също помагат. Едно от най-простите неща, който потребителят може да прави е да използва цялата памет, като стартира доста копия на програми изискващи доста от нея. PAM Повечето модерни Linux машини са с PAM поддръжка, едно от нещата ,който PAM предлага е настройката на дадена среда. Настройки като ограничаване на достъпната памет, която потребителят може да ползва. В Red Hat и Caldera това е възможно от директорията /etc/security/, която съдържа няколко файла. Най-интересният файл е: /etc/security/limits.conf, който ви позволява да определяте правата на потребителите и групите, дали правата са 'soft'(варира) или 'hard'(твърдо зададено)(повече за това по-късно)и къде се прилагат правилата - могат да бъдат CPU, памет, максимална големина на файла и т.н. Например: * hard core 0 bob soft nproc 100 bob hard nproc 150 Първото правило деактивира core dump-овете за всички, второто правило задава soft ограничение за bob на 100 процеса и третото правило задава hard ограничение за bob на 150 процеса. Soft ограничението може да бъде превишено и обикновено е предупреждаващ знак, hard ограничението не може да бъде превишено. Както може да си представите е доста полезно щом се приложи за всички логин шелове и други услуги, като ftp. Bash Bash беше направен в ограничения, достъпни през 'ulimit'. Всяко hard ограничение не може за бъде превишавано, така че ако имате ограничения зададени в /etc/profile или в потребителския .bash_profile (приемаме че те не могат да редактират/изтриват тези файлове) можете да наложите ограничения на потребителите с Bash шелове. Това е полезно за по-старите Linux дистрибуции, които не поддържат PAM. Трябва също да се уверите, че потребителите не могат да променят свойте логин шелове. Задаването на ограниченията е подобно на PAM метода - задавате няколко като: ulimit –Sc 0 ulimit –Su 100 ulimit –Hu 150 Тези три правила ще постигнат същия резултат, като тези на PAM примера. Първото правило деактивира core dump-овете, второто правило задава soft ограничение от 100 процеса и третото правило задава hard ограничение от 150 процеса. За повече информация отноно ulimit напишете 'help ulimit' в bash промпта. Quota Квота е система за разпределение на дисковото пространства от потребителите. Работи на повечето дистрибуциир повече можете да разберете от man страницата man 'quota'. Важно е да се конфигурира правилно, затова прочетете HOWTO за квоти. -------------------------------------------------------------------------------- Следене на потребители -------------------------------------------------------------------------------- Едно решение главно за шел сървърите е уверяването, че потребителите не злоупотребяват с сървъра. Това е до известна степен лесно, да следиш за стандартните ресурси (като дисково пространство, CPU употреба и т.н.), но една от наи-честите злоупотреби е bandwidth, за щастие има доста начини за следенето им. ttysnoop Разбира се това е добре, ако нищо не се обърка. Но ако това което искате е да следите какво прави даден потребител. Това е мястото, където се появява ttysnoop. ttysnoop ви позволява да следите какво прави потребителят и да го запишете. Можете да си изтеглите ttysnoop от: http://uscan.cjb.net/. UserIPAcct UserIPAcct ви позволява да следите употребата на bandwidth от потребителя, изисква патчване на ядрото и задаване на правила (подобни на тези за защитните стени) за следене на количеството информация от потребителските програми, които изпращат или приемат данни. Не можете да записвате информацията от PPP връзките, защото PPP демона не се стартира когато потребителят се логне(макар че можете да хакнете и това). Бих препоръчал това за шел сървъри с цел следене на потребители(главно става дума за непълнолетния процент от потребителите, който ще обхванат голям обем юзери). Можете да свалите пакета от: http://zaheer.grid9.net/useripacct/.