婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 等保測評:Centos超時退出問題

等保測評:Centos超時退出問題

熱門標簽:征服者快捷酒店地圖標注 蕪湖呼叫中心外呼系統哪家強 貴港市機器人外呼系統團隊 貴陽語音電銷機器人 電銷機器人怎么錄音 咸陽穩定外呼系統公司 漯河電銷外呼系統價格 天津外呼系統運營商 ec外呼系統怎么樣

一、說明

等保測評主機測評中需要查詢主機的超時退出配置,具體在Centos中的話,主要有兩種方式可以實現超時退出的功能。其實這方面的資料很多,但是仍然存在一些地方沒有說清楚(sshd_config的一個參數),所以本文的目的之一就是把那些問題說清楚。

注:我使用的是Centos6

另外本文也順便說一說在linux系統中,查詢配置的一個注意點。

二、設置TMOUT方式

這個是比較通用、簡單的方式,通過設置TMOUT,就可以至少對本地tty登錄和遠程使用ssh登錄的用戶起作用,但應該對圖形化界面無效,當然進入圖形化界面你再打開終端,對于打開的終端也是起作用的。

2.1. 實現方式

在/etc/profile、~/.bashrc、~/.bash_profile等文件的最后加入export TMOUT=900語句即可(單位是秒),然后想要不重新登錄就起效就,還需要用source命令解析上述文件。

上述文件中,/etc/profile針對所有用戶其效果,而~/.bashrc、~/.bash_profile則只對當前用戶其效果,實際上從文件位置就能看出來。

2.2. 具體查詢方式

從上面可以知道,理論上可以在好幾個地方對TMOUT進行配置,不過一般應該是在/etc/profile這個文件中對所有用戶進行設置,可能有極個別的會單獨為每個用戶配置超時時間。

所以直接查看/etc/profile文件內容,然后再用echo $TMOUT語句看看運行環境中的TMOUT變量到底是多少。

2.3. 配置查詢的注意點

這里多說一點,在查配置時,對于linux系統最好是 配置文件 以及 實際情況 一塊查。 

為什么要一塊查?

因為配置文件里寫了不代表就起效了,比如/etc/profile修改后需要用source命令才能起效。另外,配置文件中的配置即使起效了,但未必就等同于現在實際執行的規則。

比如iptables的規則可以用命令動態修改,當然如果沒有使用命令持久化(也就是將當前規則存入iptables的配置文件中)的話,重啟iptables服務那些臨時的規則就沒了。

所以同樣的,配置文件里啥都沒寫,不代表現在運行的環境中沒有規則,比如iptables的規則可以用命令臨時添加進來。

所以如果想在測評的時候更全面的了解情況,最好就是一塊查。

三、修改sshd_config文件方式

一般來說,遠程對linux服務器進行管理都是通過ssh協議,所以對sshd_config文件進行配置,也是一種方法,雖然只對通過ssh登錄的所有用戶有效。

記住修改完sshd_config文件后需要重啟才能生效。

在sshd_config文件中有兩個參數,分別是ClientAliveInterval和ClientAliveCountMax。

這里網上好像沒說清楚,這里根據ClientAliveCountMax的取值是不是0,會有兩種效果。

3.1. ClientAliveCountMax的值是0

這種情況下,就是我們想要的操作超時自動退出的效果,也就是當客戶端多久沒有操作,服務器端就直接斷開ssh連接。

這個“多久”當然就是由ClientAliveInterval的值來決定,它的單位是秒。

比如ClientAliveInterval是600,ClientAliveCountMax是0,則代表著如果600秒內終端沒有操作,則斷開ssh連接。

3.2. ClientAliveCountMax的值大于0

這種情況下,和我們想要的效果有區別:

ClientAliveInterval:指定了服務器端向客戶端請求消息的時間間隔,默認值是0;
ClientAliveCountMax:則指定這種請求服務器端發送后,客戶端最多的無響應次數(但網上一般是說服務器端最多向客戶端發送這種消息多少次,我覺得不太對),默認值是3。

