伺服器管理

解決Cannot stat() mounted device /dev/root: No such file or directory 錯誤

當我們利用quotacheck -avugm時,出現以下錯誤訊息時:

quotacheck: Cannot stat() mounted device /dev/root: No such file or directory

可以用以下指令檢查一下根目錄所在位置:

df -h

會出現類似下面的訊息:

Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda        47G  5.5G   41G  12% /

其中/dev/xvda就是根目錄實際位置,此時只要做個softlink即可

ln -s /dev/xvda /dev/root

接著再重新quotacheck一次,並重新啟用quota就可以了。

 

新增及擴展現有swap(虛擬記憶體)

如果現有的swap不太夠用,可以透過以下步驟快速擴展swap空間

指令如下:

  1. 首先在根目錄建立一個檔名為 swapfile 的 1GB 空檔案
    sudo dd if=/dev/zero of=/swapfile bs=1M count=1024
     
  2. 接下來把這個檔案格式化成swap格式
    sudo mkswap /swapfile
     
  3. 然後啟用這個swap
    swapon /swapfile
     
  4. 檢查記憶體及swap的總容量及使用狀況
    free -m
     
  5. 設定開機自動掛載,編輯/etc/fstab
    vim /etc/fstab
     
  6. 在最後一行加入以下內容
    /swapfile none swap sw 0 0

就這麼簡單!

寄件者政策架構 SPF 語法說明

詳細說明請見:http://www.openspf.org/SPF_Record_Syntax

以下幾個關鍵字,用來敘述一個domain用來外寄郵件的主機,基本有以下幾種類型(Mechanism):
all | ip4 | ip6 | a | mx | ptr | exists | include

而domain也可以定義一些modifiers如下。其中modifier僅能出現一次
redirect | exp

Mechanism會有以下四種前綴,當有符合mechanism的結果時,就會採取前綴所代表的動作,先說明這些前綴代表的意義(沒有寫前綴時,預設是+):

"+" Pass 
"-" Fail 
"~" SoftFail 
"?" Neutral

語法範例如下:

[Ubuntu]啟用配額管理 - Quota

  1. 首先安裝軟體
    apt-get install quota quotatool
     
  2. 接著編輯fstab
    vim /etc/fstab
     
  3. 假設需要配額管理的目錄是/home的話,檢查看是不是獨立的檔案系統,
    df -h /home
    如果Mount on的欄位出現 /home表示是獨立的檔案系統,不然通常是掛載在根目錄/
     
  4. 接著看看檔案系統的格式
    mount | grep home
    如果有看到 ext3 或 ext4就沒問題了
     
  5. 手動讓/home支援Quota
    mount -o remount,usrquota,grpquota /home
     
  6. 如果要開機自動啟用的話,要編輯 /etc/fstab
    vim /etc/fstab
    找到 /home那一行,把options欄位中的值,增加 ,usrjquota=quota.user,grpjquota=quota.group 

Apache無法啟動問題:Address already in use: make_sock: could not bind to address 0.0.0.0:80/443

有一次Server重開機之後,突然apache就突然無法啟動了,所以就查了一下,這表示port 80或443被佔用了,所以apache無法啟動,

這個問題其實是因為有使用ssl,而因為開機時apache需要自動啟動,但因為啟用ssl需要輸入ssl key,所以導致apache其實沒有正常啟動,但卻佔用了80及443這兩個port

解法:

  1. 找出目前apache的pid , 指令如下
    netstat -A inet -lnp | grep apache2
     
  2. 接著kill中止這個pid,假設pid是888,則指令如下
    kill -9 888
     
  3. 之後就可以重啟了
    service apache2 start

Linux 重大安全性漏洞 ShellShock 更新

比HeartBleed還要兇猛的漏洞-ShellShock,影響範圍為以Unix為基礎的作業系統,包含Mac OS以及 Linux。未進行更新的伺服器,將可被駭客輕易的遠端遙控

測試方法:

登入bash後,輸入以下指令後執行

env VAR='() { :;}; echo Bash is vulnerable!' bash -c "echo Bash Test"

如果出現

Bash is vulnerable!
Bash Test

則表示需要更新。

更新完成後的話,相同指令則會產生以下內容:

bash: warning: VAR: ignoring function definition attempt
bash: error importing function definition for `VAR'
Bash Test

更新方法:

[Postfix] 將郵件自動密件副本(BCC)到指定郵箱

Postfix 的設定檔(main.cf)中有三個參數,可讓我們設定自動密件副本(BCC)郵件,這三個參數分別是

  1. recipient_bcc_maps
    針對收件者BCC
  2. sender_bcc_maps
    針對寄件者BCC
  3. always_bcc
    不管收發都進行BCC

前兩個參數需要設定「目標Email」及「目的地Email」,參數設定格式範例如下:

  • 使用db檔(需用postmap 編譯名單檔):
    hash:/etc/postfix/rec_bcc_maps
  • 使用regexp文字檔
    regexp:/etc/postfix/sender_bcc_maps

若要使用db檔,格式如下:

Postfix 建置郵件伺服器 ─ main.cf 設定參數說明

本文轉自這裡-2003/03/21 作者李忠憲,因為是很久的文章了,怕不見備份於此。以下僅節錄main.cf的參數設定部分。

postfix 最被人稱道的地方在於設定檔的可讀性很高(當然是跟 sendmail 比),而在主要設定檔 main.cf 中,需要自行定義的東西並不多,而且這些參數就算不去定義,依照預設值也可以運作:

由本機寄出的郵件要使用哪個網域名稱

在 sendmail 中,這個功能稱為網域偽裝,也就是說可以和主機名稱不同,例如:本機名稱為 mail.spps.tp.edu.tw,而寄出的郵件其寄信人欄位則可以使用 spps.tp.edu.tw。(須配合 DNS MX 紀錄使用)

myorigin=spps.tp.edu.tw

不使用簡略名稱時,設定如下:

myorigin=mail.spps.tp.edu.tw

由於主機名稱與網域名稱會被反覆引用在不同設定值,為了簡化設定,通常是定義成變數: