Linux系統中網路配置詳解
從linux誕生的那一天起,就註定了它的網路功能空前地強大.所以在linux系統中如何配置網路,使其高效,安全的工作就顯得十分重要.下面我們就從網路裝置的安裝,網路服務的設定和網路安全性三個方面來介紹一下linux系統中網路的設定.
一.安裝和配置網路裝置
在安裝linux時,如果你有網絡卡,安裝程式將會提示你給出tcp/ip網路的配置引數,如本機的ip地址,預設閘道器的ip地址,DNS的ip地址等等.根據這些配置引數,安裝程式將會自動把網絡卡(linux系統首先要支援)驅動程式編譯到核心中去.但是我們一定要了解載入網絡卡驅動程式的過程,那麼在以後改變網絡卡,使用多個網絡卡的時候我們就會很容易的操作.網絡卡的驅動程式是作為模組載入到核心中去的,所有linux支援的網絡卡驅動程式都是存放在目錄/lib/modules/(linux版本號)/net/ ,例如inter的82559系列10/100M自適應的引導網絡卡的驅動程式是eepro100.o,3COM的3C509 ISA網絡卡的驅動程式是3C509.o,DLINK的pci 10網絡卡的驅動程式是via-rhine.o,NE2000相容性網絡卡的驅動程式是ne2k-pci.o和ne.o.在瞭解了這些基本的驅動程式之後,我們就可以通過修改模組配置檔案來更換網絡卡或者增加網絡卡.
1. 修改/etc/conf.modules 檔案
這個配置檔案是載入模組的重要引數檔案,大家先看一個範例檔案
#/etc/conf.modules
alias eth0 eepro100
alias eth1 eepro100
這個檔案是一個裝有兩塊inter 82559系列網絡卡的linux系統中的conf.modules中的內容.alias命令表明以太口(如eth0)所具有的驅動程式的名稱,alias eth0 eepro100說明在零號乙太網口所要載入的驅動程式是eepro100.o.那麼在使用命令 modprobe eth0的時候,系統將自動將eepro100.o載入到核心中.對於pci的網絡卡來說,由於系統會自動找到網絡卡的io地址和中斷號,所以沒有必要在conf.modules中使用選項options來指定網絡卡的io地址和中斷號.但是對應於ISA網絡卡,則必須要在conf.modules中指定硬體的io地址或中斷號, 如下所示,表明了一塊NE的ISA網絡卡的conf.modules檔案.
alias eth0 ne
options ne io=0x300 irq=5
在修改完conf.modules檔案之後,就可以使用命令來載入模組,例如要插入inter的第二塊網絡卡:
#insmod /lib/modules/2.2.14/net/eepro100.o
這樣就可以在以太口載入模組eepro100.o.同時,還可以使用命令來檢視當前載入的模組資訊:
[
Module Size Used by
eepro100 15652 2 (autoclean)
返回結果的含義是當前載入的模組是eepro100,大小是15652個位元組,使用者兩個,方式是自動清除.
2. 修改/etc/lilo.conf檔案
在一些比較新的linux版本中,由於作業系統自動檢測所有相關的硬體,所以此時不必修改/etc/lilo.conf檔案.但是對於ISA網絡卡和老的版本,為了在系統初始化中對新加的網絡卡進行初始化,可以修改lilo.conf檔案.在/etc/lilo.conf檔案中增加如下命令:
append="ether=5,0x240,eth0 ether=7,0x300,eth1"
這條命令的含義是eth0的io地址是0x240,中斷是5,eth1的io地址是0x300,中斷是7.
實際上,這條語句來自在系統引導影像檔案時傳遞的引數,
LILO: linux ether=5,0x240,eth0 ether=7,0x300,eth1
這種方法也同樣能夠使linux系統配置好兩個網絡卡.類似的,在使用三個以上網絡卡的時候,也可以依照同樣的方法.
在配置好網絡卡之後,就應該配置TCP/IP的引數,在一般情況下,在安裝linux系統的同時就會提示你配置網路引數.但是之後如果我們想要修改網路設定,可以使用如下的命令:
#ifconfig eth0 A.B.C.D netmask E.F.G.H
A.B.C.D 是eth0的IP地址,E.F.G.H是網路掩碼.
其實,在linux系統中我們可以給一塊網絡卡設定多個ip地址,例如下面的命令:
#ifconfig eth0:1 202.112.11.218 netmask 255.255.255.192
然後,使用命令#ifconfig -a 就可以看到所有的網路介面的介面:
eth0 Link encap:Ethernet HWaddr 00:90:27:58:AF:1A
inet addr:202.112.13.204 Bcast:202.112.13.255 Mask:255.255.255.192
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:435510 errors:0 dropped:0 overruns:0 frame:2
TX packets:538988 errors:0 dropped:0 overruns:0 carrier:0
collisions:318683 txqueuelen:100
Interrupt:10 Base address:0xc000
eth0:1 Link encap:Ethernet HWaddr 00:90:27:58:AF:1A
inet addr:202.112.11.218 Bcast:202.112.11.255 Mask:255.255.255.192
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:10 Base address:0xc000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:3924 Metric:1
RX packets:2055 errors:0 dropped:0 overruns:0 frame:0
TX packets:2055 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
我們看到網路介面有三個,eth0 , eth0:1,lo,eth0是真實的乙太網絡介面,eth0:1和eth0是同一塊網絡卡,只不過綁定了另外的一個地址,lo是會送地址。eth0和eth0:1可以使用不同網段的ip地址,這在同一個物理網段卻使用不同的網路地址的時候十分有用。
另外,網絡卡有一種模式是混雜模式(prosimc),在這個模式下,網絡卡將會接收網路中所有的資料包,一些linux下的網路監聽工具例如tcpdump,snort等等都是把網絡卡設定為混雜模式.
ifconfig命令可以在本次執行的時間內改變網絡卡的ip地址,但是如果系統重新啟動,linux仍然按照原來的預設的設定啟動網路介面。這時候,可以使用netconfig或netconf命令來重新設定預設網路引數。netconfig 命令是重新配置基本的tcp/ip引數,引數包括是否配置為動態獲得ip地址(dhcpd和bootp),網絡卡的ip地址,網路掩碼,預設閘道器和首選的域名伺服器地址。netconf命令可以詳細的配置所有網路的引數,分為客戶端任務,伺服器端任務和其他的配置三個部分,在客戶端的配置中,主要包括基本主機的配置(主機名,有效域名,網路別名,對應相應網絡卡的ip地址,網路掩碼,網路裝置名,網路裝置的核心驅動程式),DNS地址配置,預設閘道器的地址配置,NIS地址配置,ipx介面配置,ppp/slip的配置等等。在伺服器端配置中,主要包括NFS的配置,DNS的配置,ApacheWebServer配置,Samba的配置和Wu-ftpd的配置。在其他的配置選項中,一個是關於/etc/hosts檔案中的主機配置,一個是關於/etc/networks檔案中的網路配置資訊,最後是關於使用linuxconf配置的資訊。
在linuxconf命令下,同樣也可以配置網路資訊,但是大家可以發現,linuxconf程式是呼叫netconf來進行網路配置的。
另外,在/etc/sysconfig/network-scripts目錄下存放著系統關於網路的配置檔案,範例如下:
ifcfg-eth0* ifdown-post* ifup-aliases* ifup-ppp*
ifcfg-eth1* ifdown-ppp* ifup-ipx* ifup-routes*
ifcfg-lo* ifdown-sl* ifup-plip* ifup-sl*
[email protected] [email protected] ifup-post* network-functions
ifcfg-eth0是以太口eth0的配置資訊,它的內容如下:
DEVICE="eth0" /*指明網路裝置名稱*/
IPADDR="202.112.13.204" /*指明網路裝置的ip地址*/
NETMASK="255.255.255.192" /*指明網路掩碼*/
NETWORK=202.112.13.192 /*指明網路地址*/
BROADCAST=202.112.13.255 /*指明廣播地址*/
ONBOOT="yes" /*指明在系統啟動時是否啟用網絡卡*/
BOOTPROTO="none" /*指明是否使用bootp協議*/
所以,我們也可以修改這個檔案來進行linux下網路引數的改變。
二 網路服務的配置:
在這一部分,我們並不是詳細的介紹具體的網路伺服器(DNS,FTP,WWW,SENDMAIL)的配置(那將是巨大的篇幅),而是介紹一下與linux網路服務的配置相關的檔案.
1. LILO的配置檔案
在linux系統中,有一個系統載入程式,那就是lilo(linux loadin),利用lilo可以實現多作業系統的選擇啟動.它的配置檔案是/etc/lilo.conf.在這個配置檔案中,lilo的配置引數主要分為兩個部分,一個是全域性配置引數,包括設定啟動裝置等等.另一個是區域性配置引數,包括每個引導影像檔案的配置引數.在這裡我就不詳細介紹每個引數,特別的僅僅說明兩個重要的引數--------password和restricted選項,password選項為每個引導的影像檔案加入口令保護.我們都知道,在linux系統中有一個執行模式是單使用者模式,在這個模式下,使用者是以超級使用者的身份登入到linux系統中.人們可以通過在lilo引導的時候加入引數(linux single 或linux init 0)就可以不需要口令直接進入單使用者模式的超級使用者環境中,這將是十分危險的.所以在lilo.conf中增加了password的配置選項來為每個影像檔案增加口令保護.你可以在全域性模式中使用password選項(對所有影像檔案都加入相同的口令),或者為每個單獨的影像檔案加入口令.這樣一來,在每次系統啟動時,都會要求使用者輸入口令.也許你覺得每次都要輸入口令很麻煩,可以使用restricted選項,它可以使lilo僅僅在linux啟動時輸入了引數(例如 linux single)的時候才會檢驗密碼.這兩個選項可以極大的增加系統的安全性,建議在lilo.conf檔案中設定它們.由於password在/etc/lilo.conf檔案是以明文存放的,所以必須要將/etc/lilo.conf檔案的屬性改為僅僅root可讀(0400).
另外,在lilo的早期版本中,存在著引導扇區必須存放到前1024柱面的限制,在lilo的2.51版本中已經突破了這個限制,同時引導介面也變成了圖形介面更加直觀.最新版本的下載站點:
ftp://166.111.136.3/pub/linux/lilo/lilo-2.51.tar.gz
下載解壓後,使用命令make install即可完成安裝.
注意: 物理安全才是最基本的安全,即使在lilo.conf中增加了口令保護,如果沒有物理安全,惡意闖入者可以使用啟動軟盤啟動linux系統.
2. 域名服務的配置檔案
(1)/etc/HOSTNAME 在這個檔案中儲存著linux系統的主機名和域名.範例檔案
ice.xanet.edu.cn
這個檔案表明了主機名ice,域名是xanet.edu.cn
(2)/etc/hosts和/etc/networks檔案 在域名服務系統中,有著主機表機制,/etc/hosts和/etc/networks就是主機表發展而來在/etc/hosts中存放著你不需要DNS系統查詢而得的主機ip地址和主機名的對應,下面是一個範例檔案:
# ip 地址 主機名 別名
127.0.0.1 localhosts loopback
202.117.1.13 www.xjtu.edu.cn www
202.117.1.24 ftp.xjtu.edu.cn ftp
在/etc/networks 中,存放著網路ip地址和網路名稱的一一對應.它的檔案格式和/etc/hosts是類似的
(3)/etc/resolv.conf 這個檔案是DNS域名解析器的主要配置檔案,它的格式十分簡單,每一行由一個主關鍵字組成./etc/resolv.conf的關鍵字主要有:
domain 指明預設的本地域名,
search 指明瞭一系列查詢主機名的時候搜尋的域名列表,
nameserver 指明瞭在進行域名解析時域名伺服器的ip地址.下面給出一個範例檔案:
#/etc/resolv.conf
domain xjtu.edu.cn
search xjtu.edu.cn edu.cn
nameserver 202.117.0.20
nameserver 202.117.1.9
(4)/etc/host.conf 在系統中同時存在著DNS域名解析和/etc/hosts的主機表機制時,由檔案/etc/host.conf來說明了解析器的查詢順序.範例檔案如下:
#/etc/host.conf
order hosts,bind #解析器查詢順序是檔案/etc/hosts,然後是DNS
multi on #允許主機擁有多個ip地址
nospoof on #禁止ip地址欺騙
3. DHCP的配置檔案
/etc/dhcpd.conf是DHCPD的配置檔案,我們可以通過在/etc/dhcpd.conf檔案中的配置來實現在區域網中動態分配ip地址,一臺linux主機設定為dhcpd伺服器,通過鑑別網絡卡的MAC地址來動態的分配ip地址.範例檔案如下:
option domain-name "chinapub.com";
use-host-decl-names off;
subnet 210.27.48.0 netmask 255.255.255.192 {
filename "/tmp/image";
host dial_server {
hardware ethernet 00:02:b3:11:f2:30;
fixed-address 210.27.48.8;
filename "/tmp/image";
}
}
在這個檔案中,最主要的是通過設定的硬體地址來鑑別區域網中的主機,並分配給它指定的ip地址,hardware ethernet 00:02:b3:11:f2:30指定要動態分配ip的主機得網絡卡的MAC地址,fixed-address 210.27.48.8指定分配其ip地址。filename "/tmp/image"是通過tftp服務,主機所要得到的影像檔案,可以通過得到的影像檔案來引導主機啟動。
4. 超級守候程序inetd的配置
在linux系統中有一個超級守候程序inetd,inetd監聽由檔案/etc/services指定的服務的埠,inetd根據網路連線請求,呼叫相應的服務程序來相應請求.在這裡有兩個檔案十分重要,/etc/inetd.conf和/etc/services,檔案/etc/services定義linu系統中所有服務的名稱,協議型別,服務的埠等等資訊,/etc/inetd.conf是inetd的配置檔案,由它來指定那些服務可以由inetd來監聽,以及相應的服務程序的呼叫命令.首先介紹一下/etc/services檔案,/etc/services檔案是一個服務名和服務埠對應的資料庫檔案,如下面所示:
# /etc/services:
# $Id: services,v 1.4 2000/01/23 21:03:36 notting Exp $
#
# Network services, Internet style
#
# Note that it is presently the policy of IANA to assign a single well-known
# port number for both TCP and UDP; hence, most entries here have two entries
# even if the protocol doesn't support UDP operations.
# Updated from RFC 1700, ``Assigned Numbers'' (October 1994). Not all ports
# are included, only the more common ones.
#名稱 埠/協議 別名 註釋
tcpmux 1/tcp # TCP port service multiplexer
echo 7/tcp
echo 7/udp
discard 9/tcp sink null
discard 9/udp sink null
systat 11/tcp users
daytime 13/tcp
daytime 13/udp
netstat 15/tcp
qotd 17/tcp quote
msp 18/tcp # message send protocol
msp 18/udp # message send protocol
chargen 19/tcp ttytst source
chargen 19/udp ttytst source
ftp-data 20/tcp
ftp 21/tcp
fsp 21/udp fspd
ssh 22/tcp # SSH Remote Login Protocol
ssh 22/udp # SSH Remote Login Protocol
telnet 23/tcp
# 24 - private
smtp 25/tcp mail
# 26 - unassigned
time 37/tcp timserver
time 37/udp timserver
rlp 39/udp resource # resource location
nameserver 42/tcp name # IEN 116
whois 43/tcp nicname
re-mail-ck 50/tcp # Remote Mail Checking Protocol
re-mail-ck 50/udp # Remote Mail Checking Protocol
domain 53/tcp nameserver # name-domain server
domain 53/udp nameserver
mtp 57/tcp # deprecated
bootps 67/tcp # BOOTP server
bootps 67/udp
bootpc 68/tcp # BOOTP client
bootpc 68/udp
tftp 69/udp
gopher 70/tcp # Internet Gopher
gopher 70/udp
rje 77/tcp netrjs
finger 79/tcp
www 80/tcp http # WorldWideWeb HTTP
www 80/udp # HyperText Transfer Protocol
link 87/tcp ttylink
kerberos 88/tcp kerberos5 krb5 # Kerberos v5
kerberos 88/udp kerberos5 krb5 # Kerberos v5
supdup 95/tcp
# 100 - reserved
hostnames 101/tcp hostname # usually from sri-nic
iso-tsap 102/tcp tsap # part of ISODE.
csnet-ns 105/tcp cso-ns # also used by CSO name server
csnet-ns 105/udp cso-ns
rtelnet 107/tcp # Remote Telnet
rtelnet 107/udp
pop2 109/tcp pop-2 postoffice # POP version 2
pop2 109/udp pop-2
pop3 110/tcp pop-3 # POP version 3
pop3 110/udp pop-3
sunrpc 111/tcp portmapper # RPC 4.0 portmapper TCP
sunrpc 111/udp portmapper # RPC 4.0 portmapper UDP
auth 113/tcp authentication tap ident
sftp 115/tcp
uucp-path 117/tcp
nntp 119/tcp readnews untp # USENET News Transfer Protocol
ntp 123/tcp
ntp 123/udp # Network Time Protocol
netbios-ns 137/tcp # NETBIOS Name Service
netbios-ns 137/udp
netbios-dgm 138/tcp # NETBIOS Datagram Service
netbios-dgm 138/udp
netbios-ssn 139/tcp # NETBIOS session service
netbios-ssn 139/udp
imap2 143/tcp imap # Interim Mail Access Proto v2
imap2 143/udp imap
(實際上,以上僅僅是/etc/services的一部分,限於篇幅沒有全部寫出)
在這個檔案中,為了安全考慮,我們可以修改一些常用服務的埠地址,例如我們可以把telnet服務的埠地址改為52323,www的埠改為8080,ftp埠地址改為2121等等,這樣僅僅需要在應用程式中修改相應的埠即可.這樣可以提高系統的安全性.
/etc/inetd.conf檔案是inetd的配置檔案, 首先要了解一下linux伺服器到底要提供哪些服務。一個很好的原則是" 禁止所有不需要的服務",這樣黑客就少了一些攻擊系統的機會./etc/inetd.conf範例檔案如下:
#
# inetd.conf This file describes the services that will be available
# through the INETD TCP/IP super server. To re-configure
# the running INETD process, edit this file, then send the
# NETD process a SIGHUP signal.
#
# Version: @(#)/etc/inetd.conf 3.10 05/27/93
#
# Authors: Original taken from BSD UNIX 4.3/TAHOE.
# Fred N. van Kempen, <[email protected]>
#
# Modified for Debian Linux by Ian A. Murdock <[email protected]>
#
# Modified for RHS Linux by Marc Ewing <[email protected]>
#
# <service_name> <sock_type> <proto> <flags> <user> <server_path> <args>
#服務名 socket型別 協議 動作 擁有者 服務程序路徑名 掉用引數
#nowait 表示在相應一個網路連線之後,服務程序在釋放舊的聯接之前可以接受
#新的連線請求,wait 則表示必須在舊連線清除之後才能接收新的連線.
# Echo, discard, daytime, and chargen are used primarily for testing.
# To re-read this file after changes, just do a 'killall -HUP inetd'
#
#echo stream tcp nowait root internal
#echo dgram udp wait root internal
#discard stream tcp nowait root internal
#discard dgram udp wait root internal
#daytime stream tcp nowait root internal
#daytime dgram udp wait root internal
#chargen stream tcp nowait root internal
#chargen dgram udp wait root internal
#time stream tcp nowait root internal
#time dgram udp wait root internal
#
# These are standard services.
#
ftp stream tcp nowait root /usr/sbin/tcpd in.wuftpd -l -a
telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd
#
# Shell, login, exec, comsat and talk are BSD protocols.
#
#shell stream tcp nowait root /usr/sbin/tcpd in.rshd
#login stream tcp nowait root /usr/sbin/tcpd in.rlogind
#exec stream tcp nowait root /usr/sbin/tcpd in.rexecd
#comsat dgram udp wait root /usr/sbin/tcpd in.comsat
#talk dgram udp wait root /usr/sbin/tcpd in.talkd
#ntalk dgram udp wait root /usr/sbin/tcpd in.ntalkd
#dtalk stream tcp waut nobody /usr/sbin/tcpd in.dtalkd
# Pop and imap mail services et al
#
#pop-2 stream tcp nowait root /usr/sbin/tcpd ipop2d
#pop-3 stream tcp nowait root /usr/sbin/tcpd ipop3d
#imap stream tcp nowait root /usr/sbin/tcpd imapd
#
# The Internet UUCP service.
#
#uucp stream tcp nowait uucp /usr/sbin/tcpd /usr/lib/uucp/uucico -l
#
# Tftp service is provided primarily for booting. Most sites
# run this only on machines acting as "boot servers." Do not uncomment
# this unless you *need* it.
#
#tftp dgram udp wait root /usr/sbin/tcpd in.tftpd
#bootps dgram udp wait root /usr/sbin/tcpd bootpd
#
# Finger, systat and netstat give out user information which may be
# valuable to potential "system crackers." Many sites choose to disable
# some or all of these services to improve security.
#
#finger stream tcp nowait root /usr/sbin/tcpd in.fingerd
#cfinger stream tcp nowait root /usr/sbin/tcpd in.cfingerd
#systat stream tcp nowait guest /usr/sbin/tcpd /bin/ps -auwwx
#netstat stream tcp nowait guest /usr/sbin/tcpd /bin/netstat -f inet
#
# Authentication
#
#auth stream tcp nowait nobody /usr/sbin/in.identd in.identd -l -e -o
#linuxconf stream tcp wait root /bin/linuxconf linuxconf -http
大家看到的這個檔案已經修改過的檔案,除了telnet 和ftp服務,其他所有的服務都被禁止了.在修改了/etc/inetd.conf之後,使用命令kill -HUP (inetd的程序號),使inetd重新讀取配置檔案並重新啟動即可.
5. ip route的配置
利用linux,一臺普通的微機也可以實現高性價比的路由器.首先讓我們瞭解一下linux的檢視路由資訊的命令:
[[email protected] /etc]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
202.112.13.204 0.0.0.0 255.255.255.255 UH 0 0 0 eth0
202.117.48.43 0.0.0.0 255.255.255.255 UH 0 0 0 eth1
202.112.13.192 202.112.13.204 255.255.255.192 UG 0 0 0 eth0
202.112.13.192 0.0.0.0 255.255.255.192 U 0 0 0 eth0
202.117.48.0 202.117.48.43 255.255.255.0 UG 0 0 0 eth1
202.117.48.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 202.117.48.1 0.0.0.0 UG 0 0 0 eth1
命令netstat -r n 得到輸出結果和route -n是一樣的.它們操作的都是linux 核心的路由表.
命令cat /proc/net/route的輸出結果是以十六進位制表示的路由表.
[[email protected] /etc]# cat /proc/net/route
Iface Destination Gateway Flags RefCnt Use Metric Mask
eth0 CC0D70CA 00000000 0005 0 0 0 FFFFFFF
eth1 2B3075CA 00000000 0005 0 0 0 FFFFFFF
eth0 C00D70CA CC0D70CA 0003 0 0 0 C0FFFFF
eth0 C00D70CA 00000000 0001 0 0 0 C0FFFFF
eth1 003075CA 2B3075CA 0003 0 0 0 00FFFFF
eth1 003075CA 00000000 0001 0 0 0 00FFFFF
lo 0000007F 00000000 0001 0 0 0 000000F
eth1 00000000 013075CA 0003 0 0 0 0000000
通過計算可以知道,下面的這個路由表(十六進位制)和前面的路由表(十進位制)是一致的.
我們還可以通過命令route add (del )來操作路由表,增加和刪除路由資訊.
除了上面的靜態路由,linux還可以通過routed來實現rip協議的動態路由.我們只需要開啟linux的路由轉發功能,在/proc/sys/net/ipv4/ip_forward檔案中增加一個字元1.
三.網路的安全設定
在這一部分,再次強調一定要修改/etc/inetd.conf,安全的策略是禁止所有不需要的服務.除此之外,還有以下幾個檔案和網路安全相關.
(1)./etc/ftpusers ftp服務是一個不太安全的服務,所以/etc/ftpusers限定了不允許通過ftp訪問linux主機的使用者列表.當一個ftp請求傳送到ftpd,ftpd首先檢查使用者名稱,如果使用者名稱在/etc/ftpusers中,則ftpd將不會允許該使用者繼續連線.範例檔案如下:
# /etc/ftpusers - users not allowed to login via ftp
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
nadmin
(2)/etc/securetty 在linux系統中,總共有六個終端控制檯,我們可以在/etc/securetty中設定哪個終端允許root登入,所有其他沒有寫入檔案中的終端都不允許root登入.範例檔案如下:
# /etc/securetty - tty's on which root is allowed to login
tty1
tty2
tty3
tty4
(3)tcpd的控制登入檔案/etc/hosts.allow和/etc/hosts.deny
在tcpd服務程序中,通過在/etc/hosts.allow和/etc/hosts.deny中的訪問控制規則來控制外部對linux主機的訪問.它們的格式都是
service-list : hosts-list [ : command]
服務程序的名稱 : 主機列表 可選,當規則滿足時的操作
在主機表中可以使用域名或ip地址,ALL表示匹配所有項,EXCEPT表示除了某些項, PARANOID表示當ip地址和域名不匹配時(域名偽裝)匹配該項.
範例檔案如下:
#
# hosts.allow This file describes the names of the hosts which are
# allowed to use the local INET services, as decided
# by the '/usr/sbin/tcpd' server.
#
ALL : 202.112.13.0/255.255.255.0
ftpd: 202.117.13.196
in.telnetd: 202.117.48.33
ALL : 127.0.0.1
在這個檔案中,網段202.112.13.0/24可以訪問linux系統中所有的網路服務,主機202.117.13.196只能訪問ftpd服務,主機202.117.48.33只能訪問telnetd服務.本機自身可以訪問所有網路服務.
在/etc/hosts.deny檔案中禁止所有其他情況:
#/etc/hosts.deny
ALL : DENY : spawn (/usr/bin/finger -lp @%h /bin/mail -s "Port Denial noted in %d-%h" root)
在/etc/hosts.allow中,定義了在所有其他情況下,linux所應該執行的操作.spawn選項允許linux系統在匹配規則中執行指定的shell命令,在我們的例子中,linux系統在發現無授權的訪問時,將會發送給超級使用者一封主題是"Port Denial noted in %d-%h"的郵件,在這裡,我們先要介紹一下allow和deny檔案中的變數擴充套件.
(4)/etc/issue和/etc/issue.net
在我們登入linux系統中的時候,我們常常可以看到我們linux系統的版本號等敏感資訊.在如今的網路攻擊行為中,許多黑客首先要收集目標系統的資訊,版本號等就是十分重要的資訊,所以在linux系統中一般要把這些資訊隱藏起來./etc/issue和/etc/issue.net就是存放這些資訊的檔案.我們可以修改這些檔案來隱藏版本資訊.
另外,在每次linux重新啟動的時候,都會在指令碼/etc/rc.d/rc.local中再次覆蓋上面那兩個檔案./etc/rc.d/rc.local檔案的範例如下:
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
if [ -f /etc/redhat-release ]; then
R=$(cat /etc/redhat-release)
arch=$(uname -m)
a="a"
case "_$arch" in
_a*) a="an";;
_i*) a="an";;
esac
NUMPROC=`egrep -c "^cpu[0-9]+" /proc/stat`
if [ "$NUMPROC" -gt "1" ]; then
SMP="$NUMPROC-processor "
if [ "$NUMPROC" = "8" -o "$NUMPROC" = "11" ]; then
a="an"
else
a="a"
fi
fi
# 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 $SMP$(uname -m)" >> /etc/issue
cp -f /etc/issue /etc/issue.net
echo >> /etc/issue
在檔案中黑體的部分就是得到系統版本資訊的地方.一定要將他們註釋掉.
(5)其他配置
在普通微機中,都可以通過ctl+alt+del三鍵的組合來重新啟動linux.這樣是十分不安全的,所以要在 /etc/inittab檔案中註釋該功能:
# Trap CTRL-ALT-DELETE
#ca::ctrlaltdel:/sbin/shutdown -t3 -r now
相關推薦
Linux系統中網路配置詳解
從linux誕生的那一天起,就註定了它的網路功能空前地強大.所以在linux系統中如何配置網路,使其高效,安全的工作就顯得十分重要.下面我們就從網路裝置的安裝,網路服務的設定和網路安全性三個方面來介紹一下linux系統中網路的設定. 一.安裝和配置網路裝置 在安裝linu
Linux系統中ls命令詳解
ls命令是linux下最常用的命令。ls命令就是list的縮寫 1. 命令格式: ls [選項,常用引數] [目錄名] 2. 命令功能: 列出目標目錄中所有的子目錄和檔案。 3. 常用引數: -a, –all 列出目錄下的所有檔案,包括以 . 開
linux下的網路配置詳解
debian下的網路配置檔案地址: /etc/network/interfaces # The loopback network interface auto lo iface lo inet loopback # The primary network interfac
老男孩教育每日一題-2017年5月12日-磁盤知識點:linux系統中LVM配置實現方法?
邏輯卷管理 磁盤 每日一題 1.題目老男孩教育每日一題-2017年5月12日-磁盤知識點:linux系統中LVM配置實現方法?2.參考答案01:將一個或多個物理分區創建為一個PV# pvcreate /dev/sdb{1,2} Physical volume "/dev/sdb1" success
操作系統中的目錄詳解
系列 mkdir 保存 linu ges 分隔 組成 查找 而在 首先要搞清楚一些基本的問題 1.文件就是一些數據的集合,計算機的信息都是通過 文件來保存 2.windows下的文件夾與linux下的目錄是同一個東西 3.目錄是一種文件,一種特殊的文件,有時候也被
Linux安裝vsftpd及配置詳解
技術 第一個 config vpd b2c 大端 工具 端口修改 系統 1 安裝vsftpd組件 安裝完後,有/etc/vsftpd/vsftpd.conf 文件,是vsftp的配置文件。[root@bogon ~]# yum -y install vsftpd 2、FTP
Linux系統屬性文件詳解
e2fs ext3 png -h str inode linux spa pre 1)inode概述 中文意思就是索引節點(index node)第一部分是inode 第二部分是block inode主要用來存放文件屬性信息的(也就是ls - l 的結果)包含的屬性信息
linux系統關於網路配置的修改
子網掩碼的作用是限制網路範圍 例如255.255.255.0,前三位是網路位,前一個是網路位是a類地址,前二是b類,前三是c類 1.網路設定工具 ifconfig #檢視或設定網路介面 ifconfig eth0 ip #設定網路ip為設定服務端為172.25.254.228,
http請求 headers 中的配置詳解
1.Accept 指定客戶端能夠接收的內容型別,內容型別中的先後次序表示客戶端接收的先後次序. Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 2.
Linux系統下的許可權詳解-2
chmod 的用法:chmod 給誰賦於什麼許可權 許可權賦給的物件備註:誰是指使用者、組、其他人;許可權賦給的物件是指目錄或檔案chmod命令舉例如下: 使用字元賦予許可權 [[email protected] ~]# chmod u+x file1 //屬主增加執行[[email pr
linux系統Android環境配置詳介
國內sdk下載地址 wget http://mirrors.neusoft.edu.cn/android/repository/tools_r24.4.1-linux.zip SDK 解壓 unzip -d android-sdk_r24.4.1-linux.zip
Linux ---各種yum源配置詳解
yum,是Yellow dog Updater, Modified 的簡稱,是杜克大學為了提高RPM 軟體包安裝性而開發的一種軟體包管理器。yum 的理念是使用一箇中心倉庫(repository)管理一部分甚至一個distribution 的應用程式相互關係,根
Linux 系統設定 : enable 命令詳解
enable命令用於臨時關閉或者啟用指定的shell內部命令。若要執行的檔名稱與shell內建命令相同,可用enable -n來關閉shell內建命令。若不加-n選項,enable可重新啟動關閉的命令。 linux shell命令執行時,shell總是先在自己的shell
Linux 系統設定 : insmod 命令詳解
insmod命令用於將給定的模組載入到核心中。Linux有許多功能是通過模組的方式,在需要時才載入kernel。如此可使kernel較為精簡,進而提高效率,以及保有較大的彈性。這類可載入的模組,通常是裝置驅動程式。 語法 insmod(選項)(引數) 選項 -f:不檢
Linux 系統設定 : lsmod 命令詳解
lsmod命令用於顯示已經載入到核心中的模組的狀態資訊。執行lsmod命令後會列出所有已載入系統的模組。Linux作業系統的核心具有模組化的特性,應此在編譯核心時,務須把全部的功能都放入核心。您可以將這些功能編譯成一個個單獨的模組,待需要時再分別載入。 語法 lsmod
Linux 系統設定 : modprobe 命令詳解
modprobe命令用於智慧地向核心中載入模組或者從核心中移除模組。 modprobe可載入指定的個別模組,或是載入一組相依的模組。modprobe會根據depmod所產生的相依關係,決定要載入哪些模組。若在載入過程中發生錯誤,在modprobe會解除安裝整組的模組。 語
Linux 系統設定 : hwclock 命令詳解
Linux hwclock命令用於顯示與設定硬體時鐘。 在Linux中有硬體時鐘與系統時鐘等兩種時鐘。硬體時鐘是指主機板上的時鐘裝置,也就是通常可在BIOS畫面設定的時鐘。系統時鐘則是指kernel中的時鐘。當Linux啟動時,系統時鐘會去讀取硬體時鐘的設定,之後系統時鐘即
SVD在推薦系統中的應用詳解以及演算法推導
前面文章SVD原理及推導已經把SVD的過程講的很清楚了,本文介紹如何將SVD應用於推薦系統中的評分預測問題。其實也就是復現Koren在NetFlix大賽中的使用到的SVD演算法以及其擴展出的RSVD、SVD++。 記得剛接觸SVD是在大二,那會兒跟師兄在做專案的時候就
Linux下MongoDB 安裝配置詳解
1.MongoDB簡單說明 a MongoDB是由C++語言編寫的一個基於分散式檔案儲存的開源資料庫系統,它的目的在於為WEB應用提供可擴充套件的高效能資料儲存解決方案。 b MongoDB是一個介於關係型資料庫和非關係型資料庫之間的產品,是非關係型資料庫當中功能
CentOS 6.4 中iptables 配置詳解
iptables 指令詳解 語法: iptables [-t table] command [match] [-j target/jump] -t 引數用來指定規則表,內建的規則表有三個,分別是:nat、mangle 和 filter,當未指定規