Gentoo Logo

1.  /etc/security/limits.conf

Kontrola użycia zasobów jest bardzo efektywnym sposobem zapobiegania lokalnym atakom typu "Denial of Service". Możemy też przy okazji również nałożyć restrykcje dla maksymalnej dopuszczalnej ilości zalogowań dla użytkowników oraz grup. Nie wolno jednak ustawiać zbyt restrykcyjnych limitów, gdyż może to zakłócić prawidłowe działanie systemu. Każdy wpis należy sprawdzić kilkukrotnie zanim się go zacznie używać.

Listing 1.1: /etc/security/limits.conf

*    soft core 0
*    hard core 0
*    hard nproc 15
*    hard rss 10000
*    -    maxlogins 2
@dev hard core 100000
@dev soft nproc 20
@dev hard nproc 35
@dev -    maxlogins 10

Zamiast ustawiania wartości nproc lub maxlogins na 0 należy rozważyć całkowite usunięcie takiego użytkownika. W powyższym przykładzie ustawiliśmy grupie dev ilość procesów, plików core oraz wartość maxlogins. Reszta to wartości domyślne.

Uwaga: /etc/security/limits.conf jest częścią pakietu PAM i ma zastosowanie wyłącznie dla pakietów go używających.

1.  /etc/limits

Plik /etc/limits jest bardzo podobny do pliku /etc/security/limits.conf. Jedyne różnice to format pliku oraz to, że ma on zastosowanie dla użytkowników, a nie dla grup. Jego przykładowa konfiguracja wygląda tak:

Listing 1.1: /etc/limits

*   L2 C0 U15 R10000
kn L10 C100000 U35

Definiujemy tu domyślne ustawienia dla użytkownika kn. Plik ten jest częścią pakietu sys-apps/shadow. Nie ma tu sensu ustawiać czegokolwiek jeśli pam aktywowany w /etc/make.conf.

1.  Quota

Ostrzeżenie: Należy upewnić się, że używany system plików posiada wsparcie dla quota. Żeby używać ich na ReiserFS trzeba nałożyć na kernel łatkę Namesys. Narzędzia użytkownika są dostępne na stronach Projektu DiskQuota dla Linux. Spowoduje to, że quoty będą działać, ale nie oznacza, że nie przysporzą żadnych problemów.

Umieszczenie quoty na systemie plików nałoży ograniczenie w użyciu przestrzeni dyskowej zarówno dla grupy jak i dla użytkowników. Quoty włącza się w jądrze, a następnie dodaje je do punktu montowania w pliku /etc/fstab. Opcja w konfiguracji kernela, które je włącza to File systems->Quota support. Należy zaznaczyć wymagane opcje, przebudować jądro, a następnie przy jego pomocy uruchomić system.

Zaczniemy od zainstalowania quota przy pomocy polecenia emerge quota. Następnie zmodyfikujemy plik /etc/fstab dodając tam usrquota i grpquota dla partycji, na których chcemy ograniczać użycie dysku.

Listing 1.1: /etc/fstab

/dev/sda1 /boot ext2 noauto,noatime 1 1
/dev/sda2 none swap sw 0 0
/dev/sda3 / reiserfs notail,noatime 0 0
/dev/sda4 /tmp ext3 noatime,nodev,nosuid,noexec,usrquota,grpquota 0 0
/dev/sda5 /var ext3 noatime,nodev,usrquota,grpquota 0 0
/dev/sda6 /home ext3 noatime,nodev,nosuid,usrquota,grpquota 0 0
/dev/sda7 /usr reiserfs notail,noatime,nodev,ro 0 0
/dev/cdroms/cdrom0 /mnt/cdrom iso9660 noauto,ro 0 0
proc /proc proc defaults 0 0

Na każdej partycji na której uaktywniono quoty należy stworzyć pliki quota (quota.user i quota.group) oraz umieścić je w katalogu głównym każdej partycji.

Listing 1.1: Tworzenie plików quota

# touch /tmp/aquota.user
# touch /tmp/aquota.group
# chmod 600 /tmp/aquota.user
# chmod 600 /tmp/aquota.group

