2015年11月21日

dns server

安裝
sudo apt-get install bind9 bind9-doc 

開機時啟動
sudo chkconfig named on     

主要設定檔案
    /etc/bind/named.conf.option
    /etc/bind/named.conf
    /etc/bind/named.conf.local

vim /etc/bind/named.conf.local
加入
正解區

zone "xxxx.ntpc.edu.tw" in {
    type master;
    file "/etc/bind/db.xxxx.ntpc.edu.tw";
};

反解區:

zone "xx.20.163.in-addr.arpa" in {
    type master;
    file "/etc/bind/db.xx.20.163";
};

ipv6反解區(2001:288:2201::611):
zone "1.1.6.1.0.2.2.8.8.2.1.0.0.2.ip6.arpa" {
     type master;
     file "/etc/bind/20012882201611.rev";
};



公文管理
zone "tpc.gov.tw" in {
        type forward;
        forwarders {
                203.72.153.153;
                203.73.153.154;
                172.18.1.1;
                203.72.103.5;
        };
};

zone "ntpc.gov.tw" in {
        type forward;
        forwarders {
                203.72.153.153;
                203.73.153.154;
                172.18.1.1;
                203.72.103.5;
        };
};

如果有安全性需求可以限制查詢網段(勿照抄!)
allow-recursion { 127.0.0.1/32; 163.20.0.0/16;2001:288:2200::/39; };
在這裡可以查到學校的ipv6網段
http://enctc.ntpc.edu.tw/files/11-1000-158.php

 範例如下
zone "ntpc.gov.tw" in {
        type forward;
        forwarders {
                203.72.153.153;
                203.73.153.154;
                172.18.1.1;
                203.72.103.5;
        };
        allow-recursion { 127.0.0.1/32; 163.20.0.0/16;2001:288:2200::/39; };
};


我們加入了正反解區,就要有相關檔案,
vim /etc/bind/db.xxxx.ntpc.edu.tw
$TTL    604800
@       IN SOA  ns.xxxx.ntpc.edu.tw. admin.xxxx.ntpc.edu.tw. (
                2013080901      ; Serial Number
                604800          ; Refresh
                86400           ; Retry
                2419200         ; Expire
                604800 )        ; Minimum

@       IN NS   ns.xxxx.ntpc.edu.tw.
@       IN A    163.20.xx.1

ns      IN A    163.20.xx.1
www     IN A    163.20.xx.3
ftp   IN A    163.20.xx.5
ns      IN     AAAA      2001:288:2263:1

vim /etc/bind/db.xx.20.163

$TTL    604800
@       IN SOA  ns.xxxx.ntpc.edu.tw. admin.xxxx.ntpc.edu.tw. (
                20070926        ; Serial Number
                604800          ; Refresh
                86400           ; Retry
                2419200         ; Expire
                86400 )         ; Minimum

@       IN NS   dns.xxxx.ntpc.edu.tw.

1      IN PTR  dns.xxxx.ntpc.edu.tw.
3      IN PTR  www.xxxx.ntpc.edu.tw.
5      IN PTR  ftps.xxxx.ncku.edu.tw.

vim /etc/bind/20012882201611.rev

$ORIGIN 1.1.6.1.0.2.2.8.8.2.1.0.0.2.ip6.arpa.
@ IN SOA ns.xxxx.ntpc.edu.tw. admin.ns.xxxx.ntpc.edu.tw. (
                        20070926        ; Serial Number
                604800          ; Refresh
                86400           ; Retry
                2419200         ; Expire
                86400 )         ; Minimum
)

