如何在ubuntu中安装设置ftp服务器

如何在ubuntu中安装设置ftp服务器,第1张

FTP服务器是平时应用最为广泛的服务之一。VSFTP是Very Secure

FTP的缩写,意指非常安全的FTP服务。VSFTP功能强大,通过结合本地系统的用户认证模块及其多功能的配置项目,可以快速有效的搭建强大的多用户FTP服务。

首先我们考虑搭建FTP服务需要关注的都有哪些方面?比如我们最经常关注的有:

1、如何添加FTP用户?

2、如何临时冻结某FTP用户?

3、FTP用户登入后的默认目录?是否可以改变?

4、如何锁定FTP用户可访问的目录范围?

5、FTP用户可以有哪些访问权限?可否上传文件?

我们将带着这些问题来探讨如何配置VSFTP以达到预定目标。

一、主要配置选项

VSFTP的主配置文件是/etc/vsftpdconf

。由于可配置的选项实在太多,无法一一详谈,只能截取比较常用的功能配置选项来加以说明。完整说明可参考man

vsftpdconf。

这里需要注意的是,每个配置选项都是由“配置项目名称=配置值“所定义。在每个配置变量后,要紧跟等号,再紧跟设置的变量值。中间不允许出现空格之类的分隔符,否则导致配置错误,无法生效!

另外,如果需要开通上传功能,则应注意用来登录FTP的本地系统用户对要操作的目录需要具备写权限,否则无法上传文件!

版本vsftpd: version 206

启动VSFTPD:sudo /etc/initd/vsftpd start

停止VSFTPD:sudo /etc/initd/vsftpd stop

重启VSFTPD:sudo /etc/initd/vsftpd restart

以下为常用的配置选项:

1、listen=YES

设置为YES,开启监听网络。

2、anonymous_enable

若设置为YES,则允许匿名用户访问;若设置为NO则拒绝匿名用户访问。

如果开启的话,则可以通过用户名ftp或者anonymous来访问,密码随便。

3、local_enable

若设置为YES,则允许通过本地用户帐号访问;若设置为NO,则拒绝本地用户帐号访问。如果你拒绝了陌生人访问,那么这个必须设置为YES吧,否则谁能访问你的FTP呢?

4、write_enable

若设置为YES,则开启FTP全局的写权限;若设置为NO,则不开。

若为NO则所有FTP用户都无法写入,包括无法新建、修改、删除文件、目录等操作,也就是说用户都没办法上传文件!!

5、anon_upload_enable

若设置为YES,开启匿名用户的上传权限。前提是write_enable有开启,并且用户具有对当前目录的可写权限。

若设置为NO,则关闭匿名用户的上传权限。

6、anon_mkdir_write_enable

若设置为YES,开启匿名用户新建目录的权限。前提是write_enable有开启,并且用户具有对当前目录的可写权限。

若设置为NO,则关闭匿名用户新建目录的权限。

7、dirmessage_enable

若设置为YES,则可开启目录信息推送,也就是用户登录FTP后可以列出当前目录底下的文件、目录。 这个应该要开启吧!

8、xferlog_enable

若设置为YES,则开启登录、上传、下载等事件的日志功能。应开启!

9、xferlog_file=/var/log/vsftpdlog

指定默认的日志文件,可指定为其他文件。

10、xferlog_std_format

若设置为YES,则启用标准的ftpd日志格式。可以不启用。

11、connect_from_port_20

若设置为YES,则服务器的端口设为20。

如果不想用端口20,可以另外通过ftp_data_port来指定端口号。

12、chown_uploads

若设置为YES,则匿名用户上传文件后系统将自动修改文件的所有者。

若要开启,则chown_username=whoever也需指定具体的某个用户,用来作为匿名用户上传文件后的所有者。

13、idle_session_timeout=600

不活动用户的超时时间,超过这个时间则中断连接。

14、data_connection_timeout=120

数据连接超时时间 。

15、ftpd_banner=Welcome to blah FTP

service

FTP用户登入时显示的信息 。

16、local_root=/home/ftp

指定一个目录,用做在每个本地系统用户登录后的默认目录。

17、anon_root=/home/ftp

指定一个目录,用做匿名用户登录后的默认目录。

18、chroot_local_user、 chroot_list_enable、chroot_list_file

这个组合用于指示用户可否切换到默认目录以外的目录。

