1. 程式人生 > >hosts.allow和hosts.deny檔案

hosts.allow和hosts.deny檔案

  之前想通過外部主機訪問自己主機上的VMWare虛擬機器,使用了VMWare的NAT埠對映,經過一番嘗試,算是成功了,總結一下。

  VMWare NAT埠對映就可以將虛擬機器上的服務對映成自己主機上的埠,以供外部訪問。不過需要主機上的windows系統開放相應的防火牆,windows的資料查起來比較困難,使用價值也不大,所以沒有深究,目前直接關閉防火牆,以後有真正的需求再認真研究。

  當然虛擬機器上CentOS的防火牆也必須開啟,這個好像預設就是開啟的(至少sshd的22埠是開啟的),然後發現還是訪問不了,查了一下資料,需要配置一下/etc/hosts.allow檔案。終於到了正題,hosts.allow和hosts.deny,這兩個檔案是什麼?

  CentO系統中提供一個叫TCP Wrapper的機制,是在防火牆之後的一道安全控制屏障,任何訪問如果通過不了防火牆,那就沒戲,通過了防火牆還得經過TCP Wrapper的考驗。詳情參考:https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/3/html/Reference_Guide/ch-tcpwrappers.html。這裡是官方的比較詳細的說明。總結起來大該是如下幾點:

  1) TCPWrapper只針對系統中的網路服務,比如sshd,sendmail,vsftpd等等(/etc/rc.d/init.d/目錄下的服務)。

  2) TCPWrapper由/usr/lib/libwrap.a實現,程式碼中使用libwrap.a的服務才會啟動hosts.allow和hosts.deny。通過strings -f <service-program> | grep hosts_access可以大致確定制定服務是否使用TCPWrapper。

  3) 大概的流程如下圖,其中xinetd也是一個網路服務。

    

  4)TCPWrapper只是在建立連線的時候起控制作用,連線一旦建立,TCPWrapper不會再進行干涉。

  為什麼有了防火牆還要搞這麼個東西,功能感覺防火牆都能做啊有木有。原因我不太懂,但是看了hosts.allow和hosts.deny的規則大概就懂了,其實這是一個更高層次訪問控制,就是說防火牆控制太細了,同時也比較麻煩,我本人就不太熟悉防火牆的細節,以前看過一點,根本記不住。但是hosts.allow和hosts.deny這個規則分分鐘記住啊。先來個例子:

 

  這個是host.allow裡面的東西,意思是a) allow 192.168.171.129訪問本機的sshd服務,b)deny 192.168.171.1訪問本機的sshd服務,c)allow 192.168.171.1訪問本機的sshd服務。意思很清晰,語法也很簡單是不是?

  相信很多同學也能看出語法規則,就是<服務名>:<主機描述>:allow/deny。本人對這個語法也只是初步瞭解,可能有更復雜的用法,這個有興趣的同學可以參考之前給出的官方文件連結。這裡給出以下幾點說明,希望對新接觸的同學有點幫助。

  1) 服務名是/etc/rc.d/init.d/目錄下的網路服務名,而且是服務的執行檔案的名字,如sshd。

  2) 主機描述可以比較自由,比如192.168.*.*,還有ALL,大家應該懂是什麼意思,我就不描述了。其他很靈活的用法請參考官方文件。

  3) 上面c中沒有指出是allow/deny,為什麼是allow?沒有細看說明,根據我的實驗,在hosts.allow中不指定就是預設allow,hosts.deny中預設是deny。

  4) 原則上建議hosts.allow中定義allow規則,hosts.deny中定義deny規則,但是這個不是強制的。可以在hosts.allow中定deny規則,也可以在hosts.deny中定義allow規則。

  5) 規則的優先順序為先hosts.allow再hosts.deny,每個檔案中由上至下,一旦匹配一條規則,則停止匹配。上面的例子192.168.171.1就會被sshd deny掉,因為deny規則在前,allow規則在後。有些資料說先allow規則再deny規則是不對的,估計是英文水平一般,直接翻譯的,斷章取義害死人啊。

  是不是很簡單實用?好了,騷年,趕緊動手試一試吧。

相關推薦

hosts.allowhosts.deny檔案

  之前想通過外部主機訪問自己主機上的VMWare虛擬機器,使用了VMWare的NAT埠對映,經過一番嘗試,算是成功了,總結一下。   VMWare NAT埠對映就可以將虛擬機器上的服務對映成自己主機上的埠,以供外部訪問。不過需要主機上的windows系統開放相應的防火牆,windows的資料查起來比較困難

centos 安全配置應用之hosts.allowhosts.deny

一、概述 這兩個檔案是tcpd伺服器的配置檔案,tcpd伺服器可以控制外部IP對本機服務的訪問。這兩個配置檔案的格式如下: #服務程序名:主機列表:當規則匹配時可選的命令操作 server_name:hosts-list[:command] /etc/hosts.allow

hosts.allow hosts.deny

class hosts lang imp pan sts -s 0.10 list 簡單控制訪問ip,hosts.allow/hsots.deny a simple access control language that is based on client

