linux系統查看防火牆狀態(Linux日常維護管理---linux的防火牆)
2023-10-04 05:07:22 1
概述安全還是第一位,特別是防火牆,這一塊作為一個linux系統管理員還是需要會的,下面主要介紹下這方面內容:針對SELINUX和Iptables做介紹。
1. selinuxSelinux是Redhat/CentOS系統特有的安全機制。不過因為這個東西限制太多,配置也特別繁瑣所以幾乎沒有人去真正應用它。所以裝完系統,我們一般都要把selinux關閉,以免引起不必要的麻煩。關閉selinux的方法為,使 「SELINUX=disabled」, 默認為 enforcing
selinux將安全策略和實施策略分離
[root@localhost ~]# vim /etc/selinux/config# This file controls the state of SELinux on the system.# SELINUX= can take one of these three values:# enforcing - SELinux security policy is enforced.# permissive - SELinux prints warnings instead of enforcing.# disabled - No SELinux policy is loaded.SELINUX=disabled# SELINUXTYPE= can take one of these two values:# targeted - Targeted processes are protected,# mls - Multi Level Security protection.SELINUXTYPE=targeted
保存該配置文件後,重啟機器方可生效,臨時關閉selinux的命令為:
[root@localhost ~]# setenforce 0
我們可以使用 getenforce 命令獲得當前selinux的狀態:
[root@localhost ~]# getenforceDisabled
2. iptablesIptables是linux上特有的防火牆機制,其功能非常強大,但是小編在日常的管理工作中僅僅用到了一兩個應用,這並不代表iptables不重要。作為一個網絡管理員,iptables是必要要熟練掌握的。但是作為系統管理員,我們也應該會最基本的iptables操作,認識iptables的基本規則。
參數-nvL 就是查看規則, -F 是把當前規則清除,但這個只是臨時的,重啟系統或者重啟 iptalbes 服務後還會加載已經保存的規則,所以需要使用 /etc/init.d/iptables save 保存一下規則。
1)iptalbes的三個表
filter 這個表主要用於過濾包的,是系統預設的表,這個表也是小編用的最多的。內建三個鏈INPUT、OUTPUT以及FORWARD。INPUT作用於進入本機的包;OUTPUT作用於本機送出的包;FORWARD作用於那些跟本機無關的包。
nat 主要用處是網絡地址轉換,也有三個鏈。PREROUTING 鏈的作用是在包剛剛到達防火牆時改變它的目的地址,如果需要的話。OUTPUT鏈改變本地產生的包的目的地址。POSTROUTING鏈在包就要離開防火牆之前改變其源地址。該表阿銘用的不多,但有時候會用到。
mangle 這個表主要是用於給數據包打標記,然後根據標記去操作哪些包。這個表幾乎不怎麼用。除非你想成為一個高級網絡工程師,否則你就沒有必要花費很多心思在它上面。
2)iptables 基本語法
A. 查看規則以及清除規則
[root@localhost ~]# iptables -t nat -nvL
-t 後面跟表名,-nvL 即查看該表的規則,其中-n表示不針對IP反解析主機名;-L表示列出的意思;而-v表示列出的信息更加詳細。如果不加-t ,則列印filter表的相關信息
這個和-t filter 列印的信息是一樣的。
關於清除規則的命令中,基本是用的最多就是:
[root@localhost ~]# iptables -F[root@localhost ~]# iptables -Z
不加-t默認是針對表filter來操作的,-F 表示把所有規則全部刪除;-Z表示把包以及流量計數器置零。
B. 增加/刪除一條規則
# iptables -A INPUT -s 10.72.11.12 -p tcp --sport 1234 -d 10.72.137.159 --dport 80 -j DROP
這就是增加了一條規則,省略-t所以針對的是filter表。
-A 表示增加一條規則
-I 表示插入一條規則,
-D刪除一條規則;後面的INPUT即鏈名稱,還可以是OUTPUT或者FORWORD;
-s 後跟源地址;-p 協議(tcp, udp, icmp);
--sport/--dport 後跟源埠/目標埠;
-d 後跟目的IP(主要針對內網或者外網);
-j 後跟動作(DROP即把包丟掉,REJECT即包拒絕;ACCEPT即允許包)。
再總結一下各個選項的作用:
-A/-D :增加刪除一條規則;
-I :插入一條規則,其實跟-A的效果一樣;
-p :指定協議,可以是tcp,udp或者icmp;
--dport :跟-p一起使用,指定目標埠;
--sport :跟-p一起使用,指定源埠;
-s :指定源IP(可以是一個ip段);
-d :指定目的IP(可以是一個ip段);
-j :後跟動作,其中ACCEPT表示允許包,DROP表示丟掉包,REJECT表示拒絕包;
-i :指定網卡(不常用,但有時候能用到);
[root@localhost ~]# iptables -A INPUT -s 192.168.1.0/24 -i eth0 -j ACCEPT[root@localhost ~]# iptables -nvL |grep '192.168.1.0/24' 0 0 ACCEPT all -- eth0 * 192.168.1.0/24 0.0.0.0/0
上例中表示,把來自192.168.1.0/24這個網段的並且作用在eth0上的包放行。有時候你的伺服器上iptables過多了,想刪除某一條規則時,又不容易掌握當時創建時的規則。
C. nat表的應用
其實,linux的iptables功能是十分強大的,基本只要你能夠想到的關於網絡的應用,linux都能幫你實現。在日常生活中相信你接觸過路由器吧,它的功能就是分享上網。本來一根網線過來(其實只有一個公網IP),通過路由器後,路由器分配了一個網段(私網IP),這樣連接路由器的多臺pc都能連接intnet而遠端的設備認為你的IP就是那個連接路由器的公網IP。這個路由器的功能其實就是由linux的iptables實現的,而iptables又是通過nat表作用而實現的這個功能。
至於具體的原理以及過程,這裡就不介紹了,請查看相關資料。在這裡舉一個例子來說明iptables如何實現的這個功能。假設你的機器上有兩塊網卡eth0和eth1,其中eth0的IP為10.0.2.68 ,eth1的IP為192.168.1.1 。eth0連接了intnet 但eth1沒有連接,現在有另一臺機器(192.168.1.2)和eth1是互通的,那麼如何設置也能夠讓連接eth1的這臺機器能夠連接intnet(即能和10.0.2.68互通)?
[root@localhost ~]# echo "1" > /proc/sys/net/ipv4/ip_forward[root@localhost ~]# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
就是這樣簡單的兩條命令就能實現上面的需求。
第一個命令涉及到了內核參數相關的配置文件,它的目的是為了打開路由轉發功能,否則無法實現我們的應用。
第二個命令則是iptables對nat表做了一個IP轉發的操作,-o 選項後跟設備名,表示出口的網卡,MASQUERADE表示偽裝的意思。
這裡重點還是掌握iptables的相關語法,可能有些點講的不是很詳細,大家查下相關資料就可以了,後面會分享更多linux方面的內容,感興趣的朋友可以關注下!!