安裝完DNS就會有telebyte.com.cn這個主機域。
現在SENAMAILV8不要太多的配置:有幾點可許對配置有用telent localhost 25可以,
但是服務器沒開25端口,從網絡無法訪問,
sendmail不是由xinetd控制,從哪裏打開25口呢?
telnet localhost 25
默認情況SMTP僅綁定127.0.0.1,因此不能從
網絡訪問,要打開SMTP,如下即可:
vi /etc/sendmail.cf
找到:
# SMTP daemon options
O DaemonPortOptions=Port=smtp,Addr=127.0.0.1,
Name=MTA
添加:
# SMTP daemon options
O DaemonPortOptions=Port=smtp,Addr=192.168.1.18
Name=MTA
保存!
設置sendmail服務器
當前linux的各個發布都將sendmail作爲缺省地郵件服務器軟件,實現正常的郵件收發。
編輯/etc/sendmail.cw文件,添加本機的域名到該文件中,這裏以telebyte.com.cn爲例:
www.telebyte.com.cn
mail.telebyte.com.cn
telebyte.com.cn
然後重新啓動sendmail郵件服務器:
/etc/rc.d/init.d/sendmail restart
SAMBA體會
Samba:體會:
(一)、Linux服務器端的配置
(1)安裝任何發行版本,並選中Samba。
(2)用userconf命令新建一個用戶如:wsz ,設定其主目錄爲:/home/wsz.。設定其密碼(如:wsz)。組我設的是FTP,在RedHat6.0上好象應設爲xfs才行。
(3)修改/etc/smb.conf爲:
#======================= Global Settings =====================================
[global]
netbios name=gblinux
workgroup = MYGROUP
server string = Shf''s Server
security = user
printing =lprng
printcap name = /etc/printcap
load printers = yes
#============================ Share Definitions ==============================
[homes]
path = /home(*****)
comment = Home Directories
browseable = yes
writable = yes
read only =no
####################xufengadd#################################
[homes]
# path = /home
comment = Home Directories
browseable = yes
writable = yes
read only = no
# valid users = %S
create mode = 0664
directory mode = 0775
####################################################################
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = no
writable = no
printable = yes
[public]
comment = Public Stuff
path = /home/wsz
public = yes
writable = yes
printable = no
write list = @staff
###########################xufeng add 7/3##################
[public]
comment = Public Stuff
path = /public
writable = yes
printable = no
create mode = 0664
directory mode = 0775
write list = @staff
guest ok = yes
#####################enb########################
~
(3)再來一個「samba restart」就可以了!
一、TCP/IP網絡配置
TurboLinux對網卡的支持還是比較好的,大部分網卡在安裝時就 可以自動檢測出來。如果你的運氣不好,Linux找不到你的網卡,可 以進入X Windows,以root身分運行linuxconf命令。這是一個圖形界 面的配置工具,大部分Linux設置可以通過點點鼠標簡單完成。首先 在其中找到Basic Host Setting一項,在這一項中設置網卡的類型、 I/O port和IRQ,一般沒有列出的ISA卡可以用ne,PCI可以用ne或 ne2k-pci,接著設置IP地址和子網掩碼,只要和局域網中的其他機 器設在同一個子網中就可以了。如果要連接外部網絡還要設置網關。 關于這方面的問題還可以參看TurboLinux的幫助文件。
二、Samba服務器的配置
Samba是一個文件和打印服務器,它最重要的特點就是可以和 Win98/NT共享文件,還可以爲其提供打印服務。簡而言之,就是可以 在Win98的網上鄰居中看到Linux服務器,並能存取其中的文件。
關于Samba的配置都存放在/etc/smb.conf中,其中多數可用它的 默認設置,我就不再多說了,但有幾處是非改不可的:
;smb.conf文件中采用類似于Windows ini文件的方;式,以 []爲一段的開始,每一行爲一個等號表達式,;注釋以打頭。其中 每一個[]都表示一個共享目錄;(global和printer)除外[global] 中是一些通用的配;置,其中對Win98機器比較重要的一個就是; guestaccount,表示不用密碼的用戶名,如果在Win98;中以這個用 戶名登錄,訪問public=yes的目錄就;不用密碼,但不能訪問 public=no的目錄。
[global]
guest account = guest
;Workgroup要改爲Win98網絡配置中所設的名字,;不然網上鄰 居中就找不到這台機器
workgroup = Samba Server
[homes]
;因爲Win98不區分大小寫,而Linux卻區分大小寫,;所以要加 入以下兩行
preserve case = yes
short preserve case = yes
[myshare]
;如果要設置一個目錄只對幾個用戶有讀寫權限,只;要加入以 下一行每兩個用戶名中間以空格分開
valid users = user1 user2 user3
設置完smb.conf文件後,運行turboservice,把samba服務設置 爲開機自動啓動。
以後Linux開機後,就可以在Win98的網上鄰居中找到它了。
以上只是用Win98共享Linux資源,那麽如何用Linux共享Win98中 的文件呢?其實更簡單,只要用命令smbmount。例如:要共享另一台 主機ntserver中sharefile目錄,用戶名是student,密碼是1234,只 要打入命令:
smbmount′
tserversharefile′-U student-P 1234 /mnt/sharefile
以後/mnt/sharefile就成了ntserver中的sharefile目錄,如果 沒有用戶名和密碼-P和-U參數就可以省掉了。
三、Apache服務器的配置
你是不是也想在局域網上發布主頁呢?那就選擇Apache吧。
用Apache安裝Http Server是最簡單不過的了,只要用 turboservice命令把Web Server服務啓動即可。它的默認主頁是 /home/httpd/index.html,把它替換成自已的主頁,然後在浏覽器中 輸入Linux主機的IP地址看看有什麽反應。 只用IP地址實在太單調了,想不想試試用www.cpcw.com這樣Cool 的域名,那就看看下面的介紹吧。假設Linux主機的局域網中的IP地 址是192.1.1.1,打開/etc/hosts文件,找到192.1.1.1對應的那一行, 把主機的別名改爲www.cpcw.com。然後把局域網中另一台Win98機器 設置爲通過局域網連接,並在局域網代理服務器設置一欄中填入Linux 主機的IP地址。最後打開IE,輸入www.cpcw.com,享受一下你的勞動 成果吧!:)
雙機互聯
pc機網卡 1 2 3 4 5 6 7 8
pc機網卡 3 6 1 4 5 2 7 8 :
PC機9針串口 2 3 4 5 6 7 8
PC機9針串口 3 2 6 5 4 8 7
PC機9針串口 2 3 4 5 6 7 8
PC機25針串口 2 3 6 7 20 5 4
PC機25針串口 2 3 4 5 6 7 20
PC機25針串口 3 2 5 4 20 7 6
SSH文檔
什麽是SSH?
SSH (Secure Shell)是一套安全的網絡連接程序,它可以讓你通過網絡連接至其他電腦,在其他電腦上執行程序,在電腦之間拷貝文件,它甚至可以提供給你更安全的X連接,而以上的這些連接,都是在編碼的保護下完成的。也就是說安裝了SSH後就可以將不安全的Telnet和FTP給關掉了。
爲什麽要使用SSH
上面所說的各項功能,早期BSD所提供的r指令(rsh, rlogin, rcp)幾乎都能完成,那爲什麽要用SSH呢?理由就在于r指令所提供的連接並沒有經過編碼加密,有心人只要使用合適的工具就能夠截下你所輸入的每一個字,包括密碼。如果你利用X protocol在遠端機器執行X程序,也可以截下你傳輸的資料,當然也包括密碼。而SSH就針對了這些弱點做了彌補,對所傳輸的資料加以編碼。
SSH2與SSH1
SSH2對SSH1的程序碼做了大幅度的改寫,根據SSH公司的說法, SSH2有98%的程序碼和SSH1的不一樣。除了SSH1所提供的RSA法之外,SSH2也提供了另外的公開金匙編碼法以及金匙交換法, SSH2預設采用DSA編碼以及Diffie-Hellman金匙交換法。此外,更提供了SFTP,使我們能在FTP方面也得到安全的保障。
1、 下載完後將文件解壓縮
tar zxvf SSH-1.2.31.tar.gz
2、 開始編譯,安裝
cd SSH-1.2.31;
./configure;
make;
make install;
3、 編輯/etc/rc.d/rc.local加入/usr/sbin/SSHd以便開機自動啓動。
4、 完成
如果你是2台Linux要相連就都要裝這個程序,如果是Windows系統要連Linux的話就要安裝for Winxx的程序。Winxx部分請自己試試。
Linux的使用方法
/usr/bin/SSH -l username 187.136.5.1
然後輸入密碼,連進去後是一般的文字界面,就可以開始用了。
另外,SSH可以直接使用root登入。
注:如果你要對連接進來的IP做限制的話可以編輯/etc/hosts.deny和/etc/hosts.allow
示例如下:
/etc/hosts.deny:
ALL:ALL
#禁止所有IP使用所有的服務
/etc/hosts.allow:
SSHd:111.222.333.444
#開放111.222.333.444使用SSH連接
利用SSH來ftp
1、 Linux對Linux傳文件:
上傳:scp wrong.php bha@187.136.5.1:
這時會問你密碼,輸入密碼吧。
說明:
scp是指令
wrong.php是本地端的文件名
bha@187.136.5.1是遠端的用戶(user name)和IP
最後記住那個冒號一定要加,那是遠端的home directory。
下傳:scp bha@187.136.5.1:wrong.php .
說明:
用scp將bha@187.136.5.1目錄的wrong.php拷貝到目前的目錄(就是那個.)
2、 Win對Linux傳文件:
ls:就是dir
et:下傳文件
put:上傳文件
exit:退出ftp程序
指令:psftp-x86 187.136.5.1
這時會問名字密碼和要不要産生加密鍵值,然後再用put和get來上下傳文件。
什麽是 RSA/DSA 認證?
SSH,特別是 OpenSSH(完全免費的 SSH 的實現),是一個不可思議的工具。類似于 telnet 或 rsh,ssh 客戶程序也可以用于登錄到遠程機器。所要求的只是該遠程機器正在運行 sshd,即 ssh 服務器進程。但是,與 telnet 不同的是,ssh 協議非常安全。加密數據流,確保數據流的完整性,甚至安全可靠的進行認證它都使用了專門的算法。
然而,雖然 ssh 的確很棒,但還是有一個 ssh 功能組件常常被忽略、被危險的誤用或者簡直就是被誤解。這個組件就是 OpenSSH 的 RSA/DSA 密鑰認證系統,它可以代替 OpenSSH 缺省使用的標准安全密碼認證系統。
OpenSSH 的 RSA 和 DSA 認證協議的基礎是一對專門生成的密鑰,分別叫做專用密鑰和公用密鑰。使用這些基于密鑰的認證系統的優勢在于:在許多情況下,有可能不必手工輸入密碼就能建立起安全的連接。
盡管基于密鑰的認證協議相當安全,但是當用戶並不完全了解這些簡化操作對安全性的影響,爲了方便而使用某些簡化操作時,就會出現問題。本文中,我們將詳細討論如何正確使用 RSA 和 DSA 認證協議,使我們不會冒任何不必要的安全性風險。在我的下一篇文章裏,我將向您展示如何使用 ssh-agent 隱藏已經解密的專用密鑰,還將介紹 keychain,它是 ssh-agent 的前端,可以在不犧牲安全性的前提下提供許多便利。
使用說明
Usage: ssh [options] host [command]
Options:
-l user Log in using this user name.(用戶名)
-n Redirect input from /dev/null.
-a Disable authentication agent forwarding.
-x Disable X11 connection forwarding.
-i file Identity for RSA authentication (default: ~/.ssh/identity).
-t Tty; allocate a tty even if command is given.
-v Verbose; display verbose debugging messages.
-V Display version number only.
-q Quiet; don't display any warning messages.
-f Fork into background after authentication.
-e char Set escape character; ``none'' = disable (default: ~).
-c cipher Select encryption algorithm: ``idea'', ``blowfish'', ``3des''
-p port Connect to this port. Server must be on the same port.
-P Don't use privileged source port.
-L listen-port:host:port Forward local port to remote address
-R listen-port:host:port Forward remote port to local address
These cause ssh to listen for connections on a port, and
forward them to the other side by connecting to host:port.
-C Enable compression.
-g Allow remote hosts to connect to local port forwardings
-o 'option' Process the option as if it was read from a configuration file.
Linux下IP巧設置
如何實現ip僞裝?假設你現在有一台Linux主機通過DDN專線連接到Internet上,有自己的ip和域名,同時還與20台win95工作站通過HUB連接,你現在完全可以通過ip僞裝來實現這20台win95工作站同時上網。
單純的IP Masq其實很簡單。如果你用的是2.0.x 和 2.1.xx 核心,在保證核心內支持IP forward 和 IP Masq的前提下,在/etc/ppp/if-up裏最後加一句(假設你的私用網絡地址是192.168.x.x): /sbin/ipfwadm -F -a m -S 192.168.0.0/16 -D 0.0.0.0/0 。如果像有些人用的是2.1.10x,ipfwadm就不能用了,換成了ipchains。方法一樣:/sbin/ipchains -A forward -j MASQ -s 192.168.0.0/16。然後,讓你的LAN上的所有主機的缺省網關都指向這台做Masq的Linux機器就可以了。ipchains需要另外下載,可以在互聯網上查找。
如果客戶機是win95的話,在DHCP裏設一下就全搞定了。當然,每台客戶機的DNS要指向ISP的DNS,或者簡單點,在Masq機器上開一個 cache only和forward only的DNS服務器也行。如果你的DNS已經搞定,用squid也非常簡單,缺省的配置文件/etc/squid.conf就可以工作(也許需要把 http的端口號改爲8080),而且可以實現cache的功能,使用效果不錯,方法極爲簡單。
第一步:設置好你的PPP,保證在Linux box上可以上網。第二步:運行squid -z建立cache目錄。第三步:如果需要,修改/etc/squid.conf,缺省的就挺好,可改可不改,要改的話,把http_port從3128 改到8080。
這樣,前期工作一切就緒。以後需要上網時,接通PPP,運行squid,你就有了一個挺不錯的proxy了,客戶端設置好proxy。如果你把pppd升級到2.3.5,就可以配置成「按需撥號」,再配上ISDN的話,和專線估計也就沒什麽差別了。
缺省網關: 192.168.0.1(Linux box)IP Masq:(Linux box)defaultrouter : a.b.c.d /sbin/ipfwadm -F -a m -S 192.168.0.0/16 -D 0.0.0.0/0 或者 /sbin/ipchains -A forward -j MASQ -s 192.168.0.0/16squid: 什麽也不用設置
這裏的192.168...只是個例子,換成你自己的地址範圍。服務器的缺省網關當然是路由器了! 別的機器的缺省網關必須是服務器(Linux box)。
在 Linux服務器上裝兩塊網卡,一塊接內部網,給個192.168之類的保留地址,另一個直接和路由器接起來,用你的正式地址,這樣你只需要兩個合法的 IP就夠了。這樣做安全性應該好些。如果把那個路由器幹掉,直接用Linux接專線作路由器,你就只需要一個合法IP了。
如果只申請到有限的IP,但有多人訪問INTERNE,如何用Linux實現呢?
兩種方式:
1.proxy(即squid或其他proxy)
2.ipmasq + squid
如果你只要http、ftp,用1就可以了。
Linux時間服務器
在局域網中設置Linux時間服務器
一 概述:
本文主要目的是簡單介紹如何在局域網上設置一台Linux時間服務器與互聯網上的時間服務器同步並且如何使局域網上其它Linux及Windows客戶向該Linux時間服務器同步。
二 服務器設置
首先說明我們如何設置LAN上的時間服務器同互聯網上的第一或者第二級時間服務器同步來保證精確的時間。
1. 如何讓LAN的時間服務器(第三級)與互聯網上的時間服務器(第一或者第二級)同步
a. XNTP包,包含在大多數Linux CD裏面。
主頁在http://www.eecis.udel.edu/~ntp/
你只需要在/etc/ntp.conf中設置server和driftfile兩項參數即可,server項你可以從上面的主頁中找公共的時間服務器域名。例如
server rackety.udel.edu
server umd1.umd.edu
server lilben.tn.cornell.edu
driftfile /etc/ntp/drift
然後啓動XNTPD後台程序
#/etc/rc.d/init.d/xntpd start
b. "getdate",隨Slackware而來的小程序,推薦使用,大多數時候,我們對時間的精確性要求不是非常的苛刻,所以這個程序完全夠用而且很方便。
下載ftp://metalab.unc.edu/pub/Linux/system/network/misc/getdate_rfc868-1.2.tar.gz
然後設置下面的scripts 取名爲/usr/local/sbin/get-date.sh
#!/bin/sh
timehosts="otc2.psu.edu wwvb.erg.sri.com ntp.nasa.gov"
if /usr/local/bin/getdate -adjust 10 200 $timehosts /dev/null; then
/sbin/clock --systohc
fi
現在可以設置cronjob每小時進行同步
0 0-23 * * * /usr/local/sbin/get-date.sh
2. 如何使得LAN上其它linux/windows客戶與該台服務器同步
a. 如果該台時間服務器也是局域網上的Samba服務器,則對Windows來說,不需要安裝任何時間同步軟件,因爲windows客戶可以用
net time imeserver /set /yes來與之同步。可以放該命令在startup
中自次啓動windows時自動同步
net time 命令利用Netbios over TCP/IP協議來同步時間
但僅對Windows客戶有效,Linux客戶無法使用。
b. 如果服務器運行NTP後台服務程序,例如前面講的XNTPD,則對
Windows:
可以安裝下面的兩個免費軟件與服務器同步
http://home.att.net/~Tom.Horsley/ntptime.html (ntptime)
單一的後台程序,自動尋找LAN上的NTP服務器,可在控制面板中設置同步條件
http://nettime.sourceforge.net/ (Nettime)
支持NTP(udp/123) , time(udp/37), time(tcp/37)
Linux:
則可以用ntpdate(隨XNTPD而來)運行作爲cronjob 與 該局域網上的時間服務器同步。
c. 如果該台服務器使用getdate與互聯網上時間服務器同步,則
你可以設置/etc/inetd.conf,打開time udp和time tcp服務,讓linux/windows客戶與之同步。對windows,你可以使用象上面介紹的Nettime軟件。
對Linux客戶,你可以用rdate -s 運行作爲cronjob 與之同步
time stream tcp nowait root internal
time dgram udp wait.200 root internal
Linux下的rdate -s 命令使用time (37/tcp) , Nettime 你可以指定37/tcp或者37/udp
三 FAQ
1. 怎樣確定net time用的是Netbios over TCP/IP?
在Samba服務器上運行tcpdump
# /usr/sbin/tcpdump host 192.168.1.3
(192.168.1.3是windows客戶端的IP地址)
2. 怎樣確定windows NTP客戶ntptime正在後台與Linux NTP時間服務器同步?
在NTP服務器上運行
# tcpdump udp port 123
查看輸出
默認是每五分鍾ntptime向NTP服務器查詢一次,你可以從主頁上下載控制面板中的控制條件設置程序
DNS問答集
DNS配置問答集
Q:最近,我在公司的三台電腦上安裝了REDHAT5.2(132.20.10.22),REDHAT6.0(132.20.10.254),WIN95 (132.20.10.23)
想實驗一下LINUX下的DNS,將REDHAT6.0(132.20.10.254)作爲DNS服務器,按照說明配置好,然後在REDHAT5.2 (132.20.10.22)上啓動NSLOOKUP 進行測試,顯示如下內容:
*** Cant find server name for address 132.20.10.254:server failed
*** Default servers are not available
在REDHAT6.0(132.20.10.254)上啓動NSLOOKUP 進行測試,顯示同樣的出錯內容.
這倆台電腦互相能PING通,在REDHAT6.0(132.20.10.254)上已經啓動了DNS服務進程,用NDC STOP關掉,然後用NDC START啓動,還是不行,沒著了,下面我將相關的配置文件列示如下,請各位有經驗的朋友解答一下:
我安裝DNS純屬局域網自用,我隨便起了個域名UNICOMJN.UNICOMSD,且REDHAT6.0(132.20.10.254)的 HOSTNAME爲LDNS.UNICOMJN.UNICOMSD,REDHAT5.2(132.20.10.22)的HOSTNAME爲 CLIENT.UNICOMJN.UNICOMSD
REDHAT6.0(132.20.10.254)的配置文件如下:
[oracle@ldns /etc]$ more /etc/resolv.conf
search unicomjn.unicomsd
nameserver 132.20.10.254
[oracle@ldns /etc]$ more /etc/named.conf
options {
directory "/var/named";
};
//因爲DNS純屬局域網自用,不連接INTERNET,所以將根域文件注釋掉了
//zone "." {
// type hint;
// file "named.ca";
//};
zone "0.0.127.in-addr.arpa"{
type master;
file "named.127.0.0";
};
zone "10.20.132.in-addr.arpa"{
type master;
file "named.132,20.10";
};
zone "unicomjn.unicomsd"{
type master;
file "named.my";
};
[oracle@ldns /etc]$ more /etc/name.my //正向解析主文件
@ IN SOA ldns.unicomjn.unicomsd. root.ldns.unicomjn.unicomsd.(
200006201 ;serial, todays date+todays serial#
28800 ;refresh,seconds
7200 ;retry,seconds
3600000 ;expire,seconds
86400 ) ;minimum,seconds
client A 132.20.10.22
win95 A 132.20.10.23
[oracle@ldns named]$ more named.132.20.10//反向解析主文件
@ IN SOA ldns.unicomjn.unicomsd. root.ldns.unicomjn.unicomsd.(
200006201 ;serial, todays date+todays serial#
28800 ;refresh,seconds
14400 ;retry,seconds
3600000 ;expire,seconds
86400 ) ;minimum,seconds
NS ldns.unicomjn.unicomsd
22 PTR client.unicomjn.unicomsd.
23 PTR win95.unicomjn.unicomsd.
[oracle@ldns named]$ more named.127.0.0
@ IN SOA ldns.unicomjn.unicomsd. root.ldns.unicomjn.unicomsd.(
200006201 ;serial, todays date+todays serial#
28800 ;refresh,seconds
14400 ;retry,seconds
3600000 ;expire,seconds
86400 ) ;minimum,seconds
IN NS ldns.unicomjn.unicomsd
1 IN PTR localhost
REDHAT5.2(132.20.10.22)的配置文件如下:
[oracle@client /etc]$ more /etc/resolv.conf
search unicomjn.unicomsd
nameserver 132.20.10.254
這裏先謝謝各位了!!
A:
你的做dns服務器的配置中加入對本機器的設置如
ns 10.*.*.*
並且在查詢的機器上設定域名服務器指想你的linux box 即:
oracle@ldns /etc]$ more /etc/name.my //正向解析主文件
@ IN SOA ldns.unicomjn.unicomsd. root.ldns.unicomjn.unicomsd.(
200006201 ;serial, todays date+todays serial#
28800 ;refresh,seconds
7200 ;retry,seconds
3600000 ;expire,seconds
86400 ) ;minimum,seconds
client A 132.20.10.22
win95 A 132.20.10.23
A:
oracle@ldns /etc]$ more /etc/name.my //正向解析主文?NS配置問答集(1)
Q:最近,我在公司的三台電腦上安裝了REDHAT5.2(132.20.10.22),REDHAT6.0(132.20.10.254),WIN95 (132.20.10.23)
想實驗一下LINUX下的DNS,將REDHAT6.0(132.20.10.254)作爲DNS服務器,按照說明配置好,然後在REDHAT5.2 (132.20.10.22)上啓動NSLOOKUP 進行測試,顯示如下內容:
*** Cant find server name for address 132.20.10.254:server failed
*** Default servers are not available
在REDHAT6.0(132.20.10.254)上啓動NSLOOKUP 進行測試,顯示同樣的出錯內容.
這倆台電腦互相能PING通,在REDHAT6.0(132.20.10.254)上已經啓動了DNS服務進程,用NDC STOP關掉,然後用NDC START啓動,還是不行,沒著了,下面我將相關的配置文件列示如下,請各位有經驗的朋友解答一下:
我安裝DNS純屬局域網自用,我隨便起了個域名UNICOMJN.UNICOMSD,且REDHAT6.0(132.20.10.254)的 HOSTNAME爲LDNS.UNICOMJN.UNICOMSD,REDHAT5.2(132.20.10.22)的HOSTNAME爲 CLIENT.UNICOMJN.UNICOMSD
REDHAT6.0(132.20.10.254)的配置文件如下:
[oracle@ldns /etc]$ more /etc/resolv.conf
search unicomjn.unicomsd
nameserver 132.20.10.254
[oracle@ldns /etc]$ more /etc/named.conf
options {
directory "/var/named";
};
//因爲DNS純屬局域網自用,不連接INTERNET,所以將根域文件注釋掉了
//zone "." {
// type hint;
// file "named.ca";
//};
zone "0.0.127.in-addr.arpa"{
type master;
file "named.127.0.0";
};
zone "10.20.132.in-addr.arpa"{
type master;
file "named.132,20.10";
};
zone "unicomjn.unicomsd"{
type master;
file "named.my";
};
[oracle@ldns /etc]$ more /etc/name.my //正向解析主文件
@ IN SOA ldns.unicomjn.unicomsd. root.ldns.unicomjn.unicomsd.(
200006201 ;serial, todays date+todays serial#
28800 ;refresh,seconds
7200 ;retry,seconds
3600000 ;expire,seconds
86400 ) ;minimum,seconds
client A 132.20.10.22
win95 A 132.20.10.23
[oracle@ldns named]$ more named.132.20.10//反向解析主文件
@ IN SOA ldns.unicomjn.unicomsd. root.ldns.unicomjn.unicomsd.(
200006201 ;serial, todays date+todays serial#
28800 ;refresh,seconds
14400 ;retry,seconds
3600000 ;expire,seconds
86400 ) ;minimum,seconds
NS ldns.unicomjn.unicomsd
22 PTR client.unicomjn.unicomsd.
23 PTR win95.unicomjn.unicomsd.
[oracle@ldns named]$ more named.127.0.0
@ IN SOA ldns.unicomjn.unicomsd. root.ldns.unicomjn.unicomsd.(
200006201 ;serial, todays date+todays serial#
28800 ;refresh,seconds
14400 ;retry,seconds
3600000 ;expire,seconds
86400 ) ;minimum,seconds
IN NS ldns.unicomjn.unicomsd
1 IN PTR localhost
REDHAT5.2(132.20.10.22)的配置文件如下:
[oracle@client /etc]$ more /etc/resolv.conf
search unicomjn.unicomsd
nameserver 132.20.10.254
這裏先謝謝各位了!!
A:
你的做dns服務器的配置中加入對本機器的設置如
ns 10.*.*.*
並且在查詢的機器上設定域名服務器指想你的linux box 即:
oracle@ldns /etc]$ more /etc/name.my //正向解析主文件
@ IN SOA ldns.unicomjn.unicomsd. root.ldns.unicomjn.unicomsd.(
200006201 ;serial, todays date+todays serial#
28800 ;refresh,seconds
7200 ;retry,seconds
3600000 ;expire,seconds
86400 ) ;minimum,seconds
client A 132.20.10.22
win95 A 132.20.10.23
A:
oracle@ldns /etc]$ more /etc/name.my //正向解析主文件
你的正向解析主文件放錯位置了,應是/etc/named/named.my
================================================================
Q:
想請教幾個有關配置DNS的問題:
1,用netconf配置DNS和用named.boot有什麽區別
2,配置好named.boot及相應的幾個文件後,DNS服務好像沒有起做用,而用netconf配置後,一切ok,不知是什麽。
3,當用netconf配置dns 後,將named.boot 改名,dns服務仍然作用,那麽 named.boot糾竟有沒有用?
A:
DNS重啓的命令爲:
#ndc restart
配置後,執行以上命令。
A:
如果你用的是Redhad5.2以上版本,那麽named.boot
不起作用,應該修改named.conf
A:
bind 4用/etc/named.boot,bind 8用/etc/named.conf.
可以通過namedboot-conf.pl來轉換.
我沒有用netconf配置過DNS,都是手工,抱歉不知道netconf是否好用.
======================================================================
Q:
我的機器上安裝了redhat6.1,ip是10.10.10.126,機器名是nt_domino,hosts文件的內容是:
127.0.0.1 localhost
10.10.10.126 nt_domino
我在本機上運行ping nt_domino,正常!
Q:
我的DNS本地域ok 但是nslookup測試default server address 顯示 0.0.0.0,爲什麽??其實我的Dns server 是一個內部地址10.0.0.111,我沒有外部地址.
Q:
我公司是局域網 沒有標准網址,只有內部地址,
通過路由器和專線連接到一個信息中心,信息中心作爲我上一級代理,信息中心再連接到
ISP,現在,我公司的PC 需要信息中心的服務器代理才能上網.我想建立我們自己的DNS服務器,不知道是不是
要把cache去掉?forword怎麽配? 在named.conf中,
沒有注冊域名行不行?
A:
我公司是局域網 沒有標准網址,只有內部地址,
通過路由器和專線連接到一個信息中心,信息中心作爲我上一級代理,信息中心再連接到
ISP,現在,我公司的PC 需要信息中心的服務器代理才能上網.我想建立我們自己的DNS服務器,不知道是不是
要把cache去掉?forword怎麽配? 在named.conf中,
沒有注冊域名行不行?
如果你的ISP沒有把domain包過慮掉就可以。
向ISP申請添加DNS服務器,要在ISP的DNS中添加指向你的DNS記錄。
A:
沒有必要去掉cache吧!!!
在named.conf中加上:
options {
forward first;
forwarders {
你的上一級DNS的IP;
};
};
在局域網中沒有必要注冊域名,因爲Internet上的真實IP 是無法方問到你們的,
Q:
謝謝你吸煙的酒瓶
我已經可以解析外面的域名了.但是 default
DNS adress 還是 0.0.0.0 ,爲什麽?
A:
能把你的詳細配置文件說一下嗎?
也可email給我:jiaxc@sian.com
A:
outside and inside dns ok bur default server
address is 0.0.0.0 why? my dns server is
10.0.0.111
named.conf
options {
directory "/var/named";
forward first;
forwarders{
170.169.5.71;
};
};
zone "." {
type hint;
file "named.ca";
};
zone "slott.com.cn"{
type master;
file "named.hosts";
notify no;
};
zone "0.0.127.in-addr.arpa"{
type master;
file "named.local";
};
zone "0.0.10.in-addr.arpa"{
type master;
file "named.rev";
notify no;
};
named.hosts
@ IN SOA dns1.slott.com.cn. root.dns1.slott.com.cn. (
2000060802 ; serial
28800 ; refresh
14400 ; retry
3600000 ; expire
86400 ; default_ttl
)
@ IN NS dns1.slott.com.cn.
@ IN MX 10 dns1.slott.com.cn.
dns1 IN A 10.0.0.111
slott1 IN A 10.0.0.1
ects IN A 10.0.0.80
liangliang IN A 10.0.0.121
named.rev
@ IN SOA dns1.slott.com.cn. root.dns1.slott.com.cn. (
2000061201 ; serial
28800 ; refresh
14400 ; retry
3600000 ; expire
86400 ; default_ttl
)
@ IN NS dns1.slott.com.cn.
@ 11 IN PTR slott1.slott.com.cn.
@ 80 IN PTR ects.slott.com.cn.
@ 199 IN PTR duty.slott.com.cn.
@ 100 IN PTR gateway.slott.com.cn.
80 IN PTR ects.slott.com.cn.
1 IN PTR slott1.slott.com.cn.
121 IN PTR liangliang.slott.com.cn.
111 IN PTR dns1.slott.com.cn.
named.local
@ IN SOA dns1.slott.com.cn. root.dns1.slott.com.cn. (
1997022700 ; serial
28800 ; refresh
14400 ; retry
3600000 ; expire
86400 ; default_ttl
)
@ IN NS dns1.slott.com.cn.
1 IN PTR localhost.
Q:
我在一次非完全安裝後,用kpackage bind.x.x。rpm包後,每配置之前也是如此。
要命的是沒有/etc/name.boot和/etc/name.conf等文件。不知咋辦。
A:
用rpm -ivh --force bind.x.xx.rpm強行重新安裝
=========================================================================
Q:
請問在Turbo Linux4.0下:
eg, www.myserver.com
www.mysite.com
ns.mysite.com 是域名服務器爲myserver.com提供域名解析服務。
ns.mysite.com設置
/etc/resolv.cof , /etc/named.boot,
/var/named/mysite.db, /var/named/mysite.rev
同樣,我爲myserver.com IN NS ns.mysite.com.
不知道還缺什麽,一般會犯什麽樣的錯誤?
還有,我在ns.mysite.com 上運行 nslookup
卻說不能發現 host/domain ,好象ns server 不正常。但域內的主機卻能被訪問。
Q:
問題: PING WWW.CLIENT.COM 等了較長時間後,出現 unknow Host www.client.com.
譬如: NS1.MYSITE.COM
NS2.MYSITE.COM
兩域名爲 www.mysite.com 提供解析。
而且需要爲 www.client.com 提供域名解析服務。
通過NSLOOKUP 檢查,NS1.MYSITE.COM 服務正常。
並能爲該域名下的主機解析(如 mail.mysite.com ,searh.mysite.com 等)
現爲某企業(client.com)提供虛擬主機,我設置如下,
================
/etc/named.boot
=================
...
primary mysite.com mysite.db
primary 200.105.202.in-addr.arpa mysite.rev
primary client.com client.db
...
=========
client.db
@ IN SOA client.com. hostmaster.client.com.
{DNS問答集(2)
Q:
我的DNS本地域ok 但是nslookup測試default server address 顯示 0.0.0.0,爲什麽??其實我的Dns server 是一個內部地址10.0.0.111,我沒有外部地址.
Q:
我公司是局域網 沒有標准網址,只有內部地址,
通過路由器和專線連接到一個信息中心,信息中心作爲我上一級代理,信息中心再連接到
ISP,現在,我公司的PC 需要信息中心的服務器代理才能上網.我想建立我們自己的DNS服務器,不知道是不是
要把cache去掉?forword怎麽配? 在named.conf中,
沒有注冊域名行不行?
A:
我公司是局域網 沒有標准網址,只有內部地址,
通過路由器和專線連接到一個信息中心,信息中心作爲我上一級代理,信息中心再連接到
ISP,現在,我公司的PC 需要信息中心的服務器代理才能上網.我想建立我們自己的DNS服務器,不知道是不是
要把cache去掉?forword怎麽配? 在named.conf中,
沒有注冊域名行不行?
如果你的ISP沒有把domain包過慮掉就可以。
向ISP申請添加DNS服務器,要在ISP的DNS中添加指向你的DNS記錄。
A:
沒有必要去掉cache吧!!!
在named.conf中加上:
options {
forward first;
forwarders {
你的上一級DNS的IP;
};
};
在局域網中沒有必要注冊域名,因爲Internet上的真實IP 是無法方問到你們的,
Q:
謝謝你吸煙的酒瓶
我已經可以解析外面的域名了.但是 default
DNS adress 還是 0.0.0.0 ,爲什麽?
A:
能把你的詳細配置文件說一下嗎?
也可email給我:jiaxc@sian.com
A:
outside and inside dns ok bur default server
address is 0.0.0.0 why? my dns server is
10.0.0.111
named.conf
options {
directory "/var/named";
forward first;
forwarders{
170.169.5.71;
};
};
zone "." {
type hint;
file "named.ca";
};
zone "slott.com.cn"{
type master;
file "named.hosts";
notify no;
};
zone "0.0.127.in-addr.arpa"{
type master;
file "named.local";
};
zone "0.0.10.in-addr.arpa"{
type master;
file "named.rev";
notify no;
};
named.hosts
@ IN SOA dns1.slott.com.cn. root.dns1.slott.com.cn. (
2000060802 ; serial
28800 ; refresh
14400 ; retry
3600000 ; expire
86400 ; default_ttl
)
@ IN NS dns1.slott.com.cn.
@ IN MX 10 dns1.slott.com.cn.
dns1 IN A 10.0.0.111
slott1 IN A 10.0.0.1
ects IN A 10.0.0.80
liangliang IN A 10.0.0.121
named.rev
@ IN SOA dns1.slott.com.cn. root.dns1.slott.com.cn. (
2000061201 ; serial
28800 ; refresh
14400 ; retry
3600000 ; expire
86400 ; default_ttl
)
@ IN NS dns1.slott.com.cn.
@ 11 IN PTR slott1.slott.com.cn.
@ 80 IN PTR ects.slott.com.cn.
@ 199 IN PTR duty.slott.com.cn.
@ 100 IN PTR gateway.slott.com.cn.
80 IN PTR ects.slott.com.cn.
1 IN PTR slott1.slott.com.cn.
121 IN PTR liangliang.slott.com.cn.
111 IN PTR dns1.slott.com.cn.
named.local
@ IN SOA dns1.slott.com.cn. root.dns1.slott.com.cn. (
1997022700 ; serial
28800 ; refresh
14400 ; retry
3600000 ; expire
86400 ; default_ttl
)
@ IN NS dns1.slott.com.cn.
1 IN PTR localhost.
Q:
我在一次非完全安裝後,用kpackage bind.x.x。rpm包後,每配置之前也是如此。
要命的是沒有/etc/name.boot和/etc/name.conf等文件。不知咋辦。
A:
用rpm -ivh --force bind.x.xx.rpm強行重新安裝
=========================================================================
Q:
請問在Turbo Linux4.0下:
eg, www.myserver.com
www.mysite.com
ns.mysite.com 是域名服務器爲myserver.com提供域名解析服務。
ns.mysite.com設置
/etc/resolv.cof , /etc/named.boot,
/var/named/mysite.db, /var/named/mysite.rev
同樣,我爲myserver.com IN NS ns.mysite.com.
不知道還缺什麽,一般會犯什麽樣的錯誤?
還有,我在ns.mysite.com 上運行 nslookup
卻說不能發現 host/domain ,好象ns server 不正常。但域內的主機卻能被訪問。
Q:
問題: PING WWW.CLIENT.COM 等了較長時間後,出現 unknow Host www.client.com.
譬如: NS1.MYSITE.COM
NS2.MYSITE.COM
兩域名爲 www.mysite.com 提供解析。
而且需要爲 www.client.com 提供域名解析服務。
通過NSLOOKUP 檢查,NS1.MYSITE.COM 服務正常。
並能爲該域名下的主機解析(如 mail.mysite.com ,searh.mysite.com 等)
現爲某企業(client.com)提供虛擬主機,我設置如下,
================
/etc/named.boot
=================
...
primary mysite.com mysite.db
primary 200.105.202.in-addr.arpa mysite.rev
primary client.com client.db
...
=========
client.db
@ IN SOA client.com. hostmaster.client.com.
{...}
IN NS MYSITE.COM
www IN A 202.105.200.60
==========
反向解析省..。
懇請你的幫助,謝謝!
========================================================
Q:
誰能說一下,反向域名解析,即IP-hostname在哪些場合下用到?
如果DNS系統中沒有反向域名解析數據庫,會對系統造成什麽影響?
A:
有用,前一段時間去國外某站點,他就需要根據域名反向查找
安全管理
江蘇電信IP網自1996年5月份正式對社會開放以來,用戶發展迅速,截至2001年11月底,接入用戶數達到了323萬。爲了滿足用戶持續快速發展的需要,我們的網絡經曆了大大小小數次擴容,規模不斷擴大,目前省內骨幹網總帶寬達90G,出省帶寬10G。
隨著網絡的發展,我們面臨的網絡濫用和攻擊等安全事件越來越多,並且攻擊者采用的手段也越來越複雜多樣。在江蘇電信IP網發展的初期,我們主要是通過加固主機系統來提高安全性,當然僅靠技術人員手工檢查、分析、跟蹤是遠遠不夠的。1999年二期擴容工程中,增加了防火牆、一次性口令認證系統、安全掃描器等。但是總的來說,采用的技術手段及部署範圍仍比較有限。2001年,江蘇電信IP網組織實施了三期擴容,並把網絡安全作爲重要部分獨立實施。
電信IP網面臨的主要安全問題
目前,我們還沒有手段可以較全面地收集和統計IP網上形形色色的網絡濫用和攻擊。從我們日常碰到和處理的問題來看,主要有幾個方面:
網上存在大量的端口掃描試探、發送垃圾郵件等網絡濫用行爲;
發現部分主機由于未及時安裝補丁程序或設置不當或口令強度不夠等原因而被黑客入侵,並被安裝後門程序;
拒絕服務攻擊發生頻率不高,但一般影響較大;
蠕蟲病毒傳播和泛濫,如紅色代碼、尼姆達等,危害不可小視。
安全防範的範圍和原則
作爲網絡運營商,由于用戶衆多,我們的主要精力還是考慮如何盡可能地保護由江蘇電信負責維護管理、對外提供服務的網絡設備和主機系統,同時對一些重要的網絡安全問題,我們也盡力通知用戶,並幫助解決。
在解決安全問題時,我們注意遵循安全、效率及易用性兼顧的原則。安全的目標是爲了保證業務的連續性,保證數據的完整性、保密性和可用性。但是安全、效率及易用性常常是矛盾的,實施過于複雜的安全措施一方面會造成效率的下降,另一方面對人員素質的要求也會增加,而人員的培訓和成長需要過程,因此需要均衡,使得既能達到安全目標的最低要求,又能不對效率産生顯著影響,操作使用上不過于繁瑣。
同時,我們還本著節約的原則。加強安全必然帶來成本的增加,這既包括産品的采購、升級、服務費用,也包括管理成本。我們在資金和人力上的投入應該和被保護的資産價值相適應,在考慮采取什麽樣的措施保護哪些對象的時候,我們主要考慮被保護對象的重要性、威脅發生的可能性及可能産生的後果,然後選用適當的技術措施以達到可以接受的安全等級。
主要技術措施
目前,江蘇電信IP網已初步建立了一套網絡安全技術防禦體系,從保護對象上看,重點是針對認證計費系統、網管系統、集中郵件系統,同時還包括DNS服務器和 WWW服務器,對于接入服務器、路由器、交換機等,則主要通過合理設置來提高安全性;從功能上看,主要包括六個系統:一次性口令認證系統,防火牆系統,主機訪問控制系統,安全掃描系統,集中日志管理系統,入侵檢測系統等。
一次性口令認證系統
好的口令是網絡安全中最簡單和最重要的部分,據CERT估計,約80%的網絡安全問題是由于不良的口令所造成的。而我們的管理員管理著衆多的網絡設備和主機系統,在日常工作中需要經常登錄進行維護,即使管理員的口令設置符合安全性的原則,但是仍存在口令在一個更改周期內反複使用的問題,而在telnet過程中,用戶名、口令以明文方式在網上傳送,因而時刻面臨著被竊聽的威脅。爲此,我們選用了ACE Server及SecurID構築一次性口令認證系統,它提供了一種較爲強壯的集中式、雙要素的認證方案。也就是說,用戶在登錄時,不僅要知道PIN碼,還要有口令牌。口令牌上的口令每分鍾改變一次,這樣有效地減少了口令丟失、泄露所帶來的危害。
一次性口令認證系統的實現方案如下:
1、ACE Server配備實施異地備份,一主一備,防止單點故障。
2、使用範圍包括路由器、核心局域網交換機及集中郵件系統、認證計費系統、WWW服務器、DNS服務器。其中路由器、交換機采用Radius認證方式,與ACE Server配合實現一次性口令認證。
防火牆
防火牆是安全系統的重要組成部分。我們在省中心部署了CheckPoint Firewall-1和NetScreen-1000硬件防火牆,禁止普通用戶從Internet訪問我們的網管網,但網管網可通過防火牆訪問 Internet以進行軟件升級等操作;同時對進出郵件系統的數據流量進行檢查、過濾,保證郵件系統的安全性。
主機訪問控制系統
在一個基本的UNIX和Windows NT系統中,超級用戶具有對系統無限大的訪問權限,可全面訪問應用軟件、數據和審計記錄。這樣可能會造成:
1、一旦超級用戶權限被網絡攻擊者取得,系統可被完全控制,並且可以輕松地掩蓋痕迹。
2、掌握超級用戶權限的用戶可能由于誤操作等原因破壞操作系統和應用軟件的一些關鍵配置和屬性。
基于此,我們在全省認證計費系統、集中電子郵件服務系統和省中心DNS服務器上部署了CA公司的eTrust Access Control。eTrust Access Control是一種主機安全保護軟件,eTrust Access Control在加強對用戶口令及違反安全策略的管理、細化對文件的訪問控制的同時,能限制超級用戶的權限,保護主機資源的安全。
安全掃描系統
對于一個大型網絡來說,由于涉及網絡設備和主機系統衆多,並且經常需要調整修改配置,必須具備一種方便、快捷的手段幫助安全員全面地、動態地進行弱點評估,掌握網絡系統存在哪些安全漏洞,以進行修補,提高自身免疫力。而安全掃描軟件無疑是一個較好的工具,它不僅可以彌補安全員在安全知識和經驗上的不足,還可以有效縮短漏洞發現時間,減少攻擊成功的可能性。我們選用了Internet Scanner,它通過對網絡安全弱點的檢測與分析,發現存在的安全漏洞,做出安全評估,並能提出相應的改進建議。網絡掃描器可將風險分爲高、中、低三個等級,並且根據不同的需要生成報表,從以企業管理者角度來分析的報告到爲消除風險而給出的詳盡的逐步指導方案均可以體現在報表中。
集中日志管理系統
網絡設備和主機系統的日志可以幫助管理員監控和分析合法用戶的越權行爲和可疑行爲以及非法用戶的訪問嘗試等行爲。然而,這些日志一般分散存放在各個設備上,采用覆蓋方式存儲,不便于管理員檢查審計,也不便于保存歸檔,同時,還容易被入侵者在攻擊時篡改。現狀常常是系統雖然啓用了日志功能卻形同虛設,管理員基本無暇顧及數量衆多的網絡設備和主機系統日志,安全得不到保證。
爲了解決這些問題,我們建立了一套集中日志管理系統,根據日志的來源,對重要網絡設備和主機系統的日志進行分類,集中地收集、存儲、備份,然後再進行分析、查詢。這樣,一方面大大提高了工作效率,有利于及時發現問題,另一方面,日志的異地存放使得攻擊者更加難以掩蓋痕迹,有利于管理員事後分析追蹤。
入侵檢測系統
在考慮網絡安全問題的對策時,我們不僅要考慮如何保護我們的網絡,還要考慮如何實時檢測網絡上的威脅,並及時地作出響應。爲此,我們選用了 RealSecure System Agent和Network Engine。其中,實時系統代理 (RealSecure System Agent)是一種基于主機的實時入侵檢測産品,一旦發現對主機的入侵,RealSecure可以中斷用戶進程和挂起用戶賬號來阻止進一步入侵,同時它還會發出警報、記錄事件等以及執行用戶自定義動作。實時系統代理 (RealSecure System Agent)還具有僞裝功能,可以將服務器不開放的端口進行僞裝,進一步迷惑可能的入侵者,提高系統的防護時間。實時網絡傳感器 (RealSecure Network Engine) 是基于網絡的實時入侵檢測産品,在網絡中分析可疑的數據而不會影響數據在網絡上的傳輸。網絡入侵檢測RealSecure Network Engine在檢測到網絡入侵後,除了可以及時切斷攻擊行爲之外,還可以動態地調整防火牆的防護策略,使得防火牆成爲一個動態的、智能的防護體系。
通過部署入侵檢測系統,我們實現了以下功能:
1、在省網管中心和計費中心采用基于網絡的入侵檢測系統,對網絡攻擊進行在線實時監控、告警並能自動阻斷部分攻擊。
2、在全省集中電子郵件系統、DNS、WWW服務器上采用了基于主機的入侵檢測系統。
3、對于全省WWW服務器,配置主頁的自動恢複功能,即如果WWW服務器被攻破、主頁被纂改,系統能夠自動識別並把它恢複至事先設定的頁面。
4、入侵檢測系統與防火牆進行「互動」,即當入侵檢測系統檢測到網絡攻擊後,通知防火牆,由防火牆對攻擊進行阻斷。
同時在各地市節點使用sniffer軟件作爲系統安全監控的補充手段。
網絡安全方面采取的主要管理措施
應該說,網絡安全不僅僅是一個技術問題,實際上,從我們運行維護的經驗來看,主要還是「人」的問題,因爲最終是人在執行網絡安全方面的各項規定和操作,這需要從管理、培訓上循序漸進地做大量工作。這裏,我們簡單介紹一下江蘇電信IP網在網絡安全方面所采取的部分管理措施。
(一)及時對最新發現的重要安全漏洞和病毒發布通告,制定應對措施。我們通過訂閱有關安全問題的郵件列表來及時了解安全方面的動態,一旦發現與江蘇電信IP網運行系統有關的重大安全問題,就立即著手研究制定解決方案和步驟,並通知相關單位、部門以及用戶。
(二)定期對網絡進行安全掃描,動態掌握安全現狀,發現漏洞及時修補。注意對掃描結果進行統計分析,據此發現網上存在的主要問題,並通過考核的方式督促相關單位盡快解決。
(三)注意對用戶的安全宣傳、教育,並簽訂安全協議,明確責任和義務。
這幾年,有關安全方面的投訴越來越多,其中一個很重要的原因就是大多數用戶安全意識比較薄弱,不知道什麽行爲是允許的,什麽行爲是禁止的。這也是今後江蘇電信IP網網絡安全工作中亟需加強的一個部分。
最後,我們還想在此呼籲,希望我國能盡快完善有關互聯網安全方面的法律法規,對網絡濫用、網絡攻擊等惡意行爲進行規範,制定具體的懲治辦法,以此來保護網絡運營商的合法利益,也就是保護大部分合法用戶的利益。
Linux安全手冊
Linux 安全設置手冊
本文講述了如何通過基本的安全措施,使你的Linux系統變得可靠。
1、Bios Security
一定要給Bios設置密碼,以防通過在Bios中改變啓動順序,而可以從軟盤啓動。
這樣可以阻止別人試圖用特殊的啓動盤啓動你的系統,還可以阻止別人進入Bios
改動其中的設置(比如允許通過軟盤啓動等)。
2、LILO Security
在「/etc/lilo.conf」文件中加入下面三個參數:time-
out,restricted,password。這三個參數可以使你的系統在啓動lilo時就要求密
碼驗證。
第一步:
編輯lilo.conf文件(vi /etc/lilo.comf),假如或改變這三個參數:
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
time-out=00 #把這行該爲00
prompt
Default=linux
restricted #加入這行
password= #加入這行並設置自己的密碼
image=/boot/vmlinuz-2.2.14-12
label=linux
initrd=/boot/initrd-2.2.14-12.img
root=/dev/hda6
read-only
第二步:
因爲"/etc/lilo.conf"文件中包含明文密碼,所以要把它設置爲root權限讀取。
[root@kapil /]# chmod 600 /etc/lilo.conf
第三步:
更新系統,以便對「/etc/lilo.conf」文件做的修改起作用。
[Root@kapil /]# /sbin/lilo -v
第四步:
使用「chattr」命令使"/etc/lilo.conf"文件變爲不可改變。
[root@kapil /]# chattr +i /etc/lilo.conf
這樣可以防止對「/etc/lilo.conf」任何改變(以外或其他原因)
3、刪除所有的特殊賬戶
你應該刪除所有不用的缺省用戶和組賬戶(比如lp, sync, shutdown, halt,
news, uucp, operator, games, gopher等)。
刪除用戶:
[root@kapil /]# userdel LP
刪除組:
[root@kapil /]# groupdel LP
4、選擇正確的密碼
在選擇正確密碼之前還應作以下修改:
修改密碼長度:在你安裝linux時默認的密碼長度是5個字節。但這並不夠,要把
它設爲8。修改最短密碼長度需要編輯login.defs文件
(vi /etc/login.defs),把下面這行
PASS_MIN_LEN 5
改爲
PASS_MIN_LEN 8
login.defs文件是login程序的配置文件。
5、打開密碼的shadow支持功能:
你應該打開密碼的shadow功能,來對password加密。使用
「/usr/sbin/authconfig」工具打開shadow功能。如果你想把已有的密碼和組轉
變爲shadow格式,可以分別使用「pwcov,grpconv」命令。
6、root賬戶
在unix系統中root賬戶是具有最高特權的。如果系統管理員在離開系統之前忘記
注銷root賬戶,系統會自動注銷。通過修改賬戶中「TMOUT」參數,可以實現此
功能。TMOUT按秒計算。編輯你的profile文件(vi /etc/profile),
在"HISTFILESIZE="後面加入下面這行:
TMOUT=3600
3600,表示60*60=3600秒,也就是1小時。這樣,如果系統中登陸的用戶在一個
小時內都沒有動作,那麽系統會自動注銷這個賬戶。你可以在個別用戶的
「.bashrc」文件中添加該值,以便系統對該用戶實行特殊的自動注銷時間。
改變這項設置後,必須先注銷用戶,再用該用戶登陸才能激活這個功能。
7、取消普通用戶的控制台訪問權限
你應該取消普通用戶的控制台訪問權限,比如shutdown、reboot、halt等命令。
[root@kapil /]# rm -f /etc/security/console.apps/
是你要注銷的程序名。
8、取消並反安裝所有不用的服務
取消並反安裝所有不用的服務,這樣你的擔心就會少很多。察看
「/etc/inetd.conf」文件,通過注釋取消所有你不需要的服務(在該服務項目
之前加一個「#」)。然後用「sighup」命令升級「inetd.conf」文件。
第一步:
更改「/etc/inetd.conf」權限爲600,只允許root來讀寫該文件。
[Root@kapil /]# chmod 600 /etc/inetd.conf
第二步:
確定「/etc/inetd.conf」文件所有者爲root。
第三步:
編輯 /etc/inetd.conf文件(vi /etc/inetd.conf),取消下列服務(你不需要
的):ftp, telnet, shell, login, exec, talk, ntalk, imap, pop-2, pop-
3, finger, auth等等。把不需要的服務關閉可以使系統的危險性降低很多。
第四步:
給inetd進程發送一個HUP信號:
[root@kapil /]# killall -HUP inetd
第五步:
用chattr命令把/ec/inetd.conf文件設爲不可修改,這樣就沒人可以修改它:
[root@kapil /]# chattr +i /etc/inetd.conf
這樣可以防止對inetd.conf的任何修改(以外或其他原因)。唯一可以取消這個
屬性的人只有root。如果要修改inetd.conf文件,首先要是取消不可修改性質:
[root@kapil /]# chattr -i /etc/inetd.conf
別忘了該後再把它的性質改爲不可修改的。
9、TCP_WRAPPERS
使用TCP_WRAPPERS可以使你的系統安全面對外部入侵。最好的策略就是阻止所有
的主機(在"/etc/hosts.deny" 文件中加入"ALL: ALL@ALL, PARANOID" ),然
後再在"/etc/hosts.allow" 文件中加入所有允許訪問的主機列表。
第一步:
編輯hosts.deny文件(vi /etc/hosts.deny),加入下面這行
ALL: ALL@ALL, PARANOID
這表明除非該地址包好在允許訪問的主機列表中,否則阻塞所有的服務和地址。
第二步:
編輯hosts.allow文件(vi /etc/hosts.allow),加入允許訪問的主機列表,比
如:
ftp: 202.54.15.99 foo.com
202.54.15.99和 foo.com是允許訪問ftp服務的ip地址和主機名稱。
第三步:
tcpdchk程序是tepd wrapper設置檢查程序。它用來檢查你的tcp wrapper設
置,並報告發現的潛在的和真實的問題。設置完後,運行下面這個命令:
[Root@kapil /]# tcpdchk
10、禁止系統信息暴露
當有人遠程登陸時,禁止顯示系統歡迎信息。你可以通過修改
「/etc/inetd.conf」文件來達到這個目的。
把/etc/inetd.conf文件下面這行:
telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd
修改爲:
telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd -h
在最後加「-h」可以使當有人登陸時只顯示一個login:提示,而不顯示系統歡迎
信息。
11、修改「/etc/host.conf」文件
「/etc/host.conf」說明了如何解析地址。編輯「/etc/host.conf」文件
(vi /etc/host.conf),加入下面這行:
order bind,hosts
multi on
nospoof on
第一項設置首先通過DNS解析IP地址,然後通過hosts文件解析。第二項設置檢測
是否「/etc/hosts」文件中的主機是否擁有多個IP地址(比如有多個以太口網
卡)。第三項設置說明要注意對本機未經許可的電子欺騙。
12、使「/etc/services」文件免疫
使「/etc/services」文件免疫,防止未經許可的刪除或添加服務:
[root@kapil /]# chattr +i /etc/services
13、不允許從不同的控制台進行root登陸
"/etc/securetty"文件允許你定義root用戶可以從那個TTY設備登陸。你可以編
輯"/etc/securetty"文件,再不需要登陸的TTY設備前添加「#」標志,來禁止從
該TTY設備進行root登陸。
14、禁止任何人通過su命令改變爲root用戶
su(Substitute User替代用戶)命令允許你成爲系統中其他已存在的用戶。如果
你不希望任何人通過su命令改變爲root用戶或對某些用戶限制使用su命令,你可
以在su配置文件(在"/etc/pam.d/"目錄下)的開頭添加下面兩行:
編輯su文件(vi /etc/pam.d/su),在開頭添加下面兩行:
auth sufficient /lib/security/pam_rootok.so debug
auth required /lib/security/Pam_wheel.so group=wheel
這表明只有"wheel"組的成員可以使用su命令成爲root用戶。你可以把用戶添加
到「wheel」組,以使它可以使用su命令成爲root用戶。
15、Shell logging
Bash shell在「~/.bash_history」(「~/」表示用戶目錄)文件中保存了500條
使用過的命令,這樣可以使你輸入使用過的長命令變得容易。每個在系統中擁有
賬號的用戶在他的目錄下都有一個「.bash_history」文件。bash shell應該保
存少量的命令,並且在每次用戶注銷時都把這些曆史命令刪除。
第一步:
「/etc/profile」文件中的「HISTFILESIZE」和「HISTSIZE」行確定所有用戶的
「.bash_history」文件中可以保存的舊命令條數。強烈建議把把
「/etc/profile」文件中的「HISTFILESIZE」和「HISTSIZE」行的值設爲一個較
小的數,比如30。編輯profile文件(vi /etc/profile),把下面這行改爲:
HISTFILESIZE=30
HISTSIZE=30
這表示每個用戶的「.bash_history」文件只可以保存30條舊命令。
第二步:
網管還應該在"/etc/skel/.bash_logout" 文件中添加下面這行"rm -f
$HOME/.bash_history" 。這樣,當用戶每次注銷時,「.bash_history」文件都
會被刪除。
編輯.bash_logout文件(vi /etc/skel/.bash_logout) ,添加下面這行:
rm -f $HOME/.bash_history
16、禁止Control-Alt-Delete 鍵盤關閉命令
在"/etc/inittab" 文件中注釋掉下面這行(使用#):
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
改爲:
爲了使這項改動起作用,輸入下面這個命令:
[root@kapil /]# /sbin/init q
17、給"/etc/rc.d/init.d" 下script文件設置權限
給執行或關閉啓動時執行的程序的script文件設置權限。
[root@kapil/]# chmod -R 700 /etc/rc.d/init.d/*
這表示只有root才允許讀、寫、執行該目錄下的script文件。
18、隱藏系統信息
在缺省情況下,當你登陸到linux系統,它會告訴你該linux發行版的名稱、版
本、內核版本、服務器的名稱。對于黑客來說這些信息足夠它入侵你的系統了。
你應該只給它顯示一個「login:」提示符。
第一步:
編輯"/etc/rc.d/rc.local" 文件,在下面顯示的這些行前加一個「#」,把輸出
信息的命令注釋掉。
you
reboot.
第二步:
刪除"/etc"目錄下的「isue.net」和"issue"文件:
[root@kapil /]# rm -f /etc/issue
[root@kapil /]# rm -f /etc/issue.net
19、禁止不使用的SUID/SGID程序
如果一個程序被設置成了SUID root,那麽普通用戶就可以以root身份來運行這
個程序。網管應盡可能的少使用SUID/SGID 程序,禁止所有不必要的SUID/SGID
程序。
查找root-owned程序中使用's'位的程序:
[root@kapil]# find / -type f ( -perm -04000 -o -perm -02000 ) -
exec ls -lg {} ;
用下面命令禁止選中的帶有's'位的程序:
[root@kapil /]# chmod a-s [program]
根據上面這些安全指導方針設置後,系統管理員就會擁有一個基本安全的系統。
上面這些工作有些是個持續的過程,網管要不斷進行這些工作,以保持系統的安
全性。
1. 日志簡介
日志對于安全來說,非常重要,他記錄了系統每天發生的各種各樣的事情,你可以通過他來檢查錯誤發生的原因,或者受到攻擊時攻擊者留下的痕迹。日志主要的功能有:審計和監測。他還可以實時的監測系統狀態,監測和追蹤侵入者等等。
在Linux系統中,有三個主要的日志子系統:
連接時間日志--由多個程序執行,把紀錄寫入到/var/log/wtmp和/var/run/utmp,login等程序更新wtmp和utmp文件,使系統管理員能夠跟蹤誰在何時登錄到系統。
進程統計--由系統內核執行。當一個進程終止時,爲每個進程往進程統計文件(pacct或acct)中寫一個紀錄。進程統計的目的是爲系統中的基本服務提供命令使用統計。
錯誤日志--由syslogd(8)執行。各種系統守護進程、用戶程序和內核通過syslog(3)向文件/var/log/messages報告值得注意的事件。另外有許多UNIX程序創建日志。像HTTP和FTP這樣提供網絡服務的服務器也保持詳細的日志。
常用的日志文件如下:
access-log 紀錄HTTP/web的傳輸
acct/pacct 紀錄用戶命令
aculog 紀錄MODEM的活動
btmp 紀錄失敗的紀錄
lastlog 紀錄最近幾次成功登錄的事件和最後一次不成功的登錄
messages 從syslog中記錄信息(有的鏈接到syslog文件)
sudolog 紀錄使用sudo發出的命令
sulog 紀錄使用su命令的使用
syslog 從syslog中記錄信息(通常鏈接到messages文件)
utmp 紀錄當前登錄的每個用戶
wtmp 一個用戶每次登錄進入和退出時間的永久紀錄
xferlog 紀錄FTP會話
utmp、 wtmp和lastlog日志文件是多數重用UNIX日志子系統的關鍵--保持用戶登錄進入和退出的紀錄。有關當前登錄用戶的信息記錄在文件utmp中;登錄進入和退出紀錄在文件wtmp中;最後一次登錄文件可以用lastlog命令察看。數據交換、關機和重起也記錄在wtmp文件中。所有的紀錄都包含時間戳。這些文件(lastlog通常不大)在具有大量用戶的系統中增長十分迅速。例如wtmp文件可以無限增長,除非定期截取。許多系統以一天或者一周爲單位把wtmp配置成循環使用。它通常由cron運行的腳本來修改。這些腳本重新命名並循環使用wtmp文件。通常,wtmp在第一天結束後命名爲 wtmp.1;第二天後wtmp.1變爲wtmp.2等等,直到wtmp.7。
每次有一個用戶登錄時,login程序在文件lastlog中察看用戶的UID。如果找到了,則把用戶上次登錄、退出時間和主機名寫到標准輸出中,然後 login程序在lastlog中紀錄新的登錄時間。在新的lastlog紀錄寫入後,utmp文件打開並插入用戶的utmp紀錄。該紀錄一直用到用戶登錄退出時刪除。utmp文件被各種命令文件使用,包括who、w、users和finger。
下一步,login程序打開文件wtmp附加用戶的utmp紀錄。當用戶登錄退出時,具有更新時間戳的同一utmp紀錄附加到文件中。wtmp文件被程序last和ac使用。
2. 具體命令
wtmp和utmp文件都是二進制文件,他們不能被諸如tail命令剪貼或合並(使用cat命令)。用戶需要使用who、w、users、last和ac來使用這兩個文件包含的信息。
who:who命令查詢utmp文件並報告當前登錄的每個用戶。Who的缺省輸出包括用戶名、終端類型、登錄日期及遠程主機。例如:who(回車)顯示
chyang pts/0 Aug 18 15:06
ynguo pts/2 Aug 18 15:32
ynguo pts/3 Aug 18 13:55
lewis pts/4 Aug 18 13:35
ynguo pts/7 Aug 18 14:12
ylou pts/8 Aug 18 14:15
如果指明了wtmp文件名,則who命令查詢所有以前的紀錄。命令who /var/log/wtmp將報告自從wtmp文件創建或刪改以來的每一次登錄。
w:w命令查詢utmp文件並顯示當前系統中每個用戶和它所運行的進程信息。例如:w(回車)顯示:3:36pm up 1 day, 22:34, 6 users, load average: 0.23, 0.29, 0.27
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
chyang pts/0 202.38.68.242 3:06pm 2:04 0.08s 0.04s -bash
ynguo pts/2 202.38.79.47 3:32pm 0.00s 0.14s 0.05 w
lewis pts/3 202.38.64.233 1:55pm 30:39 0.27s 0.22s -bash
lewis pts/4 202.38.64.233 1:35pm 6.00s 4.03s 0.01s sh /home/users/
ynguo pts/7 simba.nic.ustc.e 2:12pm 0.00s 0.47s 0.24s telnet mail
ylou pts/8 202.38.64.235 2:15pm 1:09m 0.10s 0.04s -bash
users:users用單獨的一行打印出當前登錄的用戶,每個顯示的用戶名對應一個登錄會話。如果一個用戶有不止一個登錄會話,那他的用戶名將顯示相同的次數。例如:users(回車)顯示:chyang lewis lewis ylou ynguo ynguo
last:last命令往回搜索wtmp來顯示自從文件第一次創建以來登錄過的用戶。例如:
chyang pts/9 202.38.68.242 Tue Aug 1 08:34 - 11:23 (02:49)
cfan pts/6 202.38.64.224 Tue Aug 1 08:33 - 08:48 (00:14)
chyang pts/4 202.38.68.242 Tue Aug 1 08:32 - 12:13 (03:40)
lewis pts/3 202.38.64.233 Tue Aug 1 08:06 - 11:09 (03:03)
lewis pts/2 202.38.64.233 Tue Aug 1 07:56 - 11:09 (03:12)
如果指明了用戶,那麽last只報告該用戶的近期活動,例如:last ynguo(回車)顯示:
ynguo pts/4 simba.nic.ustc.e Fri Aug 4 16:50 - 08:20 (15:30)
ynguo pts/4 simba.nic.ustc.e Thu Aug 3 23:55 - 04:40 (04:44)
ynguo pts/11 simba.nic.ustc.e Thu Aug 3 20:45 - 22:02 (01:16)
ynguo pts/0 simba.nic.ustc.e Thu Aug 3 03:17 - 05:42 (02:25)
ynguo pts/0 simba.nic.ustc.e Wed Aug 2 01:04 - 03:16 1+02:12)
ynguo pts/0 simba.nic.ustc.e Wed Aug 2 00:43 - 00:54 (00:11)
ynguo pts/9 simba.nic.ustc.e Thu Aug 1 20:30 - 21:26 (00:55)
ac:ac命令根據當前的/var/log/wtmp文件中的登錄進入和退出來報告用戶連結的時間(小時),如果不使用標志,則報告總的時間。例如:ac(回車)顯示:total 5177.47
ac -d(回車)顯示每天的總的連結時間
Aug 12 total 261.87
Aug 13 total 351.39
Aug 14 total 396.09
Aug 15 total 462.63
Aug 16 total 270.45
Aug 17 total 104.29
Today total 179.02
ac -p (回車)顯示每個用戶的總的連接時間
ynguo 193.23
yucao 3.35
rong 133.40
hdai 10.52
zjzhu 52.87
zqzhou 13.14
liangliu 24.34
total 5178.24
lastlog: lastlog文件在每次有用戶登錄時被查詢。可以使用lastlog命令來檢查某特定用戶上次登錄的時間,並格式化輸出上次登錄日志 /var/log/lastlog的內容。它根據UID排序顯示登錄名、端口號(tty)和上次登錄時間。如果一個用戶從未登錄過,lastlog顯示 "**Never logged**。注意需要以root運行該命令,例如:
rong 5 202.38.64.187 Fri Aug 18 15:57:01 +0800 2000
dbb **Never logged in**
xinchen **Never logged in**
pb9511 **Never logged in**
xchen 0 202.38.64.190 Sun Aug 13 10:01:22 +0800 2000
另外,可一加一些參數,例如,last -u 102將報告UID爲102的用戶;last -t 7表示限制上一周的報告。
3. 進程統計
UNIX 可以跟蹤每個用戶運行的每條命令,如果想知道昨晚弄亂了哪些重要的文件,進程統計子系統可以告訴你。它對還跟蹤一個侵入者有幫助。與連接時間日志不同,進程統計子系統缺省不激活,它必須啓動。在Linux系統中啓動進程統計使用accton命令,必須用root身份來運行。Accton命令的形式 accton file,file必須先存在。先使用touch命令來創建pacct文件:touch /var/log/pacct,然後運行accton: accton /var/log/pacct。一旦accton被激活,就可以使用lastcomm命令監測系統中任何時候執行的命令。若要關閉統計,可以使用不帶任何參數的accton命令。
lastcomm命令報告以前執行的文件。不帶參數時,lastcomm命令顯示當前統計文件生命周期內紀錄的所有命令的有關信息。包括命令名、用戶、tty、命令花費的CPU時間和一個時間戳。如果系統有許多用戶,輸入則可能很長。下面的例子:
crond F root ?? 0.00 secs Sun Aug 20 00:16
promisc_check.s S root ?? 0.04 secs Sun Aug 20 00:16
promisc_check root ?? 0.01 secs Sun Aug 20 00:16
grep root ?? 0.02 secs Sun Aug 20 00:16
tail root ?? 0.01 secs Sun Aug 20 00:16
sh root ?? 0.01 secs Sun Aug 20 00:15
ping S root ?? 0.01 secs Sun Aug 20 00:15
ping6.pl F root ?? 0.01 secs Sun Aug 20 00:15
sh root ?? 0.01 secs Sun Aug 20 00:15
ping S root ?? 0.02 secs Sun Aug 20 00:15
ping6.pl F root ?? 0.02 secs Sun Aug 20 00:15
sh root ?? 0.02 secs Sun Aug 20 00:15
ping S root ?? 0.00 secs Sun Aug 20 00:15
ping6.pl F root ?? 0.01 secs Sun Aug 20 00:15
sh root ?? 0.01 secs Sun Aug 20 00:15
ping S root ?? 0.01 secs Sun Aug 20 00:15
sh root ?? 0.02 secs Sun Aug 20 00:15
ping S root ?? 1.34 secs Sun Aug 20 00:15
locate root ttyp0 1.34 secs Sun Aug 20 00:15
accton S root ttyp0 0.00 secs Sun Aug 20 00:15
進程統計的一個問題是pacct文件可能增長的十分迅速。這時需要交互式的或經過cron機制運行sa命令來保持日志數據在系統控制內。sa命令報告、清理並維護進程統計文件。它能把/var/log/pacct中的信息壓縮到摘要文件/var/log/savacct和/var/log/usracct 中。這些摘要包含按命令名和用戶名分類的系統統計數據。sa缺省情況下先讀它們,然後讀pacct文件,使報告能包含所有的可用信息。sa的輸出有下面一些標記項:
avio--每次執行的平均I/O操作次數
cp--用戶和系統時間總和,以分鍾計
cpu--和cp一樣
k--內核使用的平均CPU時間,以1k爲單位
k*sec--CPU存儲完整性,以1k-core秒
re--實時時間,以分鍾計
s--系統時間,以分鍾計
tio--I/O操作的總數
u--用戶時間,以分鍾計
例如:
842 173.26re 4.30cp 0avio 358k
2 10.98re 4.06cp 0avio 299k find
9 24.80re 0.05cp 0avio 291k ***other
105 30.44re 0.03cp 0avio 302k ping
104 30.55re 0.03cp 0avio 394k sh
162 0.11re 0.03cp 0avio 413k security.sh*
154 0.03re 0.02cp 0avio 273k ls
56 31.61re 0.02cp 0avio 823k ping6.pl*
2 3.23re 0.02cp 0avio 822k ping6.pl
35 0.02re 0.01cp 0avio 257k md5sum
97 0.02re 0.01cp 0avio 263k initlog
12 0.19re 0.01cp 0avio 399k promisc_check.s
15 0.09re 0.00cp 0avio 288k grep
11 0.08re 0.00cp 0avio 332k awk
用戶還可以根據用戶而不是命令來提供一個摘要報告。例如sa -m顯示如下:
885 173.28re 4.31cp 0avk
root 879 173.23re 4.31cp 0avk
alias 3 0.05re 0.00cp 0avk
qmailp 3 0.01re 0.00cp 0avk
4. Syslog設備
Syslog已被許多日志函數采納,它用在許多保護措施中--任何程序都可以通過syslog 紀錄事件。Syslog可以紀錄系統事件,可以寫到一個文件或設備中,或給用戶發送一個信息。它能紀錄本地事件或通過網絡紀錄另一個主機上的事件。
Syslog 設備依據兩個重要的文件:/etc/syslogd(守護進程)和/etc/syslog.conf配置文件,習慣上,多數syslog信息被寫到 /var/adm或/var/log目錄下的信息文件中(messages.*)。一個典型的syslog紀錄包括生成程序的名字和一個文本信息。它還包括一個設備和一個優先級範圍(但不在日之中出現)。
每個syslog消息被賦予下面的主要設備之一:
LOG_AUTH--認證系統:login、su、getty等
LOG_AUTHPRIV--同LOG_AUTH,但只登錄到所選擇的單個用戶可讀的文件中
LOG_CRON--cron守護進程
LOG_DAEMO