Własny i bezpieczny serwer FTP - cz.2 - Linux



Podobne dokumenty
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

ASL Serwer FTP dokumentacja

Usługi sieciowe systemu Linux

Konfiguracja vsftpd ( Very Secure FTP Server )

WINDOWS Instalacja serwera WWW na systemie Windows XP, 7, 8.

4. Podstawowa konfiguracja

Instrukcja instalacji Control Expert 3.0

- udostępnić anonimowym użytkownikowi Internetu pliki przez serwer FTP,

Ćwiczenie Nr 7 Instalacja oraz konfiguracja wskazanego systemu operacyjnego

Wstęp. Skąd pobrać program do obsługi FTP? Logowanie

Wykonać Ćwiczenie: Active Directory, konfiguracja Podstawowa

Protokół HTTP (2) I) Wprowadzenie. II) Użyte narzędzia: III) Kolejność działań

Samba, instalacja i konfiguracja

11. Autoryzacja użytkowników

Instytut Teleinformatyki

Instalacja Active Directory w Windows Server 2003

Windows Server Active Directory

DESlock+ szybki start

Instrukcja instalacji usługi Sygnity Service

Instalacja i konfiguracja serwera IIS z FTP

Tomasz Greszata - Koszalin

DLA DREAMBOX & FLASHWIZARD

Poradnik cz.1 Użycie połączenia SSH

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne

oprogramowania F-Secure

Rys. 1. Widok uruchomienia polecenia apt-get install build-essential. Rys. 2. Widok uruchomienia polecenia apt-get install apache2

Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat protokołu http.

Graficzny terminal sieciowy ABA-X3. część druga. Podstawowa konfiguracja terminala

System zdalnego dostępu (VPN) do sieci Wydziału Elektrycznego PW

System kontroli wersji - wprowadzenie. Rzeszów,2 XII 2010

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

Konfiguracja współpracy urządzeń mobilnych (bonowników).

ibok Internetowe Biuro Obsługi Klienta

Instalacja serwera baz danych PostgreSQL w systemach operacyjnych z rodziny Windows.

Użytkownicy I. Użytkownik. Głównym celem istnienia użytkowników i grup w systemie jest utrzymanie porządku i separacja uprawnień.

Instalacja i konfiguracja serwera SSH.

Zanim zaczniesz. Warto ustawić kartę sieciową naszego serwera.

MONITOROWANIE WINDOWS Z NETCRUNCHEM 7 P A G E 1

T: Zabezpieczenie dostępu do komputera.

Konfiguracja poczty IMO w programach Microsoft Outlook oraz Mozilla Thunderbird

Krótka instrukcja instalacji

26.X.2004 VNC. Dawid Materna

2014 Electronics For Imaging. Informacje zawarte w niniejszej publikacji podlegają postanowieniom opisanym w dokumencie Uwagi prawne dotyczącym tego

Dodawanie nowego abonenta VOIP na serwerze Platan Libra

Instrukcja instalacji v2.0 Easy Service Manager

Windows Server 2008 Standard Str. 1 Ćwiczenia. Opr. JK. I. Instalowanie serwera FTP w Windows Server 2008 (zrzuty ekranowe z maszyny wirtualnej)

Instalacja i konfiguracja Symfonia.Common.Server oraz Symfonia.Common.Forte

Poziomy wymagań Konieczny K Podstawowy- P Rozszerzający- R Dopełniający- D Uczeń: - zna rodzaje sieci - zna topologie sieciowe sieci

Propozycje projektów (gniazdka)

Panel Administracyjny Spis treści:

Internetowy serwis Era mail Aplikacja sieci Web

OFFICE ADFS - POŁĄCZENIE KORZYŚCI ROZWIĄZAŃ CHMUROWYCH I CENTRALNEGO ZARZĄDZANIA

Kancelaria Prawna.WEB - POMOC

Serwer SAMBA UDOSTĘPNIANIE UDZIAŁÓW SIECIOWYCH PIOTR KANIA

NetDrive czyli jak w prosty sposób zarządzać zawartością FTP

INSTRUKCJA KONFIGURACJI KLIENTA POCZTOWEGO

Instrukcja instalacji

Serwerftp-vsftp. Rozdział Konfiguracjapodstawowa

1. Zakres modernizacji Active Directory

Instrukcja instalacji aplikacji i konfiguracji wersji sieciowej. KomKOD

Konfiguracja IPSec Brama IPSec w Windows 2003 Server

