Linux 防火牆的配置和使用(redhat7、redhat6)

一、redhat7中防火牆的配置和使用

RHEL7 雖然仍有iptables,但不建議使用了,而是使用新的firewalld服務。

1.systemctl:redhat7中使用了firewalld代替了原來的iptables

systemctl unmask firewalld                      #執行命令,即可實現取消服務的鎖定
systemctl mask firewalld                        # 下次需要鎖定該服務時執行
systemctl start firewalld.service               #啓動防火牆  
systemctl stop firewalld.service                #停止防火牆  
systemctl reloadt firewalld.service             #重載配置
systemctl restart firewalld.service             #重啓服務
systemctl status firewalld.service              #顯示服務的狀態
systemctl enable firewalld.service              #在開機時啓用服務
systemctl disable firewalld.service             #在開機時禁用服務
systemctl is-enabled firewalld.service          #查看服務是否開機啓動
systemctl list-unit-files|grep enabled          #查看已啓動的服務列表
systemctl --failed                              #查看啓動失敗的服務列表

2.防火牆常用命令:

常用命令介紹
firewall-cmd --version                         ##查看版本
firewall-cmd --state                           ##查看防火牆狀態,是否是running
firewall-cmd --reload                          ##重新載入配置,更新防火牆規則,執行結果success
firewall-cmd --list-all                        ##查看防火牆所有配置情況
firewall-cmd --list-ports                      ##查看所有打開的端口  
firewall-cmd --list-services                   ##查看所有允許的服務  
firewall-cmd --get-services                    ##獲取所有支持的服務,在列表中的服務是放行的
firewall-cmd --query-service ftp               ##查看ftp服務是否支持,返回yes或者no
firewall-cmd --zone=public --list-ports        ##查看所有打開的端口

#區域相關
firewall-cmd --list-all-zones                    ##查看所有區域信息
firewall-cmd --get-zones                         ##列出支持的zone
firewall-cmd --get-active-zones                  ##查看活動區域信息
firewall-cmd --get-zone-of-interface=eth0        ##查看指定接口所屬區域
firewall-cmd --set-default-zone=public           ##設置public爲默認區域  
firewall-cmd --get-default-zone                  ##查看默認區域信息  
firewall-cmd --zone=public --add-interface=eth0  ##將接口eth0加入區域public


#開飯服務或端口
firewall-cmd --add-service=ftp                 ##臨時開放ftp服務
firewall-cmd --add-service=ftp --permanent     ##永久開放ftp服務
firewall-cmd --remove-service=ftp --permanent  ##永久移除ftp服務
firewall-cmd --add-port=80/tcp --permanent     ##永久添加80端口

iptables -L -n                                 ##查看規則,這個命令是和iptables的相同的
firewall-cmd --help                            ##查看幫助
man firewall-cmd                               ##查看幫助

firewall-cmd --panic-on                        ##拒絕所有包
firewall-cmd --panic-off                       ##取消拒絕狀態
firewall-cmd --query-panic                     ##查看是否拒絕


#接口相關
firewall-cmd --zone=public --remove-interface=eth0       #從區域public中刪除接口eth0  
firewall-cmd --zone=default --change-interface=eth0      #修改接口eth0所屬區域爲default  
firewall-cmd --get-zone-of-interface=eth0                #查看接口eth0所屬區域  

#端口控制
firewall-cmd --add-port=80/tcp --permanent               #永久添加80端口例外(全局)
firewall-cmd --remove-port=80/tcp --permanent            #永久刪除80端口例外(全局)
firewall-cmd --add-port=65001-65010/tcp --permanent      #永久增加65001-65010例外(全局)  
firewall-cmd  --zone=public --add-port=80/tcp --permanent            #永久添加80端口例外(區域public)
firewall-cmd  --zone=public --remove-port=80/tcp --permanent         #永久刪除80端口例外(區域public)
firewall-cmd  --zone=public --add-port=65001-65010/tcp --permanent   #永久增加65001-65010例外(區域public) 
firewall-cmd --query-port=8080/tcp    # 查詢端口是否開放
firewall-cmd --permanent --add-port=80/tcp    # 開放80端口
firewall-cmd --permanent --remove-port=8080/tcp    # 移除端口
firewall-cmd --reload    #重啓防火牆(修改配置後要重啓防火牆)


