/etc/xinetd.conf 和 /etc/xinetd.d/*【新网络服务配置】
http://blog.csdn.net/kelven2004/article/details/1701930
xinetd 是 inetd 的安全加强版,它内置了自己的 TCP wrapper, 可以完全替代 inetd 与 tcpd 的组合。为了因应新增的功能,xinetd 改用了一种较有灵活性的配置文件格式,但是新格式与 inetd.conf 的格式并不兼容。
xinetd 的配置文件是 /etc/xinetd.conf,其内容有多个区段构成,每个区段各定义一种网络服务的操作参数:
service name {
attribute1 = value
attribute2 = value1 value2 ...
}
默认内容:
#
# Simple configuration file for xinetd
#
# Some defaults, and include /etc/xinetd.d/
defaults
{
instances = <==同一服務的同時連線數最多可達 個
log_type = SYSLOG authpriv <==登錄後,會被紀錄到登錄檔的資訊
log_on_success = HOST PID <==若成功的登入時,記錄的資訊有哪些?
log_on_failure = HOST <==若登入失敗,則記錄的資訊又是如何?
cps = <==同一秒鐘內最大連線數量為 個,若超過 個,
則該服務會暫時停止 秒!
} includedir /etc/xinetd.d <==更多的設定值在 /etc/xinetd.d 那個目錄內
常见参数
attribute (功能) |
assing_op (允許的動作) |
說明與範例 |
一般設定項目: | ||
disable | yes no |
允許該 server 可以執行或者是不能執行!當設定為 yes 表示該服務不能執行! 這個設定是一定要的啦。如果我想要啟動某個服務,那麼這裡就要設定成為:disable = no |
socket_type | stream dgram raw |
stream 為連線機制較為可靠的 TCP 封包,若為 UDP 封包則使用 dgram 機制。 raw 代表 server 需要與 IP 直接對談!例如 telnet 使用 TCP ,所以:socket_type = stream |
protocol | tcp udp .... |
這個東西說的是,連線的狀態使用的是哪一種協定!?各個協定的代號可以參考 /etc/protocols 內容!此外,除非是你自己設定的服務,否則這個可以不用設定啦! |
wait | yes no |
這就是我們剛剛提到的 Multi-threaded 與 single-threaded 的方式啦!一般來說,我們希望大家的要求都可以同時被啟用,所以可以設定wait = no |
user | UID root |
還記得我們在 帳號管理 那一篇提到的 UID 概念嗎?對啦!這個 UID 就是那個 UID 啦!要注意的是,假如你的服務啟動者不要以 root 為主的話,那麼這個地方就可以改變其他的使用者,例如 nobody !這個咚咚也會有安全防護的機制存在!此外,需要注意這個 UID 必須存在於 /etc/passwd 。 |
group | GID | 跟 user 的意思相同!只是這個 GID 的使用者也必須存在於 /etc/group 當中! |
instances | number UNLIMITED |
這個是『在同一時間之內,同一個服務可以允許的連線數目』的意思, 你可以寫入一個『數字』來控制連線數目,也可以使用 UNLIMITED 來告訴系統『沒有上限』囉!例如你在同時段之內僅允許 ftp 連線有 30 個,那麼這裡就可以輸入 30 啦! |
nice | -19 ~ 19 | 還記得我們在 程序管理 裡面談到的那個 nice 指令嗎?!對啦!這裡就是這個東西囉!數字越小( 負值 )代表該程序越優先被執行! |
server | program 完整檔名 |
這個就是指出這個服務的啟動程式!例如要啟動 telnet 的話,其實就是 in.telnetd 這支程式啦!所以這個時候在這裡輸入server = /usr/sbin/in.telnetd |
server_args | program 一些參數 |
這裡應該輸入的就是你的 server 那裡需要輸入的一些參數啦!例如 in.telnetd 當中,我們還可以加入某些參數! |
log_on_success | PID HOST USERID EXIT DURATION |
在『成功登入』之後,需要記錄的項目:PID 為紀錄該 server 啟動時候的 process ID , HOST 為遠端主機的 IP、USERID 為登入者的帳號、EXTI 為離開的時候記錄的項目、 DURATION 為該使用者使用此服務多久? |
log_on_failure | HOST USERID ATTEMPT RECORD |
當登入失敗之後被 syslog 登入的項目:HOST為遠端主機的 IP,USERID為登入者帳號、 ATTEMPT為記錄登入失敗者企圖的意圖為何、RECORD為記錄遠端主機的資訊!以及為何本機 server 不能啟動的原因!主要有 login, shell, exec, finger 等指令可以使用在這裡!( 基本上,可以在 /etc/hosts.allow 或 /etc/hosts.deny 書寫內容 )。 |
id | 赋予服务一个专用标识符。 | |
進階設定項目: | ||
env | 'name=value' | 這一個項目可以讓你設定環境變數,環境變數的設定規則可以參考 認識 BASH Shell 。 |
port | number | 這裡可以設定不同的服務與對應的 port ,但是請記住你的 port 與服務名稱必須與 /etc/services 內記載的相同才行! |
redirect | IP_Address port | 將 client 端對我們 server 的要求,轉到另一部主機上去!呵呵!這個好玩呦! 例如當有人要使用你的 ftp 時,你可以將他轉到另一部機器上面去!那個 IP_Address 就代表另一部遠端主機的 IP 囉! |
includedir | directory | 表示將某個目錄底下的所有檔案都給他塞進來 xinetd.conf 這個設定裡頭!這東西有用多了, 如此一來我們可以一個一個設定不同的項目!而不需要將所有的服務都寫在 xinetd.conf 當中!你可以在 /etc/xinetd.conf 發現這個設定呦! |
安全控管項目: | ||
bind | IP_Address | 這個是設定『允許使用此一服務的介面卡』的意思!舉個例子來說,你的 Linux 主機上面有兩個 IP ,而你只想要讓 IP1 可以使用此一服務,但 IP2 不能使用此服務,這裡就可以將 IP1 寫入即可!那麼 IP2 就不可以使用此一 server 囉 |
interface | IP_Address | 與 bind 相同 |
only_from | 0.0.0.0 192.168.1.0/24 host_name domain_name |
這東西用在安全機制上面,也就是管制『只有這裡面規定的 IP 或者是主機名稱可以登入!』如果是 0.0.0.0 表示所有的 PC 皆可登入,如果是 192.168.1.0/24 則表示為 C class 的網域!亦即由 192.168.1.1 ~ 192.168.1.255 皆可登入!另外,也可以選擇 domain name ,例如 .ev.ncku.edu.tw 就可以允許成大環工系的網域 IP 登入你的主機使用該 server ! |
no_access | 0.0.0.0 192.168.1.0/24 host_name domain_name |
跟 only_from 差不多啦!就是用來管理可否進入你的 Linux 主機啟用你的 server 服務的管理項目! no_access 表示『不可登入』的 PC 囉! |
access_times | 00:00-12:00 HH:MM-HH:MM |
這個項目在設定『該服務 server 啟動的時間』,使用的是 24 小時的設定!例如你的 ftp 要在 8 點到 16 點開放的話,就是: 08:00-16:00。 |
umask | 000 777 022 |
還記得在 檔案權限 裡面約略提過的 umask 這個東西嗎?呵呵!沒錯!就是那個鬼玩意兒囉! 可以設定使用者建立目錄或者是檔案時候的屬性!系統建議值是 022 。 |
per_source | 此参数限制来自同一地址的连接数上限。搭配 instances 选项是,可避免同一位用户用掉所有链接。 |
一個簡單的 telnet 範例設定
在預設的 /etc/xinetd.d/telnet 內容是這樣的:
service telnet
{
flags = REUSE <==額外的參數使用 REUSE
socket_type = stream <==使用 TCP 的封包格式
wait = no <==可以有多個連線同時連進來
user = root <==啟動者預設為 root
server = /usr/sbin/in.telnetd <==使用的是這支程式!
log_on_failure += USERID <==若登入錯誤,『加計』記錄使用者 ID
disable = yes <==此服務預設關閉!
}
- 對內部網域開放較多權限的部分:
假設 Linux 主機有兩張網路卡,對內的這一張 IP 為 192.168.1.100 ,且僅針對 192.168.1.0/24 這個網段提供登入。然後開放所有與 telnet 有關的權限, 包含總連線數量與連線時間等。但是, 192.168.1.120 及 192.168.1.130 兩個 IP 不允許登入; - 對外部網域較多限制的設定:
對外的 IP 假設為 140.116.44.125 ,且僅允許台南的校園網路 (140.116.0.0/16), 以及教育界的主機名稱 (.edu.tw),另外,僅開放早上 1~9 點及 20~24 兩個時段登入而已。 此外,最多容許十個連線進入。
在這樣的規劃情況下,我可以將剛剛上頭的 /etc/xinetd.d/telnet 這個檔案修改成為:
[root@linux ~]# vi /etc/xinetd.d/telnet
# 先針對對內的較為鬆散的限制來設定:
service telnet
{
disable = no <==預設就是啟動 telnet 服務
bind = 192.168.1.100 <==只允許經由這個介面卡的封包進來
only_from = 192.168.1.0/ <==只允許 192.168.0.0/ 這個網段
的主機連線進來使用 telnet 的服務
no_access = 192.168..{,} <==不許這些 PC 登入
instances = UNLIMITED <==同時允許連線不限制!
nice = <==使用的優先順序較高
flags = REUSE <==額外使用的參數
socket_type = stream <==使用 tcp 封包常用的連線型態
wait = no <==不需等待,可以同時允許多個連線
user = root <==啟動程序的使用者身份
server = /usr/sbin/in.telnetd<==服務啟動的程式
server_args = -a none <==上面那個程式的參數
log_on_failure += USERID <==錯誤登入時,要記錄下來的內容
}
# 再針對外部的連線來進行限制呢!
service telnet
{
disable = no <==預設就是啟動 telnet 服務
bind = 140.116.44.125 <==只允許經由這個介面卡的封包進來
only_from = 140.116.0.0/ <==只允許 140.116.0.0 ~ 140.116.255.255
這個網段連線進來使用 telnet 的服務
only_from = .edu.tw <==重複設定,只有教務界才能連線!
access_times = :-: :-:
<==每天只有這兩個時段開放服務
umask = <==建立檔案時的預設屬性設定
instances = <==同時只允許 個連線
nice = <==使用的優先順序較低
flags = REUSE <==額外使用的參數
socket_type = stream <==使用 tcp 封包常用的連線型態
wait = no <==不需等待,可以同時允許多個連線
user = root <==啟動程序的使用者身份
server = /usr/sbin/in.telnetd<==服務啟動的程式
server_args = -a none <==上面那個程式的參數
log_on_failure += USERID <==錯誤登入時,要記錄下來的內容
}
# 如果您的 telnet 本來就有啟動的話,那麼會發現有一個連線存在你的系統中
[root@linux ~]# netstat -tulnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0.0.0.0: 0.0.0.0:* LISTEN /xinetd
# 看到喔!是 xinetd 的 program name 呢! # 重新修改 /etc/xinetd.d/telnet 之後,重新啟動的方式與觀察為:
[root@linux ~]# /etc/init.d/xinetd restart
[root@linux ~]# netstat -tulnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 140.116.44.125: 0.0.0.0:* LISTEN /xinetd
tcp 192.168.1.100: 0.0.0.0:* LISTEN /xinetd
# 有沒有看到兩個介面啊~而且, PID 會是同一個呢!
/etc/xinetd.conf 和 /etc/xinetd.d/*【新网络服务配置】的更多相关文章
- Ubuntu 和 Redhat / Fedora 服务管理命令对比表(附Fedora16新的服务管理工具systemctl )
以 apache/httpd 服务作为例子 任务 Red Hat / Fedora Ubuntu Ubuntu (with sysv-rc-conf or sysvconfig) 立即启动/停止某服务 ...
- CentOS 6.6 新安装系统的网络IP配置
实例环境 虚拟机:VMware 11.1.0 系统:CentOS 6.6 # ifconfig -a << 查看所有网卡的状态 2. # vi /etc/sysconfig/n ...
- nginx.conf的events,http段一般固定配置
nginx.conf的events,http段一般固定配置 user nobody nobody; #使用的用户可以按照实际情况修改 worker_processes ; #指定nginx开启的进程数 ...
- CentOS 6.8 新安装系统的网络IP配置(转载)
实例环境 虚拟机:VMware 11.1.0 系统:CentOS 6.6 # ifconfig -a << 查看所有网卡的状态 2. # vi /etc/sysconfig/n ...
- 给新centos系统虚拟机配置网络服务
记录下今天新建虚拟机的过程吧. 镜像:CentOS-6.3-x86_64-minimal; 虚拟机版本: vm 8.0 LET'S----------------------->GO 手动新建一 ...
- Azure SQL 数据库引入了新的服务级别
新的级别将提升客户体验,并提供更多的业务连续性选项 为了更好地满足您在灵活性提升方面的需求,MicrosoftAzure SQL 数据库添加了新的服务级别(基础级和标准级),以与当前处于预览状态 ...
- CEVA引入新的可配置传感器集线器DSP架构
CEVA引入新的可配置传感器集线器DSP架构 CEVA introduces new configurable sensor hub DSP architecture 在一个将多个传感器设计成几乎所有 ...
- debian禁止或者允许指定ip访问远程mysql、ssh、rsynccat /etc/xinetd.conf
如果没有安装xinetd,安装xinetd apt-get install xinetd 然后创建配置文件 vi /etc/xinetd.d/mysqld service login { socket ...
- Docker 新网络 overlay 网络
Overlay网络是指在不改变现有网络基础设施的前提下,通过某种约定通信协议,把二层报文封装在IP报文之上的新的数据格式. 这样不但能够充分利用成熟的IP路由协议进程数据分发,而且在Overlay技术 ...
随机推荐
- 纯css的防止图片撑破页面的代码(图片自动缩放)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- mysql 5.0.46安装配置
http://os.chinaunix.net/a2008/0801/986/000000986346.shtml RPM包和源码包存放位置 /usr/local/src 源码包编译安装位置(pref ...
- debian的版本演进
debian有三个发行版本,stable版.testing版和unstable版. 其中,unstable版本是开发者正在开发的版本,它里面保存着debian的开发者当前的工作.这个版本是不断在被更新 ...
- 3.多线程NSOperation
1.NSOperation的基本操作 使用NSOperation的两个子类,NSInvocationOperation 和 NSBlockOperation 创建操作,然后将操作添加到队列中去执行 / ...
- C语言初学者代码中的常见错误与瑕疵(23)
见:C语言初学者代码中的常见错误与瑕疵(23)
- 电脑装的是office2013,右键新建却是2007,或者右键新建菜单中没有excel2013问题解决办法。
我的office出现了两个问题,因为工作比较忙,也没有着急解决,今天实在受不了了,花费一下午才找到解决方法. 原来万恶之源都是可恶的wps,以后千万不安装kingsoft了. 第一个问题:excel打 ...
- Java Web学习路线
2016-08-22的早上,本是一个很平静的早上,坐在去往公司的公交车上想到了很多之前上学时的点点滴滴,回想起来还真的是耐人寻味啊,当初青春的懵懂,当初的冲动,当初的做事不考虑后果! 也正是这耐人寻味 ...
- easyui DataGrid 工具类之 TableUtil class
import java.lang.reflect.InvocationTargetException;import java.util.ArrayList;import java.util.HashM ...
- Node.js怎么处理数据库中日期类型
问题描述:在数据库里存储时间的时候明明显示的是类如2016-12-22的形式,读取出来后却变成了大概是这样的:Fri May 17 2016 14:12:33 GMT+0800 (中国标准时间) 处理 ...
- <<Windows via C/C++>>学习笔记 —— 线程优先级【转】
转自:http://www.cnblogs.com/wz19860913/archive/2008/08/04/1259807.html 每个线程都有一个“优先级”,范围是0-31,0为最低优先级,3 ...