Instalacja krok po kroku /instalacja programu, serwera bazy danych/

Instrukcja instalacji usługi Sygnity SmsService

Wstęp 5 Rozdział 1. SUSE od ręki 13

Pomoc dla r.

Aplikacje internetowe - laboratorium

Uwaga!!! Autentykacja LDAP/AD zaimplementowana w Vigor wspiera tylko proste uwierzytelnianie (hasło przesyłane jest jawnym tekstem).

Kancelaria instalacja sieciowa

APACZKA. (Moduł Magento) v Strona 1 z 11

Fiery Remote Scan. Uruchamianie programu Fiery Remote Scan. Skrzynki pocztowe

Wszystkie parametry pracy serwera konfigurujemy w poszczególnych zakładkach aplikacji, podzielonych wg zakresu funkcjonalnego.

Tomasz Greszata - Koszalin

Dokumentacja SMS przez FTP

INSTRUKCJA INSTALACJI APLIKACJI SEPI W SYSTEMIE LINUX. Dokumentacja zasilania aplikacji SEPI dla systemu Linux

Qmail radość listonosza. Autorzy: Bartosz Krupowski, Marcin Landoch IVFDS

Ko n f i gura cja p ra cy V ISO z bazą SQL S e rve r

Sposoby zdalnego sterowania pulpitem

Praca z programami SAS poza lokalną siecią komputerową UZ. Zestawienie tunelu SSH oraz konfiguracja serwera proxy w przeglądarce WWW

K-EX (Geis) v Strona 1 z 12. FUTURE-SOFT SP. Z O.O. ul. Gosławicka2/ , Opole tel NIP:

Administratora CSIZS - OTM

System kontroli dostępu ACCO NET Instrukcja instalacji

Spis treści. Spis treści Wstęp Instalacja nazwa.pl Instalacja Home.pl Edycja grafiki strony logo...

ZAKŁADANIE POCZTY ELEKTRONICZNEJ - na przykładzie serwisu

ABA-X3 PXES v Podręczna instrukcja administratora. FUNKCJE SIECIOWE Licencja FDL (bez prawa wprowadzania zmian)

Pracownia internetowa w każdej szkole (edycja Jesień 2007)

Co to jest BCD? Jak możemy edytować magazyn BCD?

Instrukcja obsługi programu Monitor Wydruków

12. Wirtualne sieci prywatne (VPN)

Tworzenie maszyny wirtualnej

I. Informacje ogólne. Jednym z takich systemów jest Mambo.

MikroTik Serwer OpenVPN

KONFIGURACJA USŁUGI ZSIMED NA SERWERZE ZDALNYM

Zarządzanie Infrastrukturą IT. Jak ręcznie utworzyć instancję EAUDYTORINSTANCE na SQL Serwerze

Biuletyn techniczny. CDN OPT!MA 12.0 Drukarki fiskalne w usługach terminalowych. Copyright 2007 COMARCH SA

PORADNIK KORZYSTANIA Z SERWERA FTP ftp.architekturaibiznes.com.pl

Jarosław Kuchta. Instrukcja do laboratorium. Administrowanie Systemami Komputerowymi. Usługi DNS i DHCP

Spis treści. Rozdział 3. Podstawowe operacje na plikach...49 System plików Konsola Zapisanie rezultatu do pliku... 50

Oprogramowanie OpenVPN jest oprogramowaniem darmowym, które można pobrać ze strony:

Zapoznanie się z konfiguracją i zarządzaniem serwerem Samba.

Transkrypt:

