详解在CentOS中安装配置FTP服务器软件VSFTP的流程

详解在CentOS中安装配置FTP服务器软件VSFTP的流程,第1张

安装 VSFTP

代码如下:

yum -y install vsftpd

创建FTP日志文件路径

代码如下:

touch /var/log/vsftpdlog

启动配置

代码如下:

chkconfig --list vsftpd

如果是全off 则手动设置 0:off 1:off 2:off 3:off 4:off 5:off 6:off

代码如下:

chkconfig --level 2345 vsftpd on

启动ftp服务:

代码如下:

service vsftpd start

查看ftp服务状态:

代码如下:

service vsftpd status

重启ftp服务:

代码如下:

service vsftpd restart

关闭ftp服务:

代码如下:

service vsftpd stop

编辑配置文件

代码如下:

vi /etc/vsftpd/vsftpdconf

代码如下:

anonymous_enable=NO #设定不允许匿名访问

local_enable=YES #设定本地用户可以访问。注:如使用虚拟宿主用户,在该项目设定为NO的情况下所有虚拟用户将无法访问。

chroot_list_enable=YES #使用户不能离开主目录

xferlog_file=/var/log/vsftpdlog #设定vsftpd的服务日志保存路径。注意,该文件默认不存在。必须要手动touch出来

ascii_upload_enable=YES #允许使用ASCII模式上传

ascii_download_enable=YES #设定支持ASCII模式的上传和下载功能。

pam_service_name=vsftpd #PAM认证文件名。PAM将根据/etc/pamd/vsftpd进行认证

以下这些是关于Vsftpd虚拟用户支持的重要CentOS FTP服务配置项目。

默认vsftpdconf中不包含这些设定项目,需要自己手动添加RHEL/CentOS FTP服务配置。

代码如下:

guest_enable=YES #设定启用虚拟用户功能。

guest_username=ftp #指定虚拟用户的宿主用户。-RHEL/CentOS中已经有内置的ftp用户了

user_config_dir=/etc/vsftpd/vuser_conf #设定虚拟用户个人vsftp的RHEL/CentOS FTP服务文件存放路径。存放虚拟用户个性的CentOS FTP服务文件(配置文件名=虚拟用户名)

创建 chroot list,将ftp用户加入其中:

代码如下:

touch /etc/vsftpd/chroot_list

echo ftp /etc/vsftpd/chroot_list

安装Berkeley DB工具

代码如下:

yum install db4 db4-utils

创建用户密码文本,注意奇行是用户名,偶行是密码

代码如下:

vi /etc/vsftpd/vuser_passwdtxt

ftpuser1

ftppass1

ftpuser2

ftppass2

生成虚拟用户认证的db文件

代码如下:

db_load -T -t hash -f /etc/vsftpd/vuser_passwdtxt /etc/vsftpd/vuser_passwddb

编辑认证文件,注释掉所有配置

代码如下:

vi /etc/pamd/vsftpd

增加下面两句

代码如下:

auth required pam_userdbso db=/etc/vsftpd/vuser_passwd

account required pam_userdbso db=/etc/vsftpd/vuser_passwd

创建虚拟用户个性RHEL/CentOS FTP服务文件

代码如下:

mkdir /etc/vsftpd/vuser_conf/

vi /etc/vsftpd/vuser_conf/ftpuser1

内容如下:

代码如下:

local_root=/opt/var/ftp1 # 虚拟用户的根目录(根据实际修改)

write_enable=YES # 可写

anon_umask=022 # 掩码

anon_world_readable_only=NO

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

开启防火墙端口

代码如下:

vi /etc/sysconfig/iptables

添加一行,端口号使用的默认21端口

代码如下:

-A INPUT -p tcp -m state --state NEW -m tcp --dport 21    -j ACCEPT

为目录附权限并重启动vsftp服务:

代码如下:

mkdir /opt/var/ftp/ftpuser1

chmod  777 /opt/var/ftp/ftpuser1

service vsftpd restart

我们 来讨论一下如何为你的CentOS 服务器来设置简单的防火墙。 这里我们以DigitalOcean的CentOS 6 VPS为基础来讨论的,同样也适用于 阿里云上其他类型的LINUX系统。 (阿里云有个云盾系统,因此在你自己的VPS上不设置防火墙也是可以的)

需要说明的是: 本文只涉及最基础最常用的防火墙设置,能屏蔽一些常用的攻击,但并不能彻底保证你的服务器的安全。

系统的随时更新 以及 关闭不必要的服务 仍然是保证系统安全非常重要的步骤。

如果你需要更全面的了解iptables,阅读本文后,请google或是阅读更加深入的资料!

首先简单介绍一下什么是IPTables:

iptables是Linux内核中内置的防火墙,可以允许管理员通过设置table, chain以及相关的规则来进行数据包过滤和NAT。 一般来讲,iptables防火墙已经内置于CentOS 6及其他Linux版本中,而且iptables服务默认都是启动的。  iptables应用于IPv4, 如果要用IPv6,需要使用ip6tables

iptables的命令格式:

复制代码

  

代码如下:

