2018年4月6日 星期五

Centos 6 & 7 網路基礎設定 + 安裝Apache&MySQL/MariaDB&PHP&phpMyAdmin&ProFtp


網路設定:IP設定

# vi /etc/sysconfig/network-scripts/ifcfg-eno167XXCVHHH



網路設定:設定 DNS  Name resolution


Step # 1: Open /etc/resolv.conf file:

# vi /etc/resolv.conf
Step #2: 加入ISP DNS主機位置IP
nameserver 1.1.1.1

網路設定:設定 IPTABLES


執行、啟動 iptables
sudo systemctl start iptables

設定開機自動執行 iptables

sudo systemctl enable iptables 


網路設定:設定Selinux 

關閉 SELinux:
開啟檔案 /etc/selinux/config:
# vi /etc/selinux/config
SELINUX=enforce
修改成:
SELINUX=disabled

再將 “SELINUXTYPE=targeted” 加上註釋, 取消
# SELINUXTYPE=targeted
儲存後離開編輯器, 需要重新啟動網路元件設定才會生效。
再檢查 SELinux 的狀態, 執行 sestatus 指令便可以看到:
# sestatus
關閉 Firewalld 防火牆:
關閉 Firewalld 防火牆指令:
# systemctl stop firewalld
設定下次開機不會啟動 Firewalld 防火牆

# systemctl disable firewalld



Step 1: 安裝 Apache web server

yum install httpd
啟動Apache Server
service httpd start


Step 2: Install and run MySQL

安裝
yum install mysql-server
啟動 mysqld:
service mysqld start

Step 3: 修改密碼  MySQL

建立資料庫密碼
/usr/bin/mysql_secure_installation
按空白建立新密碼
Enter current password for root (enter for none): 
OK, successfully used password, moving on...
Step 4: 安裝 PHP

安裝PHP FOR Mysql
yum install php php-mysql

Step 5: 安裝PHP extensions套件

安裝相關PHP套件
yum install php-mysql php-pdo php-pear php-pecl php-xml php-gd php-zlib

Step 7: 測試 PHP 是否成功

vim /var/www/html/info.php
建立info.php內容
<?php
phpinfo();
?>
重新啟動Apache
service httpd restart

安裝 MySQL/MariaDB 資料庫

先更新 CentOS Linux 系統上的套件:
sudo yum update
安裝 MariaDB 伺服器:
sudo yum install mariadb-server
啟用 MariaDB 的 service(讓開機自動啟動):
sudo systemctl enable mariadb
立即啟動 MariaDB 的 service:
sudo systemctl start mariadb
檢查 MariaDB 伺服器是否有正常啟動:
systemctl status mariadb
預設的 MariaDB 只能從 localhost127.0.0.1)連線,因為安全性的因素,通常不建議隨便開放外面的存取。
剛安裝好 MariaDB 時,建議執行一次 mysql_secure_installation 這個安全性設定工具:
sudo mysql_secure_installation
這個設定工具可以幫助管理者設定 root 密碼、移除匿名登入帳號、禁止 root 從遠端登入、移除測試用的資料庫。
使用 root 帳號登入 MariaDB 伺服器:
mysql -u root -p
正常的話,就會進入 MySQL/MariaDB 互動式的操作畫面:
MySQL/MariaDB 互動式操作畫面

CentOS 7 安裝 phpMyAdmin

1. 安裝 EPEL Repository
在 CentOS 預設沒有包含 phpMyAdmin,安裝需要先加入 EPEL Repository

$ sudo yum install epel-release

$ sudo yum -y install phpmyadmin

$ sudo vi /etc/httpd/conf.d/phpMyAdmin.conf

裡面會找到 “Require ip” 及 “Allow from” 的設定,將 127.0.0.1 修改成你的 ip,再重新啟動 HTTPD

$ sudo systemctl restart httpd

要存取 phpMyAdmin,可以開啟以下網址,將 server-ip 換成你的主機 ip:
http://server-ip/phpmyadmin

RHEL / CentOS 7 安裝 ProFTPD


