架設 FTP 伺服器

Linux 與 UNIX 系統常見的 FTP 伺服器為「vsftpd ( Very Secure FTPD )」。其功能特色:

  • 支援虛擬主機。
  • 可使用虛擬帳號 ( 使用者 )。
  • 支援 Linux 獨立服務與 inetd 總管服務。
  • 帳號個別設定。
  • 頻寬調節。
  • 支援 ipv6。
  • 支援 SSL 加密連線。

安裝必要套件

以 yum 來安裝 vsftpd 。安裝指令如下:

yum -y install vsftpd

設定防火牆

利用防火牆設定指令「firewall-cmd」加入允許 ftp 服務,並使用「–permanent」寫入設定檔,使其永久有效:

firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload

啟動 vsftpd 服務及設定開機自動啟動:

systemctl start vsftpd
systemctl enable vsftpd

架設安裝 postfix 與 dovecot

安裝必要套件

  • postfix – postfix 伺服器的主要套件,提供電子郵件的傳送功能。
  • dovecot – 負責 POP3、IMAP 等提供使用者取信的通訊協定伺服器。

安裝相關套件指令如下:

yum -y install postfix dovecot

設定防火牆

利用防火牆設定指令「firewall-cmd」加入允許 stmp、pop3 與 imap 服務,並使用「–permanent」寫入設定檔,使其永久有效,接著啟動 postfix 服務與設定開機自動啟動服務,操作指令如下:

firewall-cmd --permanent --add-service=smtp
firewall-cmd --permanent --add-port=110/tcp
firewall-cmd --permanent --add-port=143/tcp
firewall-cmd --reload
systemctl start postfix
systemctl enable postfix

設定 postfix

postfix 所有設定值位於 /etc/postfix/main.cf 檔案中。修改該檔案中的部份設定值:

#myhostname = host.domain.tld
#myhostname = virtual.domain.tld
myhostname = ms.x-family.com.tw
#mydomain = domain.tld
mydomain = x-family.com.tw
#myorigin = $myhostname
#myorigin = $mydomain
myorigin = $myhostname
inet_interfaces = all
#inet_interfaces = $myhostname
#inet_interfaces = $myhostname, localhost
#inet_interfaces = localhost
# Enable IPv4, and IPv6 if supported
inet_protocols = all
#mydestination = $myhostname, localhost.$mydomain, localhost
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,
#	mail.$mydomain, www.$mydomain, ftp.$mydomain
mydestination = $myhostname, localhost.$mydomain, localhost,ms.x-family.asia,ms.x-family.com.cn,ms.x-family.idv.tw
#mynetworks_style = host
mynetworks_style = subnet
#mynetworks_style = host
mynetworks_style = subnet

SMTP 帳號密碼認証

Cyrus-SASL 是一套專門的認證函式庫,可以提供 postfix 做為認證時呼叫其代為認證帳號密碼是否符合。在 CentOS 的套件名稱是「cyrus-sasl」,可以使用 yum 指令進行安裝,並利用 systemctl 進行服務啟動:

yum -y install cyrus-sasl
systemctl start saslauthd
systemctl enable saslauthd

最後,修改 postfix 設定檔 /etc/postfix/main.cf,在檔案的最尾端加入以下設定值:

smtpd_sasl_auth_enable=yes
smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination

修改 Dovecot 設定檔

Dovecot 伺服器的設定檔為 /etc/dovecot/dovecot.conf ,修改檔案中的設定內容如下:

# Protocols we want to be serving.
#protocols = imap pop3 lmtp
protocols = imap pop3
#listen = *, ::
listen = *

並在該設定檔的最尾端,加入一行設定值如下:

# A config file can also tried to be included without giving an error if
# it's not found:
!include_try local.conf

mail_location=mbox:~/mail:INBOX=/var/mail/%u

接著修改 /etc/dovecot/conf.d/10-auth.conf 的設定內容,如下所示:

#disable_plaintext_auth = yes
disable_plaintext_auth = no

最後,修改 /etc/dovecot/conf.d/10-ssl.conf 的設定內容,如下所示:

#ssl = required
ssl = no

儲存設定檔後,啟動 dovecot 服務及設定開機時自動啟動服務。此外,為了避免權限問題,將 /var/mail/ 底下檔案權限設為 600,指令如下:

systemctl start dovecot
systemctl enable dovecot
chmod 600 /var/mail/*

安裝 Apache

初次接觸 Linux 時,常因為對 SELinux 的不熟悉而造成架設伺服器時出現無法連線的狀況。因此,先將 SELinux 關閉,以 root 角色開啟 /etc/sysconfig/selinux 設定檔,修改內容,將 SELINUX 設定 disable,如下所示:

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
#SELINUX=enforcing
SELINUX=disable
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

安裝必要套件

Apache 伺服器在 CentOS 中的套件名稱是 httpd,主機應安裝以下兩個套件:

  • hpptd : 伺服器主要套件,提供主要設定檔、模組、執行檔等。
  • httpd-tools :權限驗證功能的帳號密碼工具。

安裝指令如下:

yum -y install httpd httpd-tools

利用 systemctl 指令啟動 httpd 服務及開機自動啟動服務:

systemctl start httpd.service
systemctl enable httpd.service

由於 CentOS 安裝完成後,預設是開啟防火牆功能,且只允許 SSH 連線 (TCP,port 22) 進入主機,故以下面的指令來讓外部電腦使用瀏覽器連入主機,並關閉 SELinux 中有關使用者家目錄網頁伺服器的存取限制:

firewall-cmd --add-service=http --permanent
firewall-cmd --reload
setsebool -P httpd_enable_homedirs=1

讓 Apache 支援 php

Apache 要能有執行 PHP 的功能,需另外安裝 php 套件。指令如下:

yum -y install php