Linux 防火牆配置使用

HuDu發表於2021-03-08

本文主要介紹三種在 Linux 系統中常用的防火牆,可以通過whereis xxx命令來檢視是否系統已經安裝有

Linux 防火牆配置使用

1. ufw 命令示例

# 檢視ufw狀態和已設定防火牆的所有規則
ufw status

# 啟動 ufw 防火牆
ufw enable

# 關閉防火牆
ufw disable

# 啟動預設防禦(阻止外部連線,放行對外連線)
ufw default deny

# 允許其它主機訪問本機 53 埠,協議包含 tcp 和 udp
ufw allow 53

# 允許其它主機使用 tcp 協議訪問本機 25 埠
ufw allow 25/tcp

# ufw 也可以檢查 /etc/services 檔案,明白伺服器的名字及對應的埠和協議
ufw allow smtp

#UFW同時支援出入口過濾。使用者可以使用in或out來指定向內還是向外。如果未指定,預設是inufw allow in http 許可訪問本機http埠

# 禁止訪問外部 smtp 埠,不告知"被防火牆阻止"
ufw reject out smtp

# 禁止本機 192.168.1.1 對外訪問,告知"被防火牆阻止"
uwf deny out to 192.168.1.1

# 要刪除規則,只要在命令中加入 delete 就行
uwf delete deny 80/tcp

# 系統日誌儲存於/var/log/ufw.log,LEVEL指定不同的級別 ,預設級別是'低'
ufw logging on|off  LEVEL

# 允許來自192.168.0.0-192.168.255.255的資料通過eth0網路卡進入主機
ufw allow out on eth1 to 10.0.0.0/8

# 拒絕來自10.0.0.0/8域tcp協議指向192.168.0.125的資料進入本機
ufw deny proto tcp from 10.0.0.0/8 to 192.168.0.1 port 25

# 允許經eth1進入,eth2發出的資料經本機路由
ufw route allow in on eth1 out on eth2

例項

允許訪問 SSH

sudo ufw allow 22/tcp

設定允許訪問 HTTP

sudo ufw allow 80/tcp

設定允許訪問 HTTPS

sudo ufw allow 443/tcp

防火牆服務簡述與安裝

Centos7 預設的防火牆是 firewall,替代了以前的 iptables

firewalld 服務引入了一個信任級別的概念來管理與之相關聯的連線與介面。它支援 ipv4 與 ipv6,並支援網橋,採用 firewall-cmd (command) 或 firewall-config (gui) 來動態的管理 kernel netfilter 的臨時或永久的介面規則,並實時生效而無需重啟服務。

# firewall 安裝
yum install firewalld

# 檢視 firewall 版本
firewall-cmd --version

firewalld 服務基本使用

目的 命令
檢視防火牆狀態 systemctl status firewalld
關閉防火牆,停止 firewall 服務 systemctl stop firewalld
開啟防火牆,啟動 firewall 服務 systemctl start firewalld
重啟防火牆,重啟 firewall 服務 systemctl restart firewalld
檢視 firewall 服務是否開機自啟 systemctl is-enabled firewalld
開機時自動啟動 firewall 服務 systemctl enable firewalld.service
開機時自動禁用 firewall 服務 systemctl disable firewalld.service

firewalld-cmd 防火牆命令使用

1.檢視 firewall-cmd 狀態

# 檢視 firewall-cmd 狀態
firewall-cmd --state

# 檢視已開啟的所有埠
firewall-cmd --zone=public --list-ports

# 開啟指定埠(--permanent 永久生效,沒有此引數重啟後失效)
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload

# 關閉指定埠
firewall-cmd --zone=public --remove-port=9898/tcp --permanent
firewall-cmd --reload

通過修改 public.xml 檔案修改防火牆埠

vim /usr/lib/firewalld/zones/public.xml

Linux 防火牆配置使用

檢視防火牆配置資訊

iptables -L

Linux 防火牆配置使用

新增配置 iptables.rules

Ubuntu預設沒有 iptables 配置檔案,需通過`iptables-save > /etc/network/iptables.up.rules` 生成

iptables配置檔案路徑及檔名建議為 /etc/network/iptables.up.rules ,因為執行 iptables-apply 預設指向該檔案,也可以通過-w引數指定檔案

Ubuntu 沒有重啟 iptables 的命令,執行`iptables-apply`生效

Ubuntu iptables 預設重啟伺服器後清空,需在 /etc/network/interfaces 裡寫入 `pre-up iptables-restore < /etc/network/iptables.up.rules` 才會開機生效

常用 iptables 命令

# 允許所有訪問22埠
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# 拒絕所有訪問22埠
iptables -A INPUT -p tcp --dport 22 -j DROP

# 只允許10.0.0.2訪問22埠
iptables -A INPUT -p tcp --dport 22 -s 10.0.0.2 -j ACCEPT

允許策略一定要寫到拒絕的上面,否則沒用

# 檢視iptables策略
iptables -L

# 儲存策略到指定檔案(後面檔案路徑及檔名可自定義)
iptables-save > /etc/network/iptables.up.rules

# 應用策略
iptables-apply

# 刪除策略
需先 `cat /etc/network/iptables.up.rules` 確認刪除第幾行,或者直接操作 `/etc/network/iptables.up.rules` 檔案也行
iptables -D INPUT 2
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章