- XINETD是為了安全性而取代原有的INETD的一項產品,事實上不只是安全性,還包括了許多超越inetd的功能設定。底下將其特微做些說明:
- 權限的控管
- 它可以限制些ip address可以建立連線,哪些不行。
- 對於DOS(Denial of Service)的防範
- 它可以針對特定的電腦限制連線的速率,以及建立連線的數目。如果有某台電腦試圖建立很多連線,使用特定的服務,我們就可以限制某電腦同時的連線數。
- 記錄檔的延伸性
- 可以利用syslog去紀錄不同的服務,讀者也可以把特定的服務紀錄在特定的檔案內。
- 服務的重新導向
- 可以將連線重新導向到另一個特定IP Address的特定port,這裡的ip address不一定是外部的ip。如果你的電腦是nat server,當然可以導向到內部的ip。比如說a電腦是有一個外部ip及內部ip(是一個nat);b電腦是smtp服務用的電腦;c電腦是http服務器。當外部連線到a電腦,提出smtp服務時,將自動轉到b電腦,提出http服務,當就是轉到c電腦啦。
- IPv6的支援
- 在版本2.1.8.8之後,就有支援IPv6了。
- XINETD所包含的服務
- 有telnet,ftp,pop0,daytime,echo,finger...etc.它的預設的目錄在/etc/xinetd.d之下。當然,這是預設的部分,你當然可以新增自訂服務或是將既有的(非xinet所提供的服務)透過xinetd啟動(如sendmail)。此外,亦可單純的做重新導向的工作。
- 範例:
- 開啟telnet服務
- vi /etc/xinetd.d/telnet
- disable = no
- service telnet
- {
- flags = REUSE
- socket_type=stream
- wait=no
- user=root
- server=/usr/sbin/in.telnetd
- log_on_failure +=USERID
- disable=no
- }
- 重新啟動xinetd服務
- /sbin/service xinetd restart
- 或 /etc/init.d/xinetd reload 指令重新載入說設定檔,將立即啟用telnet服務,另外說明一下有關telnet預設是不可以用root登入的哦。
- 在使用telnet連接時可以出現中文亂碼,你可以使用telnet -8 bbs.ncku.edu.tw來啟動telnet;加上"-8"的選項便可正常輸入中文了,小弟我是沒有試過啦^ ^
- 如果你真的要讓root帳戶可以使用telnet的話…你可這樣做(但不建意)
- 更改/etc/securetty檔案內容
- /etc/securetty檔案內的設定值,是用來限定root帳號可從哪一個終端機登入。在Linux中遠端登入是使用pts/0,pts/1...等終端機。而實際上使用者登入時,到底是採用第幾號pts終端機,則視您是目前系統中第幾個遠端登入的使用者而異,例如,系統目前已有2個使用者,此時您登入時,系統就會自動指定pts/2給你也就是3號終端機。所以如果要讓root帳號能遠端登入,只要利vim修改/etc/securetty檔的設定值即可,以讓root帳號能遠端登入。如果覺得麻煩也可以把/etc/securetty更名或刪除也可…但不意見哦!!!
- 開啟pop3服務
- vi /etc/xinetd.d/ipop3
- disable = no
- service telnet
- {
- socket_type=stream
- wait=no
- user=root
- server=/usr/sbin/ipop3d
- log_on_success += HOST DURATION
- log_on_failure +=HOST
- disable = no
- }
- 重新啟動xinetd服務
- /sbin/service xinetd restart
- 開啟另一個telnet服務走1234port
- 複制原/etc/xinetd.d/telnet 到 telnet2
- vi /etc/xinetd.d/telnet2
- disable = no
- service telnet2
- {
- flags = REUSE
- socket_type=stream
- wait=no
- user=root
- server=/usr/sbin/in.telnetd
- log_on_failure +=USERID
- disable=no
- }
- vi /etc/services並在telnet 23/tcp,udp下加入一行
- telnet2 1234/tcp
- telnet2 1234/udp
- 重新啟動xinetd服務
- /sbin/service xinetd restart
- 接著我們要限制服務的ip範圍
- vi /etc/xinetd.d/telnet2
- 新增一行
- only_from = 10.1.1.0/24 192.168.10.1
- 10.1.1.1~10.1.1.255
- 192.168.10.1
- 接著我們要限制使用的系統資源
- 限制記憶使用量
- rlimit_as=16M
- 限制CPU用量
- rlimit_cp=20
- 限制服務時間
- access_times=03:00-6:00 9:00-15:00
- 限制telnet服務的總數為5
- 新增
- instances=5
- cps= 15 10
- 以上2行的功能。instances代表的是提供服務的總數,而cps後面代的2個數值,cps代表的是每秒只提供15個client同時連線,超過的話則ftp會暫停服務,過10秒後才會再度提供服務
- 新增一個port為10000的http服務並重新導向到http://www.yahoo.com.tw
- 在/etc/xinetd.d/下新增一個檔案uuu,內容如下:
- service uuu
- {
- flag=REUSE
- socket_type=stream
- wait=no
- user=root
- server=/usr/sbin/in.telnetd
- port=10000
- redirect=www.yahoo.com.tw 80
- log_on_failure+=USERID
- disable=no
- }
- XINETD設定檔說明
- /etc/xinetd.conf
- defaults
- {
- instances=60
- log_type=SYSLOG authpriv
- log_on_success=HOST PID
- log_on_failure=HOST
- cps= 25 30
- }
- 說明:
- instances:表示一項服務同時提供的連線數目
- log_type:表示紀錄的方式,在這邊syslog表示會記錄到系統紀錄中,再根據/etc/syslog.conf紀錄到特定的檔案,由於authpriv在syslog.conf是紀錄到/var/log/secure,所以預設值就會紀錄到/var/log/serure中
- log_on_success:是表示連線成功所紀錄的檔案
- log_on_failure:是log_on_success的反之
- cps:代表的是每秒只提供25個client同時連線,超過的話則ftp會暫停服務,過30秒後才會再度提供服務
- includedir:表示其他的設定檔放在/etc/xinetd.d之中,如果沒特別指定,則所有的設定檔均會套用上述的設定。
- /etc/xineted.d的通用格式如下:
- service <service_name>{
- <A> <B> <參數><參數>…
- 其中的<B>為指派的運算符號,有3種=,+=,-=
- <A>為屬性,列出一些較常用的
- id:用來確認服務的唯一性,特別是相同名稱的服務,但卻使用不甸的通訊協定
- type:包含下列三種
- RPC:Remote Procedure Call,遠端程序呼叫
- INTERNAL:本身包含在xinetd中的服務
- UNLISTED:此項服務未包含在/etc/services中
- disable:
- yes表停止服務;no表正常運作
- socket_type:
- 包含下列3種
- stream:stream-based的服務,也就是TCP Service。
- dgram:datagram-based的服務,也就是UDP Service。
- raw:需要直接使用IP的服務
- wait:yes表single-thread,僅提供單一連線,no表示multi-thread,表示持續提供服務。
- user:使用特定的人員來執行這個應用程式,但若是這個使用者沒有特殊使用者的權限可以會無執行
- group:使用特定的郡組來執行這個應用程式,但若是這個群組沒有特殊使用者的權限,可能會無法執行
- instance:同時間連線的數目;UNLIMITED表示不限制
- server:決定這個服務所使用的應用程式
- server_args:這個服務所需的應用程式後面所需要加的參數
- only_from:限制某些特定來源IP Address,才提供連線服務,其他的圾不得建立連線
- no_access:限制某些特定來源ip address不提供服務
- access_time:可提供服務的時間
- log_type:紀錄檔的格式 SYSLOG syslog_facility [level]:
- 透過syslog.conf的設定紀錄到特定的檔案,syslog_facility有daemon,auth,authpriv,user等,你可以在syslog.conf中定義這樣的紀錄要寫而哪個檔案中。那麼[level]包含emerg,alert,crit,err,warning,notice,info,debug.
- FILE file:將紀錄到特定的 檔案,file為檔案名稱,後面可加參數。
- log_on_success:連線成功時所要紀錄的資訊
- log_on_failure:連線失敗時所要紀錄的資訊。
- banner:成功連線時歐出現的標題,可以是某個檔案的內容
- cps:後面接著M,N是表示每秒僅能建立M個連線,超過的話,服務會暫時停止,等N秒後再度提供服務
- rlimit_as:限制記憶體的資源,如rlimit_as=16M表示只能使用16M Bytes的記憶體,UNLIMITED表示不限。
- rlimit_cpu:限制子程序最多能使用的CPU seconds,UNLIMITED表示不限
- port:指定這項服務所使用的port number.
2013年3月18日 星期一
XINETD--啟動內建的TCP服務;XINETD的設定說明:
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言