广州活力数据恢复中心

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4039|回复: 0

ubuntu linux动态IP搭建ftp server相关设定vsftpd

[复制链接]

865

主题

1793

帖子

9612

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
9612
QQ
发表于 2018-12-31 13:16:40 | 显示全部楼层 |阅读模式
ubuntu linux动态IP搭建ftp server相关设定vsftpd

获取动态IP地址添加到/etc/vsftpd.conf安装dnsutils,我不确定需要这个,看到有教程里提到需要安装
  1. apt-get install dnsutils
复制代码
在/root/下面新建一个txt文件,/root/last_ip.txt
接着新建一个脚本vsftpd-pasv_address.sh
  1. vim /root/vsftpd-pasv_address.sh
复制代码
教程原脚本如下
  1. #!/bin/bash

  2. last_ip=$(</root/last_ip.txt)
  3. this_ip=`dig +short myip.opendns.com @resolver1.opendns.com`

  4. # if IP has changed, and IP isn't an empty string
  5. if [[ "$last_ip" != "$this_ip" && ! -z "$this_ip" ]]; then
  6.     echo "Last IP: $last_ip"
  7.     echo "New IP: $this_ip"
  8.     echo "$this_ip" > /root/last_ip.txt
  9.     sed -ri "s/^(pasv_address=*).*$/\1${this_ip}/" /etc/vsftpd.conf
  10.     /etc/init.d/vsftpd restart
  11. fi
复制代码
但是在我测试过程中并不顺利,不能取得ip,不能解释域名。 于是我改成适合自己的。具体内部如下
  1. #!/bin/bash

  2. last_ip=$(</root/last_ip.txt)
  3. this_ip=`curl ifconfig.co`

  4. # if IP has changed, and IP isn't an empty string
  5. echo "$this_ip" > /root/last_ip.txt
  6. sed -ri "s/^(pasv_address=*).*$/\1${this_ip}/" /etc/vsftpd.conf
  7. /etc/init.d/vsftpd restart
复制代码
因为我linux方面完全0基础,脚本有些地方不能理解不能很好的找出问题并修复,这个脚本只能每次都直接更新vsftpd.conf里面的IP,而原来脚本是可以做对比有更新才写入vsftpd.conf里面
写好脚本ESC然后:wq保存退出.执行命令
  1. chmod +x /root/vsftpd-pasv_address.sh
复制代码
令脚本可执行

在vsftpd-pasv_address.sh当前目录下运行命令
  1. sh vsftpd-pasv_address.sh
复制代码
来测试脚本,运行脚本后直接要怎么知道脚本有没有生效?
我们可以用命令
  1. cat /etc/vsftpd.conf
复制代码
然后查看pasv_address=有没有改成你当时的公网ip.
如果有那就说明已经生效了。
为什么我们要用ip来配置vsftpd? ftp服务器pasv_address好像不能用域名或者ddns来取代。 我有测试过但没有成功。
最后用来cronjob控制每10分钟检测一次ip,这个可以按自己需要调整时间
  1. */10 * * * * /root/vsftpd-pasv_address.sh
复制代码
在上面的脚本curl ifconfig.co调试里面遇到的问题
curl无法解析网址,原因有两个, 一个是启用了ipv6,另一个是DNS问题。 那么我们都处理一下尽快解决解析问题
DNS解决方法:
  1. vim /etc/resolv.conf
复制代码
在加上google DNS,8.8.8.8和8.8.4.4
按ESC然后:wq保存退出

IPV6禁用:
执行命令
  1. vim  /etc/sysctl.conf
复制代码
按insert输入,在最后面加上
  1. net.ipv6.conf.all.disable_ipv6 = 1
  2. net.ipv6.conf.default.disable_ipv6 = 1
  3. net.ipv6.conf.lo.disable_ipv6 = 1
复制代码
然后执行
  1. sysctl -p
复制代码
输出
  1. root@ubuntu:~# sysctl -p
  2. net.ipv6.conf.all.disable_ipv6 = 1
  3. net.ipv6.conf.default.disable_ipv6 = 1
  4. net.ipv6.conf.lo.disable_ipv6 = 1
复制代码
测试一下禁用了没有执行命令
  1. cat /proc/sys/net/ipv6/conf/all/disable_ipv6
