shell脚本编写一个用真实用户去访问的vsftpd服务器

脚本编写的思路:

1. 安装vsftpd软件;

2. 创建一个访问vsftpd的用户和密码(这个用户不作为系统用户),创建一个该用户能访问vsftpd的目录(该目录的用户名和组为访问的用户名);

3. 配置服务的主配置文件vsftpd.conf(什么端口, 主动模式还是被动模式等),这里是直接将配置好的vsftpd.conf文件拷贝到相应的配置文件里;

4. 将访问的用户添加进用户访问控制列表;

5. 防火墙上开放相应的端口;

6. selinux默认关闭;

1. vsftpd.conf的配置信息如下:(端口21;被动模式;只允许用户列表里的用户访问)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

# Example config file /etc/vsftpd/vsftpd.conf

#

# The default compiled in settings are fairly paranoid. This sample file

# loosens things up a bit, to make the ftp daemon more usable.

# Please see vsftpd.conf.5 for all compiled in defaults.

#

# READ THIS: This example file is NOT an exhaustive list of vsftpd options.

# Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's

# capabilities.

#

# Allow anonymous FTP? (Beware - allowed by default if you comment this out).

anonymous_enable=NO

#

# Uncomment this to allow local users to log in.

# When SELinux is enforcing check for SE bool ftp_home_dir

local_enable=YES

#

# Uncomment this to enable any form of FTP write command.

write_enable=YES

#

# Default umask for local users is 077. You may wish to change this to 022,

# if your users expect that (022 is used by most other ftpd's)

local_umask=022

#

# Uncomment this to allow the anonymous FTP user to upload files. This only

# has an effect if the above global write enable is activated. Also, you will

# obviously need to create a directory writable by the FTP user.

# When SELinux is enforcing check for SE bool allow_ftpd_anon_write, allow_ftpd_full_access

#anon_upload_enable=YES

#

# Uncomment this if you want the anonymous FTP user to be able to create

# new directories.

#anon_mkdir_write_enable=YES

#

# Activate directory messages - messages given to remote users when they

# go into a certain directory.

dirmessage_enable=YES

#

# Activate logging of uploads/downloads.

xferlog_enable=YES

#

# Make sure PORT transfer connections originate from port 20 (ftp-data).

connect_from_port_20=YES

#

# If you want, you can arrange for uploaded anonymous files to be owned by

# a different user. Note! Using "root" for uploaded files is not

# recommended!

#chown_uploads=YES

#chown_username=whoever

#

# You may override where the log file goes if you like. The default is shown

# below.

#xferlog_file=/var/log/xferlog

#

# If you want, you can have your log file in standard ftpd xferlog format.

# Note that the default log file location is /var/log/xferlog in this case.

xferlog_std_format=YES

#

# You may change the default value for timing out an idle session.

#idle_session_timeout=600

#

# You may change the default value for timing out a data connection.

#data_connection_timeout=120

#

# It is recommended that you define on your system a unique user which the

# ftp server can use as a totally isolated and unprivileged user.

#nopriv_user=ftpsecure

#

# Enable this and the server will recognise asynchronous ABOR requests. Not

# recommended for security (the code is non-trivial). Not enabling it,

# however, may confuse older FTP clients.

#async_abor_enable=YES

#

# By default the server will pretend to allow ASCII mode but in fact ignore

# the request. Turn on the below options to have the server actually do ASCII

# mangling on files when in ASCII mode.

# Beware that on some FTP servers, ASCII support allows a denial of service

# attack (DoS) via the command "SIZE /big/file" in ASCII mode. vsftpd

# predicted this attack and has always been safe, reporting the size of the

# raw file.

# ASCII mangling is a horrible feature of the protocol.

#ascii_upload_enable=YES

#ascii_download_enable=YES

#

# You may fully customise the login banner string:

#ftpd_banner=Welcome to blah FTP service.

#

# You may specify a file of disallowed anonymous e-mail addresses. Apparently

# useful for combatting certain DoS attacks.

#deny_email_enable=YES

# (default follows)

#banned_email_file=/etc/vsftpd/banned_emails

#

# You may specify an explicit list of local users to chroot() to their home

# directory. If chroot_local_user is YES, then this list becomes a list of

# users to NOT chroot().

# (Warning! chroot'ing can be very dangerous. If using chroot, make sure that

# the user does not have write access to the top level directory within the

# chroot)

chroot_local_user=YES

allow_writeable_chroot=YES

#chroot_list_enable=YES

# (default follows)

#chroot_list_file=/etc/vsftpd/chroot_list

#

# You may activate the "-R" option to the builtin ls. This is disabled by

# default to avoid remote users being able to cause excessive I/O on large

# sites. However, some broken FTP clients such as "ncftp" and "mirror" assume

# the presence of the "-R" option, so there is a strong case for enabling it.

#ls_recurse_enable=YES

#

# When "listen" directive is enabled, vsftpd runs in standalone mode and