-------------------------------------示例--------------------------------------------
# 添加服務端口
firewall-cmd --zone=public(作用域) --add-port=80/tcp(端口和訪問類型) --permanent(永久生效)
firewall-cmd --zone=public(作用域) --add-service=http(服務) --permanent(永久生效)
firewall-cmd --reload    # 重新載入,更新防火牆規則
firewall-cmd --zone= public --query-port=80/tcp  #查看
# 刪除
firewall-cmd --zone= public --remove-port=80/tcp --permanent  # 刪除

# 控制IP段訪問
# firewall-cmd --list-all  查看 默認是允許所有的訪問
# firewall-cmd --permanent --remove-service=ssh     禁掉
# firewall-cmd --permanent --add-rich-rule 'rule service name=ssh family=ipv4 source address=192.168.1.0/24 accept'    允許訪問
# firewall-cmd --permanent --add-rich-rule 'rule service name=ssh family=ipv4 source address=192.168.2.0/24 reject'     拒絕訪問
# firewall-cmd --reload  重啓一下
# firewall-cmd --list-all 在看一下變化。
# firewall-cmd --permanent --remove-rich-rule 'rule service name=ssh family=ipv4 source address=192.168.1.0/24 accept'  刪除策略

## 檢查設置是否生效
iptables -L -n | grep 21
 
## 設置黑/白名單
firewall-cmd --permanent --zone=trusted --add-source=ip  執行結果success
## 重新加載配置
firewall-cmd --reload  # 執行結果success
## 列出白名單
firewall-cmd --permanent --zone=trusted --list-sources  執行結果所有的ip
## 刪除所有
firewall-cmd --zone=drop --list-all  需要重新加載配置
## 刪除指定
firewall-cmd --permanent --zone=drop --remove-source=ip 需要重新加載配置

參數解釋 :

–add-service #添加的服務
–zone #作用域
–add-port=80/tcp #添加端口,格式爲:端口/通訊協議
–permanent #永久生效,沒有此參數重啓後失效 

 

3.開啓端口

# 開啓端口
firewall-cmd --zone=public --add-port=80/tcp --permanent

# 命令含義:
--zone #作用域
--add-port=80/tcp #添加端口,格式爲:端口/通訊協議
--permanent #永久生效,沒有此參數重啓後失效

 

二、iptables 使用(Redhat7 以下版本)

yum install iptables-services           #安裝iptables  
systemctl stop firewalld.service        #停止firewalld  
systemctl mask firewalld.service        #禁止自動和手動啓動firewalld  
systemctl start iptables.service        #啓動iptables
systemctl start ip6tables.service       #啓動ip6tables  
systemctl enable iptables.service       #設置iptables自啓動  
systemctl enable ip6tables.service      #設置ip6tables自啓動
  • iptables 語法:
iptables -t 表名 <-A/I/D/R> 規則鏈名 [規則號] <-i/o 網卡名> -p 協議名 <-s 源IP/源子網> –sport 源端口 <-d 目標IP/目標子網> –dport 目標端口 -j 動作
-t<表>:指定要操縱的表;
-A:向規則鏈中添加條目;
-D:從規則鏈中刪除條目;
-i:向規則鏈中插入條目;
-R:替換規則鏈中的條目;
-L:顯示規則鏈中已有的條目;
-F:清楚規則鏈中已有的條目;
-Z:清空規則鏈中的數據包計算器和字節計數器;
-N:創建新的用戶自定義規則鏈;
-P:定義規則鏈中的默認目標;
-h:顯示幫助信息;
-p:指定要匹配的數據包協議類型;
-m:加載其他模塊功能;
-s:指定要匹配的數據包源ip地址;
-j<目標>:指定要跳轉的目標;
-i<網絡接口>:指定數據包進入本機的網絡接口;
-o<網絡接口>:指定數據包要離開本機所使用的網絡接口。
1.開放80,22,8080 端口
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 22 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
2.保存
/etc/rc.d/init.d/iptables save
3.查看打開的端口
/etc/init.d/iptables status
4.關閉防火牆 
1) 永久性生效,重啓後不會復原
開啓: chkconfig iptables on
關閉: chkconfig iptables off
2) 即時生效,重啓後復原
開啓: service iptables start
關閉: service iptables stop

————————————————
版權聲明:本文參考爲CSDN博主「朽木o0」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/s_p_j/article/details/80979450

發佈了19 篇原創文章 · 獲贊 17 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章