centos7修改hostnamehosts

保存 oca etc 信息 sla uname domain 修改 local 1、修改/etc/hostname vi /etc/hostname 打開之後的內容是: localhost.localdomain 把它修改成想要的名字就可以,比如:master 保存退出

關於DNS,VPNHosts

DNS是什麼? DNS(Domain Name System),域名系統。用來把機器名字轉換成IP地址。網路終端都有一個唯一的IP地址用於通訊,就好象我們每個人都有住址用來收信。 IPv4長這樣:192.168.1.1,255.255.255.255 IPv6長這樣:

Ansible高階應用--動態建立hosts實踐,簡化部署配置檔案

使用Ansible 時不可少的時hosts 檔案, 每次執行都會用到。但是這個hosts檔案經常成為專案難以管理的問題源頭。因為需要定義太底層的hosts 檔案。實際專案比這個要複雜很多,如果我們能通過面向物件的原理來管理hosts 檔案,這樣生活就會簡單和可控

nginx下的站點配置(埠hosts)兩種模式

一般預設是80埠,以hosts模式配置多站點可以設定如下: server {      listen       80;      server_name   allwood-com.cn;      root   "D:/phpStudy/WWW/allwood-com"

C檔案包含.h檔案包含.c檔案總結

原文連結:http://blog.csdn.net/yangtalent1206/article/details/6830051        很多人對C語言中的 “檔案包含”都不陌生了,檔案包含處理在程式開發中會給我們的模組化程式設計帶來很大的好處

原生node用fshttp完成檔案上傳到伺服器

var http=require("http"); var fs=require("fs"); http.createServer(function(req,res){ res.writeHead(200,{"Content-type":"text/html;charset=UTF-8","

使用pscp命令將Windowslinux中檔案互相拷貝

window—>linux  首先,下載putty軟體,並可以在目錄中,找到pscp.exe檔案,我們可以通過這個軟體實現Windows和linux之間拷貝檔案。  將pscp.exe的路徑加入到系統環境變數Path中,這樣我們就可以在Windows的命令列

SpringBoot學習_yaml介紹yaml配置檔案值獲取

文章目錄 yaml簡介 yaml語法 基本語法 值的寫法 yml配置檔案的值獲取 獲取方法一:用@ConfigurationProperties獲取 yml程式碼提示

mysql資料庫表結構定義檔案儲存引擎檔案

目錄 1.表結構定義檔案:      2.儲存引擎檔案 2.1表空間檔案 2.2重做日誌檔案 3. 如何用frm檔案恢復資料庫結構 1.表結構定義檔案:      *.frm 檔案是所有m

debian9安裝arm-linux-gcc交叉編譯器,並安裝windowslinuxs共享檔案的samba伺服器

1,首先下載arm-linux-gcc安裝包,http://arm9.net/download.asp 解壓:tar -zxvf  *.tar.gz 2,修改環境,使得系統能夠識別arm-linux-gcc, 方法1:##sudo vi /etc/environment 方

虛擬機器UbuntuWindows共享檔案設定(二)

一、點選虛擬機器->設定,出現介面如圖所示: 二、點選選項->共享資料夾->總是啟用,出現介面如圖所示: 三、在Windows自己喜歡的一個路徑下建一個share資料夾,我的如圖所以: 四、設定共享目錄並點選確定 五、/mnt

用dos命令編譯執行java檔案

1.安裝JDK,配置好環境變數 2.在命令列視窗進入java檔案所在路徑(用cd命令),假設HelloWorld.java檔案在C盤根目錄     3.在該路徑下輸入如下命令: javac. -d . HelloWorld.java  執行後可到j

系統延時任務,定時任務清理臨時檔案的管理

############################################## 1.設定定時任務 ############################################## 延時任務只執行一次 固定時間任務 at 20:30#設定時間 >rm -fr

關於extern以及原始檔標頭檔案的應用

最近在糾結這個問題,全域性變數的宣告到底應該在原始檔還是標頭檔案中,其實有兩種方法: 緣由:因為 int a;表示的是一個定義,而extern int a;卻是一個宣告 方法一:在a.h中表示全域性變數的宣告:extern int a;       &nbs

[轉載] js 讀取輸出txt檔案

https://www.jb51.net/article/46712.htm ActiveXObject is not defined,ActiveXObject是IE瀏覽器獨有支援的外掛,其他瀏覽器可能不支援。     then--前端不好將資料儲存到本地txt檔案,可以通過jq

【官宣】神鷹資料填報管理系統平臺神鷹檔案採集工具軟體獲得軟體著作權

近日,北京天健通泰科技有限公司(以下簡稱:天健通泰)自主研發的《神鷹®資料填報管理系統平臺》和《神鷹®檔案採集工具軟體》成功獲得×××計算機軟體著作權,並在多個專案中成功應用。神鷹®資料填報管理系統和神鷹®檔案採集工具軟體是天健通泰自主研發的系統軟體,為了更好的保證實驗室統計工作的順利進行、確保統計資料的真實

VC 6 0中新增庫檔案標頭檔案

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!