其中,chroot_list_file默认是/etc/vsftpdchroot_list,该文件定义一个用户列表。

若chroot_local_user

设置为NO,chroot_list_enable设置为NO,则所有用户都是可以切换到默认目录以外的。

若chroot_local_user

设置为YES,chroot_list_enable设置为NO,则锁定FTP登录用户只能在其默认目录活动,不允许切换到默认目录以外。

若chroot_local_user

设置为YES,chroot_list_enable设置为YES,则chroot_list_file所指定的文件里面的用户列表都可以访问默认目录以外的目录,而列表以外的用户则被限定在各自的默认目录活动。

若chroot_local_user设置为NO,chroot_list_enable设置为YES,则chroot_list_file所指定的文件里面的用户列表都被限定在各自的默认目录活动,而列表以外的用户则可以访问默认目录以外的目录。

建议设置:chroot_local_user与chroot_list_enable都设置为YES。这样就只有chroot_list_file所指定的文件里面的用户列表可以访问默认目录以外的目录,而列表以外的用户则被限定在各自的默认目录活动!

好处:所有人都被限制在特定的目录里面。如果某些特定用户需要访问其他目录的权限,只需将其用户名写入chroot_list_file文件就可以赋予其访问其他目录的权限!

19、userlist_file、userlist_enable、userlist_deny

这个组合用于指示用户可否访问FTP服务。

其中,userlist_file默认是/etc/vsftpduser_list,该文件定义一个用户列表。

若userlist_enable设置为YES,userlist_deny设置为NO,则只有userlist_file所指定的文件里面的用户列表里面的用户可以访问FTP。

若userlist_enable设置为YES,userlist_deny设置为YES,则userlist_file所指定的文件里面的用户列表里面的用户都被拒绝访问FTP。

若userlist_enable设置为NO,userlist_deny设置为YES,则这个列表没有实际用处,起不到限制的作用!因为所有用户都可访问FTP。

建议设置:userlist_enable与userlist_deny都设置为YES。这样则userlist_file所指定的文件里面的用户列表里面的用户都被拒绝访问FTP。

好处:只需将某用户帐号加入到userlist_file所指定文件里面的用户列表,就可以起到暂时冻结该用户的功能!

20、user_config_dir

指定一个目录用于存放针对每个用户各自的配置文件,比如用户kkk登录后,会以该用户名建立一个对应的配置文件。

比如指定user_config_dir=/etc/vsftpd_user_conf,

则kkk登录后会产生一个/etc/vsftpd_user_conf/kkk的文件,这个文件保存的配置都是针对kkk这个用户的。可以修改这个文件而

不用担心影响到其他用户的配置。

二、我的VSFTP的配置方案

#首先要安装VSFTP。源码编译或软件包安装都可以。

#以下方案实现以下功能:

#1、锁定用户在/home/ftp默认目录活动,

#

并保留/etc/vsftpdchroot_list文件里面的用户列表可访问其他目录。

#2、具备暂时冻结FTP用户的功能,将需暂停的用户名加入到/etc/vsftpdusr_list即可。

#

#设置配置文件:

#复制以下文件并保存为/etc/vsftpdconf

#新建两文件:touch /etc/vsftpdchroot_list

#

touch /etc/vsftpduser_list

#新建目录:mkdir /home/ftp

#新建群组:addgroup ftp

#修改/home/ftp属性:chown ftp:ftp /home/ftp

#新增FTP用户: adduser --shell /bin/false --home /home/ftp

your_usr_name

#把需要开通FTP的用户名加入到ftp群组:usermod -aG ftp your_usr_name

#注意:

#如果你的/etc/shells里面没有包含/bin/false,则你用上述的方法建立的用户将法访问#FTP,解决方法:编辑/etc/shells,加入/bin/false这行。

#

# Example config file /etc/vsftpdconf

listen=YES

#listen_ipv6=YES

anonymous_enable=YES

local_enable=YES

write_enable=YES

#anon_upload_enable=YES

#anon_mkdir_write_enable=YES

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

#chown_uploads=YES

#chown_username=whoever

#xferlog_file=/var/log/vsftpdlog

#xferlog_std_format=YES

#idle_session_timeout=600

#data_connection_timeout=120

#nopriv_user=ftpsecure

#async_abor_enable=YES

#ascii_upload_enable=YES

#ascii_download_enable=YES

#ftpd_banner=Welcome to blah FTP

