歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux管理 >> Linux網絡 >> Linux網絡服務器配置基礎(下)

Linux網絡服務器配置基礎(下)

日期:2017/2/27 9:46:32   编辑:Linux網絡
  * /etc/hosts.allow 文件    但是對於telnet、FTP等服務,如果將其一同關閉,那麼對於管理員需要遠程管理時,將非常不方便。Linux提供另外一種更為靈活和有效的方法來實現對服務請求用戶的限制,從而可以在保證安全性的基礎上,使可信任用戶使用各種服務。Linux提供了一個叫TCP wrapper的程序。在大多數發布版本中該程序往往是缺省地被安裝。利用TCP wrapper你可以限制訪問前面提到的某些服務。而且TCP wrapper的記錄文件記錄了所有的企圖訪問你的系統的行為。通過last命令查看該程序的log,管理員可以獲知誰曾經或者企圖連接你的系統。    在/etc目錄下,有兩個文件:hosts.deny hosts.allow 通過配置這兩個文件,你可以指定哪些機器可以使用這些服務,哪些不可以使用這些服務。    當服務請求到達服務器時,TCP wrapper就按照下列順序查詢這兩個文件,直到遇到一個匹配為止:    1.當在/etc/hosts.allow裡面有一項與請求服務的主機地址項匹配,那麼就允許該主機獲取該服務    2.否則,如果在/etc/hosts.deny裡面有一項與請求服務的主機地址項匹配,就禁止該主機使用該項服務。    3.如果相應的配置文件不存在,訪問控制軟件就認為是一個空文件,所以可以通過刪除或者移走配置文件實現對清除所有設置。在文件中,空白行或者以#開頭的行被忽略,你可以通過在行前加 # 實現注釋功能。    配置這兩個文件是通過一種簡單的訪問控制語言來實現的,訪問控制語句的基本格式為:    程序名列表:主機名/IP地址列表。    程序名列表指定一個或者多個提供相應服務的程序的名字,名字之間用逗號或者空格分割,可以在inetd.conf文件裡查看提供相應服務的程序名:如上面的文件示例中,telent所在行的最後一項就是所需的程序名:in.telnetd。    主機名/IP地址列表指定允許或者禁止使用該服務的一個或者多個主機的標識,主機名之間用逗號或空格分隔。程序名和主機地址都可以使用通配符,實現方便的指定多項服務和多個主機。    Linux提供了下面靈活的方式指定進程或者主機列表:    1.一個以"."起始的域名串,如 .amms.ac.cn 那麼www.amms.ac.cn就和這一項匹配    2.以"."結尾的IP串如 202.37.152. 那麼IP地址包括202.37.152. 的主機都與這一項匹配。    3.格式為n.n.n.n/m.m.m.m表示網絡/掩碼,如果請求服務的主機的IP地址與掩碼的位與的結果等於n.n.n.n 那麼該主機與該項匹配。    4.ALL表示匹配所有可能性    5.EXPECT表示除去後面所定義的主機。如:list_1 EXCEPT list_2 表示list_1主機列表中除去List_2所列出的主機    6.LOCAL表示匹配所有主機名中不包含"."的主機    上面的幾種方式只是Linux提供的方式中的幾種,但是對於我們的一般應用來說是足夠了。我們通過舉幾個例子來說明這個問題:    例一:我們只希望允許同一個局域網的機器使用服務器的ftp功能,而禁止廣域網上面的ftp服務請求,本地局域網由 202.39.154.、202.39.153.和202.39.152. 三個網段組成。    在hosts.deny文件中,我們定義禁止所有機器請求所有服務:    ALL:ALL    在hosts.allow文件中,我們定義只允許局域網訪問ftp功能:    in.ftpd -l –a: 202.39.154 202.39.153. 202.39.152.    這樣,當非局域網的機器請求ftp服務時,就會被拒絕。而局域網的機器可以使用ftp服務。此外,應該定期檢查/var/log目錄下的紀錄文件,發現對系統安全有威脅的登錄事件。last命令可以有效的查看系統登錄事件,發現問題所在。


   最後tcpdchk是檢查TCP_WAPPERS配置的程序。它檢查TCP_WAPPERS的配置,並報告它可以發現的問題或潛在的問題。在所有的配置都完成了之後,請運行tcpdchk程序:    [root@deep]# tcpdchk * /etc/services 文件    端口號和標准服務之間的對應關系在RFC 1700 “Assigned Numbers”中有詳細的定義。“/etc/services”文件使得服務器和客戶端的程序能夠把服務的名字轉成端口號,這張表在每一台主機上都存在,其文件名是“/etc/services”。只有“root”用戶才有權限修改這個文件,而且在通常情況下這個文件是沒有必要修改的,因為這個文件中已經包含了常用的服務所對應的端口號。為了提高安全性,我們可以給這個文件加上保護以避免沒有經過授權的刪除和改變。為了保護這個文件可以用下面的命令:    [root@deep]# chattr +i /etc/services * /etc/securetty 文件    “/etc/securetty”文件允許你規定“root”用戶可以從那個TTY設備登錄。登錄程序(通常是“/bin/login”)需要讀取“/etc/securetty”文件。它的格式是:列出來的tty設備都是允許登錄的,注釋掉或是在這個文件中不存在的都是不允許root登錄的。    注釋掉(在這一行的開頭加上#號)所有你想不讓root登錄的tty設備。    編輯securetty文件(vi /etc/securetty)象下面一樣,注釋掉一些行:    tty1    #tty2    #tty3    #tty4    #tty5    #tty6    #tty7    #tty8 * 使Control-Alt-Delete關機鍵無效    把“/etc/inittab”文件中的一行注釋掉可以禁止用Control-Alt-Delete關閉計算機。如果服務器不是放在一個安全的地方,這非常重要。    編輯inittab文件(vi /etc/inittab)把這一行:    ca::ctrlaltdel:/sbin/shutdown -t3 -r now    改為:    #ca::ctrlaltdel:/sbin/shutdown -t3 -r now    用下面的命令使改變生效:    [root@deep]# /sbin/init q * 改變“/etc/rc.d/init.d/”目錄下的腳本文件的訪問許可    /etc/rc.d/init.d/下的腳本主要包含了啟動服務的腳本程序。一般用戶沒有什麼必要知道腳本文件的內容。所以應該改變這些腳本文件的權限。    [root@deep]# chmod -R 700 /etc/rc.d/init.d/*    這樣只有root可以讀、寫和執行這個目錄下的腳本。 * /etc/rc.d/rc.local 文件    在默認情況下,當登錄裝有Linux系統的計算機時,系統會告訴你Linux發行版的名字、版本號、內核版本和服務器名稱。這洩露了太多的系統信息。最好只顯示一個“Login:”的提示信息。    第一步:    編輯“/ect/rc.d/rc.local”文件,在下面這些行的前面加上“#”:    --    # This will overwrite /etc/issue at every boot. So, make any changes you    # want to make to /etc/issue here or you will lose them when you reboot.    #echo "" > /etc/issue    #echo "$R" >> /etc/issue    #echo "Kernel $(uname -r) on $a $(uname -m)" >> /etc/issue    #    #cp -f /etc/issue /etc/issue.net    #echo >> /etc/issue    --    第二步:    刪除“/etc”目錄下的“issue.net”和“issue”文件:    [root@deep]# rm -f /etc/issue    [root@deep]# rm -f /etc/issue.net    注意:“/etc/issue.net”文件是用戶從網絡登錄計算機時(例如:telnet 、SSH),看到的登錄提示。同樣在“”目錄下還有一個“issue”文件,是用戶從本地登錄時看到的提示。這 兩個文件都是文本文件,可以根據需要改變。但是,如果想刪掉這兩個文件,必須向上面介紹的那樣把 “/etc/rc.d/rc.local”腳本中的那些行注釋掉,否則每次重新啟動的時候,系統又會重新創建這兩個文件。



Copyright © Linux教程網 All Rights Reserved