顯示文章

這裡允許您檢視這個會員的所有文章。請注意, 您只能看見您有權限閱讀的文章。


文章 - abelyang

頁: 1 ... 34 35 [36] 37
1051
酷!學園 精華區 / [DNS] dns設定一問
« 於: 2003-06-24 12:02 »
引用
什麼時候會有人想查詢該dns的localhost資料呢?

這個問題一般人在設定 DNS 時可能都是依樣畫葫蘆吧 ~~
以人來說, 沒有人會想查 localhost 的 FQDN /IP 對應的關係
但系統程式(或服務程式)就常常會用到了...
所以 /etc/hosts 都會給你預設好, 就算你沒設 DNS 也沒關係

1052
Linux 討論版 / [最佳][DNS]網域代管
« 於: 2003-06-23 16:41 »
更正一下:
引用
所以若說是 cycle ( random) 的也對不是 cycle 的也對,完全看站在 Protocol
或 Sofeware 的角度...誰叫 ISC BIND 最大呢 ?
(這個演算法我並不清楚, 純粹從結果來反推, . 或 com. 皆有這個狀況)


這裏我想我錯了~~ :cry:
我將 BIND 9.2.2 的 source code trace 了一徧,
並沒有針對 Root Server 做特殊處理,確實就是 Cycle 查詢方式
我想可能的原因是和 DNS 和 . 間的網路距離有關,
就好比如果我用到放在歐洲的 Root Server , 以其 UDP
封包的特性, 失敗的可能性本就可能較高,
我想這樣解釋可能較合理吧 ~~
真理總是愈討論愈明

以下是今天的 tw. Root Server 的統計圖,可以看得出 Query 量是不太一致的
所以我才會這麼說(這張圖的 SOA 有問題,但不重要)

PS:奮鬥了三天,終於學會了 RRDTOOL 了,真有成就感

1053
嗯~守仁有回信了  
他說 5/29 後就您向 MOECC 沒有 update 的訊息了
你可以試試看上面我提到的 logging 的設定方法
或許會有助於找到原因

1054
http://archie.ncu.edu.tw/cgi-bin/ftplocate/icassearch.pl?o=2&a=50&s=2&query=jpgraph&t=1

試試 archie 看看
不過我看他們的網頁,授權方法是 QPL 哦...小心一點不要用錯地方了

1055
以下有部份取自原來我貼在 VBird 的文章
Apache 的 VH 其實設法相當多種,
相信大多數都是這種設法
<VirtualHost 1.2.3.80:80>
ServerAdmin admin@xxx.com.tw
DocumentRoot /home/httpd/html/enum
ServerName VH1.xxx.com.tw
ErrorLog logs/VH1-error.log
CustomLog logs/VH2-access_log common
</VirtualHost>
因為書本上教的,但是你改了這些值, httpd 要重新啟動...
高明點用 rewrite modules: (要有 RE 的基礎)
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.[^.]+\.host\.com$
RewriteRule ^(.+) %{HTTP_HOST}$1 [C]
RewriteRule ^www\.([^.]+)\.host\.com(.*) /home/$1$2