Trzeba powtórzyć te czynności osobno dla każdej partycji na której chce się używać quota. Po skonfigurowaniu wszystkich plików dodajemy skrypt quota do runlevelu boot.

Ważne: XFS posiada zaimplementowaną funkcję sprawdzania quota i nie potrzebuje, aby skrypt quota był dodany do poziomu uruchomieniowego. Mogą również istnieć inne systemy plików, które nie znajdują się na tej liście, a działają w podobny sposób. Należy zatem przeczytać strony manuala, dla naszego systemu plików, aby dowiedzieć się więcej na temat radzenia sobie ze sprawdzaniem quota.

Listing 1.1: Dodawanie skryptu quota do poziumu uruchamiania 'boot'

# rc-update add quota boot

Następnie konfigurujemy system tak, żeby sprawdzał quoty raz w tygodniu. Robimy to dodając następującą linię do pliku /etc/crontab:

Listing 1.1: Dodawanie sprawdzania quota w crontabie

0 3 * * 0 /usr/sbin/quotacheck -avug.

Po ponowym uruchomieniu komputera przychodzi pora na skonfigurowanie quota dla poszczególnych użytkowników i grup. Polecenie edquota -u kn otworzy edytor zdefiniowany zmienną $EDITOR (domyślnie jest to nano) i pozwoli wyedytować quota dla użytkownika kn. Polecenie edquota -g robi to samo dla grup.

Listing 1.1: Ustawianie quota dla użytkownika kn

Quotas for user kn:
/dev/sda4: blocks in use: 2594, limits (soft = 5000, hard = 6500)
         inodes in use: 356, limits (soft = 1000, hard = 1500)

Aby uzyskać więcej informacji należy zapoznać się z dokumentami man edquota i Mini Quota HOWTO.

1.  /etc/login.defs

Jeśli w polityce bezpieczeństwa założono, że użytkownicy powinni co tydzień zmieniać hasło należy zmienić wartość zmiennej PASS_MAX_DAYS na 14 oraz zmiennej PASS_WARN_AGE na 7. Zalecamy częste zmienianie haseł ponieważ metodami brute force można złamać każde z nich, jeśli tylko ma się dość dużo czasu. Ponadto polecamy ustawienie zmiennej LOG_OK_LOGINS na 'yes'.

1.  /etc/login.access

Plik login.access także jest częścią pakietu sys-apps/shadow. Daje możliwość skonfigurowania tabeli dostępu do logowania. Dzięki tej tabeli można decydować czy ktoś będzie mógł się zalogować na podstawie swojej nazwy użytkownika, przynależności do grupy czy nazwy hosta. Domyślnie taką możliwość mają wszyscy użytkownicy w systemie, więc plik ten zawiera jedynie zakomentowane przykładowe wartości ustawień. Niezależnie od tego czy konfigurujemy serwer czy stację roboczą warto zablokować dostęp do konsol wszystkim poza administratorami.

Uwaga: Te ustawienia nie dotyczą roota.

Listing 1.1: /etc/login.access

-:ALL EXCEPT wheel sync:console
-:wheel:ALL EXCEPT LOCAL .gentoo.org

Ważne: Należy zachować ostrożność przy tym ustawieniu. Zły wpis skończy się utratą dostępu do komputera jeżeli nie masz dostepu do konta root.

Uwaga: Ustawienie te nie mają wpływu na SSH, ponieważ SSH nie używa domyślnie /bin/login. Możemy jednak analogicznie ustawić SSH, dodając linię UseLogin yes w /etc/ssh/sshd_config.

Takie ustawienie umożliwi zalogowanie się jedynie członkom grupy wheel z domeny gentoo.org. Może jest to dość paranoiczne podejście, lepiej jednak być trochę "nadmiernie" zabezpieczonym niż później żałować.

Zaktualizowano 8 lipca 2007

Oryginalna wersja tego dokumentu została po raz ostatni zaktualizowana 15 listopada 2011. Jeśli chcesz pomóc w aktualizacji tego dokumentu do najnowszej wersji, skontaktuj się z Łukaszem Damentko, koordynatorem polskiego projektu tłumaczeń dokumentacji Gentoo.

Donate to support our development efforts.

Copyright 2001-2012 Gentoo Foundation, Inc. Questions, Comments? Contact us.