iptables[-ttable]command[chain][rules][-jtarget]

[-ttable]:用来指明使用的表,有三种选项:filter,nat和mangle,如果未指定,则使用filter作为缺省表。事实上,对于单个服务器的防火墙配置,一般来讲,我们只需要对filter表进行配件就OK了。filter表包括INPUT,OUTPUT,和FORWARD三个chain

command表明iptables命名要做什么,比如

-A(–append):该命令会把一条规则附件到chain的末尾。

-D(–delete)用来删除某个规则。

-F(–flush)如果指定了chain,删除该chain中的所有规则,如果未指定chain,则删除所有chain中的所有规则。

target:是由规则指定的操作。包括下面几种:

ACCEPT:接收信息包(允许它前往目的地),并且将停止遍历chain

DROP:拒绝,

此外还有REJECT,RETURN,LOG,REDIRECT,MARK,MIRROR,MAQUERADE等。

具体的iptables的语法和概念就不再多说了,请参照iptablesmanpage官方文档

简单来说,iptables防火墙是由一系列的规则(rule)组成,一个数据请求进来,会依次和这些规则进行比较,如果正好符合规则的定义,那这个数据请求要么会被接收ACCEPT,要么被拒绝DRIP。如果不符合任何规则的定义,最后缺省的规则会被应用。

开始操作之前:

注意:一定要把你在DigitalOcean/Linode/阿里云上的服务器做一下快照备份,否则一旦你iptables的配置出了问题,极有可能把你自己挡在门外,你自己都无法连接到服务器了!!出现这种情况可是会欲哭无泪呀,除了重新做系统好像没有更好的办法了。(DigitalOcean提供了一个webconsole的界面,有时候会给你反悔和擦除iptables设置的机会,但阿里云没有)

决定哪些端口需要开放

首先,SSH的端口22自然是需要开放的,否则我们就无法登录服务器了。

一般来讲,CentOS的VPS经常作为用LAMP搭建的Web服务器,FTP服务器,Mail服务器等。

对于Web服务来说,需要开放80端口,如果是HTTPS/SSL协议的话,还需用开放443端口

对于Mail服务来说,由于涉及SMTP,POP3,IMAP协议,需要开放的端口如下:

SMTP:25SecureSMTP:465POP3:110SecurePOP3:995IMAP:143IMAPoverSSL:993

对于FTP服务来说,需要开放20,21两个端口

第一步:屏蔽最常见的攻击

缺省情况下,CentOS的iptables的设置是允许任何数据通过的。

我们首先要清空iptables中的所有的规则:

复制代码

  

代码如下:

iptables-F

然后我们加上阻止简单扫描和攻击的规则

复制代码

  

代码如下:

iptables-AINPUT-ptcp--tcp-flagsALLNONE-jDROP#NONE包(所有标识bit都没有设置)主要是扫描类的数据包

  iptables-AINPUT-ptcp!--syn-mstate--stateNEW-jDROP#防止sync-flood攻击

  iptables-AINPUT-ptcp--tcp-flagsALLALL-jDROP#ALL包(所有的标注bit都被设置了)也是网络扫描的数据包

关于sync-flood,请参照wikipedia的解释。

第二步:为相应的服务开放对应的端口

首先我们应该接受本机localhost的任何请求,否则,数据库连接等将无法工作

1

  iptables-AINPUT-ilo-jACCEPT

  对于不同的服务需要开放不同的端口

复制代码

  

代码如下:

iptables-AINPUT-ptcp--dport22-jACCEPT#SSH

  iptables-AINPUT-ptcp--dport80-jACCEPT#HTTP

  iptables-AINPUT-ptcp--dport443-jACCEPT#HTTPS

  iptables-AINPUT-ptcp--dport25-jACCEPT#SMTP

  iptables-AINPUT-ptcp--dport465-jACCEPT#SecureSMTP

  iptables-AINPUT-ptcp--dport110-jACCEPT#POP3

  iptables-AINPUT-ptcp--dport995-jACCEPT#SecurePOP3

  iptables-AINPUT-ptcp--dport143-jACCEPT#IMAP

  iptables-AINPUT-ptcp--dport993-jACCEPT#SecureIMAP

第三步:加上通用的规则

首先要允许所有从服务器端发起的连接,由此返回的响应数据应该是允许的!比如VPS发起的yumupdate,必须要允许外部的update数据进来

复制代码

  

代码如下:

iptables-IINPUT-mstate--stateESTABLISHED,RELATED-jACCEPT

最后,设置缺省的策略:屏蔽任何进入的数据请求,允许所有从Server发出的请求

复制代码

  

代码如下:

iptables-POUTPUTACCEPT/ppiptables-PINPUTDROP

至此,规则设置完毕

第四步:保存设置

首先通过下面的命令查看一下我们的设置是否正确!

复制代码

  

代码如下:

iptable-L-n

确认没有问题后,执行下面的命令

复制代码

  

代码如下:

serviceiptablessave

执行上述命令后,相应的规则会写入/etc/sysconfig/iptables这个文件,你可以检查一下看看。

最后执行

