BezpieczeÅ„stwo pod Linuksem » aspiryna.net

Bezpieczeństwo pod Linuksem

Autor: leafnode | Data: 28.08.2007, 12:11 | Kategoria: Linux

Panuje ogólne przeÅ›wiadczenie, że Linux jest bezpiecznym systemem. Jednak aby staÅ‚ siÄ™ naprawdÄ™ bezpieczny, trzeba w to wÅ‚ożyć trochÄ™ pracy. Zabezpieczanie systemu to nie jest jednorazowa czynność – trzeba na bieżąco pamiÄ™tać o zmianie haseÅ‚, uaktualnianiu oprogramowania (ale nie za bardzo!) czy przeglÄ…daniu niektórych logów.

Tekst ten był pisany wiele lat temu, więc miejscami mógł się zdezaktualizować

Zakładam, że osoba czytająca ma jako-takie pojęcie o Linuksie i TCP/IP.

Hasła

PodstawÄ… systemu zabezpieczeÅ„ Linuksa sÄ… konta i przypisane do nich hasÅ‚a. HasÅ‚a stanowiÄ… kluczowÄ… rolÄ™ przy zabezpieczaniu. Powinny one mieć odpowiedniÄ… dÅ‚ugość – nie mniej niż 6 znaków, oraz nie powinny być zbyt proste. Crackerzy przy Å‚amaniu haseÅ‚ najpierw stosujÄ… tzw. metodÄ™ sÅ‚ownikowÄ…, czyli porównywanie hasÅ‚a z każdym ze słów w danym sÅ‚owniku, nastÄ™pnie sprawdzane sÄ… te same sÅ‚owa w odwrotnej kolejnoÅ›ci a także w różnych kombinacjach maÅ‚e-duże litery. Najlepiej zatem stosować przypadkowe kombinacje liter i znaków semigraficznych, jakie można znaleźć na klawiaturze. HasÅ‚a należy też co kilka dni zmieniać. Można to wymusić korzystajÄ…c z ustawieÅ„ znajdujÄ…cych siÄ™ w pliku /etc/login.defs. Do okreÅ›lenia minimalnej dÅ‚ugoÅ›ci hasÅ‚a sÅ‚uży opcja “PASS_MIN_LEN”. Opcje “PASS_MIN_DAYS” i “PASS_MAX_DAYS” odpowiadajÄ… za ilość dni, przez jakie można korzystać z danego hasÅ‚a, odpowiednio minimalnie i maksymalnie. Warto też odpowiednio poinformować “swoich” użytkowników o zasadach, jakimi należy kierować siÄ™ przy ustawianiu haseÅ‚, ponieważ zazwyczaj luserzy ustawiajÄ… je np. na swoje imiÄ™, imiÄ™ żony czy psa.

Inetd

Inetd jest systemem gospodarki serwerami internetowymi. Zwany jest też czasem “superdaemonem”, ponieważ zarzÄ…dza on innymi demonami (serwerami usÅ‚ug). Jest to o tyle przydatne, że demony nie sÄ… uruchomione caÅ‚y czas zajmujÄ…c pamięć i obciążajÄ…c procesor, ale sÄ… uruchamiane w razie potrzeby. Plikiem konfiguracyjnym dla tego demona jest /etc/inetd.conf. KonfiguracjÄ™ tego demona należy zacząć od przejrzenia pliku konfiguracyjnego i wyłączenia wszystkich demonów, które nie sÄ… nam potrzebne (nie trzeba wycinać tych linii – wystarczy “zahaszować”, czyli wstawić ‘#’ na pierwsze miejsce w tej linii). Niektóre usÅ‚ugi (po myÅ›lniku nazwa demona – przydatne przy kontroli dostÄ™pu, opis niżej):

ftp – in.ftpd

File Transfer Prototocol – Protokół PrzesyÅ‚ania Plików. Przydatny, ale potencjalnie niebezpieczny, ponieważ hasÅ‚a przesyÅ‚ane sÄ… przez sieć w postaci niezaszyfrowanej. Dobrym zastÄ™pcÄ… jest scp z pakietu ssh. WadÄ… scp jest to, że nie każdy ma klienta tej usÅ‚ugi, a ftp jest w każdej przeglÄ…darce i w każdym Windowsie. PrzykÅ‚ad użycia scp:

scp /katalog/plik user@host/katalog/
lub
scp user@host/katalog/plik .

Można użyć także opcji -C aby użyć przy kopiowaniu kompresji.

Jeśli jesteśmy zmuszeni używać ftp, to trzeba zadbać, aby był to najlepszy serwer. Obecnie za jeden z najlepszych uważa się ProFTPd. Natomiast należy unikać wu-ftpd, ponieważ w większości przypadków serwer ten zawiera błędy, które mogą umożliwić włamanie.

telnet – in.telnetd

Tej usługi chyba nie ma co przedstawiać. Także w tym przypadku należy rozważyć rozwiązanie alternatywne, ponieważ hasła przesyłane są czystym tekstem. Bardzo dobrym rozwiązaniem jest stosowanie pakietu ssh (z tego pakietu jest scp). Nie tylko szyfruje on całą transmisję, ale umożliwia także stosowanie dodatkowego zabezpieczenia w postaci sprawdzania kluczy.

pop3 – ipop3d

Przydatna usÅ‚uga pozwalajÄ…ca na Å›ciÄ…ganie poczty z danego komputera. Tu także należy postarać siÄ™ o najlepszy możliwy demon. Ta usÅ‚uga także jest potencjalnie niebezpieczna ze wzglÄ™du na nieszyfrowane przesyÅ‚anie danych. W tym przypadku można zastosować szyfrowanie przy pomocy zewnÄ™trznego programu używajÄ…cego protokoÅ‚u SSL (Secure Socket Layer). Jednak aby można byÅ‚o korzystanie z szyfrowanej przez SSL transmisji poczty niezbÄ™dny jest klient pop3 który obsÅ‚uży takie szyfrowanie. WiÄ™kszość popularnych klientów, takich jak Netscape Messanger czy Outlook Express, obsÅ‚uguje takie szyfrowanie. Aby użyć szyfrowanego połączenia na serwerze należy zainstalować któryÅ› z programów tunelujÄ…cych połączenia, np. stunnel. Na stronie tego programu (tu) znajduje siÄ™ odnoÅ›nik do strony (w jÄ™zyku angielskim), która dokÅ‚adnie opisuje jak uruchomić tunel i połączyć go z usÅ‚ugami pop3 i imap (Netscape obsÅ‚uguje tylko imap z SSL’em).

imap – imapd

Coś w stylu POP3, ale bardziej rozwinięte. Niestety także nie szyfruje transmisji. Dobrze jest połączyć tą usługę z SSL.

finger – in.fingerd

Dosyć popularna usÅ‚uga pozwalajÄ…ca na sprawdzenie kto jest aktualnie zalogowany. JeÅ›li nie chcesz aby ktoÅ› widziaÅ‚ kto jest aktualnie zalogowany, możesz odciąć tÄ… usÅ‚ugÄ™. Ja udostÄ™pniÅ‚em jÄ… jedynie dla sieci lokalnej. Jak to zrobić – w nastÄ™pnym rozdziale.

swat – swat

Program do administracji usługą smb przez przeglądarkę. Bardzo niebezpieczne i lepiej w ogóle ją wyłączyć. Jeśli naprawdę jej potrzebujesz, to udostępnij ją tylko lokalnemu komputerowi.

linuxconf – linuxconf

Zarządzanie całym systemem. Jeszcze większe niebezpieczeństwo niż swat. Koniecznie wyłącz. Jeśli już musisz administrować przez www, to zainteresuj się webminem (tu).

TCP Wrapper

Należy przyjrzeć się plikom /etc/hosts.deny i /etc/hosts.allow. Pliki te służą do odcięcia dostępu do konkretnych usług od danych komputerów. Składnia tych plików jest następująca:

usługa:   adres

Nazwa usÅ‚ugi jest taka, jak w pliku /etc/inetd.conf, czyli np. in.telnetd, in.fingerd itp. bÄ…dź ALL – wszystkie usÅ‚ugi. Jako adres można wpisać:

  • adres IP
  • adres podsieci w postaci ip/maska, np: 192.168.1.0/255.255.255.0
  • ALL – opcje dotyczÄ… wszystkich adresów
  • nazwa, np. www.tpnet.pl
  • niepeÅ‚na nazwa, np. .tpnet.pl – spowoduje to, że opcje bÄ™dÄ… dotyczyć wszystkich adresów z domeny tpnet.pl

Można oczywiÅ›cie wpisywać kilka adresów. Wpisy w pliku hosts.deny odpowiadajÄ… za odcinanie dostÄ™pu adresom do danych usÅ‚ug, a hosts.allow za udzielanie dostÄ™pu dla tych usÅ‚ug. hosts.allow ma priorytet. Aby dobrze zabezpieczyć komputer najlepiej jest do pliku hosts.deny wpisać “ALL: ALL” aby odciąć dostÄ™p do wszystkich usÅ‚ug wszystkim komputerom, a nastÄ™pnie umożliwiać dostÄ™p do wybranych usÅ‚ug wybranym komputerom przez wpisywanie ich do pliku hosts.access.

Firewall

Do kontroli caÅ‚ego ruchu wchodzÄ…cego, wychodzÄ…cego i przechodzÄ…cego przez komputer sÅ‚użą firewalle (noszÄ…ce w Polsce różne lokalne nazwy, jak “Å›ciany ognia”, “zapory ogniowe” itp). System Linux posiada taki firewall wbudowany w jÄ…dro (oczywiÅ›cie trzeba go tam jeszcze wkompilować), a do jego obsÅ‚ugi (w jÄ…drach od 2.2.1) sÅ‚uży program ipchains. SamÄ… obsÅ‚ugÄ… tego programu nie bÄ™dÄ™ siÄ™ zajmowaÅ‚ – od tego jest IPChains-HOWTO (zdaje siÄ™ jest nawet po Polsku na JTZ. Natomiast warto jest, tak jest przy TCP Wrapperze, standardowo odciąć dostÄ™p do wszystkich usÅ‚ug przez ustawienie domyÅ›lnego zachowania dla reguÅ‚y output na “DENY”.

masquerading

Masquerading jest bardzo przydatny przy zabezpieczaniu sieci lokalnej, aby nikt z Internetu się do niej nie dostał. Masquerading jest opcją firewalla, którą jednak trzeba osobno wkompilować w jądro. Masquerading polega na tym, że cały ruch z sieci lokalnej do Internetu jest widoczny pod adresem IP routera, na którym maskarada działa. W ten sposób nie można dostać się z zewnątrz do sieci lokalnej, ponieważ widoczny jest tylko router. Po szczegóły odsyłam do IP-Masquerading HOWTO, także dostępnego po Polsku.

Logowanie ruchu

Warto jest zainstalować jakiÅ› program do logowania ruchu w sieci. Jest to bardzo przydatne w przypadku wÅ‚amania – można bowiem sprawdzić skÄ…d łączyÅ‚ siÄ™ “wÅ‚amywacz”. Ja używam programu “IP packet logger” – w skrócie ippl. Program ten ma spore możliwoÅ›ci konfiguracyjne: odsiewanie pakietów z danych adresów, danego typu czy z danego portu. Istnieje też sporo innych programów tego typu – wystarczy poszukać na Freshmeat.

Poczta

Serwery SMTP sÄ… jednym z głównych celów ataków. Na samym poczÄ…tku trzeba siÄ™ zastanowić nad wyborem demona. Najpopularniejszy jest sendmail, ale zawiera też najwiÄ™cej bugów. Jest wiele alternatyw, ale za najbezpieczniejsze uważa siÄ™ Postfixa i Qmaila (za wÅ‚amanie siÄ™ do tego ostatniego wyznaczono nagrodÄ™). Dobrze jest aby byÅ‚a to w miarÄ™ nowa wersja demona. Oprócz tego należy odpowiednio skonfigurować ten serwer. Do najważnejszych rzeczy w konfiguracji należy umożliwienie relayowania (przekazywania poczty dalej) tylko dla odpowiedniej grupy osób. Można to zrobić na 2 sposoby: albo selekcjonowanie po adresach IP (umożliwienie relayowanie tylko dla pewnych adresów) lub po polu “From”. Ta druga metoda jest Å‚atwa do ominiÄ™cia, ale można stosować obie na raz.

Przydatne programy

Do najprzydatniejszych rzeczy należy program portsentry (do ściągnięcia tarball ze strony twórców. Nasłuchuje on na portach, na których nic nie powinno być, przez co wykrywane są skanowania portów (sprawdzanie jakie usługi są uruchomione na serwerze.

Rewanż

Zazwyczaj próby ataków dokonywane sÄ… z…. windowsów. Najczęściej sÄ… to osoby które usÅ‚yszaÅ‚y o programach typu NetBus czy BackOrifice. SprawdzajÄ… oni czy nie masz przypadkiem tego backdoora zainstalowanego. W takich przypadkach wystarczy sprawdzać połączenia na porty 12345 i 12346 i spróbować wywalić mu komputer jakimÅ› programem typu DoS (Denial of Service) typu winnuke czy teardrop (albo wszystkie na raz) – do Å›ciÄ…gniÄ™cia ze strony Sebastiana Zagrodzkiego. Jak to zrobić?

  • do pliku /etc/services dopisz:
    netbus	12345/tcp
    netbus-data	12346
  • do pliku /etc/inetd.conf dopisz:
    netbus stream tcp nowait root /usr/sbin/tcpd in.netbusd
    netbus-data stream tcp nowait root /usr/sbin/tcpd in.netbusd
  • w katalogu /usr/sbin wpisz polecenie ln -s /bin/true in.netbusd
  • do pliku /etc/hosts.allow dopisz:
    in.netbusd:	ALL	: spawn /usr/bin/oshare %a 10000

    Zamiast winnuke możesz wpisać jakiekolwiek inne polecenie, które może być przydatne w tym
    wypadku.

Informacje o bugach i exploitach

Jeśli jesteś administratorem serwera musisz trzymać rękę na pulsie spraw związanych z bezpieczeństwem. Dobrze jest czytać strony o tej tematyce, jak SecurityFocus. Można też zapisać się na listę dyskusyjną Bugtraq. Dzięki temu będziesz mógł odpowiednio zareagować na nowo odkryte błędy.

Zobacz też



Zostaw komentarz

*
To prove that you're not a bot, enter this code
Anti-Spam Image