當(dāng)前位置 主頁(yè) > 技術(shù)大全 >
Linux 系統(tǒng)以其開源、穩(wěn)定、高效的特點(diǎn),在服務(wù)器領(lǐng)域占據(jù)了舉足輕重的地位
然而,即便是這樣強(qiáng)大的操作系統(tǒng),如果沒有合適的防火墻保護(hù),也會(huì)變得脆弱不堪
本文將詳細(xì)介紹 Linux 防火墻的常用命令,幫助讀者構(gòu)建一道堅(jiān)不可摧的安全防線
一、Linux 防火墻概述 Linux 防火墻主要依賴于 `iptables`和 `firewalld`兩大工具
`iptables` 是 Linux 內(nèi)核自帶的防火墻工具,功能強(qiáng)大但配置復(fù)雜;`firewalld` 則是一個(gè)動(dòng)態(tài)管理防火墻的區(qū)域和服務(wù)的守護(hù)進(jìn)程,提供了更為直觀和友好的配置界面
1.1 iptables `iptables` 是 Linux 下用于設(shè)置、維護(hù)和檢查 IPv4 數(shù)據(jù)包過(guò)濾規(guī)則的工具
通過(guò)定義規(guī)則,`iptables` 可以允許或拒絕進(jìn)出系統(tǒng)的網(wǎng)絡(luò)流量,從而保護(hù)系統(tǒng)免受攻擊
1.2 firewalld `firewalld` 提供了動(dòng)態(tài)防火墻管理功能,支持區(qū)域(zones)和服務(wù)(services)的概念
區(qū)域定義了網(wǎng)絡(luò)連接的信任級(jí)別,而服務(wù)則是一組預(yù)定義的端口和協(xié)議
`firewalld` 使得防火墻配置更加直觀和易于管理
二、iptables 基本命令 2.1 查看當(dāng)前規(guī)則 sudo iptables -L -v -n - `-L`:列出規(guī)則
- `-v`:顯示詳細(xì)信息(如數(shù)據(jù)包計(jì)數(shù)和字節(jié)計(jì)數(shù))
- `-n`:以數(shù)字形式顯示地址和端口
2.2 添加規(guī)則 sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT - `-A INPUT`:將規(guī)則添加到 INPUT 鏈
- `-p tcp`:指定協(xié)議為 TCP
- `--dport 22`:指定目標(biāo)端口為 22(SSH)
- `-j ACCEPT`:指定動(dòng)作為接受
2.3 刪除規(guī)則 sudo iptables -D INPUT -p tcp --dport 22 -j ACCEPT - `-D INPUT`:從 INPUT 鏈中刪除規(guī)則
2.4 保存規(guī)則 由于 `iptables` 規(guī)則在系統(tǒng)重啟后會(huì)丟失,因此需要將其保存到配置文件中
對(duì)于基于 Debian 的系統(tǒng)(如 Ubuntu): sudo apt-get install iptables-persistent sudo netfilter-persistent save 對(duì)于基于 Red Hat 的系統(tǒng)(如 CentOS): sudo service iptables save 2.5 阻止特定 IP 地址 sudo iptables -I INPUT -s 192.168.1.100 -j DROP - `-I INPUT`:將規(guī)則插入到 INPUT 鏈的開頭
- `-s 192.168.1.100`:指定源 IP 地址
- `-j DROP`:指定動(dòng)作為丟棄
三、firewalld 基本命令 3.1 啟動(dòng)和停止 firewalld sudo systemctl start firewalld sudo systemctl stop firewalld 3.2 啟用和禁用 firewalld 開機(jī)自啟 sudo systemctl enable firewalld sudo systemctl disable firewalld 3.3 查看當(dāng)前區(qū)域和規(guī)則 sudo firewall-cmd --get-active-zones sudo firewall-cmd --list-all 3.4 添加服務(wù)到區(qū)域 sudo firewall-cmd --zone=public --add-service=http --permanent sudo firewall-cmd --reload - `--zone=public`:指定區(qū)域?yàn)?public
- `--add-service=http`:添加 HTTP 服務(wù)
- `--permanent`:永久生效
- `--reload`:重新加載防火墻配置
3.5 開放特定端口 sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent sudo firewall-cmd --reload - `--add-port=8080/tcp`:開放 TCP 8080 端口
3.6 允許特定 IP 地址訪問(wèn) sudo firewall-cmd --zone=public --add-rich-rule=rule family=ipv4 source address=192.168.1.100 accept --permanent sudo firewall-cmd --reload - `--add-rich-rule`:添加富規(guī)則
- `family=ipv4`:指定 IP 版本為 IPv4
- `source address=192.168.1.100`:指定源 IP 地址
四、高級(jí)配置與優(yōu)化 4.1 日志記錄 為了更好地監(jiān)控和分析網(wǎng)絡(luò)流量,可以啟用 `iptables` 的日志記錄功能
sudo iptables -A INPUT