Linux之FTP服务

特点:明文

端口:21 命令控制, 20 数据传输

模式: 主动,被动模式

数据: ASC 二进制

常见的FTP服务器程序:

linux常用的 wu-ftpd 、proftpd ,vsftpd(very Secure FTP Daemon)

配置文件位置: /etc/vsftpd



<<dirmessage>> 欢迎信息

<chroot_list_enable > 是不锁用户在家目录 chroot_localusers 锁定所有用户

/etc/vsftp/chroo_list* 专限制个别用户



抓包数据包: tcpdump -D 显示端口 –i 哪个端口 -A dst

SSH

cd /etc/vsftpd/.sslkey

openl req –new –x509 –nodes –out vsftpd.pem –keyout vsftpd.pem

chmod –R 400 /etc/vsftpd/.sslkey

证书事先做成且让客户端支持加密可用一些ftp软件, 要让vsftp支持SSL,在配置文件中加入以下内容:



# ssl_enable=YES

# ssl_tlsv1=YES

# ssl_sslv2=YES

# ssl_sslv3=YES

# allow_anon_ssl=NO

# force_local_data_ssl=YES

# force_local_logins_ssl=YES

# rsa_cert_file=/etc/vsftpd/ssl/vsftpd_cert.pem 有颜色,可有可无

# rsa_private_key_file=/etc/vsftpd/ssl/vsftpd_key.pem

虚拟用户

在/etc/vsftpd/下建立一个表,加入用户和密码并用db4-utils该软件转换一下

# db_load –T –t hash –f vusers.list vusers.db



#mkdir /var/ftproot

# useradd –d /var/ftproot –s

chmod 775 /var/ftproot/



在/etc/pam.d/中建立个文件内容如下:名字在vsftpd.conf中必须指定,这里是vsftpd原来的注释或删掉或重名为其它

auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vftpuser

account required /lib/security/pam_userdb.so db=/etc/vsftpd/vftpuser

vsftpd.conf加入以下内容



guest_enable= 是否允许虚拟用户登陆

guest_username= 允许的用户

pam_service_name=vsftpd 位置/ec/pam.d/ 这个目录中的文件名



为个别用户配置

在vsftpd.conf中加 user_conf_dir=/etc/vsftpd/vusers_dir

在/etc/vsftpd/vuser_dir中,创建同名的用户账户名的目录

重新加载vsftpd

serverce vsftpd reload





注: anon_other_write_enable=YES|NO 这个在vsftp.conf中本就没有,自己更改则匿名用户可以有创建目录的所有权限。



用MysQL控制用户的帐户和密码 ;要想认证需要下载mysql的PAM的模块并安装:

#yum –y install pam_mysql-0,7,RC1*

#cd mysql-0.7

#make && make install

# yum –y install mysql-devel* mysql-server*

# service mysqld restart

#chkconfig mysqld on



# mysqladmin –u root password redhat

登陆: # mysql –u root –p

创建表和用户: create database vftpuser;

use vftpuser;

create table users(name char(16) binary, pwd char(16) binary);

也可以插入多个

insert into users(name,pwd) values (‘tonyzhang’ , password(‘111’);



grant select on vftpuser.users to usqluser@localhost identified by ‘redhat’;

flush privileges;

退出mysql 测试用户是否能访问

mysql -u vsqluser -p

如果看到内容则说明能访问,

useradd –d /var/vuserdir –s /sbin/nologin user1

chmod o=rw /var/vuserdir

在/etc/vsftpd/vsftpd.conf加入

guest_enable=YES

guest_username=user1

文件/etc/pam.d/vsftpd加入以下内容:

auth required /lib/sercurity/pam_mysql.so user= user1 \

passwd = redhat host=localhost db=vftpuser table = users \

usercolumn=name passwdcolumn=pwd crypt=2

account required /lib/security/pam_mysql.so user= user1 passwd=redhat \

host=localhost db=vftpuser table=user usercolumn=name \

passwdcolumn=pwd crypt=2

重启vsftp服务:service vsftp restart

你可能感兴趣的:(linux,服务器,ftp,配置文件,数据包)