2010年12月14日 星期二

Ubuntu iscsi安裝與設定

先準備好iscsi設備,我準備的是以NA模擬器弄出來的iscsi硬碟
NA部份設定略過不談,本篇只討論在ubuntu10.04上怎使用iscsi....

1.相關套件:


open-iscsi
//建議用apt-get 安裝,會帶open-iscsi-utils

2.相關目錄與檔案:

/etc/iscsi/
/etc/init.d/open-iscsi   //服務起停

3.實做:
$ sudo cat /etc/iscsi/initiatorname.iscsi     //查詢iscsi name,類似san 的wwn
InitiatorName=iqn.1993-08.org.debian:01:8c1d5772487a   //"="後那一串必須加到NA裡面作設定

$ sudo iscsiadm -m discovery -t st -p NA的IP    //尋找target
//找到後會列出可用的iSCSI Target名稱,而且在/etc/iscsi/nodes下會產生對應的目錄

$ sudo iscsiadm -m node -T "iscsi target名稱" -p "NA IP" -l   //登入,成功會有success訊息
Logging in to [iface: default, target: iqn.1992-08.com.netapp:sn.99929383, portal: 192.168.56.200,3260]
Login to [iface: default, target: iqn.1992-08.com.netapp:sn.99929383, portal: 192.168.56.200,3260]: successful

$ sudo fdisk -l    //應該要能夠看到分享出來的目錄

如果沒有出現,可試試下面的方式:
$ sudo su -    //因為導向不支援sudo所以要變換成root
$ echo "- - -" > /sys/class/iscsi_host/host7/device/scsi_host/host7/scan
//其中,hostX號碼會變動,請依實際情況修正

之後就可以開始使用iscs硬碟嚕


4.補充:
$ sudo iscsiadm -m node -T "iscsi target名稱" -p "NA IP" -l   //登出
$ sudo iscsiadm -m node -o delete -T 要刪除的Target名稱 -p NAS的IP     //刪除已不用的iscsi目錄




Windows上使用:

1.安裝工具:
到微軟下載工具程式:Initiator-2.08-build3825-x86fre.exe 並安裝

2.設定:
從開始功能表中選取"Microsoft iSCSI Initiator"


將Initiator Node Name 設到NA的initiator group中

到"Discovery頁面",找到"Target Portals",點選Add -->會跳出右邊視窗,輸入NA IP

完成後,在targets就可以看到NA的資料:
點選Logon...到磁碟管理應該就可以看到新的iscsi硬碟



2010年12月8日 星期三

Linux套件管理工具介紹

Linux上只要有網路,安裝套件算相當容易,而安裝指令依據不同distro有分兩大派系,
一邊是RedHat的YUM+RPM,另一邊就是Debian的apt-get + dpkg,另外還有opensuse的yast
但由於max對這個不熟,且opensuse可以用yum...所以暫時略過不談