這樣只要新增 /home 目錄下的目錄就是新增 VirtualHost 了,且 httpd 不需重開
(有很多不同設法, http://httpd.apache.org/docs/misc/rewriteguide.html)

另外一種方法:Mass Virtual Hosting (亦不需要重啟 httpd)
UseCanonicalName on
CustomLog /home/www/access_log "%{VHOST}e %h %l %u %t \"%r\" %>s %b" :
RewriteEngine on
RewriteMap lowercase int:tolower
RewriteMap vhost txt:/etc/vhost.map #路徑自己設
RewriteCond %{REQUEST_URI} !^/commonurl1/.*
RewriteCond %{REQUEST_URI} !^/commonurl2/.*
RewriteCond %{REQUEST_URI} !^/commonurlN/.*
RewriteCond %{HTTP_HOST} !^$
RewriteCond ${lowercase:%{HTTP_HOST}|NONE} ^(.+)$
RewriteCond ${vhost:%1} ^(/.*)$
RewriteRule ^/(.*)$ %1/$1 [E=VHOST:${lowercase:%{HTTP_HOST}}]

#/etc/vhost.map 檔,加一行並新增對應目錄就是一個 VirtualHost
www1.xxx.com.tw:80 /home/www/www1
www2.xxx.com.tw:80 /home/www/www2
#這個方法也是 rewrite 的一種,且亦不需重新啟動 httpd,但是 httpd.conf 中要
#enable 這兩行 或是 complier 時以 static link 方式編進 httpd core
# rewrite 雖不容易懂,但懂了後就很好用
LoadModule rewrite_module modules/mod_rewrite.so
AddModule mod_rewrite.c



最後一種方法最簡單:
UseCanonicalName Off
VirtualDocumentRoot /home/www/%0

#%0 就是 HOST_NAME,像 www.xxx.com.tw ,一個目錄就是一個 Virtual,
#詳細用法可以看這裏哦
# http://httpd.apache.org/docs-2.1/mod/mod_vhost_alias.html

%N 的意義
0 the whole name
1 the first part
2 the second part
-1 the last part
-2 the penultimate part
2+ the second and all subsequent parts
-2+ the penultimate and all preceding parts
1+ and -1+ the same as 0

通常若您做網站代管這種業務,目錄都會再依序分層,有學過資料結構和演算法的話,你就知道一個平的目錄,不如一個有深度規畫的目錄來的好:
/home/www/tw/com/xxx/
/home/www/tw/org/yyy/
那就是
VirtualDocumentRoot /home/www/....你自己去實驗了哦...


以上是 VH 的設定法,我們假設 IP 為 1.2.3.80, 那我們再來看看 dns 的部份

$TTL 3600
$ORIGIN xxx.com.tw.
@ IN SOA dummy.xxx.com.tw. admin.xxx.com.tw. (
    1 38400 3600 864000 86400)
      IN  NS   ns1
      IN  NS   ns2
      IN MX 10 mail
ns1 IN   A  1.2.3.4
ns2 IN   A  1.2.3.5
mail IN  A  1.2.3.4
www IN A  1.2.3.80  
; 以上都是一般的設定狀況...最後再加一筆
*     IN  A  1.2.3.80

這樣的 zone file 的內容,只要是查 除了 ns1/ns2/mail/www 外,
查 a.xxx.com.tw 或 xxxxxxxxxx.xxx.com.tw 得到的結果都是
1.2.3.80, 這也是大家習慣的萬用字元的用法

我們依據以下設法(httpd.conf):
UseCanonicalName Off
VirtualDocumentRoot /home/www/%0

在 /home/www/  之下, 你每建一個 ???.xxx.com.tw 的目錄
(不含巳指明且不同 IP 的),就是建立一個 虛擬主機哦
EZ 吧 ~~我自己幾乎都是用這樣的做法,至少較最多人用的方法
都簡單許多哦

姨~什麼時候變 "榮譽博士" ?
好~改天再來貼一點獨門絶活
( :P 哈 一定不是獨門....但是都是自己 study 來的)

1056
就我的經驗...是系統的資源滿了...
這個問題有時候也會發生在開啟太多檔案
如果你想不重開機而能 login 的話, 我都是想辨法讓他的 Loading 降下來
不然就是重開了
不過為了預防下次再發生同樣問題, 建議你 Apache 的 conf 最好調整一卜
像 fork 數, MaxClient, KeepAlive 等都是佔資源的

1057
Linux 討論版 / [最佳][DNS]網域代管
« 於: 2003-06-23 11:38 »
引用
請問如果NS擺在較後面有可能會造成什麼影響嗎?


我是看了你的設定, 所以實驗了一下,我發現放在太後面, 會出現
找不到 NS RR 的訊息, 如果沒有 NS RR,這個 Zone 就沒有效了
你可以試試看移 NS 的位置, 如放在最後面 ? 放在中間 ? 而後以
named -f -g -c /etc/named.conf 來啟動,他會將 log 顥示在畫面上
你就會知道了 ...
實驗看看  :D

1058
Linux 討論版 / [最佳][DNS]網域代管
« 於: 2003-06-23 00:15 »
第一個問題 : . 有13 部 com. 也是十三部,好像最多就是 13 部外國人不是較不喜歡 13 嗎 ? 其實原因在於 UDP Payload Size, 如果有第 14 部,整個有關 . 的 DNS 封就要拆成二個了 ...一個 UDP 都不一定能保證了,更何況兩個
(註: DNS 封包有一定的格式..可見 RFC 1034/1035)


另外提供一個概念,以一般而言,一個 DNS Packet 大概在 80~100 bytes

另外就是 Root Server 的取用原則....
依 RFC 1033 所定它是 cycle 的方式,這也是大家普遍認為的方式
但是 ISC BIND 如何實作他呢 ? 其實他還是有一套除了 cycle 外的演算法
透過一定的計算再決定去問那一台,
我舉個實例, .tw 的 Root Server 近一年來每秒的平均查詢次數
並不一樣,六部中最高和最低約差了一倍,如果是 cycle ,以一年除下來的
每秒平均值來說,若差到 5% 就算多了...

所以若說是 cycle ( random) 的也對不是 cycle 的也對,完全看站在 Protocol
或 Sofeware 的角度...誰叫 ISC BIND 最大呢 ?
(這個演算法我並不清楚, 純粹從結果來反推,  . 或 com. 皆有這個狀況)

引用
resolver 能夠自己決定問哪台 root ns 嗎?(without forwarder)
若不能,那就算設在同一個 LAN 又如何?


Resolver 並不能決定...就連 BIND 從設定面也難以決定,
但是還是可以使用 named.conf 中的 rrset 來決定每次就用那一部
但是從實例來看沒有多少人知道如何設 (那就是沒有作用了)

Root Server 是一種 Internet 的資源,美國不想放手,
對於增進查詢的效率,從純粹 DNS 的方法可能沒有多大作用
但是像大陸這種國家對於其國內的 DNS Query 要轉到美國
(Root Server 約有半數在美國本土) 是蠻感冒的
Root Server 不是不能再加,技術面也不是不能解決我覺得是 ICANN
老大的心態問題 ...(離題了   :lol: )

1059
我想守仁那邊,你將你的信給我,我幫你問他可能會比較快一些
因為我常和 MOECC 有來往,他也常來我們辨公室

此外,不知您可否貼上您的 named.conf  及 正解 zone file, 因為你留的
URL 常連不到

還有就是這台 RH 的作用,因為我總覺得你的問題不見得是 DNS 引起的....
有一個方法,如果可以的話,你在你的 named.conf 中,加上一些 logging 的項目
語法像這樣 :
     logging {
       [ channel channel_name {
         ( file path_name
            [ versions ( number | unlimited ) ]
            [ size size_spec ]
          | syslog ( kern | user | mail | daemon | auth | syslog | lpr |
                     news | uucp | cron | authpriv | ftp |
                     local0 | local1 | local2 | local3 |
                     local4 | local5 | local6 | local7 )
          | null );

         [ severity ( critical | error | warning | notice |
                      info  | debug [ level ] | dynamic ); ]
         [ print-category yes_or_no; ]
         [ print-severity yes_or_no; ]
         [ print-time yes_or_no; ]
       }; ]

       [ category category_name {
         channel_name; [ channel_name; ... ]
       }; ]
       ...
     };                                          

EX:
logging {
        channel update_log {
                file "/var/log/named/dns-update.log" versions 3 size 1m;
                severity info;
                print-severity yes;
                print-time     yes;
                print-category yes;
        };
        channel security_log {
                file "/var/log/named/dns-security.log" versions 3 size 1m;
                severity info;
                print-severity yes;
                print-time     yes;
                print-category yes;
        };
        channel packet_log {
                file "/var/log/named/dns-packet.log" versions 3 size 1m;
                severity dynamic;
                print-severity yes;
                print-time     yes;
                print-category yes;
        };  
 ............
        category notify         { notify_log;};
        category update   { update_log; };
        category security       { security_log;};        
..........
 你可以看一下你的 named 版本所附的文件, 因為每個版本的 category 可能有
點不太一樣, 其中, default/config/queries/update/packet 相似的 category
請設上去, 我想這樣應非常有助於我們的討論.
  而你也可借此觀察一下 dns 運作狀況

1060
Linux 討論版 / [最佳][DNS]網域代管
« 於: 2003-06-22 14:53 »
引用
client dns的cache不是已經有ns1.domain.com.tw的ip了嗎?為何還要重新詢問 com.tw dns呢?

沒有錯, Cache 是巳經有 ns1.domain.com.tw 的 IP 了, 90% 以上的 DNS 都
會是這樣的處理的,但是少數對安全性要求較較高的 NameServer , 不會 Cache
NS 帶來的 A 記錄, 因為這可能會發生 DNS Spoofing 的問題
你可以用 Google 查一下 DNS Spoofing (有好幾種方式),
我想就可以了解一個大概了如果對其有不了解的地方,可以再貼上來討論

引用
難道cache裡所記載的ns1.domain.com.tw ip有指明是負責
company.com.tw的dns ip,所以cache裡沒有記載負責domain.com.tw網域的
dns ip,所以才要再query一次,我這樣解釋是對的嗎?

我沒記錯的話 Cache 是不會去分 domain 的,他只是本能的去記 Record 而以

不過有個問題可以考考大家...Root Server 有 13 部, 雖分散在全世界,
但是極為不平圴, 為什麼不每個國家擺個一部呢 ? 那不是很省事嗎 ?
不知道有沒有人知道答案 ?

1061
Linux 討論版 / [最佳][DNS]網域代管
« 於: 2003-06-21 23:10 »
bowin 的問題:
   你的 $ORIGIN 最後忘了 "." , 所以 @ 變成 bowin.biz.bowin.biz.
   就會出現 no at top of zone (top of zone 是 bowin.biz.)的訊息 ()

    另外,就是你的 bwin.com 中的 NS 記錄習慣上我們會將他接在 SOA
    之後,你 NS 放那麼後面沒有問題嗎 (這我不敢確定) ? 如果有問題,那
    影響的可是兩個 zone 哦...所以主要的那一個一定不能犯錯...

引用
看了上面的討論有一點不解,像在被代管的網域company.com.tw正解區域檔內
不需設定他的ns的a紀錄,那若我在domain.com.tw的zone file內也沒設我自己
ns的a紀錄,這樣子可行嗎?若不行的話,那代管網域的zone file為何就可以不設
呢?到底是怎樣的查詢流程呢?


這個問題,分兩部份:
domain.com.tw. 中的 ns 沒 A 記錄是不可行的因為是權威主機的關係,你都不知
到 NS 在那裏了,別人更不會知道了...

代管的網域不設因為那個名稱不歸他管,所以如果向 DNS 查詢, 一開始沒有 Cache
的因素下,其流程會如下:
查: www.company.com.tw.
Client                    Resolver query www.company.com.tw

Client DNS             根據 "." 的設定向 named.ca 中的主機詢問,十三部 (擇一)

.Root Server          根據 "." 中的 tw. 記錄回應, 這個記錄登記在 IANA 中
                            (上層的 DNS 都是非遞迴的,只會給你 NS,. tw. com.tw. 皆是)

Client DNS             tw. 有六個   , 擇一

tw. DNS                 回應 com.tw. 有那些,有六部

Client DNS             擇一

com.tw.                 回應 ns1.domain.com.tw  
                            (這裏就是 TWNIC 的 DNS 指定)
                            在這裏的設定如果 company.com.tw.指定的 NS 是
                            ns1.domain.com.tw.  TWNIC 是不記 User 所指定的 IP 的
                            (ns1.domain.com.tw 是 com.tw. 下的名稱,但不是
                            company.com.tw. 的名稱,雖可在 com.tw. 中寫下 ns1 的 IP
                            但是會有許多問題..........(想想看為什麼 ?)

Client DNS            得到 ns1.domain.com.tw 後,因為此次巳有 Cache, 所以
                            詢問 com.tw. DNS

com.tw.                 查 domain.com.tw. 的 NS ,亦得到ns1.domain.com.tw.
                            並給予 位址

Client DNS             在這個時候就會有 NS/A RR,請注意,他問的是 NS RR
                            A 是附帶的,此時會有兩種情況
                            Client DNS 要 A RR , 直接到 ns1.domain.com.tw. IP
                                    問 www.company.com.tw. IP
                            Client DNS 不要 這個 NS 帶來的 A,到 ns1.domain.com.tw
                                    問 ns1.domain.com.tw. 的 A RR
                            你會問,到底要不要, 如果 named 中有設  
                             options {
                                         ................;
                                         fetch-glue no;
                             };
                            那就不會要 A ,為什麼不要 A,不是較快嗎 ?....
                            這樣好像解譯不完了..... (想想看, 安全性的問題哦)
                            一般的設定都是會要 A 的,但從國外來的(字尾沒有 tw.)
                            大多不會要 A  (....想想看)
...後面我想你應該可以判斷的,這個例子是因為  domain.com.tw. /
company.com.tw. 的 NS 都是 ns1.domain.com.tw. ,如果 company 的 NS
是 colocation.domain.com.tw. 你就可以體會的更深了 ....(仔細想想哦)
有時間大家多多討論

1062
http://www.sourceforge.net/projects/phplot/
你可以看看 ~可以畫很多圖,但是你的 PHP 得 支援 GD
如果你要圖上有中文的話, 還得考慮到字型的問題
但如何處理我巳經忘記了...你可以找一下專門討論 php 的網站

1063
Linux 討論版 / [問題]我的named好像出問題
« 於: 2003-06-21 11:58 »
godeagle 兄,我想你可能勿勿看過吧  :D
第一個問題: DNS update ...是一般的 Windows 主機發出的...和 Windwos 是不是
                有跑 DNS 無關哦...
第二個問題: 是 DNS updated DNS 的問題,至於 named 的設定檔,我想因為他的主
               主機不在線上,看不到.不過確時是一些很平常的設定,只是設了 forword
               項目,但是 forward 項目一般來說也是 forward query, 不會 forward
               update , 況且 他的 forward 對象一個是 學校一個是 HINET
              在怎麼看都和 edu.tw 無關...所以我才再提了一些問題,以確認環境

我想第二個問題,如果他的主機是 Linux , 那可能就值得大家探討了
如果 是 windows ,那就很普通的

1064
Linux 討論版 / 有關linux的服務的問題?
« 於: 2003-06-21 11:50 »
提供一下我的方法 ...
netstat -anp  => 知道什麼 daemon 開什麼 port
再 man page 那個 daemon ....
看不懂 man page 的意思時再和 google 或 kimo 去找資料
這樣會比較紮實

1065
Linux 討論版 / [問題] 新手求助 GD庫
« 於: 2003-06-20 16:16 »
phpinfo() 看 ./configure 的參數
用 php 的 gd function , undefine.....就是沒有
php.ini 中沒記錯的話沒有 gd 設定..

如果沒有的話,你一定要用 php 就重編 php

1066
補允一下,第二個問題的解法我只是聽人家說過
並沒有實作的經驗,有人願意證實嗎 ?
幾百台的一定要做的吧 !!  :lol:

NCTU example:
[root@twnic mrtg]# dig @ns2.nctu.edu.tw soa nctu.edu.tw.

; <<>> DiG 9.2.1 <<>> @ns2.nctu.edu.tw soa nctu.edu.tw.
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40279
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 3

;; QUESTION SECTION:
;nctu.edu.tw.                   IN      SOA

;; ANSWER SECTION:
nctu.edu.tw.            172800  IN      SOA     dns.nctu.edu.tw. hostmaster.nctu
.edu.tw. 2003061202 3600 600 604800 1800

;; AUTHORITY SECTION:
nctu.edu.tw.            172800  IN      NS      ns.nctu.edu.tw.
nctu.edu.tw.            172800  IN      NS      ns2.nctu.edu.tw.
nctu.edu.tw.            172800  IN      NS      ns3.nctu.edu.tw.

;; ADDITIONAL SECTION:
ns.nctu.edu.tw.         172800  IN      A       140.113.250.135
ns2.nctu.edu.tw.        172800  IN      A       140.113.6.2
ns3.nctu.edu.tw.        172800  IN      A       163.28.64.11

;; Query time: 13 msec
;; SERVER: 140.113.6.2#53(ns2.nctu.edu.tw)
;; WHEN: Fri Jun 20 16:26:00 2003
;; MSG SIZE  rcvd: 181

以上還不能確定,因為 NS RR 的主機可能都是 Slave , Master 不在 NS 表列中
所以:

[root@twnic mrtg]# dig a dns.nctu.edu.tw.

; <<>> DiG 9.2.1 <<>> a dns.nctu.edu.tw.
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 51961
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;dns.nctu.edu.tw.               IN      A

;; AUTHORITY SECTION:
nctu.edu.tw.            1795    IN      SOA     dns.nctu.edu.tw. hostmaster.nctu
.edu.tw. 2003061202 3600 600 604800 1800

;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Fri Jun 20 16:27:00 2003
;; MSG SIZE  rcvd: 80

找不到 ~~交大是這麼做的 ...why ?

1067
嗯~這樣看目前我也看不出一個所以然 ~~
幾個問題 (上述的 named 設定檔我覺得很正常):

1. 你的這部機器的 OS 是 ?
2. run 的 named 版本是 ?
3. 有無 Run 像 adsldns 這種 DDNS 的東西
    (這東西是走 DNS protocol 還是 http ? 我並不知道)?
4. 你能和劉守仁確認是否仍有 update 的訊息嗎 ?
5. 你的 /etc/resolv.conf 的設定內容(如果是 Linux 的話 ) 或 Windows 內的 DNS 項目 (在 TCP/IP 裏)

雖然有些可能猜的到,不過還是由您來確認會較好,待您回覆後,大家再來討論看看囉~
我需要先確認您這些狀況的答案,較好做個判斷 ~目前心裏也沒有底...
不過, 我可以確定的是 NS 不會和 NS 對做 update 的動作的,
從來沒有看過這樣的訊息...
你要問我的是這一個嗎 ?

還是另外一個 大量windows 主機向 DNS update 的問題呢 ?
一個小步數 ~~ 將你的 Zone File 中 的 SOA 處 :
@       IN      SOA     dns.reggie.cyjcba.edu.tw. root.dns.reggie.cyjcba.edu.tw.  ( ....)

其中的 dns.reggie.cyjcba.edu.tw (master) 改成一個需無飄渺的名稱
因為 Windows 的 動態更新看的是這個值,
Ex: 如果你的 Win 機器名是 PPP.xxx.com.tw , 那他會查 xxx.com.tw 的 SOA 中的 master server, 把它改掉就好了 ....
    (那對 DNS 運作有沒有什麼影響呢 ?  自己找資料哦....再說 :))
以後 update 就不會再來煩你了

AD 的部份好像是用 SRV , 不過這個領域我就不清楚了, 對 MS 實在沒大什麼
興趣去研究的關係

不知道你問的是那一個就兩個都回了.... :roll:

1068
Linux 討論版 / [問題]我的named好像出問題
« 於: 2003-06-20 10:52 »
這很正常~沒有什麼問題
主因是 Windows 造成的,
在windows  TCP/IP 的設定裏面有一項設定
(名稱我忘了  )
可以讓該機器去 update DNS 的資料,好像預設是 "Yes"
所以這種訊息常常會在 dns log 中看到
而 named 的的 update 預設是不允許的 ( allow-update {none;};)

1069
Linux 討論版 / [最佳][討論]snort的alert
« 於: 2003-06-19 23:50 »
我看了一下 contrib 下的目錄
我想是這一個檔吧能將 snort 的 log 分析後產生
ipchains 的 rule

Guardian.tar.gz
我並不知道效用如何,你試試看囉~
若有什麼心得也可分享給大家
這陣子在忙,較沒有什麼時間去 Try
這陣子在用像 mrtg 的東西 (rrdtool, http://www.rrdtool.org)
做 IDS 的 Reporting system,若好了再分享給大家
這是人家做出來的東西,很漂亮吧 ~

1070
就稱我為 abel 就好了 ^^"
find 的用法非常的多,
只要是檔案(目錄)的屬性(mode,owner,group,size,{c,m,a}time....}
多可以用 find 找出來
-exec  cmd {} \;
-exec cmd 我想大家都可以了解, {} 就是 find 的結果的集合
\; 是格式上需要一定要加的

我自己是看 man page 的,
雖然過程非常辛苦 (我自認英文不好)
但收獲卻非常多 , 除了 function call 外
我個人幾乎是有空就 man page [a-z]*
不過 X 相關的我就不看了
練功力也練英文 (電腦類的英文較好懂)

1071
Linux 討論版 / [最佳][討論]snort的alert
« 於: 2003-06-19 20:29 »
我知道 snort 解開後的 contrib 的目錄下有 tools 可以做 ipchains/iptables
的 deny 動作,但是我覺得以 patten 為判斷的 IDS 其實誤判率很高,所以還
tunning 一下 rule 較好
至於你用在 Windows 上,我並沒有這樣的經驗,不過我知道有個 IDSCenter
(還是 SnortCenter) 可以做 monitor, 但是可不可以 deny IP 我就不知道了
畢竟 Windows 很多都是以 GUI 為主,實在很難去 cmd 化吧

如果你要回應事件給當事人,一般的做法都是查 whois (http://whois.twnic.net.tw)
或 cmd line 也可查到,再根據其上的 email 寄給他,最好能附上 IR 的資料
但是以我的經驗是...白做,對你對他都是白做...有經驗後你就會知道了

不過看半天還是不太清楚你的 snort 是裝在 Win 還是Linux 上  ...
多看一下 contrib/ 下的 tools 說明一定會有你要的

1072
Linux 討論版 / [最佳][討論]snort的alert
« 於: 2003-06-19 11:48 »
個人覺得你的問題有點不清不楚的 ^^"
再來怎麼辨 ~最簡單的方法是用眼睛看
幾千條 ...怎麼辨 ?
每一條都符合你的環境嗎 ?
IDS 的  patten 建議你先過濾一下,以符合你環境的最佳設定
沒有用的
如: 你用 Linux Apache 跑 Web, 那 IIS 那些 rule 東西在你的環境是沒有的
你就將你的 iis 相關的 rule 拿掉, 我自己是很懶...我的 rule 不到 100 條,
如果你不懂 Rule ,建議你多看看一些文件
http://www.snort.org/docs/writing_rules/
這個網上也有 PDF 的版本,我覺得玩 IDS 一定要先懂 Protocol, 再來研究 Rule
的用法,再來是 tunning, 及加上自己特有的 rule
最後,你到 snort 解開後的 contrib 的目錄下找工具..
很多都很有用,尤其是 ACID , 精華區你可以參考看看

1073
酷!學園 精華區 / syslogd server 做法 (教學)
« 於: 2003-06-18 23:54 »
我想有些人可能都管著數部的 Unix-Like 的機器吧
我自己為例,要 handle 的機器至少超過 30 部,其中以
Linux 為主,但是也有 Sun/IRIX/FreeBSD,所以一些
日常的 Log 簡直非人力所能及...(至少總合超過 1G/天)
更何況其分佈那麼廣...

所以,在做 log 的分析前,首先要考慮的是如何集中這些 log
詳細的作法你可以 man syslogd 或 man syslogd.conf
我是只看這兩個就學會了,多花點時間看 man page 很多東西都
比書本上詳細許多哦 ~~

先講 server 的部份吧 ~~
很簡單
syslogd -r 就可以啟動了,但是建議你 syslogd.conf 還是 調一下較好
因為如果你的機器一多, messages 這個檔案會大很快做一些簡單的分類即可
亦請記得替 /etc/rc.d/init.d/syslogd 這個 script 中的 syslogd 加上
以免下次開機失效

#/etc/syslogd.conf
# kern 的訊息要顯示在 terminal tty1 上就是這一台機器
kern.*                                                  /dev/tty1
#kern 也要存起來
kern.*                                                  /var/log/kernel
#下message 你自己看調不調吧,我是沒有調,但我覺得還是調一下較好
*.info;mail.none;news.none;authpriv.none;cron.none      /var/log/messages
authpriv.*                                              /var/log/secure
mail.*                                                  /var/log/maillog
cron.*                                                  /var/log/cron
#同 kernel 處
*.emerg                                                 /dev/tty1
*.emerg                                                 /var/log/critical
*.crit                                                  /dev/tty1
*.crit                                                  /var/log/critical
#localN 在 linux 上很多沒有用,但是在其他的unix平台上有的服務會用到
local1.*                                                /var/log/local1
local2.*                                                /var/log/local2
local3.*                                                /var/log/local3
local4.*                                                /var/log/local4
local5.*                                                /var/log/local5
local6.*                                                /var/log/local6
local7.*                                                /var/log/local7        

其實就算你不改也沒有關係,看你自己的需求了

syslogd 的 client 端
#/etc/syslogd.conf
# 你原來的設定
*.info;mail.none;authpriv.none;cron.none        /var/log/messages
改成
*.info;mail.none;authpriv.none;cron.none        @log_server_ip

其他項目請自行參照
重新啟動就會生效了
請注意, syslogd 預設是走 514/udp 的 port , firewall 處請自行對應



log 的樣子,比原來的樣子多了一個 hostname
Jun 18 23:36:58 host1 named[2882]: client 140.127.183.160#2139: update forwarding denied
Jun 18 23:36:58 host1 named[2882]: client 218.162.43.119#4109: update forwarding denied
Jun 18 23:39:48 host2 Snort Realtime Performance (Wed Jun 18 23:39:48 2003)
Jun 18 23:39:48 host2 Protocol Byte Flows - %Total Flow
Jun 18 23:39:48 host2 PacketLen - %TotalPackets
Jun 18 23:37:05 host3 named[11739]: client 210.66.152.116#61972: updating zone 'himark.com.tw/IN': update failed: 'RRset exists (value dependent)' prerequisite not satisfied (NXRRSET)    

好了, log 集中了你就可以開始分析的工作了, 還可以避免原機器入侵後給你刪除syslog
的困擾...(很多 wrom 是直接 rm -f /var/log/ 的),分析的工具你可以到
http://www.securityfocus.com/tools/category/1
多的讓你試不完 ...一切看你的需求而定
了 ?

1074
#我提供寄件者在 procmail 中要怎麼取得好了~~
#如果沒有人想出來我再來 POST 解好了
#我雖有一套想法但是一直沒有時間去做

PATH=$PATH
SHELL=/bin/sh
MAILDIR=/var/spool/mail
VERBOSE=yes
SENDMAIL=/usr/sbin/sendmail
LOGFILE=/home1/MAIL/procmail.log
USER=$HOME
USER=`echo ${USER##*/}@twnic.net.tw`
SUBJ=`formail -zxSubject: `
# ppp <ppp@ppp.com.tw> paser to ppp@ppp.com.tw
# 如果你要什麼 Return-Path 或其他的參考 formail
# 至於 ${FROM##*<} 這種變數的 paser 你  man bash 就會有了

FROM=`formail -zxFrom:`
FROM=`echo ${FROM##*<}`
FROM=`echo ${FROM%%>}`
# sed 用法請自己去查,這段主要在取出多個收件者
TO=`formail -zxTo:|tr ',' '\n'|  sed 's/\(.*\) \(.*\)/\2/'`
#另存郵件新檔,做什麼用呢 ? 總會誤判吧 ,我用 Web CGI 再讓 user 取回
#他被檔掉什麼信每天都會 report 給他
FILE=/home1/MAIL/mail-`echo $FROM-$SUBJ| sed -e s/' '/''/g`-`date +%Y%m%d-%H:%I:%S`.eml
tmp=`formail > $FILE;chown apache.apache $FILE`
#這段較容易誤判...抓 Attach file .....
attach=` formail -i "" | grep -i 'Name=' | cut -f 2 -d'=' | tail -1`

: HB...
...
這裏再用 pipe (|) 導到你的程式或資料庫即可

1075
Linux 討論版 / [最佳][DNS]網域代管
« 於: 2003-06-18 19:27 »
哦,想不到還有人知道我, 我並沒有常在公開場合露臉  ^^"
我現在在TWNIC 沒有錯
至於 TWNIC DNS 的訓練課程今年還有,
預計今年的七到十月會開課, 只是不是我講的
我們委由 台大師大台科大交大....(北新中高東都有)等學校辨理
主要講
DNS 設定
LOG/IPv6
BIND 9
DNS flow
DNS Security
常見錯誤
共兩天

預計花二佰萬免費提供給 .tw 網域名稱的擁有者
平均一個人約花我們一千元/天的成本
如果有報上名大概就值回繳 DN 的錢了
現在巳快準備完成了
至於 liber 所說的那些我想較著重 DN 的作用吧
我也沒有去聽過,沒法評論,畢竟人家是商業的公司

PS:因為我接觸的 User 太多,怒我無法記起兩位

1076
Linux 討論版 / Sendmail設定問題
« 於: 2003-06-18 15:24 »
我猜可能的問題在 DNS 吧 ~~
NS RR 沒有 glue A 的關係
38g.org. IN NS ns1.38g.org.
38g.org. IN NS ns2.38g.org.
www.38g.org. IN A 203.204.163.181
mail.38g.org. IN A 203.204.163.181
mail2.38g.org. IN A 203.204.163.181
38g.org. IN MX 10 mail.38g.org.
38g.org. IN MX 30 mail2.38g.org.

ns1 ? ns2 ?
寄給別人會可以是因為他不會讀這個 zone
寄給自己會有問題是 NS RR 的問題所致
了 ?

1077
Linux 討論版 / 請教mail的問題
« 於: 2003-06-17 18:12 »
如果是我所說的狀況的話~我想是很難去避免的
像我自己能做的就是用 access 這種設法
或是用 procmail ,我也不知道有什麼更積極的防範方法
有人知道嗎 ?
或許可以寫個 Shell script 吧 ~~但沒有試過

1078
Linux 討論版 / 請教mail的問題
« 於: 2003-06-17 17:14 »
有一種狀況是那一個 mailbox 有問題
也就是有人寄了爛信給他,不正確的 mail 區隔
造成了 這種狀況,好像有一種廣告信軟體會造成這種狀況
如果是這種狀況 建議你用 mail 指或 vi 刪除...
如何判斷呢 ? 提供你一個方法:自己用pop3 command 去測試
telnet pop3_server 110
user username
pass password_for_username

如果到此處是正常的那就是是帳號密碼的問題了
list
retr N
...
上面的指令不重要,重點是 user/pass 可不可以過

1079
mysqldump -d
-d no-data, only structure

1080
Linux 討論版 / [最佳][DNS]網域代管
« 於: 2003-06-17 12:51 »
既然 netman 兄給我置頂了, 我就來貢獻一下好了 ^^"
DNS 代管程式
/* DNS colocation sample code for c
Table: rr
CREATE TABLE rr (
  SN int(10) NOT NULL auto_increment,
  3LD varchar(64) NOT NULL default '',
  FQDN varchar(64) NOT NULL default '',
  IPADDR varchar(64) NOT NULL default '',
  TYPE varchar(10) NOT NULL default 'A',
  MODIFY timestamp(14) NOT NULL,
  PRIMARY KEY  (SN)
) TYPE=MyISAM;

gcc -o prog_name prog.c -Ipath_of_mysql_include -Lpath_of_mysql_lib -lmysqlclient
*/


#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <mysql.h>
#include <time.h>

int main( void)
{
//SLD 為網域名稱, filename 為 zone file 名稱
char SLD[10000][64],filename[64];
FILE *in;
MYSQL mysql;
MYSQL_RES *result,*result1;
MYSQL_ROW row,row1;
time_t se;
struct tm *t;
//序號變數,看你需不需要囉,固定也可以
char serial[14]={""};
int i=0;
//SOA 處請注意 TAB 鍵的問題, Copy&Paste 可能會出錯
char *SOA1="$TTL 3600\n@ IN SOA MASTER_HERE EMAIL_HERE. (\n";
char *SOA2="    \t3600\n\t600\n\t864000\n\t38400\n)\n IN NS MASTER_HERE.\n IN NS SLAVE_HERE.\n";

//要知道有那些網域名稱代管
char *sql="select 3LD from rr group by 3LD order by 3LD";
//那些網域名稱設定的 Resource Record (RR)
char sql1[200]="select FQDN,TYPE,IPADDR from rr where 3LD='";
memset(SLD,0x00,sizeof(SLD));
memset(filename,0x00,sizeof(filename));
time(&se);
t=gmtime(&se);
//設定 SOA 中的序號
sprintf(serial,"\t%d%d%d%d\n",t->tm_year+1900,t->tm_mon,t->tm_mday,t->tm_hour);

// mysql function 的用法可查 http://www.mysql.com 上的文件
mysql_init(&mysql);
mysql_options(&mysql,MYSQL_OPT_COMPRESS,0);
mysql_options(&mysql,MYSQL_READ_DEFAULT_GROUP,"odbc");
mysql_real_connect(&mysql,"mysql_host","username","password","database",0,NULL,0);//建立與 MYSQL 的連線

if ( mysql_query(&mysql,sql)) {
    printf("Zone check error\n");
     exit(-1);
}

result = mysql_use_result(&mysql);
/*
# named.conf 的設定範例,簡略版,如果你做 DNS 代管,
# 建議你要加上 logging 的項目
options {
        directory "/var/named";
pid-file "/var/run/named/named.pid";
recursion no;
allow-transfer {
SLAVE_HERE;  //SLAVE_HERE 是你的 slave 主機,但是 zone 是變動的
                             // slave 要怎麼設呢 ?
                      // 建議你改用 FTP ,自己寫一個 FTP script 代替 Zone transfer

        };
};

zone "0.0.127.in-addr.arpa" {
type master;
file "named.local";
};

zone "." {
type hint;
file "named.ca";
};

# include 代管的 domain 設定檔
include "/etc/named.3ld.zone";

*/

// 這個檔多了一個 .1 哦,因為怕意外而故一些預防,沒有 .1 的才是被 include 的
if ((in=fopen("/etc/named.3ld.zone.1","w"))==NULL) {
    printf("3LD conf files open failure\n");
    exit(-1);
}

while((row = mysql_fetch_row(result))!=( MYSQL_ROW *)NULL) {
       fprintf(in,"zone \"%s\" {\n\ttype master;\n\tfile \"%s.3LD\";\n};\n\n",*row ,*row);

/*
會產生如下內容:
zone "xxx.com.tw" {
        type master;
        file "xxx.com.tw.3LD";
};

zone "yyy.com.tw" {
        type master;
        file "yyy.com.tw.3LD";
};
*/
// 將每一個網域名稱存起來.即使你代管一萬個,也不能設成 com.tw 的 zone 啦
strcpy(SLD[i++],*row);
}

fclose(in);

while ( --i >=0 ) {
     memset(sql1,0x00,sizeof(sql1));
     memset(filename,0x00,sizeof(filename));
     strcpy(sql1,"select FQDN,TYPE,IPADDR from rr where 3LD='");
     strcat(sql1,SLD);
     strcat(sql1,"'");
     strcpy(filename,"/var/named/");
     strcat(filename,SLD);
     // filename=xxx.com.tw.3LD
     strcat(filename,".3LD");
     if ( mysql_query(&mysql,sql1)) {
          printf("SQL error:%s",sql1);
          exit(-2);
     }
if ((in=fopen(filename,"w"))==NULL) {
     printf("3LD zone files open failure\n");
     exit(-1);
}
     result1 = mysql_use_result(&mysql);
//輸出 xxx.com.tw. 的 SOA 及 NS
     fprintf(in,"%s",SOA1);
     fprintf(in,"%s",serial);
     fprintf(in,"%s",SOA2);
//輸出 RR
     while((row1 = mysql_fetch_row(result1))!=( MYSQL_ROW *)NULL) {
          fprintf(in,"%s.\t3600\tIN\t",*row1);
          fprintf(in,"%s\t",*(row1+1));
//我只讓人家設一個 MX,如果客戶懂得設兩個 MX 且知道如何讓其資料同步的
//話,他的技術實在沒有代管的必要了
               if (strcmp(*(row1+1),"MX") == 0) {
                    fprintf(in,"10\t");
          }
          fprintf(in,"%s\n",*(row1+2));
     }
fclose(in);
}
mysql_close(&mysql);
}

下面是 cronjob 的部份:
#代管程式
/home/abel/DNS_colocation
#檢查 zone 的個數
master=`grep -c 'master' /etc/named.3ld.zone.1`
#至少要一個以上才是正確的.不正確 DNS daemon 不做更新
if [ "$master" -gt 1 ] ; then
        mv -f /etc/named.3ld.zone.1 /etc/named.3ld.zone
        cp /etc/named.3ld.zone /var/named
        killall named
        named
fi



SLAVE 主機的做法:
#就一個 cronjob 的 sh 程式
cd /var/named
rm -f *.3LD
ftp -n MASTER_HOST <<!
user username password
prompt
cd /var/named
mget *.3LD
get named.3ld.zone
bye
!
killall named
named

這樣兩邊的 DNS 的設定檔就一模一樣了,注意 SLAVE 中的 named.conf 的
include 路徑就可以了
就這樣囉~DNS 的資料同步除了 DNS 本身的 zone transfer 外,用什麼方法都
是可以的,你也可以在  Slave 主機上再跑 dns_colocation 的程式也可以
好了~這樣你以後就輕鬆了吧~
不一定要和 c , 我試過 php perl shell 都可以,只要你的功力夠就好了
看不懂 @@ , 再回去多磨練磨練

頁: 1 ... 34 35 [36] 37