复制代码

  

代码如下:

serviceiptablesrestart

重新启动iptables防火墙,以使上述设置生效。

最佳的方法:

为了更方便的修改和维护自己的iptables的设置,我一般是把所有的iptables的设置先写到一个单独文件中,测试没有问题后。然后再保存到iptable的配置文件中。

下面是我自己的iptables文件~/script/firewallsh

复制代码

  

代码如下:

#!/bin/bash

  #Asimpleiptablesfirewallconfiguration/ppPATH=/sbin:/bin:/usr/sbin:/usr/bin;exportPATH/pp#flush/eraseoriginalrules

  iptables-F#清除所有已制定的rule

  iptables-X#清除用户自定义的chain/table

  iptables-Z#将所有的chain的计数和流量统计归零/pp#Acceptlocalhostconnetting,nomatterwhatitis

  iptables-AINPUT-ilo-jACCEPT/pp#Acceptanyresponsepackagewhichisinitiatedfrominside

  iptables-AINPUT-mstate--stateESTABLISHED,RELATED-jACCEPT/pp#blockmostcommonnetworkattacks(reconpacketsandsyn-floodattack)

  iptables-AINPUT-ptcp--tcp-flagsALLNONE-jDROP

  iptables-AINPUT-ptcp!--syn-mstate--stateNEW-jDROP

  iptables-AINPUT-ptcp--tcp-flagsALLALL-jDROP/pp#openportsfordifferentservices

  iptables-AINPUT-ptcp--dport22-jACCEPT#SSH

  iptables-AINPUT-ptcp--dport80-jACCEPT#HTTP

  #iptables-AINPUT-ptcp--dport443-jACCEPT#HTTPS

  #iptables-AINPUT-ptcp--dport25-jACCEPT#SMTP

  #iptables-AINPUT-ptcp--dport465-jACCEPT#SecureSMTP

  #iptables-AINPUT-ptcp--dport110-jACCEPT#POP3

  #iptables-AINPUT-ptcp--dport995-jACCEPT#SecurePOP/pp#ICMPconfiguration

  #TopreventICMPDDOS,wedonotallowICMPtype8(echo-request)orlimitthisrequestwith1/second

  #someICMPrequestsareallowed

  icmp_type="0341112141618"

  forticmpin$icmp_type

  do

  iptables-AINPUT-picmp--icmp-type$ticmp-jACCEPT

  done

  #iptables-AINPUT-picmp--icmp-type8-mlimit--limit1/second-jACCEPT/pp#defaultpolicies

  iptables-POUTPUTACCEPT

  iptables-PINPUTDROP/pp#saveto/etc/sysconfig/iptables

  /etc/initd/iptablessave

你可以根据你的需要进行相应的修改。

第一步、通过yum安装ntp

# yum install ntp

第二步、配置NTP服务器

编辑vim /etc/ntpconf

server 192168110 (centos7IP地址)

server s2mtimeeducn 

server 0asiapoolntporg 

server 1asiapoolntporg 

server 2asiapoolntporg 

server 3asiapoolntporg

server 12712710 iburst  local clock 当外部时间不可用时,使用本地时间。 

restrict 19216811 mask 2552552550 nomodify  允许更新的IP地址段

第三步、启动NTP

systemctl start ntpd 

systemctl enable ntpdservice 设置开机启动服务  

第四步、验证NTP

# ntpq -p

配置客户端

1:linux

NTP 客户端主机需要 ntpupdate 软件包来和服务器同步时间。可以轻松地使用 yum 安装。

# ntpdate

具体可以参考网页链接

搭建邮箱服务器首先要选择一款邮件服务器软件,比较常用的邮件服务器软件有:Winmail、Exchange、Mdaemon、Winwebmail、Imail、Coremail、U-Mail、TurboMail、iGENUS、Icewarp、易邮、金笛、MagicMail等。

然后根据邮箱的用户量来决定服务器的配置,用户量大的服务器硬件要求就要高,硬件要求就越高,例如1000用户的企业邮箱的配置:

Dell PowerEdge R710 × 2,16G内存,CPU一块,500G SAS 硬盘 6块

软件要求:

CentOS 53以上版本 Mysql 51以上版本。

具体根据企业的不同情况进行配置,这需要多年的邮箱运营经验。

硬件需求:

500用户左右的,一个四核CPU,4G内存,硬盘看给用户分配多少空间了。如果用户数多,硬件配置也相应提升。

以exchange2007为例

处理器 Intel Pentium 800 MHz 或更快的32位处理器

支持Intel 64位扩展内存技术的基于x64 体系结构的处理器

支持AMD64平台的AMD 64位处理器

内存 最小:2GB

推荐:每服务器2GB以及每个邮箱5MB

页面文件大小等于服务器内存容量加10MB

硬盘 安装Exchange的处理器

驱动器至少有 12 GB 可用空间

安装UM语言包,需要增加500MB空间

系统驱动器上至少有 200 MB 可用空间

只要挂到互联网上就可以实现邮件互发 。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 详解在CentOS中安装配置FTP服务器软件VSFTP的流程

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情