網站綜合例項 (轉)
網站綜合例項
這裡以為例項,指導在以以後,如何以最快的速度建設一個如同的伺服器。在這裡網站伺服器上執行有以下伺服器:、、WWW、My、Send。
伺服器
安裝完Linux伺服器以後,首先要對伺服器進行初步的安全設定,一般來講要考慮下面這些安全問題:安裝伺服器結束以後,預設的各種伺服器都是開啟的,所以,首先需要關閉那些不需要的服務,因為這些服務可能會對安全造成威脅。首先需要關閉以下服務:finger、talk、ntalk、、login、pop3、tftp、linuxconf、ftp、。這些服務的特點是他們都是由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啟動的服務,則透過命令來關閉,例如需要關閉服務,則:
/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:ain *:* 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 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檔案。舉例如下,若不允許al登入系統則需要編輯passwd檔案,修改:
ideal:x:500:500:ideal:/home/ideal:/bin/bash
為:
ideal:x:500:500:ideal:/home/ideal:/usr/bin/passwd
這樣當該使用者登入進入系統以後,只能修改自己的密碼,修改完畢以後,系統會自動斷開連線。
23.2 設定DNS伺服器
我們首先為伺服器設定dns伺服器。這裡假定的伺服器為202.99.11.120,該伺服器除了要解析linuxaid.com.cn的區資訊以外,還要解析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.a" {
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 ns. linuxaid.com.cn. . 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 .
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
28800 ; refresh
7200 ; retry
604800 ; expire
86400 ; default_ttl
)
@ IN NS ns.longshine.com.cn.
;
; SERVER SECTION
;
120 IN PTR .
120 IN PTR mail.longshine.com.cn.
120 IN PTR ns.longshine.com.cn.
120 IN PTR ftp.longshine.com.cn.
該檔案定義了202.99.12網路的域名反向解析資訊。
啟動
啟動dns伺服器可以使用命令:ndc start,若輸出結果為”new pid is 2317”,若輸出錯誤,則需要檢視上面的配置檔案是否正確設定。這時,使用命令”ps ax|grep named” 應該輸出:
2317 ? S 0:00 /usr/sbin/named
2319 pts/0 S 0:00 grep named
停止dns伺服器程式的命令為:ndc stop。
也可以使用命令/etc/rc.d/init.d/named start|stop來啟動或關閉某個服務。
若需要在啟動時自動啟動DNS伺服器,則使用命令:
/sbin/chkconfig –level 35 named on
若需要關閉自動啟動DNS伺服器,則使用命令:
/sbin/chkconfig –level 35 named off
測試:
啟動DNS伺服器以後,使用命令nslookup命令進行測試:
[root@www /]nslookup
Default Server: ns.linuxaid.com.cn
Address: 202.99.11.120
>www
Server: ns.linuxaid.com.cn
Address: 202.99.11.120
Name:
Address: 202.99.11.120
>set q=mx
>linuxaid.com.cn
> set q=mx
> plagh.com.cn
Server: ns.linuxaid.com.cn
Address: 202.99.11.120
linuxaid.com.cn preference = 10, mail r = mail. linuxaid.com.cn
linuxaid.com.cn nameserver = ns linuxaid.com.cn
mail. linuxaid.com.cn internet address =202.99.11.120
ns. linuxaid.com.cn internet address =202.99.11.120
>exit
若測試結果和上面的一樣,則說明DNS服務安裝成功。
19.2 設定FTP伺服器
只要成功地以伺服器模式安裝了redhat,ftp伺服器就應該已經正常的在執行了,在本機,使用命令測試:
ftp localhost
若顯示連線成功,則說明ftp伺服器已經成功安裝並且執行正常。若連線時顯示:
ftp: connect: Connection refused
ftp>
則說明ftp服務沒有開放,則需要編輯/etc/inetd.conf檔案,確保有如下的內容:
ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l –a
相反的,若希望關閉ftp伺服器,則需要在上面一行的內容前面新增#,將其註釋掉,然後查詢inetd程式的程式號,
ps ax|grep inetd
353 ? S 0:00 inetd
作說明inetd的程式號為353,然後kill –HUP 353,就可以關閉ftp伺服器了。
下面討論這樣一種情況,現在有一個目錄為/www/htdocs/developer,希望使用者user1能讀寫該目錄,但是其不能telnet進入系統,而user1的主目錄為/home/user1。這種需求主要是滿足多個管理員對網站的不同部分進行管理,但是又不允許其透過telnet服務登入網站,只允許其將內容ftp到網站上。這就需要新增一個組,這裡隨便定義為developer組:
/usr/sbin/groupadd developer
然後將user1新增到該組內:
/usr/sbin/usermod –G developer user1
然後修改/www/htdocs/developer屬於developer組:
chgrp –R developer /www/htdocs/developer
最後,設定該目錄為developer完全控制:
chmod -R 775 /www/htdocs/developer
這樣/www/htdocs/developer就屬於developer組所有,並且完全可以由屬於developer組的使用者控制。
19.3 安裝設定伺服器
需要從最新版本,目前最新版本是3.23。這裡主要討論以二進位制包的方式安裝Mysql。
首先從mysql主頁下載mysql-3.23.24-beta-pc-linux--i686.tar.gz到/usr/src目錄下,然後執行命令:
[root@www /]# tar xvfz mysql-3.23.24-beta-pc-linux-gnu-i686.tar.gz
解壓釋出,然後使用命令”cd mysql-3.23.24-beta”進入mysql的目錄,執行:
[root@www /]# ./scripts/mysql_install_
就會實現mysql的預設安裝,預設是安裝在/usr/local/mysql目錄下,該目錄下包含了mysql的所有的lib庫,可檔案等等。
下面使用mysql的客戶端來測試mysql是否正常:
[root@www /]# mysql –u root
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 61 to server version: 3.23.22-beta
Type 'help' for help.
mysql>
預設安裝情況下mysql有一個root使用者(注和系統的root使用者沒有直接關係),該使用者具有對整個庫的讀寫,而且root使用者是沒有任何密碼的,所以首先需要為該使用者新增密碼,。在mysql提示符下輸入如下SQL語句:
'UPDATE user SET Pass = PASSWORD ('yourpassword')'
'WHERE user = 'root';'
'FLUSH PRIVILEGES;'
這樣,就實現了對root使用者增加密碼的任務,現在使用quit命令退出mysql,然後重新連線mysql伺服器就需要指定密碼資訊:
[root@www /]# mysql –u root –pyourpasswd
然後才能連線mysql伺服器。
但是一般都推薦新增一個非root的而具有root的所有許可權的資料庫使用者,因此使用下面的SQL語句實現新增一個具有root許可權的名為ideal的使用者:
'INSERT INTO users'
'VALUES ('localhost','ideal','idealsppasswd','y','y','y','y','y','y','y','y','y','y','y','y','y','y');'
這樣,你就完成了在本系統上安裝Mysql伺服器的任務,具體的許可權設定及如何建庫、如何建表、如何訪問庫資料,請參考mysql的手冊,裡面有非常詳盡的使用幫助。
19.4設定www伺服器
以伺服器模式安裝redhat以後,系統預設地就已經安裝了apach伺服器,使用命令:
ps ax+grep httpd
來檢視系統的伺服器是否正在執行,若已經正在執行了,從另外一臺機器上,在中輸入www伺服器的IP地址就會訪問到apache的預設主頁。若apache沒有啟動,則需要使用命令:
/etc/rc.d/init.d/httpd start
來啟動apache伺服器,若伺服器成功啟動,然後再從windows機器上使用瀏覽器進行測試,一般來講只要成功按伺服器模式安裝了Redhat,一般apache就能啟動執行的,若不能啟動執行,最常見的毛病是apache伺服器的httpd.conf中本機的名字沒有正確設定,這時候需要編輯/etc/httpd/conf/httpd.conf中ServerName一行的內容,對於本機具有正式域名的伺服器,這裡設定ServerName為伺服器域名,以為例:
ServerName
若伺服器沒有正式域名,則在這裡指定ServerName為本機IP地址。然後再啟動apache伺服器。
若希望在機器啟動時自動啟動www伺服器,則需要使用以下命令:
[root@www /]# /usr/sbin/chkconfig –level 35 httpd on
若希望在啟動時不啟動www伺服器,則使用命令:
[root@www /]# /usr/sbin/chkconfig –level 35 httpd off
若希望在本機上建立多個虛擬主機,這裡假設linuxaid需要設定兩個虛擬主機:和forum.linuxaid.com.cn。由於只能分配一個IP地址,所以這裡採用基於域名的多虛擬域名伺服器。編輯/etc/httpd/httpd.conf,新增下面的內容:
NameVirtualHost 210.12.114.130
ServerAdmin lix@dns.plagh.cn
DocumentRoot /home/httpd/
ServerName
ErrorLog /var/log/httpd//error.log
ServerAdmin lix@dns.plagh.cn
DocumentRoot /home/httpd/forum.linuxaid.com.cn
ServerName forum.linuxaid.com.cn
ErrorLog /var/log/httpd/forum.linuxaid.com.cn/error.log
然後分別在/home/httpd/建立名字為和forum.linuxaid.com.cn的目錄,分別將兩個www伺服器的html頁面複製到各自的目錄下。然後在/var/log/httpd/建立名字為和forum.linuxaid.com.cn的目錄,然後分別在這兩個目錄下建立檔案error.log:
touch error.log
然後重新啟動apche伺服器:
/etc/rc.d/init.d/httpd restart
然後從網路上就可以測試虛擬伺服器的可達性。
對於大規模應用的伺服器,則需要調整其執行引數以使其能處理更多的服務請求。這就需要調整配置檔案/etc/httpd/conf/httpd.conf中下面兩個引數:
MinSpareServers 5
MaxSpareServers 20
StartServers 8
MaxClients 150
這幾個引數的含義分別為:
系統中最少有MinSpareServers個www伺服器空閒程式等待服務請求。
系統中最少有MaxSpareServers個www伺服器空閒程式等待服務請求。
系統啟動以後,初始有StartServers個www伺服器程式等待服務請求。
最大同時有有MaxClients個www伺服器程式。
管理員應該根據自己系統的負載情況,設定這些引數。
19.4設定sendmail伺服器
當前linux的各個釋出都將sendmail作為預設地軟體,所以這裡主要討論在redhat6.2環境下如何將sendmail郵件伺服器軟體執行起來,實現正常的郵件收發。
編輯/etc/sendmail.cw檔案,新增本機的域名到該檔案中,這裡以linuxaid.com.cn為例:
linuxaid.com.cn
mail.linuxaid.com.cn
然後重新啟動sendmail郵件伺服器:
/etc/rc.d/init.d/sendmail restart
然後測試郵件伺服器,使用mail:
[lix@mail /etc]# mail ideal@btamail.net.cn
這裡你應該將ideal@btamail.net.cn設定為你自己的外部。然後看能否收到,只要預設安裝了sendmail,正確地修改了/etc/sendmail.cw檔案,就肯定可以接收到信件,收到信件以後可以回覆給傳送者,然後再使用mail程式接收信件,若接收成功就表示 sendmail初步接收成功,更復雜的設定可以參考具體章節。
若需要在啟動時自動啟動SENDMAIL伺服器,則使用命令:
/sbin/chkconfig –level 35 sendmail on
若需要關閉自動啟動SENDMAIL伺服器,則使用命令:
/sbin/chkconfig –level 35 sendmail off
下面討論兩個比較典型的需求:
一種是若本機器有兩個域名:test1.com和test2.com,這裡設定test1.com為主域名,於是當為系統新增一個系統帳號man1,則帳號man則會具有man@test1.com,但是也許管理員會希望man在test1.com和test2.com兩個域上都有郵箱,而且是同一個信箱,也就是說,當我向man@test1.com和man@test2.com傳送郵件,man都可以從man@test1.com信箱收到。要實現這種設定,需要編輯檔案/etc/mail/virtuusertable檔案,新增如下內容:
man@test2.com man
然後執行make,重新啟動sendmail:
/etc/rc.d/sendmail restart
就可以實現這個效果。
第二種情況是,希望設定一個別名信箱,也就是希望發往webmaster@test1.com的所有的信件都實際上發給了使用者man@test1.com,而且實際上並沒有新增webmaster這個郵件帳號,它只是man@test1.com的一個別名。編輯/etc/alliases檔案,新增如下內容:
webmaster: man
然後執行命令/usr/bin/ newaliases,重新啟動sendmail伺服器:/etc/rc.d/init.d/sendmail restart就可以了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-1000541/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 網站綜合例項(轉)網站
- WebGL多模型光照綜合例項Web模型
- Flutter中表單元件綜合運用例項Flutter元件
- 配置高效能動態網站(例項)網站
- js防止網站被映象程式碼例項JS網站
- [譯]網站設計綜合指南網站
- [譯] 網站設計綜合指南網站
- Android專案常用功能綜合例項Android
- js網址跳轉例項程式碼JS
- 區域網實現VLAN例項(轉)
- 嵌入式學習網站綜合學習網站
- Python簡單函式迴圈綜合例項Python函式
- [Ajax]十個優秀的Ajax/Javascript例項網站JavaScript網站
- 05 - 微信小程式例項開發 - 綜合小娛樂微信小程式
- JAAS簡介及例項(來自JavaEye技術網站)Java網站
- APIHOOK例項剖析 (轉)APIHook
- js使用cookie儲存網站背景顏色程式碼例項JSCookie網站
- 21個最具創意手插畫網站設計例項網站
- 演示中斷處理的例項(例項六)(轉)
- javascript實現網頁跳轉的程式碼例項JavaScript網頁
- 網頁倒數計時跳轉程式碼例項網頁
- 使用meta實現網頁跳轉程式碼例項網頁
- 在FreeBSD中安裝雙網路卡例項(轉)
- 例項分享| anyRTC 部署南京某區城市執行“一網統管”綜合排程系統
- oracle單例項轉RACOracle單例
- (轉)MySQL優化例項MySql優化
- [轉]BDB例項程式碼
- AsmL例項研究(二) (轉)ASM
- Java 介面實現多型 -- 膝上型電腦綜合例項Java多型
- 輕量級網站建設jsonp跨域簡單例項網站JSON跨域單例
- 組網例項:無線區域網WLAN企業應用(轉)
- 如何將獨立例項轉換成叢集例項EU
- javaSE綜合例項之記事本詳細解析--長篇(初學者)Java
- 設計模式綜合例項分析之資料庫同步系統(二)設計模式資料庫
- 乾貨!各種常見佈局實現+知名網站例項分析網站
- (轉)Python例項手冊Python
- 如何區分例項化網格中的每個例項
- OpenHarmony雙網路卡配置例項