AKTUALNOŚCI Własny i bezpieczny serwer FTP - cz.2 - Linux 12 listopada 2007 15:19 Patryk Królikowski W części pierwszej pokazywaliśmy jak skonfigurować własny serwer FTP na bazie Microsoftowego IIS-a. Teraz zobaczmy jak można to zrobić na platformie Linuksowej. Zadbamy przy tym o przyzwoity poziom bezpieczeństwa takiego serwera. Podstawy W przypadku Linuksa możemy wybierać spośród bardzo szerokiej gamy darmowego oprogramowania mogącego pełnić rolę serwera FTP. Różni się ono możliwościami, poziomem bezpieczeństwa, łatwością obsługi i rodzajem zastosowań. Najczęściej wykorzystywane są ProFTPd, gltftp oraz wu-ftpd. Bez względu na to, który serwer przypadnie nam do gustu warto wiedzieć o kilku podstawowych sprawach związanych z bezpieczeństwem. Poza samą konfiguracją serwera należy ze szczególną uwagą śledzić podatności oraz ewentualne exploity, które dotyczą wykorzystywanego przez nas oprogramowania. Warto zaglądać do serwisów takich jak www.secunia.com, www.securityfocus.com czy www.securitytracker.com. Luki bezpieczeństwa to nie wszystko. Istotna jest także kwestia poziomu uprawnień, z jakimi uruchamiany jest sam demon FTP. Przeważnie, aby usługa mogła zostać podpięta pod port 21 (lub 21 i 20 w przypadku trybu active) wymagane są prawa administratora systemu - w przypadku Linuksa - roota. Jakie są metody na ograniczenie zagrożeń związanych z wykorzystaniem uprawnień? Spora część produktów została napisana w taki sposób, aby korzystać z konta root-a tylko wtedy, kiedy jest to niezbędnie konieczne - nie mamy jednak na to wielkiego wpływu, wszystko zależy od implementacji (ProFTPd na przykład uruchamia się z uprawnieniami roota, podpina pod port TCP 21, a następnie "degraduje" swoje prawa do wskazanego w konfiguracji konta np. nobody). Ponadto, niektóre pozwalają na uruchomienie usługi w więzieniu (jail, chroot), co koncepcyjnie zbliżone jest do systemowego chroot-a znanego każdemu linuksiarzowi. Rzecz jasna, nie jest to to samo. Jeżeli mamy odpowiednio dużo samozaparcia, a przy tym także wiedzy możemy pokusić się o zbudowanie systemowego chroot-a, w którym uruchomiona będzie jedynie usługa ftp. Nie jest to jednak banalne i wymaga uwzględnienia min. wszelkich bibliotek wymaganych przez demona. W środowisku, gdzie bezpieczeństwo ma absolutny priorytet (na pewno nie w przypadku domowego serwera) warto jest poświęcić czas i nerwy. Skoro mowa o samym środowisku. Już po zainstalowaniu i skonfigurowaniu demona ftp można posłużyć się specjalizowanymi aplikacjami, które pomagają w utwardzeniu systemu i podniesieniu ogólnego poziomu bezpieczeństwa - w tym usługi FTP. Znakomitym przykładem jest tutaj projekt Bastile-Linux. Kolejną sprawą, o której wspominaliśmy w części pierwszej, jest sama specyfika ftp-a. Wszystkie informacje są tutaj przesyłane otwartym tekstem - włączając w to login i hasło użytkowników oraz treść przesyłanych danych. Na szczęście deweloperzy dostrzegli ten problem dość dawno temu i większość softu umożliwia skorzystanie z mechanizmów szyfrowania w oparciu o protokoły SSL/TLS. To podstawa. Przejdźmy do rzeczy. Skorzystamy z najpopularniejszego chyba serwera FTP - ProFTPd i zainstalujemy go na systemie CentOS.

Instalacja Zanim to zrobimy musimy wykonać kilka czynności w systemie. Stwórzmy katalog, który posłuży jako domyślny dla usługi FTP (np. home/ftp-dir), a następnie dwa podkatalogi. Do jednego z nich zalogowany użytkownik będzie mógł wrzucać pliki, a z drugiego tylko je pobierać (odpowiednio home/ftp-dir/up oraz home/ftp-dir/down). Każdy z nowoutworzonych katalogów powinien mieć odpowiednie uprawnienia: # chmod 755 ftp-dir # chmod 755 down # chmod 777 up Teraz pora na użytkowników. Stwórzmy trzech - jeden będzie miał pełnię praw zarówno do wrzucania jak i pobierania oraz będzie widział zawartość wszystkich katalogów w obrębie DefaultRoot-a (użytkownik "guru"). Drugi będzie mógł wrzucić dowolne dane do katalogu "UP" oraz ściągać zawartość katalogu "DOWN" bez prawa podejrzenia jego zawartości (użytkownik "eftepowicz") oraz użytkownik, który będzie mógł tylko pobierać wskazane przez nas pliki z katalogu "DOWN" (użytkownik "down"). Żaden z użytkowników nie musi logować się do systemu, możemy im więc spokojnie jako shell wskazać /bin/false lub sbin/nologin # useradd guru -d /home/ftp-dir -s /sbin/nologin # useradd eftepowicz -d /home/ftp-dir -s /sbin/nologin # useradd down -d /home/ftp-dir -s /sbin/nologin # passwd guru (podajemy hasło dla użytkownika "guru"). # passwd eftepowicz (podajemy hasło dla użytkownika "eftepowicz"). # passwd down (hasło dla użytkownika "down") Pora na instalację serwera ProFTPd. Do tego możemy wykorzystać menedżera "Yum". Potrzebne będzie też repozytorium, z którego pobierzemy ProFTPd (aktualne wersje zawiera np. repozytorium prowadzone przez Daga Wieers-a dag.wieers.com/rpm/). Domyślne repozytoria CentOS-a nie zwierają tej paczki. Najpierw więc instalujemy repozytorium: #rpm -Uhv apt.sw.be/packages/rpmforge-release/rpmforge-release-0.3.6-1.el4.rf.i386.rpm następnie poprzez yum-a instalujemy paczkę ProFTPd: # yum install proftpd Konfiguracja Zanim uruchomimy serwer odpowiednio go skonfigurujmy. Plik konfiguracyjny dla ProFTPd to /etc/proftpd.conf i tam będziemy dokonywali wszelkich modyfikacji. Końcowy rezultat pracy widoczny jest w TABELI pod tekstem. Omówimy teraz najważniejsze parametry konfiguracyjne zacznając od ustawień podstawowych. Staramy się aby nasz serwer podawał o sobie jak najmniej informacji w momencie logowania: ServerIdent off