yum伺服器指向設定:
/etc/yum.repo.d/*.repo           //內容請參考鳥哥網站

apt-get伺服器指向設定:
/etc/apt/sources.list

以下針對兩邊常用的部份作簡單介紹:

1.RPM:     //必須自己下載rpm檔
安裝:
rpm -ivh  套件檔案
i:安裝
v:詳細模式
h:顯示安裝進度

更新:
rpm -Uvh 套件名稱
U:更新
移除:
rpm -e 套件名稱

查詢:
rpm -qa
q:查詢
qa:列出所有已安裝的套件
//常配合 |grep "關鍵字" --查詢是否有安裝相關套件

rpm -ql 套件名稱
ql:列出所有該套件所安裝之目錄與檔案

2.YUM:     //用以解決相依性問題
安裝:
yum install 套件名稱

搜尋套件:
yum search 套件名稱
or
yum list |grep 套件關鍵字   //如果不確定名稱可用這個找

更新:
yum update 套件名稱   //更新已安裝套件

清除yum暫存檔:
yum clean    //清除位在/var/cache/yum的暫存檔,可加上all參數全部清除

套件移除
yum remove 套件名稱   //依據相依性移除套件
套件群組查詢與安裝
yum grouplist    //列出所有群組

yum groupinstall 群組名稱   //根據群組名稱安裝,建議使用英文名稱
yum 使用proxy
# vim /etc/yum.conf
proxy=http://proxy.moe.edu.tw:3128     //根據自己的環境設定

3.dpkg:     //必須下載deb檔
安裝:
dpkg -i  套件檔案

更新:
dpkg --update-avail 套件檔案

移除:
dpkg -r 套件名稱

查詢:
dpkg -s 套件名稱   //查詢已安裝套件內容

4.apt-get:
安裝:
apt-get install  套件名稱    //根據相依性安裝

移除:
apt-get remove  套件名稱   //根據相依性移除套件,保留設定檔

apt-get remove --purge  套件名稱   //完整移除,連設定檔都不留

更新:
apt-get update   //更新套件資料庫內容,建議安裝套件前先做

apt-get upgrade   //查詢套件資料庫有無安裝套件新版本,若有就更新



參考文件:
1.鳥哥私房菜
2.http://wiki.ubuntu.org.cn/index.php?title=Apt%E5%92%8Cdpkg%E5%BF%AB%E9%80%9F%E5%8F%82%E8%80%83&variant=zh-tw
3.http://jerome.anyday.com.tw/archives/47

2010年11月19日 星期五

雲端主機(二)--再加一台linux為node2



h2準備:
1.新增user: hadoop,並設定金鑰登入
# useradd hadoop
# su - hadoop
$ ssh-keygen
//然後將自己的public_key丟給server並放到authorized_keys中
//取回server上hadoop的key放到authorized_keys中
//完成後互相ssh看是否正常

2.修改/etc/hosts    //讓兩邊一致,用ping測試
140.137.215.238 a238
192.168.188.10 h2

3.安裝sun-jdk
//下載tar檔
# sh jdk-6u22-linux-i586-rpm.bin
................

4.修改a238上的XML檔案:
$ vim core-site.xml







$ vim mapred-site.xml






5直接將a238上的hadoop 拷貝過來
# scp -r a238:~/hadoop-0.21.0 .
//記得改過server上的XML後再拷貝

//將a238與h2都啟動
$ cd hadoop-0.21.0
$bin/start-all.sh

測試:
用browser看http://a238:50070
應該會看到兩個node

架設雲端主機--hadoop(單機測試)


相關檔案:
jdk-6u22-linux-i586-rpm.bin    //hadoop需要昇陽版本的jdk
hadoop-0.21.0.tar.gz     

環境準備:
1.檢查java環境   //安裝時不要選取java...光碟中的是openjava
# java -version
or
# rpm -qa |grep java/jdk

//如果真的裝了兩三套以上的java..可用以下指令切換實際運作的是哪一套
# alternatives --install /usr/bin/java java /usr/java/jdk1.6.0_22/bin/java 1
//指令格式:   alternatives --install <連結> <名稱> <路徑> <優先順序>
# alternatives --config java     //這邊的java就是上面的名稱
有 2 程式提供 'java'。

  選擇        指令
-----------------------------------------------
   1           /usr/java/jdk1.6.0_22/bin/java
*+ 2           /usr/lib/jvm/jre-1.6.0-openjdk/bin/java

請輸入以保留目前的選擇[+],或輸入選擇號碼:1
//+表示目前設定的是哪一套java
//輸入數字選擇想要的版本

2.建立帳號hadoop並設定不須密碼登入
# useradd hadoop
# su - hadoop
$ ssh-keygen
$ cd .ssh
$ cat id_rsa.pub > authorized_keys    //將公鑰內容放到authorized_keys中
//這個範例因為是第一次做可用">",安全應為">>"
$ chmod 600 authorized_keys    //要修改權限才可以用

3.將hadoop下載到hadoop家目錄並解壓縮
# su - hadoop     //用user: hadoop來執行即可
$ wget wget‭ ‬http‭://‬ftp.tcc.edu.tw/pub/Apache‭//‬hadoop/core/hadoop-0.21.0‭/‬hadoop-0.21.0‭.‬tar.gz
$ tar zxvf hadoop-0.21.0‭.‬tar.gz

4.hadoop環境設定:
$ cd hadoop-0.21.0
$ vim conf/hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.6.0_22/
//將這行的註解取消,並根據自己的java版本給予正確目錄

$ tree -L 1    //檢視hadoop-0.21.0目錄內容
.
|-- LICENSE.txt
|-- NOTICE.txt
|-- README.txt
|-- bin           //放置執行檔的目錄,會根據conf的設定
|-- c++
|-- common
|-- conf            //放置設定檔的目錄
|-- hadoop-common-0.21.0.jar
|-- hadoop-common-test-0.21.0.jar
|-- hadoop-hdfs-0.21.0-sources.jar
|-- hadoop-hdfs-0.21.0.jar
|-- hadoop-hdfs-ant-0.21.0.jar
|-- hadoop-hdfs-test-0.21.0-sources.jar
|-- hadoop-hdfs-test-0.21.0.jar
|-- hadoop-mapred-0.21.0-sources.jar
|-- hadoop-mapred-0.21.0.jar
|-- hadoop-mapred-examples-0.21.0.jar
|-- hadoop-mapred-test-0.21.0.jar
|-- hadoop-mapred-tools-0.21.0.jar         //以上為包裝好的java服務程式
|-- hdfs                //hadoop節點間共用的檔案系統目錄
|-- lib
|-- mapred
`-- webapps

$bin/hadoop     //如果可以看到下面訊息代表安裝正常
Usage: hadoop [--config confdir] COMMAND
       where COMMAND is one of:
  fs                   run a generic filesystem user client
  version              print the version
  jar             run a jar file
  distcp copy file or directories recursively
  archive -archiveName NAME -p * create a hadoop archive
  classpath            prints the class path needed to get the
                       Hadoop jar and the required libraries
  daemonlog            get/set the log level for each daemon
 or
  CLASSNAME            run the class named CLASSNAME

Most commands print help when invoked w/o parameters.

//實作計算pi值
$ bin/hadoop jar hadoop-mapred-examples-0.21.0.jar pi 100 100000     //計算pi的程式放在前面的.jar中
...............
Job Finished in 11.183 seconds
Estimated value of Pi is 3.14158440000000000000
//計算結果
5.格式化hdfs
$ export HADOOP_HOME=/home/hadoop/hadoop-0.21.0    //可寫入.bashrc讓登入時自動export
$ bin/hdfs namenode -format    
//在執行訊息中可以看到將檔案做在/tmp中
//10/11/19 15:05:54 INFO common.Storage: Storage directory /tmp/hadoop-hadoop/dfs/name has been successfully formatted.
$ ls /tmp/hadoop-hadoop      //有東西就好,請勿變動他

6.設定XML conf檔
$vim conf/core-site.xml

//由於部落格沒辦法使用<故改為圖片











$ vim conf/hdfs-site.xml












$ vim conf/mapred-site.xml











啟動hadoop:
$ bin/start-all.sh     //如果ssh金鑰登入有問題這邊會出現要打密碼

//可再拿pi那個範例來練習玩看看

檢視:
用browser:
1.http://lcaolhost:50070    //可看到namenode資訊
2.http://localhost:50030     //可看到job tracker資訊
3.http://localhost:50090     //可看到SecondNameNode資訊


可參考教學網站: 
1.http://www.inside.com.tw/11/04/cloud-diy1
2.建置到三朵雲

Transparent Proxy Server

Transparent Proxy 即不須user設定但會自動使用proxy上網(user端無感) 



環境設定:
1.Server端:
服務:
NAT
DHCP
Proxy

網路設定:
eth0:140.137.215.238/24  GW:140.137.215.254    //對外ip
eth1:192.168.188.254/24    //內部GW

2.Client:
網路設定DHCP

Server設定:
1.NAT:
# sysctl -w net.ipv4.ip_forward = 1
# sysctl -p
# iptables -t nat -A POSTROUTING -o eth0 -s 192.168.188.0/24 -j MASQUERADE
//表示由192.168.188.0/24來目的地eth0的封包偽裝成eth0的ip封包
//記得寫入rc.local,或建立script設定成開機執行

2.DHCP:
# cp /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample /etc/dhcpd.conf   //拷貝範例檔
# vim /etc/dhcpd.conf
ddns-update-style interim;
ignore client-updates;

subnet 192.168.188.0 netmask 255.255.255.0 {

# --- default gateway
        option routers                  192.168.188.254;
        option subnet-mask              255.255.255.0;

        option nis-domain               "domain.org";
        option domain-name              "domain.org";
        option domain-name-servers      168.95.1.1;

        option time-offset              -18000; # Eastern Standard Time

        range dynamic-bootp 192.168.188.100 192.168.188.200;
        default-lease-time 21600;
        max-lease-time 43200;

        # we want the nameserver to appear at a fixed address
        host ns {
                next-server marvin.redhat.com;
                hardware ethernet 12:34:56:78:AB:CD;
                fixed-address 207.175.42.254;
        }
}
//詳細設定介紹請參考鳥哥或我的另一篇文章

#/etc/init.d/dhcpd restart

3.squid
# vim /etc/squid/squid.conf
http_port 3128 transparent  //v.2.6 後的版本加這段即可
acl our_networks src 192.168.188.0/24
http_access allow our_networks
//在正確的位置放上這兩行

# /etc/init.d/squid restart

4.再加一條NAT規則,將使用者的80port導向squid server
# iptables -t nat -A PREROUTING -i eth1 -s ! 192.168.188.254 -p tcp --dport 80 -j REDIRECT --to-port 3128
//將192.168.188.0/24網段過來的網頁連線導向到3128port
//-s ! ip 表示除此ip以外,本例表示排除本機eth1的ip

測試:
用Client端dhcp並且不設定proxy上網,在server端/var/log/squid/store.log應該會增加很多資料

2010年11月18日 星期四

Linux期末考

請安裝一個CentOS(vm),並符合以下需求:
  1. 檔案系統採LVM方式,VG名稱改為mainvg,並具有以下LV配置:
  LV名稱   掛載點   大小
  lv_root  /   10GB
  lv_home  /home  2GB
  lv_var    /var  5GB
 
  2. 網路卡採Bridged橋接方式,IP位址為固定(140.137.215.2xx)
  3. 主機名稱為a2xx.snpy.org(以學號方式命名xx)
  4. 安裝軟體需要勾選Server後,再加入以下自訂軟體:
    開發函式庫,MySQL伺服器,管理工具,系統工具,叢集與叢集儲存
  5. 建立一使用者tom,群組為wheel,密碼為ump392a,並加入無密碼可以sudo。
  6. 設定開機自動啟動服務:httpd, mysqld, named, nfs, saslauthd, smb, ypbind

安裝設定略過不談.....
4.如果有忘記勾選安裝的套件:
# yum grouplist      //找到要裝的套件群組名稱
#yum groupinstall "群組名稱" "群組2" ....    //建議使用英文

5.建立使用者:
# useradd -g wheel tom
# passwd tom
#visudo    //底下這行註解取消
%wheel        ALL=(ALL)       NOPASSWD: ALL

6.設定開機啟動服務
# chkconfig 服務名稱 --list     //檢查設定狀態
# chkconfig 服務名稱 on/off    //設定開機起停,--level 3,5    在rc3 與 5的起停設定
設定E-mail伺服器,並符合以下需求:
  1. 禁止使用一般SMTP送信(由來源IP或網域),改採SMTP帳號與密碼驗證方式。
  2. 能夠寄送與接收以下網域的信件:
    a2xx.snpy.org
    mail.a2xx.snpy.org
  3. 使用POP3協定供使用者收信。
  挑戰題:每個帳號信箱未讀的信件最多只能使用5MB的空間。


1.安裝postfix與sasl
# yum install postfix cyrus-sasl cyrus-sasl-lib cyrus-sasl-md5 cyrus-sasl-plain

2.確認sendmail狀態:
#/etc/init.d/sendmail status   //若有啟動記得停止,並設定開機不啟動
#netstat -naplt    //檢查25port有無被占用

3.設定postfix
# vim /etc/postfix/main.cf

myhostname = a238.snpy.org
mydomain = a238.snpy.org
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, mail.$myhostname
smtpd_sasl_auth_enable = yes      //啟動sasl相關模組功能
broken_sasl_auth_clients = yes
smtpd_sasl_security_options = noanonymous

4.設定DNS:
# cd /var/named/chroot/
# cp /usr/share/doc/bind-9.3.6/sample/* . -rf
# /usr/sbin/dns-keygen
XXXXXXXXXXXXXXXXXXXXXXXXXX      //將產生的值拷貝到應放的位置
#vim etc/nmaed.conf
view "localhost_resolver"
{
        include "/etc/named.rfc1912.zones";      //localhiost的zone檔案放置區,將a238...放到檔案裏面
};
view "internal"
{
        zone "a238.snpy.org" {
                type master;
                file "named.a238";
        };
};
key ddns_key
{
        algorithm hmac-md5;
        secret "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
};
view    "external"
{
        zone "a238.snpy.org" {
                type master;
                file "named.a238";
        };
};

# cp var/named/localhost.zone var/named/named.a238       //都在chroot情況下做
# vim var/named/named.a238
$TTL    86400
@               IN SOA  @       root (
                                        42              ; serial (d. adams)
                                        3H              ; refresh
                                        15M             ; retry
                                        1W              ; expiry
                                        1D )            ; minimum

                IN NS           @
                IN A            140.137.215.238
mail            IN A            140.137.215.238
@               IN MX 10        @
mail            IN MX 10        mail

# /etc/init.d/named restart
# dig mail.a238.snpy.org MX @localhost
# dig a238.snpy.org MX @localhost
//上面兩個都要正常解析出MX紀錄

#/etc/init.d/postfix resatrt    //在outlook上設定好應該就可以收發信了

5.最多5mb---利用quota來做,下面samba也要就一起處理
#vim /etc/fstab
/dev/mainvg/lv_root     /                       ext3    defaults,usrquota       1 1
/dev/mainvg/lv_home     /home                   ext3    defaults        1 2
/dev/mainvg/lv_var      /var                    ext3    defaults,usrquota        1 2

#mount -a    //根據fstab重新掛載
#mount       //檢查一下
/dev/mapper/mainvg-lv_root on / type ext3 (rw,usrquota)
/dev/mapper/mainvg-lv_var on /var type ext3 (rw,usrquota)
#quotacheck -avgu         //產生quota檔案
#quotaon -avug       //啟動quota
#edquota tom
Disk quotas for user tom (uid 500):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/mapper/mainvg-lv_root      10240       9000      10240          2        0        0
  /dev/mapper/mainvg-lv_var          4       4096       5120          1        0        0

#edquota -p tom -u 使用者    //以tom的設定為範本設定其他人

**找到postfix上設定信件大小的設定**
# 信箱大小限制,單位 bytes,0 為不限。
mailbox_size_limit = 0
# 單封信件大小限制,單位 bytes
message_size_limit = 5120000
設定Samba伺服器,提供Windows以網路芳鄰存取檔案,並符合以下需求:
  1. Samba主機資源分享的名稱為SAMBA3(設定值: server string)
  2. 使用者使用帳號/密碼才能登入Samba主機
  3. 登入成功後可看到兩個目錄,一個是使用者名稱(代表家目錄,可讀寫),另一個是分享區,名稱為public_share(可讀寫)
  4. 每個人在public_share分享區中存放的檔案不得超過10MB。


1.編輯設定檔
# vim /etc/samba/smb.conf
server string = SAMBA3
security = user

[public_share]
        comment = public_share
        path = /opt/public_share
        public = yes
        writable = yes
        browseable = yes

2.設定密碼:
#smbpasswd -a tom     //新增iom的samba密碼

3.建立目錄:
#mdir /opt/public_share
#chmod 777 /opt/public_share    //根據題意給予權限

4.測試:
# testparm    //測試有無打錯字
#/etc/init.d/smb   restart

//可用windows連網芳看是否正常
請建置NIS伺服器,並符合以下需求:
  1. 設定前請先建立使用者eddie,UID為1100,群組為rd,GID為3000。
  2. NIS網域名稱為a2xx。
  3. 以NFS提供/home/eddie/目錄供140.137.215.0/24的電腦掛載,並設定為可讀寫,並確認在其他NIS用戶端以eddie成功登入後可進入掛載的家目錄。
  4. NIS的帳號資料需包含使用者tom與eddie。

1.安裝server套件
# yum install ypbind ypserv yp-tools

2.增加eddie
# groupadd -g 3000 rd
#useradd -u 1100 -g rd eddie     //記得設定passwd

3.設定nis server
# nisdomainname a238
# vim /etc/sysconfig/network    //加入
NISDOMAIN=a238

#vim /etc/hosts     //檢查a238可否解析,應該有下面一行
140.137.215.238         a238.snpy.org a238

#vim /etc/ypserv.conf      //將最後一行註解與空白取消
*                        : *       : *                : none

#/etc/init.d/ypserv restart      //啟動服務
# /etc/init.d/yppasswdd restart       //啟動密碼服務

# rpcinfo -p     //確認是否正常啟動
    100004    2   udp    716  ypserv
    100004    1   udp    716  ypserv
    100004    2   tcp    719  ypserv
    100004    1   tcp    719  ypserv
    100009    1   udp    728  yppasswdd

# /usr/lib/yp/ypinit -m    //建立nis map檔(資料庫格式),將server帳號資料放到/var/yp/marcus 下
                                 //做完後帳號有修改要重做一次,yppasswd可以改密碼
At this point, we have to construct a list of the hosts which will run NIS
servers.  a238.snpy.org is in the list of NIS server hosts.  Please continue to add
the names for the other hosts, one per line.  When you are done with the
list, type a <control D>.
        next host to add:  a238.snpy.org
        next host to add:  a238
        next host to add:          //用ctrl+D來離開
The current list of NIS servers looks like this:

a238.snpy.org
master.marcus

Is this correct?  [y/n: y]  y
We need a few minutes to build the databases...
Building /var/yp/marcus/ypservers...
Running /var/yp/Makefile...
gmake[1]: Entering directory `/var/yp/marcus'
Updating passwd.byname...
Updating passwd.byuid...
Updating group.byname...
Updating group.bygid...
Updating hosts.byname...
Updating hosts.byaddr...
Updating rpc.byname...
Updating rpc.bynumber...
Updating services.byname...
Updating services.byservicename...
Updating netid.byname...
Updating protocols.bynumber...
Updating protocols.byname...
Updating mail.aliases...
gmake[1]: Leaving directory `/var/yp/marcus'

a238.snpy.org has been set up as a NIS master server.

Now you can run ypinit -s a238.snpy.org on all slave server.
# ypcat -h localhost passwd.byname    //可檢查是否正常運作,會show出帳號資料

4.nfs
# vim /etc/exports
/home/eddie     140.137.215.0/24(rw,sync)
#exportfs   //也可以重開服務

啟用sudo功能

在RHEL與CentOS上啟用sudo

1.檢查是否有wheel群組
# cat /etc/group  |grep wgeel

2.開啟wheel使用sudo權限
# visudo
# %wheel        ALL=(ALL)       ALL

# %wheel        ALL=(ALL)       NOPASSWD: ALL

//以上兩行選擇需要的情況解除註解
//第一行為需要輸入密碼

3.將使用者加入wheel群組
# usermod -G wheel marcus    //要加入的帳號

4.如果要像ubuntu一樣不能用root登入,請修改shadow檔
# vim /etc/shadow    //將root的密碼改成 !!
root:!!:14928:0:99999:7:::

2010年11月17日 星期三

Postfix郵件伺服器

Postfix與Sendmail一樣都是Linux上很著名的電子郵件伺服器,但好設定很多
##安裝前記得將sendmail停用並設定開機不啟動



相關套件:
postfix.i386

相關目錄:
/etc/postfix
/etc/postfix/main.cf   //設定檔

設定:
# vim /etc/postfix/main.cf  //修改為
myhostname = a238.snpy.org
mydomain = a238.snpy.org
inet_interfaces = all       //傾聽所有,以下四個不能同時啟用
#inet_interfaces = $myhostname
#inet_interfaces = $myhostname, localhost
#inet_interfaces = localhost
mydestination = $myhostname, localhost.$mydomain, localhost
//如果同時管好幾個網域,ex:a238-a240.snpy.org
//加在mydestination以逗號分隔

#/etc/init.d/postfix restart    

Relay相關設定:
# vim /etc/postfix/main.cf
#mynetworks_style = class
#mynetworks_style = subnet
#mynetworks_style = host
//設定那些情況會Relay,預設為subnet
//subnet:表示以網卡的subnet為準
//class表示已ip class為準
//host表示為localhost

#mynetworks = 168.100.189.0/28, 127.0.0.0/8
#mynetworks = $config_directory/mynetworks
#mynetworks = hash:/etc/postfix/network_table
//設定後會忽略mynetworks_style...
//可以詳細規定接受relay範圍


測試:
# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 a238.snpy.org ESMTP Postfix

# telnet 140.137.215.238 25
Trying 140.137.215.238...
Connected to 140.137.215.238 (140.137.215.238).
Escape character is '^]'.
220 a238.snpy.org ESMTP Postfix

再來可用web mail寄信給tom,再用mutt收信看看
或可以到/var/log/maillog檢查有沒收到外部信件

2010年11月16日 星期二

MRTG實作

小弟一直以來都想學習一下MRTG安裝,可惜資質駑鈍,看資料也看不懂,終於有人肯教我,趕快記錄起來以免忘記



相關套件:
net-snmp           
net-snmp-utils
//兩個套件都要裝,受監控設備也裝

mrtg
httpd  --用來輸出結果

相關檔案與目錄:
/etc/snmp
/etc/httpd/conf.d/mrtg.conf    //httpd中與mrtg相關設定檔
/usr/bin/mrtg
/usr/bin/cfgmaker

設定:
1.受測設備:
#vim /etc/snmp/snmpd.conf      //修改與加入下兩行
#com2sec notConfigUser  default       public
com2sec notConfigUser  default      student       //student為自訂的community string

view    systemview    included   .1.3.6.1.2.1.2

#/etc/init.d/snmpd restart
#chkconfig snmpd on
#snmpwalk -c studemt -v 1 localhost system    //檢測snmp是否可以取得資訊

2.監控主機設定:
# vim /etc/httpd/conf.d/mrtg.conf
Alias /mrtg /opt/mrtg        //預定將mrtg資料放在/opt/mrtg,所以建立別名

       //設定成只有238,188網段可以連線
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1
    Allow from 192.168.238. 192.168.188.



    AddDefaultCharset big5     //mrtg不能產生UTF-8網頁,故設定big5
    AllowOverride All         //啟動htaccess檔案設定機制

# vim /opt/mrtg/.htaccess       //注意弄成隱藏檔
AuthUserFile /opt/mrtg/.htpasswd
AuthName "MRTG Web"
AuthType Basic
require valid-user

# htpasswd -c /opt/mrtg/.htpasswd marcus    //產生marcus使用者帳號密碼
// #  htpasswd /opt/mrtg/.htpasswd marcus    修改密碼

# cfgmaker student@fw.188.tw > /etc/mrtg/mymrtg.cfg    //產生mrtg設定檔
//指令格式:  cfgmaker 自定義通訊碼@受監控ip > 設定檔放置位置
//可以做很多台...但第二台後要用>>才不會覆蓋第一台資料
//注意:正常結束應該沒有訊息

# vim /etc/mrtg/mymrtg.cfg   //加入
WorkDir: /opt/mrtg
Language: big5
Options[_]: growright, bits

# env LANG=C mrtg /etc/mrtg/mymrtg.cfg    //產生報表網頁與統計圖
//第一次因為沒有資料會警告...要連做三次

# vim /etc/cron.d/mrtg     //mrtg安裝好後會產生這個檔案,把內容改一下就好
*/5 * * * * root LANG=C LC_ALL=C /usr/bin/mrtg /etc/mrtg/mymrtg.cfg    //五分鐘更新一次