如果ClientAliveInterval是60,ClientAliveCountMax是1,表面上看它的意思就是如果60s內客戶端沒有響應,服務器端就會給客戶端發送一個請求判斷還它存不存在,如果1次也就是60秒都沒有任何回復,就斷開連接。

所以咋一看上去,和ClientAliveCountMax的值是0時沒啥區別,還是60秒后不操作就自動斷開不了啊。

但實際上壓根不一樣,因為當服務器端給客戶端發送一個請求判斷還它存不存在時,客戶端應該是會 自動回復 的,同時,ClientAliveCountMax并不是指會發送這種消息多少次,或者好像和這個壓根就沒關系,它應該是指 服務器端發送這種請求后,客戶端最多的無響應次數 ,而且還得是連續的,因為從源代碼里面看(見下文),只要有一次正常相應,這個次數就會被清空。

也就是說, 這里判斷的應該是客戶端那邊網絡有沒有出現問題,比如斷線了之類的 。 

因為只要網絡正常,客戶端這邊永遠會自動回復服務器端發送過來的請求,則這個計數永遠達不到限定的閾值1,也永遠不會自動退出(理想情況下啊),和你有沒有進行操作沒有任何關系……

我自己測試過,將ClientAliveInterval設置為60,ClientAliveCountMax設置1,然后我一直不操作,同時我把xshell里保持活動狀態的選項關掉:

結果就是到了60秒后根本不會自動退出……

然后我又把ClientAliveInterval和ClientAliveCountMax都設置成1,結果就是服務器那邊每隔1秒就發個消息過來(有消息傳輸的時候那個箭頭會亮):

要是按照網上的解釋,最多只發送1次這種消息就結束會話,那壓根解釋不通,這都給我發了無數次了……

我跑去看man里的解釋,也沒看出所以然:

ClientAliveCountMax
    Sets the number of client alive messages (see below) which may be sent without sshd(8) receiving any messages back from the client. If this threshold is reached while client alive messages are being sent, sshd will disconnect the client, terminating the session. It is important to note that the use of client alive messages is very different from TCPKeepAlive (below). The client alive messages are sent through the encrypted channel and therefore will not be spoofable. The TCP keepalive option enabled by TCPKeepAlive is spoofable. The client alive mechanism is valuable when the client or server depend on knowing when a connection has become inactive. The default value is 3. If ClientAliveInterval (see below) is set to 15, and ClientAliveCountMax is left at the default, unresponsive SSH clients will be disconnected after approximately 45 seconds. This option applies to protocol version 2 only.

ClientAliveInterval
   Sets a timeout interval in seconds after which if no data has been received from the client, sshd(8) will send a message through the encrypted channel to request a response from the client. The default is 0, indicating that these messages will not be sent to the client. This option applies to protocol version 2 only.

3.3. 源代碼解釋

于是我就去翻了翻源代碼,不過我對c語言不熟,只能大概猜一猜了(有錯誤請見諒):

wait_until_can_do_something函數里有這么一段:

/* Wait for something to happen, or the timeout to expire. */
	ret = select((*maxfdp)+1, *readsetp, *writesetp, NULL, tvp);

	if (ret == -1) {
		memset(*readsetp, 0, *nallocp);
		memset(*writesetp, 0, *nallocp);
		if (errno != EINTR)
			error("select: %.100s", strerror(errno));
	} else {
		if (ret == 0 && client_alive_scheduled)
			client_alive_check();
		if (!compat20 && program_alive_scheduled && fdin_is_tty) {
			if (!fdout_eof)
				FD_SET(fdout, *readsetp);
			if (!fderr_eof)
				FD_SET(fderr, *readsetp);
		}
	}

里面的select函數定義是這樣的:

int select(int maxfdp,fd_set *readfds,fd_set *writefds,fd_set *errorfds,struct timeval*timeout); 

它能夠監視我們需要監視的文件描述符的變化情況——讀寫或是異常,它的最后一個參數timeval*timeout是一個超時時間,如果timeout的值大于0,這就是等待的超時時間,即select在timeout時間內阻塞,超時時間之內有事件到來就返回了,否則在超時后不管怎樣一定返回。

如果timeout的值是null,則代表將select置于阻塞狀態,一定等到監視文件描述符集合中某個文件描述符發生變化為止。

