Difference between revisions of "Very Secure FTP Daemon (Česky)"

From ArchWiki
Jump to: navigation, search
(Created page with "Category:Networking (English) Category:HOWTOs (English) {{i18n|Very Secure FTP Daemon}} '''vsftpd''' (Very Secure FTP Daemon) je lehký, stabilní a bezpečný FTP serve...")
 
Line 39: Line 39:
 
  anon_max_rate=30000  # Maximální rychlost přenosu anonymními uživateli v bytech za sekundu
 
  anon_max_rate=30000  # Maximální rychlost přenosu anonymními uživateli v bytech za sekundu
  
=== Chroot jail ===
+
=== Prostředí chroot ===
One can set up a chroot environment which prevents the user from leaving its home directory. To enable this, add the following lines to {{Filename|/etc/vsftpd.conf}}:
+
Je možné nastavit prostředí chroot, které uživatelům zamezí opouštění jejich domovského adresáře. Pro povolení zapište následující řádky do souboru {{Filename|/etc/vsftpd.conf}}:
 
  chroot_list_enable=YES
 
  chroot_list_enable=YES
 
  chroot_list_file=/etc/vsftpd.chroot_list
 
  chroot_list_file=/etc/vsftpd.chroot_list
The {{Codeline|chroot_list_file}} variable specifies the file which contains users that are jailed.
+
Proměnná {{Codeline|chroot_list_file}} udává soubor se seznamem uživatelů, kteří jsou uzavřeni do prostředí chroot.
  
For a more restricted environment, one can specify the line:
+
Pro ještě přísnější nastavení můžete použít tyto řádky:
 
  chroot_local_user=YES
 
  chroot_local_user=YES
This will make local users jailed by default. In this case, the file specified by {{Codeline|chroot_list_file}} lists users that are '''not''' in a chroot jail.
+
Toto nastavení v základu uzavře lokální uživatele fo prostředí chroot. V tomto případě, soubor udaný proměnnou {{Codeline|chroot_list_file}} obsahuje seznam uživatelů, kteří '''nejsou''' uzavřeni do prostředí chroot.
  
 
=== Zamezení přihlašování uživatelů ===
 
=== Zamezení přihlašování uživatelů ===
Line 108: Line 108:
 
Používání virtuálních uživatelů přináší výhodu v nevyžadování reálného uživatelského účtu v systému. Keeping the environment in a container is of course a more secure option.
 
Používání virtuálních uživatelů přináší výhodu v nevyžadování reálného uživatelského účtu v systému. Keeping the environment in a container is of course a more secure option.
  
A virtual users database has to be created by first making a simple text file like this:
+
Pro vytvoření databáze uživatelů, je nejdříve třeba vytvořit jednoduchý textový soubor, jako například tento:
  user1
+
  uživatel1
  password1
+
  heslo1
  user2
+
  uživatel2
  password2
+
  heslo2
Include as many virtual users as you wish according to the structure in the example. Save it as logins.txt; the file name does not have any significance. Next step depends on Berkeley database system, which is included in the core system of Arch. As root create the actual database with the help of the logins.txt file, or what you chose to call it:
+
Vložte kolik virtuálních uživatelů potřebujete, jen je třeba zachovat strukturu souboru. Seznam uložte jako logins.txt; na názvu souboru nezáleží. Další krok závisí na databázovém systému Berkeley, který je zahrnutý v základním systému Arch. Jako uživatel root vytvořte databázi ze souboru login.txt (nebo jak jste ho pojmenovali):
 
  # db_load -T -t hash -f logins.txt /etc/vsftpd_login.db
 
  # db_load -T -t hash -f logins.txt /etc/vsftpd_login.db