# listens on IPv4 sockets. This directive cannot be used in conjunction

# with the listen_ipv6 directive.

listen=NO

#

# This directive enables listening on IPv6 sockets. By default, listening

# on the IPv6 "any" address (::) will accept connections from both IPv6

# and IPv4 clients. It is not necessary to listen on *both* IPv4 and IPv6

# sockets. If you want that (perhaps because you want to listen on specific

# addresses) then you must run two copies of vsftpd with two configuration

# files.

# Make sure, that one of the listen options is commented !!

listen_ipv6=YES

 

pam_service_name=vsftpd

userlist_enable=YES

tcp_wrappers=YES

 

listen_port=21

 

pasv_enable=YES

pasv_min_port=30000

pasv_max_port=31000

 

userlist_enable=YES

userlist_deny=NO

userlist_file=/etc/vsftpd/vsftpd.user_list

 

2. selinux_config配置文件内容:

1

2

3

4

5

6

7

8

9

10

11

# This file controls the state of SELinux on the system.

# SELINUX= can take one of these three values:

#     enforcing - SELinux security policy is enforced.

#     permissive - SELinux prints warnings instead of enforcing.

#     disabled - No SELinux policy is loaded.

SELINUX=permissive

# SELINUXTYPE= can take one of three two values:

#     targeted - Targeted processes are protected,

#     minimum - Modification of targeted policy. Only selected processes are protected.

#     mls - Multi Level Security protection.

SELINUXTYPE=targeted

 

3. 执行脚本的代码:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

#!/bin/bash

 

current_dir=`pwd`    

ftp_user='test'      

ftp_pwd='test123'

ftp_root_dir='/home/ftp'

 

echo "step1:install vsftpd..."

rpm -e vsftpd*

rpm -ivh ${current_dir}/vsftpd-3.0.2-22.el7.x86_64.rpm

 

echo "step2:add ftp user..."

mkdir -p ${ftp_root_dir}

useradd -s /sbin/nologin ${ftp_user} -M      //创建的用户不作为系统用户

usermod -d ${ftp_root_dir} ${ftp_user}

echo ${ftp_pwd} | passwd ${ftp_user} --stdin &>/dev/null

chown -R ${ftp_user}:${ftp_user} ${ftp_root_dir}

 

echo "step3:config vsftpd..."

cp ${current_dir}/vsftpd.conf /etc/vsftpd/

echo ${ftp_user}>/etc/vsftpd/vsftpd.user_list

chkconfig vsftpd on

 

echo "step4:config firewall..."

service firewalld restart          //防火墙配置

firewall-cmd --permanent --add-port=21/tcp

firewall-cmd --permanent --add-port=30000-31000/tcp

firewall-cmd --reload

setenforce 0

cp ${current_dir}/selinux_config /etc/selinux/config

 

 

echo "step5:start vsftpd..."

service vsftpd restart

 

echo "finished!!!!!!!!"

4. 我的脚本文件里面有安装的脚本、selinux配置文件、vsftpd配置文件和vsftpd软件的rpm包:

该脚本放在如何目录下都不影响实际的安装。

 5. 安装完成后可以通过网址域名访问测试是否安装成功:ftp://IP:21 创建的用户名登入;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要配置vsftpd服务器只有本地用户user1和user2可以访问FTP服务器并验证,你可以按照以下步骤进行: 1. 首先,打开终端并以root用户身份登录服务器。 2. 安装vsftpd软件包。在Debian/Ubuntu系统上,可以使用以下命令进行安装: ``` apt-get update apt-get install vsftpd ``` 在CentOS/RHEL系统上,可以使用以下命令进行安装: ``` yum install vsftpd ``` 3. 配置vsftpd服务器。打开vsftpd配置文件`/etc/vsftpd.conf`,并进行以下更改: ``` anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 chroot_local_user=YES allow_writeable_chroot=YES userlist_enable=YES userlist_file=/etc/vsftpd.userlist userlist_deny=NO ``` 在上面的配置中,我们禁用了匿名访问,启用了本地用户访问,并允许用户写入文件。此外,我们还启用了用户列表功能,并指定了一个包含允许访问FTP服务器用户的文件。 4. 创建用户列表文件。在vsftpd配置文件中,我们指定了一个包含允许访问FTP服务器用户的文件。因此,我们需要创建该文件并添加用户。打开`/etc/vsftpd.userlist`文件并添加以下内容: ``` user1 user2 ``` 上面的内容表示只有user1和user2这两个用户可以访问FTP服务器。 5. 重启vsftpd服务以使配置生效。在Debian/Ubuntu系统上,可以使用以下命令重启服务: ``` service vsftpd restart ``` 在CentOS/RHEL系统上,可以使用以下命令重启服务: ``` systemctl restart vsftpd ``` 完成上述步骤后,只有用户列表文件中列出的本地用户user1和user2才能访问FTP服务器进行验证。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值