目錄表

CentOS+基本服務安裝程序

安裝 CentOS 作業系統

啟用 SELinux : 警告 並非預設值, 所以常常會出現這部份沒設正確的狀況!!!

確認 CentOS 安裝完成

  1. 建立備援 root 帳號(Exp. misadm)
  2. 建立登入帳號 (Exp. jonathan)
  3. 網路可否正常運作 (ssh 到外部主機, 然後再 ssh 回來)

更新 CentOS 版本作業

  1. 使用 root 身分登入主機
  2. 安裝 yum 更新套件
  3. 使用 yum 更新到最新版本
  4. 重新啟動電腦讓新版的 kernel 生效
su - root
yum update; sync; sync; sync; reboot

安裝 EPEL 程序

CentOS7

CentOS6

CentOS5

安裝其餘系統管理套件

yum install -y iptraf sysstat net-snmp mrtg

設定 snmp agent

cd /etc/snmp
vi snmpd.conf
com2sec notConfigUser  default       public

group   notConfigGroup v1           notConfigUser
group   notConfigGroup v2c           notConfigUser

view    systemview    included   .1.3.6.1.2.1.2
view    systemview    included   .1.3.6.1.2.1.1
view    systemview    included   .1.3.6.1.2.1.25.1.1
view    systemview    included   .1.3.6.1.2.1.2.2.1

access  notConfigGroup ""      any       noauth    exact  systemview none none

syslocation Taipei
syscontact Root <root@localhost>
[root@ed2 snmp]# chkconfig --list | grep snmpd
snmpd           0:off   1:off   2:on 3:on       4:on    5:on    6:off

安裝與設定 ntpd

yum -y install ntp

安裝與設定 apache

yum -y install httpd mod_ssl

安裝與設定 MySQL

yum -y install mysql-server mysql-devel

安裝與設定 PostgreSQL

yum install postgresql-server postgresql-devel

安裝 php

安裝 perl Module

yum install -y perl-Text-Iconv perl-Mail-Sendmail perl-DBI perl-DBD-Pg perl-DBD-mysql perl-Digest-Perl-MD5

安裝 phpMyAdmin

安裝 phpPgAdmin

安裝 SubVersion(svn)

安裝 SubVersion rpm

壓力測試發現在同時 svnadmin export 與 svn update 時會出現 db 異常問題, 導致無法運作, 必須執行 svnadmin recover svndir 修復, 以下就是針對 trybox 所修復的範例:

cd /var/www/svn
svnadmin recover trybox
chown -R apache:apache trybox
yum install -y subversion mod_dav_svn

編輯設定檔 subversion.conf

cd /etc/httpd/conf.d/
vi subversion.conf
# Needed to do Subversion Apache server.
LoadModule dav_svn_module     modules/mod_dav_svn.so

# Only needed if you decide to do "per-directory" access control.
#LoadModule authz_svn_module   modules/mod_authz_svn.so
:
:
:
<Location /repos>
   DAV svn
   SVNParentPath /var/www/svn

   # Order deny,allow
   # Deny from all
   # Allow from 127.0.0.1
   # Allow from ::1
   # Allow from .ichiayi.com

   AuthzSVNAccessFile /var/www/control
   # Satisfy Any

   # Limit write permission to list of valid users.
#   <LimitExcept GET PROPFIND OPTIONS REPORT>
      # Require SSL connection for password protection.
      SSLRequireSSL 

      AuthType Basic
      AuthName "Authorization Realm"
      AuthUserFile /var/www/passwdfile
      Require valid-user
#   </LimitExcept>
</Location>
  • 如果 svn 要改用 http:// 沒有加密傳送方式, 就在 SSLRequireSSL 前加上 # 拿掉 SSLRequireSSL 功能
  • 如果不需要設定特定使用者權限,就在 AuthzSVNAccessFile 前加上 # 拿掉指定權限功能, 也不用編輯 /var/www/control
  • 如果拿掉 Satisfy Any 前 #, 以下的限制 SSLRequireSSL / Deny from / Allow from 都會失效

依實際需要建立 svn 目錄與專案

mkdir /var/www/svn
cd /var/www/svn
svnadmin create trybox
chown -R apache:apache trybox

設定存取 subversion 用戶帳號密碼

htpasswd -c /var/www/passwdfile jonathan
htpasswd /var/www/passwdfile trybox
[root@tryboxap1 svn]# htpasswd -c /var/www/passwdfile jonathan
New password:
Re-type new password:
Adding password for user jonathan

[root@tryboxap1 svn]# htpasswd /var/www/passwdfile trybox
New password:
Re-type new password:
Adding password for user trybox

設定每個使用者在每個 repos 內的權限

vi /var/www/control
[trybox:/]
jonathan = rw
trybox = r

重起 apache 讓 subversion 生效

service httpd restart

安裝 cronolog 讓 log 檔可自動依日期分檔

yum install -y cronolog

安裝 RRDTool

yum install rrdtool

設定 iptables

vi /etc/sysconfig/iptables
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5432 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
service iptables restart

設定 yum-cron 自動升級