而返回值為-1代表出異常了,為0則代表超時時間內,監視的這些文件即沒有可寫的也沒有可讀的,換句話說,為0就是意味著客戶端那沒有任何操作。

在代碼中,在一定的條件下,這個timeout的值就是我們設置的ClientAliveInterval的值(如果設置值大于0),如果ClientAliveInterval是0,則timeout的值根據一些條件則為null。

然后根據client_alive_scheduled的值,就有可能調用client_alive_check(),不過如果是使用ssh2協議然后設置了ClientAliveInterval,應該client_alive_scheduled的值就是1,代碼如下:

if (compat20 &&
	 max_time_milliseconds == 0 && options.client_alive_interval) {
		client_alive_scheduled = 1;
		max_time_milliseconds = options.client_alive_interval * 1000;
	}

client_alive_check的定義如下:

static void
client_alive_check(void)
{
	int channel_id;

	/* timeout, check to see how many we have had */
	if (packet_inc_alive_timeouts() > options.client_alive_count_max) {
		logit("Timeout, client not responding.");
		cleanup_exit(255);
	}

	/*
	 * send a bogus global/channel request with "wantreply",
	 * we should get back a failure
	 */
	if ((channel_id = channel_find_open()) == -1) {
		packet_start(SSH2_MSG_GLOBAL_REQUEST);
		packet_put_cstring("keepalive@openssh.com");
		packet_put_char(1);	/* boolean: want reply */
	} else {
		channel_request_start(channel_id, "keepalive@openssh.com", 1);
	}
	packet_send();
}

可以看到如果packet_inc_alive_timeouts()大于options.client_alive_count_max,則就結束了。

packet_inc_alive_timeouts的定義很簡單,就是把累積的timeouts加個1,然后返回。

int
packet_inc_alive_timeouts(void)
{
	return ++active_state->keep_alive_timeouts;
}

所以,如果設置的ClientAliveCountMax是0,到這里就直接結束了(0+1>0),不會執行下面的發送請求的代碼。

如果(channel_id = channel_find_open())不為-1,應該代表channel沒問題的話,就會執行:

channel_request_start(channel_id, "keepalive@openssh.com", 1);

channel_request_start中有這么一句:

packet_start(SSH2_MSG_CHANNEL_REQUEST);

而SSH2_MSG_CHANNEL_REQUEST應該是綁定了一個函數

dispatch_set(SSH2_MSG_CHANNEL_REQUEST, &server_input_channel_req); 

所以就會調用server_input_channel_req函數,server_input_channel_req函數在有這么一段:

reply = packet_get_char();

…………


if (reply) {
		packet_start(success ?
		  SSH2_MSG_CHANNEL_SUCCESS : SSH2_MSG_CHANNEL_FAILURE);
		packet_put_int(c->remote_id);
		packet_send();
	}

這里根據success的值又會調用一個函數,其實好像調用的函數是一樣的:

dispatch_set(SSH2_MSG_CHANNEL_SUCCESS, &server_input_keep_alive);
dispatch_set(SSH2_MSG_CHANNEL_FAILURE, &server_input_keep_alive);
dispatch_set(SSH2_MSG_REQUEST_SUCCESS, &server_input_keep_alive);
dispatch_set(SSH2_MSG_REQUEST_FAILURE, &server_input_keep_alive);

都是server_input_keep_alive函數,這個函數的意思就很簡單了:

static void
server_input_keep_alive(int type, u_int32_t seq, void *ctxt)
{
	debug("Got %d/%u for keepalive", type, seq);
	/*
	 * reset timeout, since we got a sane answer from the client.
	 * even if this was generated by something other than
	 * the bogus CHANNEL_REQUEST we send for keepalives.
	 */
	packet_set_alive_timeouts(0);
}

packet_set_alive_timeouts(0)就是把active_state->keep_alive_timeouts的值設為0,也就是重置了這個計數。

所以饒了一圈,這些代碼的意思大概應該是這樣,如果客戶端在規定時間內沒有響應,就先判斷未響應次數是否超過設置的值,如果超過就結束。

