首頁 > 軟體

linux iptables防火牆中的工作常用命令

2022-10-22 14:00:53

linux iptables防火牆-工作常用命令

Linux之iptables防火牆基礎

[推薦]Linux之iptables防火牆
參考URL:https://www.jb51.net/article/165883.htm

linux系統的防火牆:IP資訊包過濾u系統,它實際上由兩個元件netfilter和iptables組成。
主要工作在網路層,針對IP封包,體現在對包內的IP地址、埠、協定等資訊的處理上。

封包到達防火牆時,規則表之間的優先順序: 首先過濾raw表裡面的規則其次依次過濾> mangle > nat > filter如果所有表都沒有匹配到則表示放空

  • 入站資料(來自外界的封包,且目標地址是防火牆本機) : PREROUTING --> INPUT --> 本機的應用程式
  • 出站資料(從防火牆本機向外部地址傳送的封包) :本機的應用程式–> OUTPUT --> POSTROUTING 網路型防火牆
  • 轉發資料(需要經過防火牆轉發的封包) : PREROUTING --> FORWARD --> POSTROUTING

iptables命令列設定方法

iptables [-t 表明] 管理選項 [鏈名] [匹配條件] [-j 控制型別]

檢視iptables防火牆規則

iptables -nvL --line-number

-L 檢視當前表的所有規則,預設檢視的是filter表,如果要檢視NAT表,可以加上-t NAT引數
-n 不對ip地址進行反查,加上這個引數顯示速度會快很多
-v 輸出詳細資訊,包含通過該規則的封包數量,總位元組數及相應的網路介面
–-line-number 顯示規則的序列號,這個引數在刪除或修改規則時會用到

關閉某個埠(注意同時新增ip或介面的限制)iptables 設定只能本地ip存取某埠

iptables -I INPUT -p tcp --dport 9527 -j DROP
ip6tables -I INPUT -p tcp --dport 9527 -j DROP

注意:工作中切記不要直接使用上面命令,除非在這個命令之前還有一條放過lo介面的防火牆規則。
一般情況,我們目的都是某個埠不讓外網存取,這樣操作,就127.0.0.1存取這個埠也被限制了。

一定要記得,新增ip或介面的條件~
例如:

iptables -I INPUT ! -i lo  -p tcp --dport 9527 -j DROP
ip6tables -I INPUT ! -i lo  -p tcp --dport 9527 -j DROP

iptables -I INPUT ! -d 127.0.0.1 -p tcp --dport 9527 -j DROP

iptables 是控制ipv4的,ip6tables 是控制ipv6的

注意 感嘆號的位置,親測可用.~

防火牆規則放開自己的ip,讓自己的ip可以存取

iptables -I INPUT -p tcp -s 192.168.11.1 -j ACCEPT

開放某個tcp、某個udp。

iptables -I INPUT -p tcp --dport 9527 -j ACCEPT
iptables -I INPUT -p tcp --dport 9527 -j ACCEPT

iptables永久生效

第一種方法

執行命令service iptables save

第二種方法
執行命令iptables-save > xxx寫入到一個檔案,開機以後執行命令iptables-restore < xxx用來恢復。

報錯:The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, force-reload, status). For other actions, please try to use systemctl.

問題描述:
執行命令service iptables save 報錯The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, force-reload, status). For other actions, please try to use systemctl.

問題分析:
The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, force-reload, status). For other actions, please try to use systemctl.
服務命令只支援基本的LSB操作(啟動、停止、重啟、嘗試重啟、過載、強制過載、狀態)。對於其他操作,請嘗試使用systemctl。

centos新版本,firewalld 被引入代替 iptables 了,所以再使用 service iptables save 儲存 iptables 規則時,就會出現上述的報錯。
service命令只保留下了極少部分使用,大部分命令都要改用systemctl使用。

這是因為沒有安裝iptables服務,直接使用yum安裝iptables服務即可.

解決方法:

1.systemctl stop firewalld --關閉防火牆
2.yum install iptables-services --安裝或更新服務

yum install iptables-services

3.systemctl enable iptables --允許開機啟動iptables
4.systemctl start iptables --啟動iptables
5.service iptables save --儲存設定
6.service iptables restart --重啟iptables服務:

到此這篇關於linux iptables防火牆-工作常用命令的文章就介紹到這了,更多相關linux iptables命令內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com