摘要
這裡以www.Linuxaid.com.cn為實例,指導在以服務器模式安裝redhat以後,如何以最快的速度建設一個如同www.linuxaid.com.cn的服務器。在這裡網站服務器上運行有以下服務器軟件:FTP、DNS、WWW、mysql、Sendmail。(2002-07-02 12:32:53)
--------------------------------------------------------------------------------
By 處處
這裡以www.linuxaid.com.cn為實例,指導在以服務器模式安裝redhat以後,如何以最快的速度建設一個如同www.linuxaid.com.cn的服務器。在這裡網站服務器上運行有以下服務器軟件:Ftp、DNS、WWW、Mysql、Sendmail。
1.服務器安全
安裝完Linux服務器以後,首先要對服務器進行初步的安全設置,一般來講要考慮下面這些安全問題:安裝服務器結束以後,缺省的各種服務器都是打開的,所以,首先需要關閉那些不需要的服務,因為這些服務可能會對系統安全造成威脅。首先需要關閉以下服務:finger、talk、ntalk、shell、login、pop3、tftp、linuxconf、ftp、telnet。這些服務的特點是他們都是由inetd進程啟動的,也就是說這些服務並不直接啟動,而是有inetd代其監聽自己的服務端口,當有服務請求到來以後,inetd才會啟動真正的服務進程,處理請求。而inetd的配置文件/etc/inetd.conf則指定了哪些服務需要從inetd來啟動。因此如果需要關閉不需要的服務則應該編輯該文件,在相應的服務前加上注釋符號 “#”例如,需要關閉finger服務,將:
finger stream tcp nowait nobody /usr/sbin/tcpd in.finger
修改為:
# finger stream tcp nowait nobody /usr/sbin/tcpd in.finger
對其他的服務可以采取同樣的措施。
而對於那些不是從inetd啟動的服務,則通過命令來關閉,例如需要關閉sendmail服務,則:
/etc/rc.d/init.d/sendmail stop
然後再設置其不在系統啟動時啟動:
chkconfig –level 12345 sendmail off
也可以使用ntsysv命令來設定是否自啟動某個服務。
一般來講,服務器上應當只啟動必須的服務,對於那些不需要的服務,必須關閉。可以使用命令netstat –l –n來查看本機開放了那些服務:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 ins:domain *:* LISTEN
tcp 0 0 ns:domain *:* LISTEN
tcp 0 0 www:domain *:* LISTEN
tcp 0 0 *:www *:* LISTEN
tcp 0 0 *:ftp *:* LISTEN
udp 0 0 *:1036 *:*
udp 0 0 ins:domain *:*
udp 0 0 ns:domain *:*
udp 0 0 www:domain *:*
raw 0 0 *:icmp *:* 7
raw 0 0 *:tcp *:* 7
Active UNIX domain sockets (only servers)
Proto RefCnt Flags Type State I-Node Path
從上面的輸出可以看到,這台機器開放了dns、www、ftp、1036、icmp、tcp端口,可以查看/etc/service來確定數字表示的端口具體都是什麼服務。
這裡關閉了telnet服務,那麼如何登錄服務器進行配置呢?這裡推薦使用SSH,因為telnet協議是采用明文方式傳輸密碼和用戶名,因此這些信息可能在傳輸過程中被竊聽,而SSH是telnet的一種替代品,它的服務器和客戶端之間的所有數據傳輸都進行了加密,因此提高了安全性。
若某個系統帳號用戶不允許登錄系統,而只允許其修改自己的密碼,則需要修改起shell,也就是編輯/etc/passwd文件。舉例如下,若不允許ideal登錄系統則需要編輯passwd文件,修改:
ideal:x:500:500:ideal:/home/ideal:/bin/bash
為:
ideal:x:500:500:ideal:/home/ideal:/usr/bin/passwd
這樣當該用戶登錄進入系統以後,只能修改自己的密碼,修改完畢以後,系統會自動斷開連接。
2.設置DNS服務器
我們首先為服務器設置dns服務器。這裡假定www.linuxaid.com.cn的服務器ip地址為202.99.11.120,該服務器除了要解析linuxaid.com.cn的區信息以外,還要解析longshine.com.cn的區信息。也就是說本機要負責解析兩個區的域名信息。這裡假設www.longshine.com.cn的IP地址是202.99.12.120。
第一步:
編輯系統已經存在的/etc/resolv.conf文件,設置內容如下:
domain linuxaid.com.cn.
nameserver 202.99.11.120
該文件定義了本地域名和缺省域名服務器,可以根據自己的實際情況修改該文件。
第二步:
編輯系統已經存在的/etc/named.conf文件,初始內容為:
options {
Directory "/var/named";
};
zone "." {
type hint;
file "named.ca";
};
zone "0.0.127.in-addr.arpa" {
type master;
file "named.local";
};
修改內容如下:
options {
directory "/var/named";
};
zone "." {
type hint;
file "named.ca";
};
zone "linuxaid.com.cn"{
type master;
file "linuxaid.com.cn";
};
zone "longshine.com.cn"{
type master;
file "longshine.com.cn ";
};
zone "0.0.127.in-addr.arpa"{
type master;
file "named.local";
};
zone “12.99.202.in-addr.arpa"{
type master;
file "12.99.202";
};
zone “11.99.202.in-addr.arpa"{
type master;
file "11.99.202";
};
其中,type指定了該域的性質,hint指根域,master表示本機對該域是權威的主域名服務器。
第三步:
創建/var/named下的名為linuxaid.com.cn文件內容如下:
@ IN SOA ns. linuxaid.com.cn. root. linuxaid.com.cn. (
2000080701 ; serial
28800 ; refresh
7200 ; retry
604800 ; eXPire
86400 ; default_ttl
)
@ IN A 202.99.11.120
@ IN NS ns. linuxaid.com.cn.
@ IN MX 10 mail. linuxaid.com.cn.
localhost IN A 127.0.0.1
www IN A 202.99.11.120
mail IN A 202.99.11.120
ns IN A 202.99.11.120
ftp IN A 202.99.11.120
該文件是linuxaid.com.cn的域數據信息文件,其中定義了各種服務器的IP vs 域名的對應信息。其中:
@ IN A 202.99.11.120
一行定義域名linuxaid.com.cn對應的IP地址為201.99.11.120,當對linuxaid.com.cn進行通常的域名解析(這裡指不是進行MX—郵件網關域名解析)時將會返回IP地址202.99.11.120的應答。
第四步:
創建/var/named目錄下的名為longshine.com.cn文件內容如下:
@ IN SOA ns. longshine.com.cn. root. longshine.com.cn. (
2000080701 ; serial
28800 ; refresh
7200 ; retry
604800 ; expire
86400 ; default_ttl
)
@ IN A 202.99.12.120
@ IN NS ns. longshine.com.cn.
@ IN MX 10 longshine.com.cn.
localhost IN A 127.0.0.1
www IN A 202.99.12.120
mail IN A 202.99.12.120
ns IN A 202.99.12.120
ftp IN A 202.99.12.120
該文件是longshine.com.cn的域數據信息文件,其中定義了各種服務器的IP vs 域名的對應信息。
第五步:
創建/var/named目錄下的名為named.local的文件內容如下:
@ IN SOA localhost. root.localhost. (
1997022700 ; serial
28800 ; refresh
14400 ; retry
3600000 ; expire
86400 ; default_ttl
)
@ IN NS localhost.
1 IN PTR localhost.
該文件定義了本地回路的域名反向解析信息。
第五步:
創建/var/named目錄下的名為11.99.202的文件,內容如下:
@ IN SOA ns.linuxaid.com.cn. root.linuxaid.com.cn. (
2000080501 ; serial
28800 ; refresh
7200 ; retry
604800 ; expire
86400 ; default_ttl
)
@ IN NS ns.linuxaid.com.cn.
;
; SERVER SECTION
;
120 IN PTR www.linuxaid.com.cn.
120 IN PTR mail.linuxaid.com.cn.
120 IN PTR ns.linuxaid.com.cn.
120 IN PTR ftp.linuxaid.com.cn.
該文件定義了202.99.11網絡的域名反向解析信息。
第六步:
創建/var/named目錄下的名為12.99.202的文件內容如下:
@ IN SOA ns.longshine.com.cn. root.longshine.com.cn. (
2000080501 ; serial
604800 ; expire
86400 ; default_ttl
)
@ IN NS ns.linuxaid.com.cn.
;
; SERVER SECTION
;
120 IN PTR www.linuxaid.com.cn.
120 IN PTR mail.linuxaid.com.cn.
120 IN PTR ns.linuxaid.com.cn.
120 IN PTR ftp.linuxaid.com.cn.
該文件定義了202.99.11網絡的域名反向解析信息。
第六步:
創建/var/named目錄下的名為12.99.202的文件內容如下:
@ IN SOA ns.longshine.com.cn. root.longshine.com.cn. (
2000080501 ; serial