-
1 # 小小猿愛嘻嘻
-
2 # 2021加油一次
大概就三種方式,這裡著重介紹後兩種。
Selinux 主要是對核心的訪問許可權加以控制
TCP_Wrappers應用級防火牆
Netfilter網路層防火牆
利用selinux核心的強制安全訪問控制
可以用getenforce獲取目前Selinux的狀態
vi /etc/sysconfig/selinux 設定SELINUX
TCP_Wrappers應用級防火牆簡單的來說就是利用
hosts.allow/hosts.deny
來進行訪問控制。首先要知道並不是所有的服務都是受tcp_wrappers管理的,只用採用libwrap庫的服務才受管理。
檢測服務是否支援tcp_wrappers:
ldd $(which domainname) | grep libwrap
例如:ssh服務,如果有輸入下一行,那麼說明支援,可以用
hosts.allow/deny
檔案進行訪問控制,否則不可。被xinetd管理的服務和某些獨立的服務(可以使用tcp_wrappers管理httpd smb squid 不受tcp_wrappers管理tcp_wrappers如何工作:程序先檢查檔案/etc/hosts.allow,如果請求訪問的主機名或IP包含在此檔案中,則允許訪問。 如果請求訪問的主機名或IP不包含在/etc/hosts.allow中,那麼tcpd程序就檢查/etc/hosts.deny。看請求訪問的主機名或IP有沒有包含在hosts.deny檔案中。如果包含,那麼訪問就被拒絕;如果既不包含在/etc/hosts.allow中,又不包含在/etc/
hosts.deny
中,那麼此訪問也被允許。舉例:只允許192.1680.1訪問sshd,其他都拒絕。
hosts.allow sshd:192.168.0.1:allow
hosts.deny sshd:ALL
Netfilter網路層防火牆這其實就是我們常用的iptables,centos7開始使用firewalld服務,原理一樣。
iptables不是真正起防護作用的,Netfilter才是真正的防護著系統,linux系統的安全框架位於核心。
iptables四表五鏈四表:
filter表——過濾資料包Nat表——用於網路地址轉換(IP、埠)Mangle表——修改資料包的服務型別、TTL、並且可以配置路由實現QOSRaw表——決定資料包是否被狀態跟蹤機制處理五鏈:
INPUT鏈——進來的資料包應用此規則鏈中的策略OUTPUT鏈——外出的資料包應用此規則鏈中的策略FORWARD鏈——轉發資料包時應用此規則鏈中的策略PREROUTING鏈——對資料包作路由選擇前應用此鏈中的規則(所有的資料包進來的時侯都先由這個鏈處理)POSTROUTING鏈——對資料包作路由選擇後應用此鏈中的規則(所有的資料包出來的時侯都先由這個鏈處理)、iptables訪問控制舉例例如禁止192.168.1.1訪問我的ssh服務,埠預設22
iptable -I INPUT -p tcp -s 192.168.1.1 --dport 22 -j ACCEPT
回覆列表
這個非常簡單,目前來說,有2種方法,一種是修改hosts.deny檔案,一種是新增防火牆規則,下面我分別簡單介紹一下:
修改hosts.deny檔案這個檔案主要用於控制禁止訪問本機的IP(路徑/etc/hosts.deny),只需要新增禁止訪問的IP地址,則指定的IP就不能訪問Linux系統,如下,這裡禁止IP為192.168.15.21的使用者ssh遠端登入,第一個欄位為服務名稱,第二個為IP地址(也可以是一個網路或所有IP),第三個為deny(也可以不寫):
接著用IP為192.168.15.21的使用者嘗試著ssh登入Linux系統,如下,則會失敗:
新增防火牆規則這裡以firewall防火牆為例(iptables防火牆類似),只需要使用firewall-cmd命令新增一條防火牆規則,拒絕指定IP地址訪問Linux系統就行,如下,這裡禁止IP為192.168.15.21的使用者訪問21埠(FTP服務):
接著用IP為192.168.15.21的使用者嘗試連線Linux FTP服務,如下,則會失敗:
如果需要移除規則的話,使用引數remove-rich-rule就行,更多引數和說明的話,可以參考幫助命令“firewall-cmd -h”,每個引數都介紹的非常詳細、清楚:
至此,我們就完成了禁止特定IP訪問Linux系統。總的來說,這2種方法都非常簡單,只要你有一定的Linux基礎,熟悉一下上面的操作過程,很快就能掌握的,網上也有相關教程和資料,介紹的非常詳細,感興趣的話,可以搜一下,希望以上分享的內容能對你有所幫助吧,也歡迎大家評論、留言進行補充。