Crmgo Blog

vsftpd

vsftpd

yum install vsftpd chkconfig vsftpd on service vsftpd start Sa standardnim podešavanjima će dozvoliti pristup korisnicima koji imaju naloge u sistemu, koristeći njihove lozinke. ! Podrazumevano su dozvoljeni anonimni prijavljivanja! Moguće je promeniti podrazumevano ponašanje i autorizovati ne samo sistemske korisnike, već i...

vsftpd

yum install vsftpd

chkconfig vsftpd on
service vsftpd start

Pod podrazumevanim podešavanjima, vsftpd će dozvoliti pristup korisnicima koji imaju naloge u sistemu, koristeći njihove lozinke.
! Podrazumevano su dozvoljeni anonimni logini!

Moguće je promeniti podrazumevano ponašanje i omogućiti autentifikaciju ne samo sistemskih korisnika, već i preko specijalne liste. Formalno, oni će tada raditi pod zadatim korisnikom, na primer ftpuser.
Ne zaboravite da se ovo podešava preko PAM-a, u datoteci /etc/pam.d/vsftpd.
Podrazumevana datoteka:

#%PAM-1.0
session optional pam_keyinit.so force revoke
auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
auth required pam_shells.so
auth include system-auth
account include system-auth
session include system-auth
session required pam_loginuid.so

BDB
Za autentifikaciju putem baze podataka (db) - bolje je kreirati posebnu datoteku i navesti je u konfiguraciji.
/etc/pam.d/vsftpd-db
Izbor PAM konfiguracije se vrši putem parametra pam_service_name=vsftpd-db

session optional pam_keyinit.so force revoke
auth required /lib64/security/pam_userdb.so debug db=/etc/vsftpd/login
account required /lib64/security/pam_userdb.so debug db=/etc/vsftpd/login

U ovom slučaju, datoteka sa lozinkama će se nalaziti na /etc/vsftpd/login.db.
Format originalne datoteke (login.txt):
korisnik1
lozinka1
korisnik2
lozinka2
(nov red na kraju. Bez njega možda neće raditi!)

Generisanje datoteke sa lozinkama:
db_load -T -t hash -f login.txt /etc/vsftpd/login.db

detaljnije

Kroz MySQL
Instaliramo pam_mysql

/etc/pam.d/vsftpd-mysql
auth required pam_mysql.so user=vsftpd passwd=ftpdpass host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=2 account required pam_mysql.so user=vsftpd passwd=ftpdpass host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=2

Proverite rad MySQL-a, dodajte bazu i korisnika:
CREATE DATABASE vsftpd;
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON vsftpd.* TO 'vsftpd'@'localhost' IDENTIFIED BY 'ftpdpass';
FLUSH PRIVILEGES;

Kreirajte tabelu:
CREATE TABLE 'accounts' ( 'id' INT NOT NULL AUTO_INCREMENT PRIMARY KEY , 'username' VARCHAR(30) NOT NULL , 'pass' VARCHAR( 50 ) NOT NULL , UNIQUE ( 'username' ) ) ENGINE = MYISAM ;
quit;

Dodajte sistemskog korisnika:
vsftpd:*:1003:1003:User &:/home/vsftpd:/sbin/nologin

Dodavanje korisnika:
#mysql -u root
USE vsftpd;
INSERT INTO accounts (username, pass) VALUES(’testuser’, PASSWORD(’secret’));
quit;

 

_______________________________________________________

problem koji sam imao: cannot change directory:/home/username

Podrazumevano je uključen SELinux, koji izaziva ovaj problem. Rešenje je:

setsebool -P ftp_home_dir 1

I dodavanjem jedne linije u „vsftpd.conf“:

session_support=YES
service vsftpd restart
Problem nastaje zato što vsftpd podrazumevano ne koristi module sesije u PAM-u.

http://www.opennet.ru/base/net/vsftpd_overview.txt.html detaljan članak na ovu temu

 

Napomena: tekst može biti uz pomoć AI uz ljudsku proveru. Odgovoran: Dmytro Lomaka, Kaltenkirchen.