20. Linux其他常见服务器部署
除了著名的LAMP和LNMP平台,在Linux上还可以搭建很多其他的常见服务器。
本章简单介绍在openSUSE上搭建如FTP、SSH、DNS、VNC Server、Mail Server等服务器。
20.1 FTP服务器
FTP(File Transfer Protocol)就是文件传输协议,在互联网上和局域网上都是经常用到的文件分享服务。
FTP使用TCP 20和21端口,21用于传输控制命令,20端口传输实际的大量数据。
Linux下流行的FTP服务器软件主要是vsftpd、pure-ftpd、tftp、proftpd。
Yast有配置FTP服务器的模块,yast2-ftp-server是配置 pure-ftpd 和 vsftpd 的模块,
yast2-tftp-server是配置TFTP服务的模块。 proftpd软件文件是这几个里面最大的。
功能也必须是很强大的。Yast没有管理proftpd模块,但proftpd有第三方的Web图形界面来操作:
http://www.debianhelp.co.uk/proftpweb.htm
这里以vsftpd安装配置为例,搭建一个FTP服务器,其他的FTP软件安装配置也类似的。
(1)安装vsftpd软件
执行命令:
zypper in vsftpd
(2)安装Yast配置模块
执行命令:
zypper in yast2-ftp-server
然后就可以打开:Yast----》网络服务----》FTP服务器,进行配置。
上面“启动”配置意思很明了,“启动服务”选择“引导时”,
然后点击“立即启动FTP”就能开启FTP服务了。
默认匿名用户就能查看的根目录是 /srv/ftp/ 。
openSUSE系统用户默认能登录到自己的主文件夹,
比如suse123用户会登录到/home/suse123/ 。
在该配置界面的“常规”配置里,可以设置匿名用户的ftp根目录和认证用户的根目录,
配置比较简单,不赘述了。
默认都是只读的,开启登录用户的写权限是用root权限编辑 /etc/vsftpd.conf 文件,找到
write_enable=NO 改成 write_enable=YES
(3)开放防火墙端口
打开Yast----》安全和用户----》防火墙。
左边点击“允许的服务”,添加“vsftpd服务器”到允许的服务即可。
这样简易的FTP服务器就能用了。
附上FTP服务器配置参考文档:
https://doc.opensuse.org/documentation/leap/reference/html/book-reference/cha-ftp.html
20.2 SSH服务器
SSH是Secure Shell(缩写为SSH),由IETF的网络工作小组(Network Working Group)所制定;SSH为一项创建在应用层和传输层基础上的安全协议,为计算机上的Shell(壳层)提供安全的传输和使用环境。通过命令行远程登录管理计算机通常都使用SSH服务。SSH服务器默认使用TCP 22 端口监听。
openSUSE默认安装了openssh,包括SSH服务器和客户端都有。Yast有一个配置SSH的模块yast2-sshd ,可以自己装着试试,但不是必要的。
(1)在本地开启SSH 服务器命令:
systemctl enable sshd.service
systemctl start sshd.service
(2)开放防火墙端口
打开Yast----》安全和用户----》防火墙。
左边点击“允许的服务”,添加“安全壳层服务器”到允许的服务即可。
(3)客户端登录测试
Linux下执行:
ssh 服务器IP地址
Windows下可以用putty登录。
20.3 DNS服务器
DNS是Domain Name System缩写,即域名解析系统。
互联网上计算机都是以IP地址作为自身标识的,但是人总不能去记一堆数字的IP来找服务,
尤其是IPv6时代,就更难记IP了。所以域名系统就是为了将对人来说比较好记住的名字,
如 www.opensuse.org解析成服务器IP地址,如130.57.66.6 。
如果在本地局域网自己搭建DNS服务器测试,或者给公司各个对外服务器主机配置域名,
那就需要自己来配置DNS服务器了。下面以局域网为例子搭建DNS服务器。
Linux下的DNS服务器软件当然首推BIND了,还有其他的如PowerDNS。
Yast也有DNS服务器配置模块。
(1)BIND和Yast配置模块安装
zypper in bind yast2-dns-server
(2)使用Yast初次配置DNS服务器
打开Yast----》网络服务----》DNS服务器,首先看到:
转发对象的意思是,自己解析不了的域名解析请求转发给谁,去请求外面别的服务器解析。
通常就设置自己本省市或上级的DNS服务器地址。
可以找本地联通电信服务商询问他们的DNS。
这里以202.38.64.1为例子添加,当然还可以添加多个转发DNS服务器。
添加了转发服务器之后,点击“下一步”。
如上图界面添加新的域名解析域 iloveliuqing.cn 。进入下一步,
将启动行为设置成“打开:立即启动和在引导时”,点击“完成”。
“完成”这步要求/etc/resolv.conf 文件之前没修改过。如果报错提示“You have modified /etc/resolv.conf”,
那么将/etc/resolv.conf 改名,
并把/etc/resolv.conf.netconfig复制成新的/etc/resolv.conf 。
比如执行:
mv /etc/resolv.conf /etc/resolv.conf.old
cp /etc/resolv.conf.netconfig /etc/resolv.conf
这样就不会出错了。
(3)配置实际的DNS解析
再次启动Yast的DNS域名服务器配置。这次界面就成正式的配置界面了。
前面输入了如 iloveliuqing.cn 的主域名(这个是我们自己需要解析的主域名),
但是没输入IP,显然没有配置完成。
①进入Yast的DNS服务器管理主对话框,
左边选“
DNS区域”,右边在已配置的DNS区域内选“
iloveliuqing.cn ”,
再点击“编辑”,进入如下区域编辑器:
②先选上面的“NS记录”,
在要添加的名称服务器里输入:
localhost.
点击“添加”。localhost后面要接一个点号,否则会被追加成localhost.iloveliuqing.cn,就不是本机了。
③在选上面的“记录”,进入解析记录页面:
一般“类型”选 “A: IPv4域名转换”,记录键有两种写法,
相对域名写法:
www
不加点号,最后会自动解析成 www.iloveliuqing.cn 。
绝对域名写法:
iloveliuqing.cn.
末尾加点号,会被直接解析成 iloveliuqing.cn 。
右边的值这里是www服务器IP地址,如192.168.0.254
设置好 记录键、类型、值三个之后,点击“添加”。
添加了自己需要解析的域名之后点击下面的“确定”。
④然后会回到DNS服务器配置主界面,选左边的“启动”,
再点击“保存配置并立即重新装载DNS服务器”。
完成后就可以查看自己刚才配的域名:
suse123@linux-9ppl:~> nslookup iloveliuqing.cn
Server: 127.0.0.1
Address: 127.0.0.1#53
Name: iloveliuqing.cn
Address: 192.168.0.254
suse123@linux-9ppl:~> nslookup www.iloveliuqing.cn
Server: 127.0.0.1
Address: 127.0.0.1#53
Name: www.iloveliuqing.cn
Address: 192.168.0.254
(4)配置域名反向解析服务(邮件服务器必备)
有了前面的正向解析,把域名解成IP,反向解析就是IP解析成域名。
注意一个IP可以有多个域名的。反向查询结果可能有差异的。
针对前面的 iloveliuqing.cn 主域名,主要管理的是 192.168.0.0/24 子网的服务器主机。下面配置反向解析。
①打开Yast的DNS服务器管理模块,选左边的“DNS区域”,
名称里输入:
0.168.192.in-addr.arpa
再点击添加。IP段本来是 192.168.0,倒过来,再加上 .in-addr.arpa 结尾,
就是反向解析的记录。
②选中该反向解析记录,点击编辑,首先编辑“NS记录页面”:
添加一个名称服务器:
localhost.
要以点号结尾,表示添加本机为解析服务器。
③再选上图界面的“记录”,进入解析记录页面:
类似的,相对域名不加点号结尾,绝对域名以点号结尾。
记录键: 254
类型: PTR: 反向转换
值:www.iloveliuqing.cn.
添加该记录,就代表将 IP: 192.168.0.254 反向解析成 www.iloveliuqing.cn 。
④然后会回到DNS服务器配置主界面,选左边的“启动”,
再点击“保存配置并立即重新装载DNS服务器”。
测试反向解析:
suse123@linux-9ppl:~> nslookup 192.168.0.254
Server: 127.0.0.1
Address: 127.0.0.1#53
254.0.168.192.in-addr.arpa name = www.iloveliuqing.cn.
(5)开启防火墙端口
打开Yast----》安全和用户----》防火墙。
左边点击“允许的服务”,添加“bind DNS server”到允许的服务即可。
最后在局域网里就可以把其他机器的DNS地址改成这个DNS服务器的IP,那么其他机器就可以使用我们自己配置的DNS服务器了。
附上DNS服务器配置参考文档:
https://doc.opensuse.org/documentation/leap/reference/html/book-reference/cha-dns.html
20.4 VNC服务器
依据百度百科介绍,VNC (Virtual Network Computing)是虚拟网络计算机的缩写。VNC 是一款优秀的远程控制工具软件,由著名的 AT&T 的欧洲研究实验室开发的。VNC 是在基于 UNIX 和 Linux 操作系统的免费的开源软件,远程控制能力强大,高效实用,其性能可以和 Windows 和 MAC 中的任何远程控制软件媲美。openSUSE默认装了tightvnc(13.2用的是其衍生版 tigervnc)软件,里面包含了服务器和客户端,要用的都有。
(1)启动vncserver服务(普通用户权限即可,不要用root)
vncserver -geometry 1024x768 -depth 16
这就是以分辨率1024x768,色深16位启动VNC服务器。
初次运行vncserver的时候需要配置一个完全访问权限的密码和一个只读权限的密码,都设置得复杂点好。
(2)开启防火墙端口
打开Yast----》安全和用户----》防火墙。
左边点击“允许的服务”,把VNC开头的三个服务添加到允许的服务即可。
(3)客户端连接
可以用Linux或Windows下vncviewer连接
vncviewer 服务器IP:1
例如
连接时要输入刚才设置的密码,密码正确后就可以连上:
VNC服务器默认启动xterm和twm窗口管理器,如上图。可以修改
$HOME/.vnc/xstartup
即主文件夹下的vnc配置文件,把twm打头的行换成下面之一:
/usr/bin/gnome # 默认启动GNOME桌面
/usr/bin/startkde # 默认启动KDE桌面
(4)关闭vncserver
因为vnc服务器启动后,远程可以完全以启动vncserver的用户身份远程操作,
所以vncserver不能一直开着,这是危险的事。
用完了一定要关:
vncserver -kill :1
如果前面重复执行了
vncserver -geometry 1024x768 -depth 16
那么会有多个vncserver服务进程,
必须逐一关掉:
vncserver -kill :1
vncserver -kill :2
vncserver -kill :3
……
附上VNC服务器配置参考:
https://doc.opensuse.org/documentation/leap/reference/html/book-reference/cha-vnc.html
20.5 Mail服务器
20.5.1 Mail服务器简介
电子邮件相信是无人不知无人不晓的。但Mail服务器的搭建较为麻烦。
介绍几个电子邮件服务器必备的东西 :
(1)SMTP协议(发信)
SMTP(Simple Mail Transfer Protocol):即简单邮件传输协议。它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。 这是邮件服务器必须支持的。
MTA即Mail Transfer Agent,邮件传输代理,用于在各个邮件服务器间转发邮件,遵循SMTP和ESMTP协议。常见的MTA软件有:sendmail、postfix 、 exim 、courier、xmail。
MTA通常集成MDA(Mail Delivery Agent),MDA主要是分析由 MTA 所收到的信件表头或內容等资料, 來決定这份邮件的去向,是自己服务器的就存到自家邮箱里,不是自己的就发出去。
(2)POP3和IMAP协议(用户收信)
POP3(Post Office Protocol 3):邮局协议的第3个版本,它规定怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的电子协议。POP3允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时删除保存在邮件服务器上的邮件。IMAP(Internet Mail Access Protocol):即交互式邮件存取协议,它是跟POP3类似邮件访问标准协议之一。不同的是,开启了IMAP后,您在电子邮件客户端收取的邮件仍然保留在服务器上,同时在客户端上的操作都会反馈到服务器上,如:删除邮件,标记已读等,服务器上的邮件也会做相应的动作。邮件服务器至少得支持POP3和IMAP中的一个或全部支持。
MRA 即Mail Retrieval Agent,邮件收取代理,使得客户可以利用POP3或IMAP协议从服务器收取邮件,并进行相关邮件操作。常用MRA 软件有dovecot、UW IMAP、 courier、xmail。
还有个概念,MUA(Mail User Agent ),邮件用户代理,就是客户端收发邮件的软件,比如Windows的Outlook,跨平台的Thunderbird等。
(3)Web邮件界面
相信这是大家接触最多的,Web界面的操作最直观,也不需要配置,直接用浏览器访问即可。
20.5.2 简单邮件服务器搭建流程
最简单的邮件服务器搭建流程是:
首先进行Postfix安装配置,启动SMTP协议的服务器。
其次是进行Dovecot安装配置,启动POP3和IMAP协议的服务。
再次是Web邮件服务界面的安装配置,需要LAMP或LNMP平台,常见的Web邮件服务界面如 Extmail,Squirrelmail,OpenWebmail,SqWebMail,Igenus ,Horde WebMail,RoundCube 等。
具体的搭建和测试过程见pdf文档:
Postfix+Dovecot+ SquireMail配置简单邮件服务器(openSUSE)
20.5.3 稍复杂的邮件服务器搭建
上一小节的认证方式比较简单,只是用本地系统的真实用户作为邮件帐户的,如果要用邮箱的人多,这种方式就得新建许多系统真实用户,显然比较麻烦。真实的邮箱通常除了真实系统用户,还能支持虚拟用户的,这些虚拟用户只用于邮箱帐户,虚拟帐户的用户名和密码通常存在数据库里。这里仿照网上的教程,写了一个openSUSE版本搭建方法,使用 Postfix+Dovecot+MariaDB+PostfixAdmin+Roundcube
搭建一个支持虚拟用户的服务器。见pdf文档:
Postfix+Dovecot+MariaDB+PostfixAdmin+Roundcube搭建邮件服务器(openSUSE)
20.5.4 较完善的邮件服务器搭建
除了用MySQL/MariaDB、Postgre等数据库存储虚拟邮箱帐户,还有使用OpenLDAP存储邮箱帐户的方法,这也是Yast邮箱服务器高级配置模式使用的,安装参考:
http://www.novell.com/coolsolutions/feature/16264.html
让邮件系统支持虚拟用户注册登录,只是搭建邮件服务器的开始而已。实用的邮件服务器还有更多的东西需要安装配置,比如SSL/TLS安全登录、反垃圾邮件、反病毒等。这些太复杂了,给出链接,喜欢折腾的去试试吧:
TLS/SSL + Anti-spam
https://johnny.chadda.se/mail-server-howto-postfix-and-dovecot-with-mysql-and-tlsssl-postgrey-and-dspam/
http://wiki.dovecot.org/HowTo/DovecotLDAPostfixAdminMySQL?action=show&redirect=DovecotLDAPostfixAdminMySQL
TLS/SSL + AntiSPAM + AntiVirus
http://serion.co.nz/howto/howto-setup-mailserver-using-postfix-mysql-dovecot-postfixadmin-amavis-new
20.5.5 邮件服务器安装配置神器iRedMail
正是由于邮件服务器复杂,所以有一个专门的邮件服务器自动安装配置脚本,叫iRedMail。iRedMail就是搭建邮件服务器的速成班,进行最简单的配置就能生成较为完善的邮件服务器。iRedMail支持很多系统安装,比如:Redhat/CentOS, Debian, Ubuntu, Gentoo, FreeBSD等。
iRedMail涉及安装配置的软件也很丰富,使用的主要软件包括:Postfix, Dovecot, Apache, MySQL, OpenLDAP, Policyd, Amavisd, Roundcude, Awstats, Fail2ban等。iRedMail特性很丰富,但是其安装配置却是最简单的。
注:由于openSUSE自带的Yast工具总是自动修改邮件服务器的配置文件,而Yast配置得却又不完善,
和iRedMail脚本格格不入,iRedMail作者生气不再支持openSUSE配置邮件服务器,不过其他Linux上还是可以很好使用的。
iRedMail官网:
http://www.iredmail.org/
在Ubuntu下的介绍见:
http://wiki.ubuntu.org.cn/IRedMail
20.6 其他类型服务器配置参考
这里搜集一些其他类型服务器的配置参考,方便查看:
DHCP服务器:
https://doc.opensuse.org/documentation/leap/reference/html/book-reference/cha-dhcp.html
NFS服务器:
https://doc.opensuse.org/documentation/leap/reference/html/book-reference/cha-nfs.html
SVN服务器:
http://blog.csdn.net/sonach/article/details/6975672
http://songxj.blog.51cto.com/620981/396113
Git服务器:
http://www.open-open.com/lib/list/282
http://www.linuxidc.com/Linux/2012-04/58308.htm
HTTP文件分享服务:类似HTTP File Server
http://wenku.baidu.com/view/5a6a79eb102de2bd96058863.html
http://blog.chinaunix.net/uid-21868571-id-158930.html
https://luy.li/2010/05/15/simplehttpserverwithupload/
OpenStack安装体验:
安装openstack到SLE11SP2
http://en.opensuse.org/Portal:OpenStack
http://en.opensuse.org/SDB:Cloud_OpenStack_Quickstart
最后给几个神奇的链接:
服务器世界:
http://www.server-world.info/en/
鸟哥私房菜:
http://linux.vbird.org/
openSUSE 最新官方文档:
https://doc.opensuse.org/
openSUSE 组件与文档简中翻译情况:
https://l10n.opensuse.org/languages/zh_CN/
本文档翻译自
http://opensuse-guide.org/ 不当之处,还望指正
使用e-mail发送您的英文评论给 admin [at] opensuse-guide.org
或发送意见和建议给中文译者:Libitum (hello[at]libitum.org);
Winland (winland0704[at]126.com)