特点:明文
端口:21 命令控制, 20 数据传输
模式: 主动,被动模式
数据: ASC 二进制
常见的FTP服务器程序:
linux常用的 wu-ftpd 、proftpd ,vsftpd(very Secure FTP Daemon)
配置文件位置: /etc/vsftpd
<> 欢迎信息
是不锁用户在家目录 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
阅读(846) | 评论(0) | 转发(0) |