User Tools

Site Tools


virtualni_ftp_korisnici_ssl


Opste Informacije

Koriscenje FTP servera je veoma popularno za razmenu fajlove putem Interneta. Ali, FTP protokol nije toliko bezbedan koliko to neki misle. Podrazumevano, svaki FTP korisnik ima sistemski shell nalog i kada se povezuje na FTP server, sva korisnicka imena i lozinke se salju u formi nezasticenog teksta. To znaci da neko ko prisluskuje vase pakete moze dobiti pristup ka vasem FTP nalogu. Ovo uputstvo je namenjeno da pruzi resenje za oba problema. Pure-ftpd sa puredb vam omogucava da imate kontrolisane FTP-only naloge i mogucnost da koristite SSL.

Potrebno

  1. Lokalni root pristup kompjuteru ili mogucnost koriscenja su komande da se postane root.
  2. SSH klijent koji podrzava ANSI colors kao npr. puTTy ili SecureCRT (ako se povezujete udaljeno).
  3. Vas omiljeni uredjivac teksta (ja koristim nano).
  4. OpenSSL

Instalacija

Da bi ste imali virtuelne korisnicke naloge, potrebna nam je nekakva baza. Mozete kompajlirati pure-ftpd da radi sa MySQL, ali mi cemo koristiti puredb zato sto je specificno napisan da se koristi sa pure-ftpd.

# cd /usr/ports/databases/puredb
# make install distclean
# cd /usr/ports/ftp/pure-ftpd
# make install distclean 

Konfiguracija

Prvo, trebamo da promenimo ime konfiguracionog fajla i napravimo unos u rc.conf da bi pokrenuli daemon.

# cd /usr/local/etc
# mv pure-ftpd.conf.sample pure-ftpd.conf
# echo 'pureftpd_enable="YES"' >> /etc/rc.conf

Zbog toga sto autorizujemo virtualne korisnike, trebamo promeniti samo par linija u konfiguracionom fajlu. Naravno, konfiguracioni fajl daje dosta opcija koje mozete prilagoditi vasem sistemu. Ispod se nalazi nekoliko neophodnih stvari i predloga za koriscenje sa ovim uputstvom. Postarajte se da imate sledece linije:

# nano -w pure-ftpd.conf

ChrootEveryone              yes

PureDB                      /usr/local/etc/pureftpd.pdb

Umask                       177:077

AllowUserFXP                no

CreateHomeDir               yes

TLS                         1 

Sada je vreme da se generise samo-potpisani SSL Sertifikat za koriscenej sa pure-ftpd. Mozete koristiti i potpisani ako zelite, ali njegovo ime treba da bude pure-ftpd.pem

# mkdir -p /etc/ssl/private
# openssl req -x509 -nodes -newkey rsa:1024 -keyout /etc/ssl/private/pure-ftpd.pem \
# -out /etc/ssl/private/pure-ftpd.pem
# chmod 600 /etc/ssl/private/*.pem

Pure-ftpd ce se startovati sa podizanjem sistema, ali uvek mozete izdati komandu:

# /usr/local/etc/rc.d/pure-ftpd.sh start

Upravljanje Korisnicima

Sada kada je pure-ftpd podignut i radi, vreme je da kreiramo i podesimo nase korisnike. Informacije o virtualnim korisnicima se kreiraju i modifikuju sa pure-pw i informacije se autorizuju sa /usr/local/etc/pureftpd.passwd i puredb u /usr/local/etc/pureftpd.pdb. Posto virtualni korisnici zapravo i ne postoje, moramo da kreiramo pravog korisnika i grupu za read/write pristup fajlsistemu. Mozete cak koristiti i postojeceg korisnika/grupu, ali da bi kompletno izolovali ftp korisnike, kreiracemo nove.

# pw groupadd ftpgroup
# pw useradd ftpusers -c "Virtual FTP Users" -g ftpgroup -d /dev/null -s /sbin/nologin
# mkdir /usr/home/ftpusers

Ako planirate da podignete anonymous ftp, onda morate da kreirate sistemski ftp nalog i njegov home direktorijum kao u nastavku i svi recursive direktorijumi trebaju biti u vlasnistvu ftp, a ne ftpusers. Ovo znaci da se anonymous ftp nemoze uredjivati kao virtualni nalog.

