详解在CentOS中安装配置FTP服务器软件VSFTP的流程
安装 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 可用空间
只要挂到互联网上就可以实现邮件互发 。
0条评论