|
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ć.
|