如果沒超過,就把這個次數加1,然后發送一個請求,看看客戶端還在不在,如果客戶端網絡正常(應該會自動回復),就會得到客戶端的回復,于是就重置這個未響應計數。

四、兩個方式的不同

TMOUT方式可以針對所有用戶通過本地tty或遠程ssh登錄時起作用,而修改sshd_config只針對使用ssh登錄的用戶。

另外一點就是TMOUT判斷你有沒有在操作,好像是看你有沒有輸入什么字符然后敲回車執行,你輸入正確的命令敲回車執行命令,就算。輸入無意義的字符敲回車沒有找到可執行的命令,那也算。光輸入字符不敲回車就不算,而判斷你處于空閑狀態,超時就會登出。

而ssh是基于網絡來判斷,只要客戶端對服務器有發送信息,那就算有在操作。

這也是兩者的一些細微的不同之處。

總結

以上所述是小編給大家介紹的等保測評:Centos超時退出,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

標簽:怒江 淮北 香港 東營 濰坊 攀枝花 西藏 西寧

巨人網絡通訊聲明:本文標題《等保測評:Centos超時退出問題》,本文關鍵詞  等,保,測評,Centos,超時,退,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《等保測評:Centos超時退出問題》相關的同類信息!
  • 本頁收集關于等保測評:Centos超時退出問題的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    久久精品在线免费观看| 精品久久久久久久久久久久久久久久久| 欧美电影免费观看完整版| 色偷偷成人一区二区三区91| 欧美日韩在线免费视频| 9191精品国产综合久久久久久| 717成人午夜免费福利电影| 9191精品国产综合久久久久久| 亚洲精选视频在线| 亚洲国产综合视频在线观看| 精品粉嫩aⅴ一区二区三区四区| 91精品国产一区二区三区香蕉| 一区二区三国产精华液| 日韩黄色片在线观看| 欧美色图在线观看| 欧美精品一区二区三区蜜桃| 欧美xxxxxxxx| 亚洲人成7777| 亚洲国产精品影院| 美腿丝袜亚洲三区| av在线不卡网| 精品国产91亚洲一区二区三区婷婷 | 欧美亚洲尤物久久| 欧美色爱综合网| 美女一区二区视频| 日韩美一区二区三区| 精品国产乱码久久久久久夜甘婷婷 | 免费在线观看成人| 久久一日本道色综合| 色婷婷av一区| 天堂成人国产精品一区| 成人午夜在线免费| 风间由美一区二区av101| 成人免费在线视频| 亚洲人成网站色在线观看| 26uuu精品一区二区在线观看| 久久精品国产一区二区三区免费看| 欧美精品一区二区三区久久久| 欧美日韩电影在线播放| 国产成人免费xxxxxxxx| 经典三级一区二区| 综合分类小说区另类春色亚洲小说欧美| 亚洲另类在线制服丝袜| 国产精品国产自产拍高清av| 精品国产一区二区三区久久影院| 欧美精品在线观看一区二区| 欧美日本乱大交xxxxx| 欧美性色黄大片手机版| 91免费国产在线| 欧美欧美午夜aⅴ在线观看| 精品国产污污免费网站入口| 久久精品夜夜夜夜久久| 欧美国产一区二区在线观看| 久久男人中文字幕资源站| 亚洲精品va在线观看| 亚洲精品国产精华液| 一区在线观看视频| 久久久久久久网| 亚洲欧美综合网| 亚洲3atv精品一区二区三区| 九九视频精品免费| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 东方aⅴ免费观看久久av| 成人一区二区三区| 中文字幕va一区二区三区| 亚洲免费在线视频一区 二区| 欧美极品xxx| 国产亚洲精久久久久久| 国产精品2024| 亚洲自拍与偷拍| 免费欧美在线视频| 国产精品毛片久久久久久| 国产aⅴ精品一区二区三区色成熟| 欧美不卡一区二区三区| 激情综合网最新| 3d动漫精品啪啪一区二区竹菊 | 成人免费黄色大片| 亚洲精品久久7777| 日韩欧美一区二区三区在线| 亚洲国产日韩综合久久精品| 免费观看久久久4p| 日韩欧美另类在线| 久久成人麻豆午夜电影| 久久综合久久久久88| 成人免费毛片a| 日本不卡一区二区| 欧美日韩视频专区在线播放| 亚洲小少妇裸体bbw| 成人丝袜高跟foot| 午夜久久福利影院| 国产精品嫩草久久久久| 成+人+亚洲+综合天堂| 亚洲成人av一区| 中文字幕日韩精品一区| 欧美不卡一区二区三区四区| 91浏览器在线视频| 亚洲午夜一区二区三区| 69堂亚洲精品首页| 一本色道久久综合亚洲精品按摩| 日韩黄色小视频| 日本不卡免费在线视频| 国产精品日韩精品欧美在线| 精品国产污网站| 日韩视频国产视频| 欧美一区二区三区成人| 91精品国产综合久久精品| 欧美日韩国产小视频在线观看| 粉嫩蜜臀av国产精品网站| 成人在线综合网站| av在线综合网| 亚洲成av人片一区二区梦乃| 午夜欧美2019年伦理| 91精品国产色综合久久ai换脸 | 曰韩精品一区二区| 亚洲精品国产a久久久久久| 中文字幕日韩精品一区| 一区二区三区91| 欧美日韩不卡一区| 亚洲精品在线免费播放| 欧美精品一区二区在线播放| 国产人伦精品一区二区| 国产精品久久久久久久久久久免费看 | 国产成人免费视频精品含羞草妖精| 午夜影视日本亚洲欧洲精品| 中文字幕一区二区三区乱码在线| 欧美综合色免费| 欧美中文字幕一区二区三区| 欧美日韩的一区二区| 久久亚洲私人国产精品va媚药| 国产日韩欧美高清在线| 国产精品美女久久久久aⅴ国产馆| 国产午夜精品一区二区三区视频| 国产午夜亚洲精品羞羞网站| 国产精品视频九色porn| 亚洲第一主播视频| 久久精品人人做人人综合| 国产一区二区调教| 91麻豆精品国产无毒不卡在线观看| 精品国产91亚洲一区二区三区婷婷 | 日韩一本二本av| 成人av电影免费在线播放| 日韩女优av电影| 九九久久精品视频 | 日韩免费在线观看| 欧美日韩国产免费一区二区| 国产中文一区二区三区| 蜜桃精品视频在线| 老鸭窝一区二区久久精品| 亚洲午夜久久久久久久久电影院| 亚洲电影在线播放| 亚洲成年人网站在线观看| 天天综合日日夜夜精品| 五月天精品一区二区三区| 亚洲不卡一区二区三区| 日本不卡一区二区| 国内精品写真在线观看| 国产精品系列在线观看| 国产99精品在线观看| 视频在线观看国产精品| 日本不卡123| 国产成人免费视频网站| 日本电影亚洲天堂一区| 日韩欧美卡一卡二| 亚洲国产精品二十页| 亚洲一区二区在线免费看| 日韩电影一二三区| 丝袜a∨在线一区二区三区不卡| 亚洲成人综合视频| 国产精品自产自拍| 欧美无乱码久久久免费午夜一区| 欧美日韩免费在线视频| 国产欧美久久久精品影院| 亚洲精品第1页| 不卡一二三区首页| 色8久久人人97超碰香蕉987| 欧美国产97人人爽人人喊| 亚洲一区在线观看免费| 久国产精品韩国三级视频| 色成人在线视频| 中文字幕av一区 二区| 三级欧美在线一区| 国产福利精品一区| 日韩免费视频一区二区| 亚洲va欧美va人人爽| av一区二区三区| 97国产一区二区| 欧美日韩精品一区视频| 婷婷中文字幕综合| 国产亚洲一本大道中文在线| 成人美女在线视频| 午夜精品福利一区二区三区av | 国产精品一区二区三区四区| 日韩欧美国产不卡| 成人综合在线视频| 视频一区视频二区中文字幕| 亚洲精品一区二区三区精华液| 99在线精品视频| 日本美女一区二区三区| 亚洲色图欧美在线| 久久免费午夜影院|