Linux搭建ftp服务器

来源:互联网 发布:顺丰面单打印软件 编辑:程序博客网 时间:2024/05/21 15:44

1.关闭防火墙和selinux

2.安装vsftpd

查看是否已经安装vsftpd

rpm -qa | grepvsftpd

如果没有,就安装,并设置开机启动

yum -y installvsftpd

chkconfig vsftpdon

安装时发现错误:

是因为缺少DNS,解决如下:到/etc目录下配置resolv.conf加入nameserver IP

[root@localhost~]# vi /etc/resolv.conf

 

#下面地址是福建电信DNS

nameserver218.85.157.99

添加防火墙规则

首先添加INPUT,INPUT链的默认规则是DROP,所以我们就写需要ACCETP(通过)的链

为了能采用远程SSH登陆,我们要开启22端口.

[root@tp ~]#iptables -A INPUT -p tcp --dport 22 -j ACCEPT

[root@tp ~]#iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT (:这个规则,如果你把OUTPUT设置成DROP的就要写上这一部,好多人都是望了写这一部规则导致,始终无法SSH.在远程一下,是不是好了.

其他的端口也一样,如果开启了web服务器,OUTPUT设置成DROP的话,同样也要添加一条链:

[root@tp ~]#iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT ,其他同理.)

如果做了WEB服务器,开启80端口.

[root@tp ~]#iptables -A INPUT -p tcp --dport 80 -j ACCEPT
如果做了邮件服务器,开启25,110端口.

[root@tp ~]#iptables -A INPUT -p tcp --dport 110 -j ACCEPT
[root@tp ~]# iptables -A INPUT -p tcp --dport 25 -j ACCEPT
如果做了FTP服务器,开启21端口

[root@tp ~]#iptables -A INPUT -p tcp --dport 21 -j ACCEPT

[root@tp ~]#iptables -A INPUT -p tcp --dport 20 -j ACCEPT

如果做了DNS服务器,开启53端口

[root@tp ~]#iptables -A INPUT -p tcp --dport 53 -j ACCEPT

如果你还做了其他的服务器,需要开启哪个端口,照写就行了.

上面主要写的都是INPUT,凡是不在上面的规则里的,DROP

允许icmp包通过,也就是允许ping,

[root@tp ~]#iptables -A OUTPUT -p icmp -j ACCEPT (OUTPUT设置成DROP的话)

[root@tp ~]#iptables -A INPUT -p icmp -j ACCEPT  (INPUT设置成DROP的话)

允许loopback!(不然会导致DNS无法正常关闭等问题)

IPTABLES -A INPUT-i lo -p all -j ACCEPT (如果是INPUT DROP)
IPTABLES -A OUTPUT -o lo -p all -j ACCEPT(
如果是OUTPUTDROP)

 

然后保存,我再说一边,反是采用命令的方式,只在当时生效,如果想要重起后也起作用,那就要保存.写入到/etc/sysconfig/iptables文件里.

 

[root@tp~]# /etc/rc.d/init.d/iptables save

 

3.配置vsftpd服务器

1.默认的配置文件是/etc/vsftpd/vsftpd.conf

vim/etc/vsftpd/vsftpd.conf

在配置文件中第11行的“anonymous_enable=YES”改为“anonymous_enable=NO”,即将匿名登录禁用。

读取生效配置。

[root@VM_250_202_tlinux~]# cat /etc/vsftpd/vsftpd.conf |grep ^[^#] 
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YESchk

 

添加ftp用户

增加用户yh1,指向目录/home/ceshi1,禁止登录SSH权限。

useradd -d /home/ceshi1-g ftp -s /sbin/nologin yh1

设置用户口令

passwd yh1

修改vsftpdpam配置,使用户可以通过自己设置的FTP用户帐号和密码连接到云服务器。
1)修改pam

[root@VM_250_202_tlinux~]# vim /etc/pam.d/vsftpd

内容修改为:(根据我本地主机配置修改)

auth       requiredpam_listfile.so item=user sense=deny file=/etc/fto  onerr=succeed
auth       required     pam_unix.so  shadownullok
auth       required pam_shells.so
account    required pam_unix.so
session    required      pam_unix.so


2)确认修改后的文件是否正确。

[root@VM_250_202_tlinux~]# cat /etc/pam.d/vsftpd
#%PAM-1.0 
auth required /lib64/security/pam_listfile.so item=user sense=denyfile=/etc/ftpusers onerr=succeed 
auth required /lib64/security/pam_unix.so shadow nullok 
auth required /lib64/security/pam_shells.so 
account required /lib64/security/pam_unix.so 
session required /lib64/security/pam_unix.so 

3)重启vsftpd服务,使修改生效。

[root@VM_250_202_tlinux~]# service vsftpd restart
Shutting down vsftpd: [ OK ]
Starting vsftpd for vsftpd: [ OK ]

 

 

vi vsftpd.conf的配置参数
anonymous_enable=YES //
启用匿名用户
local_enable=YES //
允许本地用户访问vsftpd服务器
write_enable=YES //
允许上传
download_enable=YES //
允许下载
anon_upload_enable=YES //
允许匿名用户上传
anon_mkdir_write_enable=YES //
允许匿名用户创建目录和上传
anon_other_write_enable=NO //
不允许匿名用户删除和改名
local_max_rate=20000 //
本地用户的最大传输速率,单位是字节/
anon_max_rate=5000 //
匿名用户的最大传输速率,单位是字节/
local_umask=022 //
去掉写的权限
file_open_mode=0666 //
上传文件的权限
xferlog_enable=YES //
维护日志文件,详细记录上传和下载操作
xferlog_std_format=YES //
传输日志文件将以标准的xferlog格式书写,日志文件默

认为/var/log/xferlog
hide_ids=YES //
隐藏文件夹和目录属主
port_enable=YES //
允许使用主动传输模式
pasv_min_port=(1024 pasv_max_port=(1024 connect_from_port_20=YES //
定义FTP传输数据的端口,默认是20
ascii_download_enable=NO //
设置不可使用ASCII模式下载
listen=YES //
FTP工作在独立模式下

pam_service_name=vsftpd//用户配置文件认证
userlist_enable=YES 
tcp_wrappers=YES //
将使用wrappers作为主机访问控制方式
idle_session_timeout=600 //
表明空闲时间为600
data_connection_timeout=120 //
表明数据连接超时时间为120
chroot_local_user=YES //
用户登录后不能访问自己目录以外的文件或目录
listen_port=4444 //
修改FTP服务器的端口号

 

 

更改用户相应的权限设置:

usermod -s/sbin/nologin hz//限定用户test不能telnet,只能ftp
usermod -s /sbin/bash hz //
用户hz恢复正常
usermod -d /wq hz//
更改用户hz的主目录为/hz

FTP帐号和目录

useradd  -d /home/wq/    -s /sbin/nologin hz
passwd   hz
chmod -R 755 /home/wq/ 
chown -R  hz  //home/wq/ 

限制用户只能访问/home/hz,不能访问其他路径

cd /etc/vsftpd/
vi  vsftpd.conf
chroot_local_user=YES //
用户登录后不能访问自己目录以外的文件或目录

 

更改SSH默认端口

vi/etc/ssh/sshd_config

#Port 22删除这个
Port 20000
添加新的端口

重启vsftpd服务

service vsftpdrestart

设置开机启动

chkconfig --level 35 vsftpd on
原创粉丝点击