海运的博客

Vsftpd配置SSL加密FTP数据传输

发布时间:August 17, 2012 // 分类:备份存储,OpenSSL // No Comments

FTP是互联网上广泛使用的文件传输协议,缺点是数据明文传输,在数据经过的节点上进行监听可轻易获取用户和密码,给安装带来诸多隐患,可使用SSL加密FTP连接。
先测试明文传输下用Tcpdump监听ftp用户名和密码:

tcpdump port 21 -nA
20:03:43.077038 IP 192.168.1.1.34453 > 192.168.1.4.21: Flags [P.], seq 21:34, ack 134, win 2920, length 13
E..5."@.@..J............k..3..(kP..hC...USER onovps
20:03:43.077506 IP 192.168.1.4.21 > 192.168.1.1.34453: Flags [P.], seq 134:168, ack 34, win 365, length 34
E..J.g@.@.................(kk..@P..m#...331 Please specify the password.
20:03:43.081218 IP 192.168.1.1.34453 > 192.168.1.4.21: Flags [P.], seq 34:47, ack 168, win 2920, length 13
E..5.#@.@..I............k..@..(.P..h:...PASS onovps
20:03:43.102350 IP 192.168.1.4.21 > 192.168.1.1.34453: Flags [P.], seq 168:191, ack 47, win 365, length 23
E..?.h@.@.................(.k..MP..m.8..230 Login successful.
20:03:43.103626 IP 192.168.1.1.34453 > 192.168.1.4.21: Flags [P.], seq 47:52, ack 191, win 2920, length 5
E..-.$@.@..P............k..M..(.P..h.L..PWD
20:03:43.104025 IP 192.168.1.4.21 > 192.168.1.1.34453: Flags [P.], seq 191:211, ack 52, win 365, length 20
E..<.i@.@.................(.k..RP..mt...257 "/home/onovps"

查看Vsftpd是否支持SSL:

#http://www.haiyun.me
ldd `which vsftpd`|grep ssl
libssl.so.0.9.8 => /usr/lib/libssl.so.0.9.8 (0x00007f18f8c0a000)

生成SSL证书:

openssl req -new -x509 -nodes -out vsftpd.pem -keyout vsftpd.pem
chmod 400 vsftpd.pem
cp vsftpd.pem /etc/ssl/certs/

Vsftpd配置SSL支持:

ssl_enable=YES
allow_anon_ssl=YES
force_local_data_ssl=YES
force_local_logins_ssl=YES
force_anon_logins_ssl=YES
force_anon_data_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
rsa_cert_file=/etc/ssl/certs/vsftpd.pem

重启vsftp使用支持ssl的ftp客户端连接,本例使用FlashFXP连接:
flashFXP新建连接使用SSL加密FTP.png
flashfxp登录信息ssl.png

Windows/Linux下用Curl上传下载FTP文件

发布时间:April 27, 2012 // 分类:常用软件 // No Comments

Curl是一款强大的命令行多协议访问工具,多操作系统支持,本文就简单介绍下Curl的FTP上传、下载功能。
列出FTP目录:

curl -u user:passwd ftp://www.haiyun.me

下载文件:

curl -u user:passwd ftp://www.haiyun.me/file.rar -o file.rar

上传文件:

curl -u user:passwd -T file.rar ftp://www.haiyun.me

Linux/Centos定时备份数据库并上传到FTP

发布时间:April 27, 2012 // 分类:备份存储 // No Comments

新建脚本,备份数据库并上传到FTP。

#/bin/bash
#Cretated by www.haiyun.me
sqluser=root #sql用户
sqlpasswd=onovps #sql密码
dbname=onovps #数据库名称
ftphost=www.haiyun.me #ftp地址
ftpuser=onovps #ftp用户
ftppasswd=onovps #ftp密码
yum -y install lftp
/usr/local/mysql/bin/mysqldump --user=$sqluser --password=$sqlpasswd --lock-all-tables $dbname > $dbname.sql
tar zcvf blog-$(date -d "today" +"%Y-%m-%d").tar.gz $dbname.sql --remove-files
lftp << EOF
open ftphost
user ftpuser ftppasswd
cd /mnt/back
put -Ec $dbname-$(date -d "today" +"%Y-%m-%d").tar.gz
bye
EOF

添加计划任务:

crontab -e
30 1 * * * sh /back.sh #每天凌晨1点30执行

Linux/Centos下ftp客户端lftp使用

发布时间:April 26, 2012 // 分类:常用软件 // No Comments

安装:

yum install lftp -y

使用语法:

lftp -[fceup] user:passwd@host #passwd可选,此方式密码明文保存,history可查看
-f <file>           #执行文件中的命令后退出
-c <cmd>        #执行命令后退出
-e <cmd>         #登录后后执行命令
-u <user>[,<pass>]  #使用指定的用户名/口令进行验证
-p <port>           #连接指定的端口,默认21

常用命令:

cd #切换FTP目录
lcd #切换本地目录
ls  #列出FTP目录文件
!ls #列出本地目录文件
find ./ -name file #查找文件
mv #移动
rm #删除
mkdir #新建目录
rmdir #删除目录

上传下载文件:

get [cEaO] file -o newfilename #下载文件
put [cEaO] file -o newfilename #上传文件
pget -n #多线程下载
可选参数:
-c #支持断点续传
-E #下载后删除远端文件
-a #指定传输为ascii模式, 默认为二进制模式
-O #指定存放目录

上传下载目录:

mirror [cRnr] remote [local]
可选参数:
-c #支持断点续传
-R #上传整个目录
-n #只下载较新的档案,可用于增量备份
-r  #只下载当前目录,不递归目录

书签管理:

bookmark add name #保存当前连接为书签名字name,下次打开可直接使用lftp name
bookmark del name #删除书签
bookmark list #显示书签列表
bookmark edit #编辑书签

编码设置:

set ftp:charset "gbk"
set file:charset "UTF-8"
或加入配置文件.lftp/rc

主动/被动模式:

#默认为被动模式
set ftp:passive-mode no #关闭被动模式转为主动模式
#主动客户端开启数据传输端口,被动服务端开启数据传输端口。

妙用lftp多线程下载:

lftp -c "pget -n 10 http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.18.tar.gz"

Linux/Centos下安装配置vsftpd

发布时间:April 12, 2012 // 分类:备份存储 // No Comments

首先安装Vsftpd,本文以Yum方式安装,当然也可以源码方式编译安装Vsftpd,感觉没那个必要。

yum -y install vsftpd

备份默认配置文件

cd /etc/vsftpd
cp vsftpd.conf vsftpd.conf.back
vim vsftpd.conf

添加如下配置:

anonymous_enable=NO #禁止匿名登入
local_enable=YES #允许本地账户登入
write_enable=YES #开启写入权限
local_umask=022 #掩码
dirmessage_enable=YES #欢迎信息
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_local_user=YES #用户chroot至家目录
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list #不chroot用户写入此文件
listen=YES #以standalone方式启动
pam_service_name=vsftpd
userlist_enable=YES #开启用户列表
userlist_deny=NO #列表内用户可登录FTP
userlist_file=/etc/vsftpd/user_list #将要登入的账号写入此文件,删除默认的账号
tcp_wrappers=YES
pasv_enable=YES #开启被动模式
pasv_min_port=65400 #被动模式监听最小端口
pasv_max_port=65410 #被动模式监听最大端口

如有开启iptalbes防火墙,放行Vsftpd端口:

iptables -A INPUT -p tcp   --dport 21 -j ACCEPT
iptables -A INPUT -p tcp   --dport 65400:65410 -j ACCEPT

启动Vsftpd,配置为开机自启动。

/etc/init.d/vsftpd start
chkconfig vsftpd on

添加用户:

adduser test -s /sbin/nologin -d /home/test
passwd test
分类
最新文章
最近回复
  • 海运: 正常情况下编译整个内核执行make menuconfig后就不会出现此提示,当单独编译单个模块...
  • oijq: 就是用的armbian的配置文件哈,按你的教程做的,在执行make LOCALVERSION=...
  • 海运: 使用armbian的配置文件,其它添加或修改自己懂的部分,不懂的就不要碰了。
  • oijq: 编译时这些选项全部选Y吗?Actions Semi Platforms (ARCH_ACTIO...
  • 海运: n1编译bbr内核模块参考这个:https://www.haiyun.me/archives/...
  • jiqz: make M=net/ipv4/ CONFIG_TCP_CONG_BBR=m modules编...
  • ruralhunter: 哦,文档里应该是对的,是.config
  • ruralhunter: cp /mnt/boot/config-4.18.7-aml-s9xxx .config这里应...
  • 海运: 你是编译不成功呢?还是编译后不能运行呢?还是运行后不能访问web界面呢?
  • 白墨: 可能不清楚就是编译安装后启动后访问不了web界面