2015年10月12日 星期一

[Raspberry Pi 2] 防止DHCP client修改/etc/resolv.conf


一、簡介

  最近碰Raspberry PI 2遇到一個問題,/etc/resolv.conf內總是被修改多了一項nameserver 192.168.0.1,導致DNS service總是有問題。怎麼看都覺得跟dhcp有關係。

       就在透過find查詢/etc下檔案內容後,果然發現在/etc/dhcp3/dhclient-enter-hooks.d/與/etc/dhcp/dhclient-enter-hooks.d內的shell script有點嫌疑。







二、解決方法

這邊提供的方法有兩種:

方法(1):複寫make_resolv_conf()

  從上面我們可以看到,基本上是make_resolv_conf()在作亂。所以可以透過複寫make_resolv_conf()來達到竄改的功能。
  • 首先建立/etc/dhcp/dhclient-enter-hooks.d/nodnsupdate這個檔案。
  • 編輯其內容,內容改為如下:
#!/bin/sh
make_resolv_conf() {
    :
}
  • 最後,加上execute權限:chmod +x /etc/dhcp/dhclient-enter-hooks.d/nodnsupdate
至於dhcp3裡面的,估計也加一份到相同路徑可能會比較好一點。


方法(2):將/etc/resolv.conf加入防止寫入

  這個方法最直接也比較省事,但是卻不是個好的解決方法…只要下個指令就好了。
  • 首先,修改/etc/resolv.conf內容,將要的DNS伺服器設定好
  • 之後下指令,修改attribute:chattr +i /etc/resolv.conf,搞定

--------------------------

額外想法:修改dhclient的shell

  因為實在懶得認真看人家寫的shell,估計如果花心思去看dhclient的shell,然後將shell裡面會動到resolv.conf的部分修改掉,應該才是正確的做法。如果之後有機緣在來補上吧…



沒有留言:

張貼留言