service

#deny_email_enable=YES

#banned_email_file=/etc/vsftpdbanned_emails

chroot_local_user=YES

chroot_list_enable=YES

chroot_list_file=/etc/vsftpdchroot_list

#ls_recurse_enable=YES

secure_chroot_dir=/var/run/vsftpd

pam_service_name=vsftpd

rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoilpem

rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoilkey

anon_root=/home/ftp

local_root=/home/ftp

userlist_file=/etc/vsftpduser_list

userlist_enable=YES

userlist_deny=YES

三、回答前面提到的问题

1、如何添加FTP用户?

设置local_enable为YES可以开放系统用户访问FTP。

在系统里面添加用户,将shell设置为/bin/false,并将其家目录若设置为/home/ftp或者其他目录。这样就可以建立只访问FTP而无法登录shell环境的用户。

注意:可以新建一个ftp组,把/home/ftp的所有者设为ftp,群组也设为ftp。然后所有新添加的FTP用户只需加入到FTP群组就可以具有对/home/ftp的访问权限了。这样也方便管理用户量比较大的FTP系统。如:

sudo addgroup ftp #如果有了就不用添加

sudo chown ftp:ftp /home/ftp #如果改过了就不用再改

sudo adduser --shell /bin/false --home /home/ftp user1

#添加用户user1

sudo usermod -aG ftp

user1 #把用户user1加入到ftp组

这样便可以通过用户名user1来访问FTP服务了。

2、如何临时冻结某FTP用户?

将userlist_enable与userlist_deny都设置为YES。这样userlist_file所指定的文件里面的用户列表里面的用户都

被拒绝访问FTP。只需将某用户帐号加入到userlist_file所指定文件里面的用户列表,就可以起到暂时冻结该用户的功能!如需重新开通使用权

限,则只需从该文件中去掉相应的用户名。

3、FTP用户登入后的默认目录?是否可以改变?

可以通过local_root、anon_root来指定相应的默认目录。

4、如何锁定FTP用户可访问的目录范围?

将chroot_local_user与chroot_list_enable都设置为YES。这样就只有chroot_list_file所指定的文件

里面的用户列表可以访问默认目录以外的目录,而列表以外的用户则被限定在各自的默认目录活动!如果某些特定用户需要访问其他目录的权限,只需将其用户名写

入chroot_list_file文件就可以赋予其访问其他目录的权限!

5、FTP用户可以有哪些访问权限?可否上传文件?

设置write_enable可以开启全局的写权限。这样FTP用户就可以在本地帐号管理系统允许的范围内进行写操作了

本教程假设你已有一台在运行的Ubuntu服务器,网络方面已设置好,而且可以通过SSH进行访问。

Apache2是许多安装的Linux发行版使用的默认Web服务器。它不是对所有环境来说唯一可用的Web服务器,也不是最佳的Web服务器,但是它适合许多使用场景。在安装过程中,系统可能会询问你哪个Web服务器要自动重新配置。选择“apache2”即可。

安装Apache2

使用下面这个命令,安装Apache2及其他库。

$ sudo apt-get -y install apt-get install apache2 apache22-common apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-gd php5-cli php5-cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth php5-mcrypt mcrypt libapache2-mod-suphp libopenssl-ruby libapache2-mod-ruby

更新时区(TimeZone)和检查正确时间

为了减小共享数据或镜像数据方面的混淆,所有服务器在运行时都应该尽可能接近同步状态。一些加密密钥管理系统需要准确的时间。最后,就企业服务器而言,《萨班斯-奥克斯利法案》(Sarbanes-Oxley)和《健康保险可携性及责任性法案》(HIPAA)的安全规则要求正确的时间戳机制。

$ sudo apt-get -y install openntpd tzdata

$ sudo dpkg-reconfigure tzdata

$ sudo service openntpd restart

禁止AppArmor冲突

虽然AppArmor这个套件的确提供了一层额外的安全,但在我看来,需要为每个系统创建自定义配置文件。这不是本教程所探讨的内容。所以眼下,我们会禁用AppArmor,防止与任何默认的配置发生冲突。

$ sudo /etc/initd/apparmor stop

$ sudo update-rcd -f apparmor remove

$ sudo apt-get remove apparmor apparmor-utils

注意:如果是生产环境下的Web服务器,不建议禁用AppArmor。如果有些人想创建自定义的AppArmor配置文件,请参阅官方说明文档(http://wikiapparmornet/indexphp/Documentation)。

阻止分布式拒绝服务(DDoS)攻击

DDoS攻击是一种分布式拒绝服务攻击。有一个Apache模块可以阻止这类攻击。

$ sudo apt-get -y install libapache2-mod-evasive

$ sudo mkdir -p /var/log/apache2/evasive

$ sudo chown -R www-data:root /var/log/apache2/evasive

把下面这个命令添加到mod-evasiveload的末尾处。

$ sudo nano /etc/apache2/mods-available/mod-evasiveload DOSHashTableSize 2048

DOSPageCount 20 # 请求同一页面的最大数量

DOSSiteCount 300 # 同一侦听器上同一客户端IP请求任何对象的总数量

DOSPageInterval 10 # 页面数量阈值的间隔

DOSSiteInterval 10 # 站点数量阈值的间隔

DOSBlockingPeriod 100 # 客户机IP被阻止的时间段

DOSLogDir “/var/log/apache2/evasive”

DOSEmailNotify admin@domaincom

阻止Slowloris攻击

还有一个Apache模块可以阻止Slowloris攻击,不过模块名称取决于你使用的Ubuntu的具体版本。如果是Ubuntu 1210或以后版本:

$ sudo apt-get -y install libapache2-mod-qos

然后,检查qosconf中的配置:

$ sudo nano /etc/apache2/mods-available/qosconf

## 服务质量方面的设置

# 处理来自多达100000个不同IP的连接

QS_ClientEntries 100000

# 只允许每个IP仅50条连接

QS_SrvMaxConnPerIP 50

# 活动TCP连接的最大数量限制在256条

MaxClients 256

# 当70%的TCP连接被占用时,禁用保持活动连接状态

QS_SrvMaxConnClose 180

# 最小请求/响应速度(拒绝阻塞服务器的慢速客户端,即slowloris保持连接开启,不提出任何请求):

QS_SrvMinDataRate 150 1200

# 并限制请求标题和主体(注意,这还限制了上传和发帖请求):

# LimitRequestFields 30

# QS_LimitRequestBody 102400

注意:如果你运行1204之前的Ubuntu版本,改而使用下面这个命令:

$ sudo apt-get -y install libapache2-mod-antiloris

检查antilorisconf中的配置

$ sudo nano /etc/apache2/mods-available/antilorisconf

# 每个IP地址处于READ状态的最大并行连接数量

IPReadLimit 5

阻止DNS注入攻击

Spamhaus这个模块使用域名系统黑名单(DNSBL),目的是为了阻止通过Web表单实现的垃圾邮件转发,防止URL注入攻击,阻止来自机器人程序的http DDoS攻击,通常保护服务器,远离已知的恶意IP地址。

$ sudo apt-get -y install libapache2-mod-spamhaus

$ sudo touch /etc/spamhauswl Append the config to apache2conf

$ sudo nano /etc/apache2/apache2conf

MS_METHODS POST,PUT,OPTIONS,CONNECT

MS_WhiteList /etc/spamhauswl

MS_CacheSize 256

重启Apache装入新模块

$ sudo service apache2 restart

现在Web服务器已安装完毕,并在正常运行。将Web浏览器指向你的域,即可看到证明你一切正常的默认消息。作为最后的检查机制,运行下面这个命令,看看你的服务器有没有任何错误信息。要是有错误信息,你需要上谷歌搜索一下,立马解决这些错误。

$ sudo tail -200 /var/log/syslog

步骤 1:在 Ubuntu 中安装 DHCP 服务器

1、 运行下面的命令来安装 DHCP 服务器包,也就是 dhcp3-server。

$ sudo apt install isc-dhcp-server

2、 安装完成后,编辑 /etc/default/isc-dhcp-server 使用 INTERFACES 选项定义 DHCPD 响应 DHCP 请求所使用的接口。

比如,如果你想让 DHCPD 守护进程监听 eth0,按如下设置:

INTERFACES="eth0"

同样记得为上面的接口配置静态地址。

步骤 2:在 Ubuntu 中配置 DHCP 服务器

1、 DHCP 配置的主文件是 /etc/dhcp/dhcpdconf, 你必须填写会发送到客户端的所有网络信息。

并且 DHCP 配置中定义了两种不同的声明,它们是:

parameters - 指定如何执行任务、是否执行任务,还有指定要发送给 DHCP 客户端的网络配置选项。

declarations - 定义网络拓扑、指定客户端、为客户端提供地址,或将一组参数应用于一组声明。

2、 现在打开并修改主文件,定义 DHCP 服务器选项:

$ sudo vi /etc/dhcp/dhcpdconf

在文件顶部设置以下全局参数,它们将应用于下面的所有声明(请指定适用于你情况的值):

option domain-name "tecmintlan";

option domain-name-servers ns1tecmintlan, ns2tecmintlan;

default-lease-time 3600; max-lease-time 7200;

authoritative;

3、 现在定义一个子网,这里我们为 192168100/24 局域网设置 DHCP (请使用适用你情况的参数):

subnet 192168100 netmask 2552552550

{

option routers 192168101;

option subnet-mask 2552552550;

option domain-search "tecmintlan";

option domain-name-servers 192168101;

range 1921681010 19216810100;

range 19216810110 19216810200;

}

步骤 3:在 DHCP 客户端上配置静态地址

1、 要给特定的客户机分配一个固定的(静态)的 IP,你需要显式将这台机器的 MAC 地址以及静态分配的地址添加到下面这部分。

host centos-node

{

hardware ethernet 00:f0:m4:6y:89:0g;

fixed-address 19216810105;

}

host fedora-node

{

hardware ethernet 00:4g:8h:13:8h:3a;

fixed-address 19216810106;

}

保存并关闭文件。

2、 接下来,启动 DHCP 服务,并让它下次开机自启动,如下所示:

------------ SystemD ------------

$ sudo systemctl start isc-dhcp-serverservice

$ sudo systemctl enable isc-dhcp-serverservice

------------ SysVinit ------------

$ sudo service isc-dhcp-serverservice start

$ sudo service isc-dhcp-serverservice enable

3、 接下来不要忘记允许 DHCP 服务(DHCP 守护进程监听 67 UDP 端口)的防火墙权限:

$ sudo ufw allow 67/udp

$ sudo ufw reload $ sudo ufw show

步骤 4:配置 DHCP 客户端

1、 此时,你可以将客户端计算机配置为自动从 DHCP 服务器接收 IP 地址。

登录到客户端并编辑以太网接口的配置文件(注意接口名称/号码):

$ sudo vi /etc/network/interfaces

定义如下选项:

auto eth0 iface eth0 inet dhcp

保存文件并退出。重启网络服务(或重启系统):

------------ SystemD ------------

$ sudo systemctl restart networking

------------ SysVinit ------------

$ sudo service networking restart

另外你也可以使用 GUI 来在进行设置,如截图所示(在 Fedora 25 桌面中)设置将方式设为自动(DHCP)。

此时,如果所有设置完成了,你的客户端应该可以自动从 DHCP 服务器接收 IP 地址了。

就是这样了!在本篇教程中,我们向你展示了如何在 Ubuntu/Debian 设置 DHCP 服务器。在反馈栏中分享你的想法。如果你正在使用基于 Fedora 的发行版,请阅读如何在 CentOS/RHEL 中设置 DHCP 服务器。

11 搭建NFS服务器

NFS(Network FileSystem,网络文件系统)是由SUN公司发展,并于1984年推出的技术,用于在不同机器,不同操作系统之间通过网络互相分享各自的文件。NFS设计之初就是为了在不同的系统间使用,所以它的通讯协议设计与主机及操作系统无关。

NFS分服务器和客户机,当使用远端文件时只要用mount命令就可把远端NFS服务器上的文件系统挂载在本地文件系统之下,操作远程文件与操作本地文件没有不同。NFS服务器所共享文件或目录记录在/etc/exports文件中。

嵌入式Linux开发中,会经常使用NFS,目标系统通常作为NFS客户机使用,Linux主机作为NFS服务器。在目标系统上通过NFS,将服务器的NFS共享目录挂载到本地,可以直接运行服务器上的文件。在调试系统驱动模块以及应用程序,NFS都是十分必要的,并且Linux还支持NFS根文件系统,能直接从远程NFS root启动系统,这对嵌入式Linux根文件系统裁剪和集成也是十分有必要的。

安装nfs-kernel-server:

ky@ubuntu:~$ sudo apt-get install nfs-kernel-server

设置NFS-Server目录。修改/etc/exports文件,在其中增加NFS服务器目录。 一个NFS服务器可以共享多个NFS目录,在/etc/exports文件中,每个目录的设置独占一行,编写格式如下:

NFS共享目录路径 客户机IP或者名称(参数1,参数2,,参数n)

说明:

q NFS共享目录可以是主机的任何一个目录,为了方便使用,最好将权限设置为777。

q 客户机指的是可以访问共享目录的客户机的IP或者主机名,可以是指定的IP或者主机名。如果使用IP,可以使用通配符。假如指定IP为1921681x的客户机可以访问,可以写成1921681,如果设置为,则表示任何客户机都可以访问。

q 访问参数可以是一个,也可以是多个,用逗号分开。可能的参数和说明如 REF _Ref286733518 \h 表 5108D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F005200650066003200380036003700330033003500310038000000 所列。

表 STYLEREF 1 \s 5 SEQ 表 \ ARABIC \s 1 1 NFS设置参数和说明

参数

说明

ro

只读访问

rw

读写访问

sync

所有数据在请求时写入共享

async

nfs在写入数据前可以响应请求

secure

nfs通过1024以下的安全TCP/IP端口发送

insecure

nfs通过1024以上的端口发送

wdelay

如果多个用户要写入nfs目录,则归组写入(默认)

no_wdelay

如果多个用户要写入nfs目录,则立即写入,当使用async时,无需此设置

hide

在nfs共享目录中不共享其子目录

no_hide

共享nfs目录的子目录

subtree_check

如果共享/usr/bin之类的子目录时,强制nfs检查父目录的权限(默认)

no_subtree_check

不检查父目录权限

all_squash

共享文件的UID和GID映射匿名用户anonymous,适合公用目录

no_all_squash

保留共享文件的UID和GID(默认)

root_squash

root用户的所有请求映射成如anonymous用户一样的权限(默认)

no_root_squash

root用户具有根目录的完全管理访问权限

anonuid=xxx

指定nfs服务器/etc/passwd文件中匿名用户的UID

anongid=xxx

指定nfs服务器/etc/passwd文件中匿名用户的GID

假定NFS共享目录是/home/ky/nfs,允许所有客户机访问,/etc/exports文件可写为:

/home/ky/nfs (rw,sync,no_subtree_check, no_root_squash)

启动NFS服务器。启动portmap(如果有必要)和nfs-kernel-server服务:

ky@ubuntu:~$ sudo service portmap start

ky@ubuntu:~$ sudo service nfs-kernel-server start

本地验证NFS服务器。将NFS服务器目录挂载到本机另外一个目录下,可以看到挂载点目录下可以看到NFS服务器目录中的文件。

ky@ubuntu:~$ ls /home/ky/nfs/

aaaa

ky@ubuntu:~$ sudo mount -t nfs 127001:/home/ky/nfs /mnt

ke@ubuntu:~$ ls /mnt

aaaa

ky@ubuntu:~$ sudo umount /mnt/

用开发板验证NFS服务器是否可用。启动开发板,进入系统,配置好开发板的IP地址后,用mount命令挂载NFS服务器的NFS目录:

target# mount -t nfs 19216813:/home/ky/nfs /mnt -o nolock

target# ls /mnt

kingyee

target# umount /mnt/

挂载成功后,可以在开发板的/mnt目录下看到NFS服务器上的文件。

说明,使用开发板与虚拟机安装的客户系统进行NFS挂载,需要将虚拟网卡设置为Bridged模式,并建议使用静态IP地址。

如果在使用中需要增加新的NFS共享目录,直接修改/etc/exports文件即可。修改该文件后,可以不用重启NFS服务,用exportfs命令读取/etc/exports文件,重新共享输出。exportfs命令语法如下:

exportfs [-aruv]

选项说明:

-a:全部挂载(或卸载) /etc/exports的设置;

-r:重新挂载/etc/exports的设置;

-u:卸载某一个目录;

-v:在输出的时候,把共享目录显示出来。

如果NFS已经启动,修改了/etc/exports文件,执行如下命令,新的设置即可生效:

ky@ubuntu:~$ exportfs -ra

1先决条件

每个域必须有一个DNS服务器。建议不要使用Live域用于测试目的。在本教程中,将在实验室环境中使用测试域exampletst。在这个假设域名的DNS服务器应该在至少以下记录。

exampletst的forward zone配置:

IN MX 10 mailexampletst

mailexampletst IN A 192168101

exampletst的Reverse zone配置:

192168101 IN PTR mailexampletst

在配置邮件服务器的过程中,这些记录可以根据系统的要求进行修改。

2设置主机名

首先,必须在/etc/hostname和/etc/hosts文件中指定邮件服务器的主机名。前者应仅包含主机名。

root@mail:~# vim /etc/hostname

mail

root@mail:~# vim /etc/hosts

## IP Fully Qualified Domain Name Hostname ##

192168101 mailexampletst mail

增加用户

每一个Linux用户,在默认情况下,系统会为其自动创建一个邮箱。这些用户和邮箱将被用作电子邮件帐户和它们各自的邮箱。创建一个用户是很容易的。

root@mail:~# adduser fourbyte

安装和配置SMTP

服务: postfix

配置文件路径 /etc/postfix/

执行脚本 /etc/initd/postfix

日志文件 /var/log/maillog

端口 TCP/25

SMTP:安装postfix

postfix是广泛使用的SMTP服务器之一,因为它是稳定的、轻量级的、可扩展的、高度可定制的。安装postfix可以使用apt-get的完成。

root@mail:~# apt-get install postfix

在安装过程中,需要指定电子邮件服务器和域名的类型。

由于此邮件服务器就会直接向目的地发送电子邮件,我们选择Internet Site。

邮件服务器的域名也需要配置,这可以从确保该邮件服务器发送的所有邮件都有@ exampletst作为发件人域。

postfix的配置文件存储在/etc/postfix目录。下面的配置文件是非常重要的。他们中的一些可能不存在,因此需要手动创建。

transport:主要用于定义邮件如何被路由到特定的目标域。绕过DNS查询可以是一个很好的例子。在这种情况下,人们可以发送到域XYZcom的电子邮件直接通过IP地址XYYX不考虑任何DNS查询的结果。

access:可用于安全目的,如阻止发件人/收件人和他们的域名。

aliases:用于定义用户别名。例如,发送到userA的邮件可以由userB和userC接收。

maincf:是postfix的配置文件。

SMTP:准备配置文件

差不多可以准备配置文件了。transport与aliases配置文件没有默认提供,需要手动创建。

root@mail:~# cd /etc/postfix

root@mail:/etc/postfix# touch transport aliases

maincf

首先需要备份maincf然后再进行修改。根据下面的配置添加或修改配置文件。有关参数的更多详细信息,请参阅官方README和配置手册。

root@mail:/etc/postfix# vim maincf

## the name of the server ##

myhostname = mailexampletst

## alias definitions ##

alias_maps = hash:/etc/postfix/aliases

alias_database = hash:/etc/postfix/aliases

## transport definition ##

transport_maps = hash:/etc/postfix/transport

## myorigin defines the domain name for emails originated from this server In this case, all outgoing mail should have '@exampletst' as sender domain ##

myorigin = exampletst

## mydestination parameter specifies what domains this machine will deliver locally, instead of forwarding to another machine ##

mydestination = mailexampletst, localhostexampletst, localhost, hash:/etc/postfix/transport

## the smarthost address Not used in this tutorial and will be covered in the future##

relayhost =

## the trusted sender networks postfix will not forward mails originated from other subnets ##

mynetworks = 127000/8 [::ffff:127000]/104 [::1]/128 192168100/24

## mailbox size in bytes 0 denotes no limit ##

mailbox_size_limit = 0

## postfix will listen on all available interfaces ie eth0, eth1, eth2 and so on ##

inet_interfaces = all

transport

邮件域exampletst被定义为在本地传递不需要任何DNS查询。

root@mail:/etc/postfix# vim transport

exampletst local:

exampletst local:

root@mail:/etc/postfix# postmap transport

aliases

假设所有发送到userA的所有电子邮件可以由userB接收,别名文件需要按如下所述进行修改。

我使用的gogs+cetos6搭建git服务器,因为gogs搭建服务器比较简单

我给您大概说一下搭建过程

linux服务器上安装mysql,并创建gogs数据库

linux服务器上安装git

linux服务器上安装gogs

运行/gogs web ,然后可以通过浏览器访问: localhost:3000配置服务器

最后是开启防火墙端口3000(gogs默认端口)

因为不熟悉Ubuntu,但是过程是一样的,您可以尝试一下 :)

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 如何在ubuntu中安装设置ftp服务器

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情