ProFTPD 要先安裝 EPEL Repository, EPEL Repository 包括一些 RHEL 預設以外的常用套件。
安裝 ProFTPD 及 proftpd-utils
安裝好 ProFTPD , 預設 firewalld 未有開放 FTP 對外存取, 要執行以下指令開放 FTP 存取:
啟動 ProFTPD 及設定開機自動啟動 ProFTPD:
取消與關閉 proftpd :
#systemctl disable proftpd.service
#systemctl stop proftpd
重新執行 proftpd :
#systemctl restart proftpd

  • 修改 /etc/proftpd.conf 檔案內容:
    #基本功能設定項目:
    ServerName           "OOOO的 FTP Server"
    ServerIdent     on   "歡迎光臨本站!"
    ServerAdmin     OOO@OOO.com
    
    ##指定為預設的站台,如果有不明的連線,亦會連進預設站台!
    DefaultServer   on
    
    ##設定使用者 chroot 功能,除了 adm 之外,其餘使用者均登入自己家目錄
    DefaultRoot     ~ !adm
    
    ##使用系統 PAM 功能,進行功能授權與身份驗證
    AuthPAMConfig   proftpd
    AuthOrder       mod_auth_pam.c* mod_auth_unix.c
    
    ##不使用 DNS 反查功能
    UseReverseDNS   off
    
    ##以何種身份在系統上執行 proftpd 程序
    User            nobody
    Group           nobody
    
    ##限定連線數量,以預防 DDoS 攻擊
    MaxInstances    20
    
    ##預防使用 ftpwho 及 ftptop 指令時,會中斷檔案傳輸
    UseSendfile     off
    
    ##定義記錄檔格式
    LogFormat       default "%h %l %u %t \"%r\" %s %b"
    LogFormat       auth    "%v [%P] %h %t \"%r\" %s"
    
    ##定義預設的記錄檔
    TransferLog     /var/log/proftpd/xferlog
    ExtendedLog     /var/log/proftpd/access_log    WRITE,READ write
    ExtendedLog     /var/log/proftpd/auth_log      AUTH auth
    ExtendedLog     /var/log/proftpd/paranoid_log  ALL default
    
    ##限制只有 root 才能掛載與缷載模組!一般使用者只能查詢掛載哪些模組
    ModuleControlsACLs    insmod,rmmod allow user root
    ModuleControlsACLs    lsmod allow user *
    
    
    導入模組方式:
    ##導入管理控制模組,管理人員可使用 ftpdctl 指令進行管理行為
    LoadModule      mod_ctrls_admin.c
    
    ##開啟上述功能模組,啟動 ftpdctl 指令的基本控制項目
    ControlsEngine        on
    ControlsACLs          all allow user root
    ControlsSocketACL     allow user *
    ControlsLog           /var/log/proftpd/controls.log
    
    ##經由 ftpdctl 指令,開啟管理控制項目
    <IfModule mod_ctrls_admin.c>
      AdminControlsEngine      on
      AdminControlsACLs        all allow user root
    </IfModule>
    
    ##導入限制目錄模組,使登入的人,限制在指定的家目錄內
    LoadModule      mod_vroot.c
    
    ###啟動上述模組,其功能相容性好過 PAM 功能 
    <IfModule mod_vroot.c>
      VRootEngine         on
    </IfModule>
    
  • 開啟 SELinux 限制:
    # setsebool -P allow_ftpd_full_access=1
    
  • 啟動 Proftp 測試:
    # systemctl start proftpd
1、/share/a修改預設目錄





DefaultRoot                     ~ !adm

修改成





DefaultRoot                     /share

修改後目錄
2、修改匿名用户目錄





<Anonymous ~ftp>

修改成





<Anonymous /share>

修改原匿名用户ftp的用户目錄為/share
3、修改默預設權限WRITE





<Limit WRITE SITE_CHMOD>
  DenyAll
</Limit>

改成





<Limit  SITE_CHMOD>
  DenyAll
</Limit>

預設會關掉寫入,就無法上傳
5、設定預設目錄
預設啟用了vroot,所以設定相對路徑即可,添加如下:





<Directory "/*">
    AllowOverwrite          no
    <Limit ALL>
        DenyAll
    </Limit>
    <Limit DIRS>
        AllowAll
    </Limit>
</Directory>
<Directory "/a">
    AllowOverwrite          no
    <Limit ALL>
        AllowAll
    </Limit>
</Directory>

/a就代表的是/share/a


來源資料:https://www.phpini.com/linux/centos-7-install-phpmyadmin
來源資料:https://blog.gtwang.org/linux/centos-7-install-mariadb-mysql-server-tutorial/
來源資料:https://ivanblagojevic.com/2017/12/how-to-install-wordpress-on-centos-6-server/

來源資料:https://www.phpini.com/linux/rhel-centos-7-install-proftpd