網(wǎng)站首頁 編程語言 正文
實驗環(huán)境:兩臺虛擬機,一臺雙網(wǎng)卡主機可以上外網(wǎng),可以連接內(nèi)網(wǎng),一臺單網(wǎng)卡主機可以連接內(nèi)網(wǎng)
1.火墻介紹
linux防火墻簡單來說是內(nèi)核上數(shù)據(jù)包過濾的插件,主要工作在網(wǎng)絡層,屬于典型的包過濾防火墻。常用的有兩種火墻工具iptables和firewalld,但軟件本身其實并不具備防火墻功能,他們的作用都是在用戶空間中管理和維護規(guī)則,真正利用規(guī)則進行過濾是由內(nèi)核netfilter完成的。netfilter IP 信息包過濾系統(tǒng)是一種功能強大的工具,可用于添加、編輯和除去規(guī)則,這些規(guī)則是在做信息包過濾決定時,防火墻所遵循和組成的規(guī)則。
1.netfilter
2.iptables
3.iptables|firewalld
2.火墻管理工具切換
在rhel8中默認使用的是firewalld
從firewalld切換到iptables的過程,先搭建好軟件倉庫,安裝iptables
dnf install iptables-services -y
systemctl stop firewalld
systemctl disable firewalld
systemctl mask firewalld
systemctl enable --now iptables
從iptales切換到fiewalld的過程
dnf install firewalld -y
systemctl stop iptables
systemctl disable iptables
systemctl mask iptables
systemctl enable --now firewalld
3. iptables 的使用
火墻策略的永久保存
/etc/sysconfig/iptables ???????是iptables 策略記錄文件
永久保存策略
iptales-save > /etc/sysconfig/iptables
service iptables save(建議使用)
?
4.火墻默認策略
默認策略中的5條鏈
input |
輸入 |
output |
輸出 |
forward |
轉發(fā) |
postrouting |
路由之后 |
prerouting |
路由之前 |
默認的3張表
Filter |
經(jīng)過本機內(nèi)核的數(shù)據(jù)(input output forward) |
nat |
不經(jīng)過內(nèi)核的數(shù)據(jù)(postrouting,prerouting,input,output) |
mangle |
當filter和nat表不夠用時使用(input output forward postrouting,prerouting,) |
iptables命令
iptables -t nat -nL (-t指定表名)
iptables -t mangel –nL
? ? ? ? ? -n ??不做解析
? ? ? ? ? -L ???查看
? ?-A? ? ? ? ? ? 添加策略
? ?-p? ? ? ? ? ? 協(xié)議
? ?--dport???? 目的地端口
? ?-s? ? ? ? ? ? ?來源
? ?-j? ? ? ? ? ? ? 動作
? ? ? ? ? ?ACCEPT? ? ?允許
? ? ? ? ? ?DROP? ? ? ? 丟棄
? ? ? ? ? ?REJECT? ? ?拒絕
? ? ? ? ? ?SNAT? ? ? ? ?源地址轉換
? ? ? ? ? ?DNAT? ? ? ? ?目的地地址轉換
-N? ? 新建鏈
-E? ? 更改鏈名稱
-X? ? 刪除鏈
-D? ? 刪除規(guī)則
-I? ? ?插入規(guī)則
-R? ? 更改規(guī)則
-P? ? 更改默認規(guī)則
數(shù)據(jù)包狀態(tài)
RELATED? ? ? ? ? ?建立過連接的
ESTABLISHED ??正在連接的
NEW?????????? 新的
iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
任何訪問本機80 端口的數(shù)據(jù)都讓他通過
iptables -I INPUT 1 -s 192.168.155.178 -p tcp --dport 80 -j REJECT
不允許192.1268.155.178訪問本機80端口
?
測試:用192.168.155.178主機?
?
iptables -R INPUT 1 -s 192.168.155.178 -p tcp --dport 80 -j ACCEPT
更改第一條使其允許192.168.155.178訪問本機80端口
?
策略優(yōu)化
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -m state --state NEW -i lo -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT
ptables -A INPUT -m state --state NEW -j REJECT
?
原地址轉換
在雙網(wǎng)卡主機中設置
snat
iptable -t nat -A POSTROUTING -o ens192 -j SNAT --to-source 192.168.43.201?
在單網(wǎng)卡主機中連接雙網(wǎng)卡主機?
在雙卡主機中顯示是雙網(wǎng)卡主機的另一個ip?
?目的地地址轉換
dnat
iptables -t nat -A PREROUTING -i ens192 -j DNAT --to-dest 192.168.155.178
firewalld
1 firewalld的開啟
systemctl stop iptables
systemctl disable iptables
systemctl mask iptables
systemctl unmask firewalld
systemctl enable --now firewalld
2.關于firewalld的域
trusted? ? ? ? ? ?接受所有的網(wǎng)絡連接
home? ? ? ? ? ? ?用于家庭網(wǎng)絡,允許接受ssh mdns ipp-client samba-client dhcp-client
work? ? ? ? ? ? ? 工作網(wǎng)絡 ssh ipp-client dhcp-client
public? ? ? ? ? ? 公共網(wǎng)絡 ssh dhcp-client
dmz? ? ? ? ? ? ? 軍級網(wǎng)絡 ssh block ##拒絕所有
drop? ? ? ? ? ? ?丟棄 所有數(shù)據(jù)全部丟棄無任何回復
internal? ? ? ? 內(nèi)部網(wǎng)絡 ssh mdns ipp-client samba-client dhcp-client
external ??????ipv4網(wǎng)絡地址偽裝轉發(fā) sshd
3.關于firewalld的設定原理及數(shù)據(jù)存儲
/etc/firewalld ??????????火墻配置目錄
/lib/firewalld ???????????火墻模塊目
4. firewalld的管理命令
firewall-cmd --state? ? ? ? ? ? ? ? ? ? ? ? ?查看火墻狀態(tài)
firewall-cmd --get-active-zones ?????查看當前火墻中生效的域
firewall-cmd --get-default-zone? ? ? ?查看默認域
firewall-cmd --list-all? ? ? ? ? ? ? ? ? ? ? ? 查看默認域中的火墻策略
?
firewall-cmd --set-default-zone=trusted ????設定默認域
firewall-cmd --list-all --zone=work? ? ? ? ? ? ? 查看指定域的火墻策略
?
firewall-cmd --get-services ????????????查看所有可以設定的服務
firewall-cmd --permanent --remove-service=cockpit ?????移除服務
firewall-cmd --reload
firewall-cmd --permanent --add-source=172.25.254.0/24 --zone=block
指定數(shù)據(jù)來源訪問指定域
firewall-cmd --reload firewall-cmd --permanent --remove-source=192.168.155.178/24 --zone=block ????刪除自定域中的數(shù)據(jù)來源
?
?firewall-cmd --permanent --remove-interface=ens192 --zone=public
刪除指定域的網(wǎng)絡接口
firewall-cmd --permanent --add-interface=ens192 --zone=block ??添加指定域的網(wǎng)絡接口
firewall-cmd --permanent --change-interface=ens192 --zone=public
更改網(wǎng)絡接口到指定的域
5. firewalld的高級規(guī)則
服務器端
firewall-cmd --direct --get-all-rules ????????查看高級規(guī)則
firewall-cmd --direct --add-rule ipv4 filter INPUT 0 ! -s 172.25.254.250 -p tcp --dport 22 -j REJECT ?(拒絕192.168.155.178連接)
測試端
?
服務器端刪除后
?
測試端即可登錄
?
?6.firewalld中的NAT
SNAT
firewall-cmd --permanent --add-masquerade
firewall-cmd --reload
?DNAT
firewall-cmd --permanent --add-forward-port=port=22:proto=tcp:toaddr=192.168.155.178 firewall-cmd –reload
原文鏈接:https://blog.csdn.net/LRJ2034203479/article/details/125677702
- 上一篇:Shell中常用的基礎命令
- 下一篇:Linux虛擬機設置雙網(wǎng)卡
相關推薦
- 2023-03-17 C語言編程實例之輸出指定圖形問題_C 語言
- 2023-01-29 switch多選擇結構、循環(huán)結構示例詳解_Swift
- 2022-04-11 C語言數(shù)組和指針,內(nèi)存之間的關系_C 語言
- 2023-03-18 pandas數(shù)據(jù)聚合與分組運算的實現(xiàn)_python
- 2022-06-18 Elasticsearches之python使用及Django與Flask集成示例_python
- 2022-08-26 詳解Python中元組的三個不常用特性_python
- 2022-12-07 C++?Boost?Bimap示例詳細講解_C 語言
- 2022-03-31 用python實現(xiàn)彈球小游戲_python
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細win安裝深度學習環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結構-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支