It is recommended to restrict permissions for the now created {{Filename|vsftpd_login.db}} file:
+
Je vhodné omezit oprávnění k nově vzniklému souboru {{Filename|vsftpd_login.db}}:
 
  # chmod 600 /etc/vsftpd_login.db
 
  # chmod 600 /etc/vsftpd_login.db
{{Warning|Be aware that stocking passwords in plain text is not safe. Don't forget to remove your temporary file with {{codeline|rm logins.txt}}.}}
+
{{Warning|Ukládání hesel v čistém textu není bezpečné, proto nezapomeňte smazat dočasný soubor tímto příkazem {{codeline|rm logins.txt}}.}}
 
PAM should now be set to make use of vsftpd_login.db. To make PAM check for user authentication create a file named ftp in the {{Filename|/etc/pam.d/}} directory with the following information:
 
PAM should now be set to make use of vsftpd_login.db. To make PAM check for user authentication create a file named ftp in the {{Filename|/etc/pam.d/}} directory with the following information:
 
  auth required pam_userdb.so db=/etc/vsftpd_login crypt=hash  
 
  auth required pam_userdb.so db=/etc/vsftpd_login crypt=hash  

Revision as of 14:35, 2 April 2011

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.


Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어


External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی

vsftpd (Very Secure FTP Daemon) je lehký, stabilní a bezpečný FTP server pro UNIX-like systémy.

Instalace

Vsftpd je začleněn do oficiálního repozitáře. Instalovat můžete např. pomocí utility pacman:

# pacman -S vsftpd

Připojení povolíte modifikací souboru Template:Filename:

# Povolit všechna připojení
vsftpd: ALL
# Omezit na určený rozsah IP adres
vsftpd: 10.0.0.0/255.255.255.0

Server můžete spustit tímto skriptem:

# /etc/rc.d/vsftpd start

Pokud chcete spustit vsftpd při startu počítače, přidejte ho do pole DAEMONS v souboru Template:Filename.

Pokud chcete použít vsftpd s xinetd následujte postup napsaný níže.

Konfigurace

Většiny nastavení docílíte editací souboru Template:Filename. Soubor je dobře zdokumentovaný, a proto tato sekce poukazuje pouze na některé důležité změny. Pro všechny možnosti a dokumentaci můžete použít man vsftpd.conf (5).

Povolení uploadu

Pokud chcete povolit změny na souborovém systému, jako například při uploadu, Template:Codeline musíte nastavit na YES v souboru Template:Filename:

write_enable=YES

Přihlašování lokálních uživatelů

Pro povolení přihlašování uživatelů v souboru Template:Filename nastavte tento řádek v souboru Template:Filename:

local_enable=YES

Anonymní přihlašování

Tyto řádky v souboru Template:Filename určují, zda se anonymní uživatelé mohou přihlásit:

anonymous_enable=YES # Povolí anonymní přihlášení
no_anon_password=YES # Nevyžadovat heslo k anonymnímu přihlášení
anon_max_rate=30000  # Maximální rychlost přenosu anonymními uživateli v bytech za sekundu

Prostředí chroot

Je možné nastavit prostředí chroot, které uživatelům zamezí opouštění jejich domovského adresáře. Pro povolení zapište následující řádky do souboru Template:Filename:

chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list

Proměnná Template:Codeline udává soubor se seznamem uživatelů, kteří jsou uzavřeni do prostředí chroot.

Pro ještě přísnější nastavení můžete použít tyto řádky:

chroot_local_user=YES

Toto nastavení v základu uzavře lokální uživatele fo prostředí chroot. V tomto případě, soubor udaný proměnnou Template:Codeline obsahuje seznam uživatelů, kteří nejsou uzavřeni do prostředí chroot.

Zamezení přihlašování uživatelů

Je možné zamezit uživatelům přístup k FTP serveru přidáním 2 řádek do souboru Template:Filename:

userlist_enable=YES
userlist_file=/etc/vsftpd.user_list

Template:Codeline nyní určuje uživatele, kteří se nesmí přihlásit.

Pokud chcete naopak pouze některým uživatelům povolit přístup, přidejte řádek:

userlist_deny=NO

Soubor určený na řádku Template:Codeline pak obsahuje uřivatele, kteří se mohou přihlásit.

Omezení připojení

Můžete omezit rychlost přenosu dat, počet klientů a počet připojení na jednu IP adresu pro lokální uživatele, přidáním těchto řádek do souboru Template:Filename:

local_max_rate=1000000 # Maximální rychlost přenosu dat v bytech za sekundu
max_clients=50         # Maximální počet klientů, kteří mohou být připojeni
max_per_ip=2           # Maximální počet připojení na jednu IP adresu

Použití xinetd

Pokud chcete použít vsftpd s xinetd, přidejte následující řádky do souboru Template:Filename:

service ftp
{
        socket_type             = stream
        wait                    = no
        user                    = root
        server                  = /usr/sbin/vsftpd
        log_on_success  += HOST DURATION
        log_on_failure  += HOST
        disable                 = no
}

Tyto volby by měly být nastaveny v souboru Template:Filename:

tcp_wrappers=YES        # Použít tcp_wrappers ke správě připojení. Poté povolit v hosts.allow
pam_service_name=vsftpd

Poté se ujistěte, že je vsftpd povolen pro IP adresy, které se mají připojovat k serveru, v souboru Template:Filename:

vsftpd: ALL

Nakonec přidejte xinetd do pole DAEMONS v souboru Template:Filename. Není třeba přidávat vsftpd, neboť bude spuštěn utilitou xinetd kdykoliv bude třeba.

Pokud při připojování k serveru dostáváte chybová hlášení jako toto:

500 OOPS: cap_set_proc

Je třeba přidat capability do pole MODULES= v souboru Template:Filename.

Po přejití na verzi 2.1.0 můžete dostávát během připojování chybová hlášení jako toto:

500 OOPS: could not bind listening IPv4 socket

V předešlých verzích stačilo nechat tyto řádky zakomentované:

# Toto použijte k nastavení vsftpd do samostatného módu nebo vsftpd bude fungovat s (x)inetd
# listen=YES

V této verzi, a nejspíše i v budoucích, je třeba explicitně nastavit vsftpd, aby neběžel v samostatném módu:

# Toto použijte k nastavení vsftpd do samostatného módu nebo vsftpd bude fungovat s (x)inetd
listen=NO

Tipy a triky

PAM s virtuálními uživatelskými účty

Používání virtuálních uživatelů přináší výhodu v nevyžadování reálného uživatelského účtu v systému. Keeping the environment in a container is of course a more secure option.

Pro vytvoření databáze uživatelů, je nejdříve třeba vytvořit jednoduchý textový soubor, jako například tento:

uživatel1
heslo1
uživatel2
heslo2

Vložte kolik virtuálních uživatelů potřebujete, jen je třeba zachovat strukturu souboru. Seznam uložte jako logins.txt; na názvu souboru nezáleží. Další krok závisí na databázovém systému Berkeley, který je zahrnutý v základním systému Arch. Jako uživatel root vytvořte databázi ze souboru login.txt (nebo jak jste ho pojmenovali):

# db_load -T -t hash -f logins.txt /etc/vsftpd_login.db

Je vhodné omezit oprávnění k nově vzniklému souboru Template:Filename:

# chmod 600 /etc/vsftpd_login.db
Warning: Ukládání hesel v čistém textu není bezpečné, proto nezapomeňte smazat dočasný soubor tímto příkazem Template:Codeline.

PAM should now be set to make use of vsftpd_login.db. To make PAM check for user authentication create a file named ftp in the Template:Filename directory with the following information:

auth required pam_userdb.so db=/etc/vsftpd_login crypt=hash 
account required pam_userdb.so db=/etc/vsftpd_login crypt=hash
Note: We use /etc/vsftpd_login without .db extension in PAM-config!

Now it is time to create a home for the virtual users. In the example Template:Filename is decided to host data for virtual users, which also reflects the default directory structure of Arch. First create the general user virtual and make Template:Filename its home:

# useradd -d /srv/ftp virtual

Make virtual the owner:

# chown virtual:virtual /srv/ftp

Configure vsftpd to use the created environment by editing /etc/vsftpd.conf. These are the necessary settings to make vsftpd restrict access to virtual users, by user-name and password, and restrict their access to the specified area Template:Filename:

anonymous_enable=NO
local_enable=YES
chroot_local_user=YES
guest_enable=YES
guest_username=virtual
virtual_use_local_privs=YES

If the xinetd method is used start the service. You should now only be allowed to login by user-name and password according to the made database.

Přidání soukromých adresářů pro virtuální uživatelské účty

Nejdříve vytvořte složky pro uživatele:

# mkdir /srv/ftp/user1
# mkdir /srv/ftp/user2
# chown virtual:virtual /srv/ftp/user?/

Poté přidejte následující řádky do souboru Template:Filename:

local_root=/srv/ftp/$USER
user_sub_token=$USER

Další zdroje