# pw useradd ftp -c "Anonymous FTP" -d /usr/home/ftpusers/ftp -s /sbin/nologin
# mkdir /usr/home/ftpusers/ftp
# mkdir /usr/home/ftpusers/ftp/incoming
# mkdir /usr/home/ftpusers/ftp/pub
# chown ftpusers:ftpgroup /usr/home/ftpusers/ftp
# chown ftp:ftpgroup /usr/home/ftpusers/ftp/*
# chmod 0755 /usr/home/ftpusers/ftp/incoming
# chmod 0555 /usr/home/ftpusers/ftp/pub

Primetite da imamo sistemskog korisnika/grupu, mozemo dodati nase virtualne korisnike da budu u istu korisnicku grupu. Ovo postaje bezbednosni problem samo ako ne chroot-ujete svakog da ostanu u njihovim home direktorijumima. Da jednostavno kreirate korisnika koji ima podrazumevani throttling:

# pure-pw useradd bob -u ftpusers -d /usr/home/ftpusers/bob -m
Password:
Enter it again: 

Korisnik, bob, je kreiran sa UID-om ftpusers i home direktorijumom /usr/home/ftpusers/bob i ova informacija je preneta do /usr/local/etc/pureftpd.pdb sa -m opcijom. Ako zelite da bob ima pristup celom sistemskom direktorijumu, koristite -D opciju umesto -d. Ako ikada dobijete gresku u kojoj se kaze da korisnik nije pronadjen, to mozete ispraviti tako sto cete kreirati bazu podataka sa

# pure-pw mkdb

A sta ako imate sistemskog korisnika kojem se treba omoguciti pristup FTP? Postoje dva nacina da se ovo uradi. Mozete urediti /usr/local/etc/pure-ftpd.conf da sadrzi UnixAuthentication, ali preporucen nacin je da dodate vas postojeci sistemske korisnicke naloge u pureftpd.passwd. Ovo se preporucuje zbog toga sto se njihov ftp pristup tada moze kontrolisati ili upravljati.

# pure-pwconvert >> /usr/local/etc/pureftpd.passwd

Modifikovanje korisnickih informacija koristi iste opcije za dodavanje korisnika, ali cete umesto toga koristiti usermod. Promenimo sada bob-ove parametre tako da moze da sacuva samo 10 fajlova i da upload-uje na 20kbps.

# pure-pw usermod bob -n 10 -T 20 -m

Da vidite podesene parametre za bob, mozemo izdati:

# pure-pw show bob

Login              : bob
Password           : $2a$07$2GsgzvrRTdAT9ld3bi.rPuIT1bfnfzJx1tqAn49uwHRPn3vfOEhUW
UID                : 1003 (ftpusers)
GID                : 1003 (ftpgroup)
Directory          : /home/ftpusers/bob/./
Full name          : 
Download bandwidth : 0 Kb (unlimited)
Upload   bandwidth : 20 Kb (enabled)
Max files          : 10 (enabled)
Max size           : 0 Mb (unlimited)
Ratio              : 0:0 (unlimited:unlimited)
Allowed local  IPs : 
Denied  local  IPs : 
Allowed client IPs : 
Denied  client IPs : 
Time restrictions  : 0000-0000 (unlimited)
Max sim sessions   : 0 (unlimited) 

Brisanje korisnika je isto tako jednostavno.

# pure-pw userdel bob -m

Nakon modifikovanja parametara korisnika, ponovno startovanje pure-ftpd nije neophodno. Samo napravite promene i one ce se odmah primeniti. Za vise informacija, pogledajte man stranice ili pronadjite kako se koristi tako sto necete odrediti nikakve parametre:

# pure-pw

Sada ste spremni. Isprobajte ovo koristeci regularni FTP i nakon toga FTP preko SSL.


Izvor: http://www.bsdguides.org/guides/freebsd/networking/pure-ftpd_virtual_users.php

virtualni_ftp_korisnici_ssl.txt · Last modified: 2017/04/28 10:25 (external edit)