檢視:
用browser連到http://IP/mrtg 應該可以看到mrtg圖表

2010年11月15日 星期一

OpenLDAP實作




相關套件:
openldap.i386 : OpenLDAP 的設定檔、函式庫、以及說明文件。
openldap-clients.i386 : OpenLDAP 的用戶端程式。                 //client套件
openldap-devel.i386 : OpenLDAP 的開發函式庫與標頭檔。
openldap-servers.i386 : OpenLDAP 伺服器程式與相關檔案。     //server套件
openldap-servers-sql.i386 : OpenLDAP 伺服器的 SQL 支援模組。

相關目錄與檔案:
/etc/openldap
/var/lib/ldap
/usr/share/openldap/    //其中migration目錄有轉換工具

LDIF格式:     //LDAP儲存資料用的格式
部門:研發部                  //一筆紀錄(entry)
      層級:第一級            //這個紀錄有兩個屬性(attribute)
      辦公室位置:B棟6樓

人員:陳小明
      部門:研發部
      電話:12345678#777
      職稱:專員


設定:
# cd /etc/openldap
# vim slapd.conf     //修改下面幾行
#suffix         "dc=my-domain,dc=com"
#rootdn         "cn=Manager,dc=my-domain,dc=com"
suffix          "dc=test,dc=com"
rootdn          "cn=Manager,dc=test,dc=com"
rootpw         1qaz2wsx      //管理者密碼以明碼表示
*可用編碼過的方式
# slappasswd
New password:
Re-enter new password:
{SSHA}NHz9J41eL9VKuuiHtisp7dEbwj/HqEJO