复制代码
返回结果是1就证明已经禁用了。





在/etc/vsftpd.cof下做修改的地方。 按需添加
  1. chroot_local_user=YES
  2. #允许ftp用户只能查看自己home目录下的东西,其它文件夹不能查看






  3. <style type="text/css">
  4. p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px 'Helvetica Neue'}
  5. </style>


  6. <p class="p1">#禁止用戶下載文件</p>
  7. <p class="p1">download_enable=NO</p>
复制代码






硬盘数据恢复/优盘内存卡数据恢复/服务器数据恢复
data recovery service www.rflashdata.com 数据热线+86 18620923827(微信whatsapp)
buffalo 隨身碟數據救援 bitlocker WDV2 lacie EFS等加密硬盘数据恢复,指纹爱国者加密优盘数据恢复 +86 18620923827
回复

使用道具 举报

59

主题

84

帖子

560

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
560
QQ
发表于 2019-2-21 21:19:45 | 显示全部楼层
ubuntu vsftpd 添加用户

新建用户的文件夹名data 路径:/home/data
  1. mkdir /home/data
复制代码
设置用户主目录(登陆ftp后的目录)
  1. adduser --home=/home/data t123
复制代码
如果ubuntu的vsftpd用户想改home目录可以用
  1. usermod --home /你想要的路径/ username
复制代码


输入密码后,连续回车把信息设置为默认。
  1. root@ubuntu:~# adduser --home=/home/data t123
  2. Warning: The home dir /home/data you specified already exists.
  3. Adding user `t123' ...
  4. Adding new group `t123' (1002) ...
  5. Adding new user `t123' (1002) with group `t123' ...
  6. The home directory `/home/data' already exists.  Not copying from `/etc/skel'.
  7. adduser: Warning: The home directory `/home/data' does not belong to the user you are currently creating.
  8. Enter new UNIX password:
  9. Retype new UNIX password:
  10. passwd: password updated successfully
  11. Changing the user information for t123
  12. Enter the new value, or press ENTER for the default
  13.         Full Name []:
  14.         Room Number []:
  15.         Work Phone []:
  16.         Home Phone []:
  17.         Other []:
  18. Is the information correct? [Y/n] Y
复制代码


新建ftp文件夹
  1. mkdir /home/ftp
复制代码
设777
  1. chmod 777 /home/ftp
复制代码

  1. chown nobody:nogroup /home/ftp
复制代码
编辑vsftpd配置文件,在文件里可以找到ftp用户列表
  1. nano /etc/vsftpd.conf
复制代码
然后在用户列表里添加新用户保存退出
  1. nano /etc/vsftpd.allowed_users
复制代码



重启vsftpd
  1. systemctl restart vsftpd
复制代码




*
改用户名usermod -l 新名 旧名
  1. usermod -l newUsername oldUsername
复制代码



改用户密码命令
passwd username


ubuntu添加用户到其它group
  1. usermod -a -G groupName userName
复制代码


ubuntu vsftpd server 只能上传下载不能删除方法:在/etc/vsftpd.conf里面加上

  1. # Disable delete commands
  2. cmds_denied=DELE,RMD
复制代码

禁止下载
  1. #Set download_enable to NO:
  2. download_enable=NO
复制代码






**********************************************************
尝试连接“EAI_NONAME - 未提供,或不知道节点名或服务名”失败。filezilla error EAI_NONAME 解决方法
查vsftpd log 看看是什么情况显示(cat /var/log/vsftpd.log):
CONNECT: Client "183.5.93.74"
[XXXX] FAIL LOGIN: Client "1.x.x.x"
DEBUG: Client "1.x.x.x", "Control connection terminated without SSL shutdown."
***我的情况是这样,用其它用户可以正常连接没问题,用个新建的用户就不行。
那么来分析到底是什么原因导致新用户不能连接,假设正常连接用户为A,新用户为B
指令:id A查看A的组
id B查看B的组对比发现不是在同一个组。
  1. <font face="Arial" size="3">usermod -g group B</font>
复制代码
把用户B添加到A的组里然后filezilla就可以连上了。 (指令里面group填A的组,B就是B的用户名)









回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|硬盘FLASH数据恢复论坛

GMT+8, 2024-11-25 06:11 , Processed in 0.039417 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表