konfiguracja proftpd
konfiguracja proftpd
Witam!
Mam pytanie odnośnie proftpd...
Nie mogę nigdzie znaleźć opisu pełnej konfiguracji tego programu.
Jestem "początkujący" i prosiłbym o bardzo dokładny opis konfiguracji.
Szukałem na tym forum i na innych, ale takiego superopisu nie znalazłem, nawet google nie pomogło.
Chciałbym utworzyć 5 różnych kont dla użytkowników mających różne uprawnienia, gdzie każdy miałby osobny folder docelowy.
Jak się tworzy dodatkowe konta, bo po instalacji zostaje utworzone konto domyślne "ftp"?
W których plikach są zawarte dane konfiguracyjne kont użytkowników?
Przydałaby się na tym forum jakaś jedna bardzo dokładna instrukcja, dlatego prosiłbym o coś takiego.
Pozdrawiam!
Mam pytanie odnośnie proftpd...
Nie mogę nigdzie znaleźć opisu pełnej konfiguracji tego programu.
Jestem "początkujący" i prosiłbym o bardzo dokładny opis konfiguracji.
Szukałem na tym forum i na innych, ale takiego superopisu nie znalazłem, nawet google nie pomogło.
Chciałbym utworzyć 5 różnych kont dla użytkowników mających różne uprawnienia, gdzie każdy miałby osobny folder docelowy.
Jak się tworzy dodatkowe konta, bo po instalacji zostaje utworzone konto domyślne "ftp"?
W których plikach są zawarte dane konfiguracyjne kont użytkowników?
Przydałaby się na tym forum jakaś jedna bardzo dokładna instrukcja, dlatego prosiłbym o coś takiego.
Pozdrawiam!
totalweb, na necie to jak pamietam jest co najmniej kilka dosc obszernych polskich poradnikow.
mozna tez skonfigurowac z z poziomu graficznego gui, latwiej to troche wtedy ogarnac.
mozna tez skonfigurowac z z poziomu graficznego gui, latwiej to troche wtedy ogarnac.
Kod: Zaznacz cały
gproftpd
- Przede wszystkim lektura dokumentacji: http://proftpd.org/docs/directives/linked/by-name.html
- Ustawianie użytkowników systemowych dla potrzeb proftpd to nie jest za dobry pomysł z uwagi na bezpieczeństwo.
Lepiej utworzyć sobie użytkowników z powłoką /bin/false a do pliku konfiguracyjnego proftd wrzucićKod: Zaznacz cały
AuthOrder mod_auth_file.c AuthUserFile /etc/proftpd/ftp.passwd AuthGroupFile /etc/proftpd/ftp.group
- Użytkowników robisz sobie użytkując bardzo prosty skrypt autorstwa Hagala Gdzie musisz pamiętać o dwóch rzeczach. GID użytkownika ftp nie może się pokryć z GID użytkownika systemowego to raz. Dwa, użycie skryptu to wpisujesz nazwę pliku, a po nim nazwę użytkownika i GID użytkownika. Proponuję gid dawać z przedziału od 2000 w górę.
Kod: Zaznacz cały
su -c "ftpasswd --group --file /etc/proftpd/ftp.group --gid $2 --name $1 && ftpasswd --passwd --file /etc/proftpd/ftp.passwd --shell /bin/false --not-system-password --uid $2 --name $1 --home=/server/ftp/$1"
- Konta użytkowników to edycja proftpd i tam sobie ustawiasz co i jak. Przykładowo najkrótsza opcja:
Kod: Zaznacz cały
<Anonymous /server/ftp/anonymous/> User anonim Group anonim UserAlias anonymous anonim UserAlias ftp anonim AnonRequirePassword off HideNoAccess on # ukrywa pliki do ktorych anonim nie ma praw dostepu TransferRate RETR 30.0:1024 # ograniczenie pobierania dla anonimow do 16kB/s <Limit LOGIN> Order Allow,Deny AllowUser anonim ###dozwoleni uzytkownicy DenyAll </Limit> <Directory /> <Limit WRITE MKD DELE RMD STOR> Order Allow,Deny Allow TWOJE_IP #pozwala na zapisywanie anonimowi po adresie IP DenyAll </Limit> <Limit LIST DIRS READ> Order Allow,Deny AllowAll IgnoreHidden on </Limit> </Directory> </Anonymous>
Polecam lekturę dokumentacji i jak będziesz miał jakieś konkretne pytania to zapraszam ponownie.
Pozdrawiam.
Prawie wszystko ustawiłem. Tylko nie mogę zablokować użytkowników w swoich katalogach.
To mój konfig
Google nie pomogło.
I jeszcze jeden błąd, który mam przy restartowaniu ftp:
Proszę o pomoc.
To mój konfig
Kod: Zaznacz cały
# This is a ProFTPD configuration file
ServerName "debian" # Nazwa serwera
ServerAdmin admin@xxx # Email admina
ServerIdent off "ftp://ftp.domena.pl/" # Pozwala na wyswietlenie wiadom$
ServerType standalone # Ustawia tryb pracy demona ProFTPD, styb standal$
DeferWelcome on # Nie pokazuje wiadomosci powitalnej dopoki $
DefaultServer on # Okreslamy konfiguracje jako domyslna
DefaultRoot ~
Port 21 # Nr portu na ktorym serwer ma słuchać
Umask 022 # Tryb umask 022 jest typowym standardem dla ogolnie doste$
User adminirr # Użytkownik na jakiego odpalony jest serwer FTP
Group root # Grupa do ktorej nalezy ten uzytkownik
TimeoutIdle 300 # Timeout przy braku ruchu (zalogowal sie i$
TimeoutStalled 300 # Timeout przy przeciazonym laczu jak sie n$
TimeoutLogin 60 # Timeout podczas logowania (za dlugo sie lo$
TimeoutNoTransfer 300 # Timeout przy braku transferu
ExtendedLog /var/log/proftp.log # Miejsce gdzie maja byc lo$
ExtendedLog /dev/tty10 # Konsola na ktorej maja byc wyswiet$
DisplayLogin welcome.msg # Plik z wiadomoscia powitalna
MaxInstances 20
MaxLoginAttempts 5
MaxClients 10 ">>>Za duzo chetnych :( Zapraszam innym razem.<<<" # Maksymalna li$
MaxClients 10 ">>>Za duzo chetnych :( Zapraszam innym razem.<<<" # Maksymalna li$
MaxClientsPerHost 5 "Przystopuj! Za dużo połączeń z jednego IP." # Maksymalna li$
<Limit LOGIN>
Order allow,deny
Allow from All
</Limit>
<Directory /*>
AllowOverwrite on # Zezwalamy na nadpisywanie plikow w obrebie katalogu $
AllowStoreRestart on
</Directory>
# Needed for NIS.
PersistentPasswd off
<Anonymous /home/ftp/użytkownik1>
User użytkownik1
Group użytkownik1
AnonRequirePassword on
RequireValidShell off
DisplayLogin welcome.msg
DisplayFirstChdir .message
GroupOwner użytkownik1
Umask 022
HideNoAccess on # ukrywa pliki do których anonim nie ma p$ MaxClients 10 "Za dużo chętnych. Zapraszam innym razem"
MaxClientsPerHost 5 "Przystopuj! Za dużo połączeń z jednego IP."
<Limit LOGIN>
Order allow,deny
Allow All
</Limit>
<Directory /home/ftp/użytkownik1/>
<Limit ALL>
Allow All
<Limit ALL>
Allow from All
</Limit>
AllowOverwrite on
AllowStoreRestart on # Pozwala klientom wznawiać wysyłanie danych.
</Directory>
</Anonymous>
<Anonymous /home/ftp/użytkownik2>
User użytkownik2
Group użytkownik2
AnonRequirePassword on
RequireValidShell off
DisplayLogin welcome.msg
DisplayFirstChdir .message
GroupOwner użytkownik2
Umask 022
MaxClients 10 "Za dużo chętnych. Zapraszam innym razem"
MaxClientsPerHost 5 "Przystopuj! Za dużo połączeń z jednego IP."
<Limit LOGIN>
Order allow,deny
Allow from All
</Limit>
<Directory /home/ftp/>
<Limit ALL>
Allow All
</Limit>
AllowOverwrite on
AllowStoreRestart on
RateWriteBPS 750000
RateWriteFreeBytes 100000
RateReadBPS 750000
RateReadFreeBytes 100000
</Directory>
</Anonymous>
<Anonymous /home/ftp/użytkownik3>
User użytkownik3
Group użytkownik3
AnonRequirePassword on
RequireValidShell off
DisplayLogin welcome.msg
DisplayFirstChdir .message
GroupOwner użytkownik3
Umask 022
MaxClients 10 "Za dużo chętnych. Zapraszam innym razem"
MaxClientsPerHost 5 "Przystopuj! Za dużo połączeń z jednego IP."
<Limit LOGIN>
Order allow,deny
Allow from All
</Limit>
<Directory /home/ftp/>
<Limit ALL>
Allow All
</Limit>
AllowOverwrite on
AllowStoreRestart on
RateWriteBPS 750000
RateWriteFreeBytes 100000
RateReadBPS 750000
RateReadFreeBytes 100000
</Directory>
</Anonymous>
<Anonymous /home/ftp/użytkownik4>
User użytkownik4
Group użytkownik4
AnonRequirePassword on
RequireValidShell off
DisplayLogin welcome.msg
DisplayFirstChdir .message
GroupOwner użytkownik4
Umask 022
MaxClients 10 "Za dużo chętnych. Zapraszam innym razem"
MaxClientsPerHost 5 "Przystopuj! Za dużo połączeń z jednego IP."
MaxClients 10 "Za dużo chętnych. Zapraszam innym razem"
MaxClientsPerHost 5 "Przystopuj! Za dużo połączeń z jednego IP."
<Limit LOGIN>
Order allow,deny
Allow from All
</Limit>
<Directory /home/ftp/>
<Limit ALL>
Allow All
</Limit>
AllowOverwrite on
AllowStoreRestart on
RateWriteBPS 750000
RateWriteFreeBytes 100000
RateReadBPS 750000
RateReadFreeBytes 100000
</Directory>
</Anonymous>
<Anonymous /home/ftp/użytkownik5>
User użytkownik5
Group użytkownik5
AnonRequirePassword on
RequireValidShell off
DisplayLogin welcome.msg
DisplayFirstChdir .message
GroupOwner użytkownik5
Umask 022
MaxClients 10 "Za dużo chętnych. Zapraszam innym razem"
MaxClientsPerHost 5 "Przystopuj! Za dużo połączeń z jednego IP."
<Limit LOGIN>
Order allow,deny
Allow from All
</Limit>
<Directory /home/ftp/>
<Limit ALL>
Allow All
<Limit ALL>
Allow All
</Limit>
AllowOverwrite on
AllowStoreRestart on
RateWriteBPS 750000
RateWriteFreeBytes 100000
RateReadBPS 750000
RateReadFreeBytes 100000
</Directory>
</Anonymous>
I jeszcze jeden błąd, który mam przy restartowaniu ftp:
Kod: Zaznacz cały
Starting ftp server: proftpd - IPv6 getaddrinfo 'localhost' error: No address associated with hostname
Dodaj do konfigu:totalweb pisze:i jeszcze jeden błąd, który mam przy restartowaniu ftp:Kod: Zaznacz cały
Starting ftp server: proftpd - IPv6 getaddrinfo 'localhost' error: No address associated with hostname
Kod: Zaznacz cały
UseIPv6 off
Kod: Zaznacz cały
DefaultRoot ~
No na tej stronie to już byłem, ale nic nie wyniosłem.
Co to mniej, więcej znaczy?
W którym miejscu w moim pliku .conf (to ten wyżej) mam wstawić to DefaultRoot i jak to ma wyglądać.
To ma wyglądać tak? a staff to nazwa katalogu?
Zanim postanowiłem tu napisać, to próbowałem wielu rozwiązań.
nie pomogło, bo już sprawdzałem wcześniej, a z poleceniem też kombinowałem używając:
Co to mniej, więcej znaczy?
Kod: Zaznacz cały
DefaultRoot
Name
DefaultRoot -- Sets default chroot directory
Synopsis
DefaultRoot [ directory [group-expression]]
Default
DefaultRoot /
Context
server config, <VirtualHost>, <Global>
Module
mod_auth
Compatibility
0.99.0pl7 and later
Description
The DefaultRoot directive controls the default root directory assigned to a user upon login. If DefaultRoot is set to a directory other than "/", a chroot operation is performed immediately after a client authenticates. This can be used to effectively isolate the client from a portion of the host system filespace. The specified root directory must begin with a / or can be the magic character '~'; meaning that the client is chroot jailed into their home directory.
When the specified chroot directory is a symlink this will be resolved to it's parent first before setting up the chroot. This can have unwanted side effects. For example if a user has write access to the symlink he could modify it so that it points to '/'. Thus the chroot would be the root directory of the server, resulting in insufficient or no restrictions.
If the DefaultRoot directive specifies a directory which disallows access to the logged-in user's home directory, the user's current working directory after login is set to the DefaultRoot instead of their normal home directory. DefaultRoot cannot be used in <Anonymous> configuration blocks, as the <Anonymous> directive explicitly contains a root directory used for Anonymous logins. The special character '~' is replaced with the authenticating user's home directory immediately after login. Note that the default root may be a subdirectory of the home directory, such as "~/anon-ftp".
The optional group-expression argument can be used to restrict the DefaultRoot directive to a unix group, groups or subset of groups. The expression takes the format: [!]group-name1[,[!]group-name2[,...]]. The expression is parsed in a logical boolean AND fashion, such that each member of the expression must evaluate to logically TRUE in order for the DefaultRoot directive to apply. The special character '!' is used to negate group membership.
Care should be taken when using DefaultRoot. Chroot "jails" should not be used as methods for implementing general system security as there are potentially ways that a user can "escape" the jail.
See also
Examples
Example of a DefaultRoot configuration:
ServerName "A test ProFTPD Server"
ServerType inetd
User ftp
Group ftp
#
# This causes proftpd to perform a chroot into the authenticating user's directory
# immediately after login.
# Once this happens, the user is unable to "see" higher level directories.
# Because a group-expression is included, only users who are a member of
# the group 'users' and NOT a member of 'staff' will have their default
# root directory set to '~'.
DefaultRoot ~ users,!staff
...
To ma wyglądać tak?
Kod: Zaznacz cały
DefaultRoot ~ użytkownik1,!staff
Zanim postanowiłem tu napisać, to próbowałem wielu rozwiązań.
Kod: Zaznacz cały
UseIPv6 off
Kod: Zaznacz cały
DefaultRoot
Kod: Zaznacz cały
DefaultRoot /home/ftp/użytkownik1/ # Wyznaczamy nadrzędny dla każdego użytkownika katalog spoza którego nie będzie mógł wyjść.
W dużym skrócie.
Masz bajzel jakich mało w pliku. Po kolei.
Początek pliku konfiguracyjnego, usuń:
Kolejna rzecz, pierwszy użytkownik i analogicznie reszta, masz:
Nie zamknięte pozycje <Limit>, brak określonego użytkownika, który może się logować.
Popraw to na coś takiego
Ponadto brakuje Ci najważniejszego czyli:
Oczywiście to przykład. Wcześniej napisałem co i jak.
Aha, znaczną część opcji wrzuć do sekcji <Global>, której u Ciebie akurat kompletnie nie ma, a jest to istotne.
Dodatkowo jeszcze dodaj to:
I na sam koniec.
Chcesz uruchomić sobie serwer to czytaj ze zrozumieniem i posprzątaj konfig bo masz bajzel jak w stajni Augiasza.
Pozdrawiam.
Masz bajzel jakich mało w pliku. Po kolei.
Początek pliku konfiguracyjnego, usuń:
Kod: Zaznacz cały
<Limit LOGIN>
Order allow,deny
Allow from All
</Limit>
<Directory /*>
AllowOverwrite on # Zezwalamy na nadpisywanie plików w obrębie katalogu $
AllowStoreRestart on
</Directory>
Kod: Zaznacz cały
<Anonymous /home/ftp/użytkownik1>
User użytkownik1
Group użytkownik1
AnonRequirePassword on
RequireValidShell off
DisplayLogin welcome.msg
DisplayFirstChdir .message
GroupOwner użytkownik1
Umask 022
HideNoAccess on # ukrywa pliki, do których anonim nie ma p$ MaxClients 10 "Za dużo chętnych. Zapraszam innym razem"
MaxClientsPerHost 5 "Przystopuj! Za dużo połączeń z jednego IP."
<Limit LOGIN>
Order allow,deny
Allow All
</Limit>
<Directory /home/ftp/użytkownik1/>
<Limit ALL>
Allow All
<Limit ALL>
Allow from All
</Limit>
AllowOverwrite on
AllowStoreRestart on # Pozwala klientom wznawiać wysyłanie danych.
</Directory>
</Anonymous>
Popraw to na coś takiego
Kod: Zaznacz cały
<Anonymous /home/ftp/użytkownik1>
User użytkownik1
Group użytkownik1
AnonRequirePassword on
RequireValidShell off
DisplayLogin welcome.msg
DisplayFirstChdir .message
Umask 022
HideNoAccess on # ukrywa pliki, do których anonim nie ma praw
MaxClients 10 "Za dużo chętnych. Zapraszam innym razem"
MaxClientsPerHost 5 "Przystopuj! Za dużo połączeń z jednego IP."
<Limit LOGIN>
Order allow,deny
AllowUser użytkownik1
DenyAll
</Limit>
<Directory />
<Limit WRITE MKD DELE RMD STOR>
Order Allow,Deny
DenyAll
</Limit>
<Limit LIST DIRS READ>
Order Allow,Deny
AllowAll
IgnoreHidden on
</Limit>
</Directory>
</Anonymous>
Kod: Zaznacz cały
AuthOrder mod_auth_file.c
AuthUserFile /etc/proftpd/ftp.passwd
AuthGroupFile /etc/proftpd/ftp.group
AuthPAM on
Aha, znaczną część opcji wrzuć do sekcji <Global>, której u Ciebie akurat kompletnie nie ma, a jest to istotne.
Dodatkowo jeszcze dodaj to:
Kod: Zaznacz cały
<IfModule mod_vroot.c>
VRootEngine on
</IfModule>
I na sam koniec.
Chcesz uruchomić sobie serwer to czytaj ze zrozumieniem i posprzątaj konfig bo masz bajzel jak w stajni Augiasza.
Pozdrawiam.
-
- Posty: 26
- Rejestracja: 15 kwietnia 2008, 23:46
- Lokalizacja: Wo³omin
No dobrze, a jak chciałbym użyć użytkowników, których utworzyłem w systemie?
I jak ma wyglądać sekcja:
I jak ma wyglądać sekcja:
Kod: Zaznacz cały
<Global>