# vim slapd.conf
rootpw {SSHA}NHz9J41eL9VKuuiHtisp7dEbwj/HqEJO

# ls /var/lib/ldap/              //檢查有無DB設定檔
openldap-severs-update.log
# cp DB_CONFIG.example /var/lib/ldap/DB_CONFIG   //cp sample檔案過去
# chown ldap:ldap /var/lib/ldap/ -Rf      //更換擁有者
# /etc/init.d/ldap restart           //啟動應會正常,但還沒有任何資料
# ldapadd -x -W -D 'cn=Manager,dc=test,dc=com'    //server online新增方式
Enter LDAP Password:                  //輸入剛設定的密碼
dn: dc=test,dc=com
objectclass: dcObject
objectclass: organization
o: TEST Corp.
dc: test

adding new entry "dc=test,dc=com"

dn: cn=Manager,dc=test,dc=com
objectclass: organizationalRole
cn: Manager

adding new entry "cn=Manager,dc=test,dc=com"

"Ctrl+D結束"
//藍色字體表示固定類別名稱,勿變動

轉換本機帳號/群組:
1.準備測試用帳號:
# groupadd -g 3800 hr
# useradd -g 3800 backy

2.轉換
# /usr/share/openldap/migration/migrate_all_online.sh     //online轉換資料,內容在170左右
Enter the X.500 naming context you wish to import into: [dc=padl,dc=com] dc=test,dc=com
Enter the hostname of your LDAP server [ldap]: localhost
Enter the manager DN: [cn=manager,dc=test,dc=com]:
Enter the credentials to bind with:                    //管理者密碼
Do you wish to generate a DUAConfigProfile [yes|no]? no
.....
//會有錯誤訊息,這個範例可以不理

測試:
1.slapcat
#  slapcat
dn: dc=test,dc=com
objectClass: dcObject
objectClass: organization
o: TEST Corp.
dc: test
structuralObjectClass: organization
entryUUID: 4b8951be-84f3-102f-8d68-ab49309a10a3
creatorsName: cn=Manager,dc=test,dc=com
createTimestamp: 20101115110025Z
entryCSN: 20101115110025Z#000000#00#000000
modifiersName: cn=Manager,dc=test,dc=com
modifyTimestamp: 20101115110025Z

dn: cn=Manager,dc=test,dc=com
objectClass: organizationalRole
cn: Manager
structuralObjectClass: organizationalRole
entryUUID: 4d4589ae-84f4-102f-8d6b-ab49309a10a3
creatorsName: cn=Manager,dc=test,dc=com
createTimestamp: 20101115110738Z
entryCSN: 20101115110738Z#000000#00#000000
modifiersName: cn=Manager,dc=test,dc=com
modifyTimestamp: 20101115110738Z

2.用另一台主機加入domain     //該主機應沒有backy帳號
#setup
正確輸入後,使用backy登入測試
//可登入後應沒有家目錄,需配合NFS做掛載家目錄