@                    IN    NS     ns.xxxx.ntpc.edu.tw.
1.1.1.6.1.0.2.2.8.8.2.1.0.0.2.ip6.arpa.    IN    PTR    ns.xxxx.ntpc.edu.tw.


    MNAME 為 primary DNS server,輸入主要的 DNS 的 FQDN!
    RNAME 為系統聯絡人的 E-mail,記得要把 @ 符號取代為 .,還有因為位址是 FQDN,所以也別忘了最後面的 .。
    SERIAL 為 DNS record 的流水號,每次更新後記得也要更新這個編號,而且要遞增!這樣一來,其他 DNS server 才知道 DSN record 有更新。
    REFRESH 為次要 DNS server 的更新時間,表示次要 DNS server 需要多久來跟主要 DNS server 同步資料。
    RETRY 為次要 DNS server 若是更新失敗要重試之前所需要等待的時間。
    EXPIRE 為次要 DNS server 的 DNS record 過期時間,也就是如果次要 DNS server 一直無法向主要 DNS server 進行資料更新的話,一旦過了這個時間後,次要 DNS server 將不會再進行解析 DSN record。
    MINIMUM 為 DNS record 的最小生存時間。當某個紀錄被查詢到後,DNS server 會將它給暫存起來,而在這個時間內的查詢都將直接利用該暫存的答案進行答覆。過了這個時間後,如果新的查詢才會進行解析。


重啟dns
sudo  service bind9 restart

nds log在 /var/log/syslog

測試指令 nslookup host whois dig


dns的安全性設定


1.顯隱藏版本
在named.conf中加入一行
version "BIND";

2.只有內部機器可以查詢
  allow-query { 163.20.0.0/16; 10.0.0.0/8; 203.72.0.0/16; };
 
3. 限制所有查詢要求 allow-recursion
  allow-recursion { 127.0.0.1/32; 10.0.0.0/8; 163.20.0.0/16; };


dhcp server與webmin

1.ubuntu安裝dchp
sudo -s
apt-get update
apt-get install isc-dhcp-server

##如果要移除apt-get remove isc-dhcp-server

設定檔案/etc/dhcp/dhcp.conf
先做備
cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf-bak
vim /etc/dhcp/dhcpd.conf

說明:
網域名稱
option domain-name "example.org";
dns server設定
option domain-name-servers ns1.example.org, ns2.example.org;
預設dchp出租時間
default-lease-time 600;
最大出租時間
max-lease-time 7200;

設定範例,把xx改成學校的號碼
subnet 10.231.xx.0 netmask 255.255.255.0 {
  range 10.231.xx.50 10.231.xx.250;
  option domain-name-servers 203.72.153.6, 168.95.1.1;
  option domain-name "xxxx.ntpc.edu.tw";
  option subnet-mask 255.255.255.0;
  option routers 10.231.xx.254;
  option broadcast-address 10.231.xx.255;
  default-lease-time 600;
  max-lease-time 7200;
##綁mac設定固定IP
host academic00 {
  hardware ethernet 08:00:07:26:c0:a5;
  fixed-address 10.231.xx.20;
}


}

簡易設定程式
mkdhcpd.sh

csv中host名稱不可以是中文
computer.csv

下載後,在所在位置,開啟終端機
sudo -s
chmod +x mkdhcpd.sh
bash mkdhcpd.sh computer.csv
會自動按照csv設定幫您設定管理電腦IP
注意的地方是發固定IP的位址不可以和range的部分相重疊。

cp dhcpd.conf /etc/dhcp/dhcpd.conf
/etc/init.d/isc-dhcp-server restart

圖形界面管理webmin
官網:http://www.webmin.com/
下載deb版本
http://prdownloads.sourceforge.net/webadmin/webmin_1.770_all.deb
安裝
sudo dpkg -i webmin_1.770_all.deb
apt-get -f install
開啟瀏覽器輸入https://IP:10000
輸入帳號和密碼






2015年11月15日

電光超人

心中突然有個想法,來做個電影版的電光超人,應該做得起來。展場上應該很有效果。
材料:motuduino、LED燈條、s4a sencerboard、鋰電池
5米的LED燈條是要接110V的電到變壓器中轉成12V 2A的電出來,而motoduino的版子可以撐到12V,這樣就好玩了。
於是把這些組合起來。
首先把LED的電源改成motoduino供電,走pin 6 pwm(馬達腳位),但motoduino的版子只有5V供電,所以要外接電源。接起來就變成這樣了。

使用arduino ide+ AdruBlock把程式寫入板子(加上s4a的sencer board可以做互動),就變成可以到處移動的電光超人了。