Teraz też musimy podjąć decyzję i wybrać jeden z dwóch trybów, w którym będzie pracował serwer. Do dyspozycji jest albo tryb INETD lub STANDALONE. W trybie inetd demon ftp jest aktywowany tylko wówczas, jeżeli zostanie o to poproszony tj. jeżeli ktoś będzie próbował połączyć się z serwerem FTP. Ma on dwie podstawowe zalety: wszelkie zmiany w konfiguracji nie wymagają ręcznego restartu usługi (aplikowane są w momencie, kiedy nawiązywane jest nowe połączenie); oszczędność zasobów (przydatne tylko wtedy gdy nasza maszyna przeznaczona jest do innych zadań, a serwer FTP stanowi tylko dodatek). Do wad należy zaliczyć przede wszystkim zubożenie możliwości konfiguracji serwera. W naszym przypadku maszyna będzie dedykowanym ftpem zatem pozostajemy przy trybie STANDALONE, gdzie demon uruchomiony jest cały czas (musimy się przy tym liczyć z każdorazowym restartem usługi w przypadku wprowadzenia zmian w konfiguracji): ServerType standalone Informujemy też serwer, że poniższa konfiguracja jest konfiguracją domyślną. Ma to dodatkowe znaczenie w przypadku serwerów wirtualnych, o których nie będziemy teraz wspominać: DefaultServer on Następnie ograniczamy obszar działania użytkowników na serwerze FTP do katalogu /home/ftp-dir (chroot w wydaniu ProFTPd): DefaultRoot /home/ftp-dir Jako model uwierzytelniania użytkowników możemy pozostawić PAM-a (Pluggable Authentication Module) wskazujące też kolejność odpytywania modułów PAM: AuthPAMConfig proftpd AuthOrder mod_auth_pam.c* mod_auth_unix.c oraz wyłączyć rozwiązywania nazw logowania oraz adresów IP klientów (większa wydajność): IdentLookups off UseReverseDNS off Dalej maksymalna liczba dozwolonych wystąpień demona ftp (ochrona przed całkowitym "zamuleniem" serwera): MaxInstances 10 maksymalny czas działania demona w trybie oczekiwania na komendy (w sekundach): TimeoutIdle 240 (4 minuty) przyda się także: TimeoutNoTransfer 240 Dzięki temu parametrowi ograniczymy czas utrzymywania otwartego połączenia podczas, gdy do serwera przystały być wysyłane polecenia lub przekazywane/pobierane dane przez klienta. Na wszelki wypadek nie pozwalamy na zalogowanie się do serwera ROOT-a:

RootLogin off oraz ograniczamy liczbę prób logowania do 3: MaxLoginAttempts 3 Przyda się także ograniczenie liczby sesji nawiązywanych z tego samego adresu IP: MaxClientsPerHost 2 Bez zmian pozostawiamy port na którym nasłuchuje demon: Port 21 Określamy z uprawnieniami jakiego użytkownika i grupy będzie działał demon protfpd bezpośrednio po podpięciu się pod port TCP 21: User nobody Group nobody Nie ma też potrzeby żeby zalogowani użytkownicy "widzieli" pliki "." lub "..": ListOptions "-A" W sekcji "#WZNAWIANIE" pozwalamy aby w razie przerwanego połączenia można było wznowić pobieranie lub umieszczanie danych. Dalej, w sekcji "#LOGOWANIE" określamy parametry logowania zdarzeń (ustawienia domyślne). Sekcja "#Ograniczenie logowania do serwera" wskazuje, z których kont użytkowników możliwe będzie zalogowanie się do serwera. Użytkownicy serwera webowego Apache dostrzegą, że ProFTPD oferuje podobną do niego logikę i składnię budowania reguł. Rzeczywiście zasady są bardzo zbliżone. Sekcja <Global> określa ustawienia wspólne dla całego serwera FTP. Wreszcie przechodzimy od sekcji "#UPRAWNIENIA", gdzie w każdej z podsekcji określamy to, co konkretnie będą mogli robić zalogowani użytkownicy w poszczególnych katalogach. Do katalogu głównego "/home/ftp-dir" mogą oni tylko zaglądać oraz przechodzić do innych katalogów (Zestaw komend DIRS). Katalog "/home/ftp-dir/up", który przeznaczyliśmy jako miejsce wrzucania plików podlega innym ograniczeniom. Tylko użytkownicy "eftepowicz" oraz "guru" mogą przeglądać jego zawartość oraz umieszczać dane (komendy DIRS STOR STOU). Prawo usuwania plików i katalogów przysługuje tylko użytkownikowi guru (komendy DELE RMD). Z kolei do katalogu "/home/ftp-dir/down" pisać oraz zaglądać może tylko i wyłącznie użytkownik "guru". Wszyscy inni mogą jedynie pobierać wskazane wcześniej pliki (jest to tzw. ślepy katalog - brak możliwości wylistowania zawartości - komenda RETR). # ProFTPD PLIK KONFIGURACJI # Id: proftpd.conf,v 1.1 2004/02/26 17:54:30 thias Exp

#USTAWIENIA PODSTAWOWE ServerName "Serwer FTP" ServerIdent off ServerType standalone DefaultServer on AccessGrantMsg "Uzytkownik %u zostal zalogowany." DefaultRoot /home/ftp-dir #MODEL UWIERZYTELNIANIA AuthPAMConfig proftpd AuthOrder mod_auth_pam.c* mod_auth_unix.c #OGRANICZENIA IdentLookups off UseReverseDNS off MaxInstances 10 TimeoutIdle 240 TimeoutNoTransfer 240 RootLogin off MaxLoginAttempts 3 MaxClientsPerHost 2 AllowForeignAddress off UseSendfile no #USTAWIENIA USLUGI Port 21 User nobody Group nobody Umask 022 ListOptions "-A" ScoreboardFile /var/run/proftpd.score #WZNAWIANIE AllowRetrieveRestart on AllowStoreRestart on #LOGOWANIE LogFormat default "%a %l %u %t \"%r\" %s %b" LogFormat auth "%v [%P] %h %t \"%r\" %s" ExtendedLog /var/log/proftpd/access.log WRITE,READ default ExtendedLog /var/log/proftpd/auth.log AUTH auth #OGRANICZENIA GLOBALNE - LOGOWANIA DO SERWERA <Global> <Limit LOGIN> AllowUser eftepowicz AllowUser down </Global>

#UPRAWNIENIA - KATALOG "home/ftp-dir" <Directory /home/ftp-dir> <Limit DIRS> AllowAll </Directory> #UPRAWNIENIA - KATALOG "home/ftp-dir/up" Z PODKATALOGAMI <Directory /home/ftp-dir/up/*> <Limit DIRS STOR STOU> AllowUser eftepowicz <Limit DELE RMD> </Directory> #UPRAWNIENIA - KATALOG "/home/ftp-dir/down" Z PODKATALOGAMI <Directory /home/ftp-dir/down/*> <Limit DIRS STOR STUP> <Limit RETR> AllowAll </Directory> W ten oto sposób dobrnęliśmy do końca. Mamy teraz funkcjonujący serwer FTP, gdzie każdy z użytkowników może dokonywać ściśle określonych działań. A co z przesyłaniem haseł i danych "otwartym tekstem"? Tym tematem zajmiemy się w ostatniej, trzeciej części cyklu.