iptables&firewalld

一、firewalld


(1).firewalld的安裝
- yum install firewall -y
- systemctl start firewalld
- systemctl enable firewalld
(2)firewalld服務的管理
Firewalld服務是紅帽RHEL7系統中默認的防火牆管理工具,可以使用圖形化工具firewall-config或文本管理工具firewall-cmd.
網絡區域及其功能
這裏寫圖片描述
網絡區域管理文件在/etc/firewalld/zones下
圖形管理工具firewall-config
在使用firewall-config前搜並安裝該功能所必備的軟件
這裏寫圖片描述
1.yum install firewall-config.noarch -y
2.firewall-config
這裏寫圖片描述
文本管理工具firewall-cmd
這裏寫圖片描述
命令行管理防火強更加高效且可靠
注意:firewalld服務有兩份規則策略配置記錄,RunTime:當前正在生效的,Permanent:永久生效的。實驗修改的是永久生效的策略記錄時,必須執行“–reload”參數後才能立即生效,否則要重啓後再生效。
實驗1:永久移除默認網絡區的ssh服務
這裏寫圖片描述
這裏寫圖片描述
實驗2:允許8080端口流量通過public區域,立即生效且永久生效
[root@router etc]# firewall-cmd –permanent –zone=public –add-port=8080/tcp
[root@router etc]# firewall-cmd –reload success
實驗3:查看實驗2中要求加入的端口操作是否成功:
[root@router etc]# firewall-cmd –zone=public –list-ports
8080/tcp
[root@router etc]# firewall-cmd –permanent –zone=public –list-ports
8080/tcp
實驗4:拒絕172.25.254.112的用戶訪問ssh服務
[root@router etc]# firewall-cmd –permanent –zone=public –add-rich-rule=”rule family=”ipv4” source address=”172.25.254.112” service name=”ssh” reject”
success
[root@router etc]# firewall-cmd –reload
success
[root@router zones]# firewall-cmd –direct –add-rule ipv4 filter INPUT 1 -s 172.25.254.112 -d 22 -j REJECT
實驗5:端口轉發功能可以將原本到某端口的數據包轉發到其他端口
例:將訪問該主機22端口的請求轉發至ip爲172.25.254.112主機的22端口
[root@router zones]# firewall-cmd –add-forward-port=port=22:proto=tcp:toport=22:toaddr=172.25.254.112
success
[root@router zones]# firewall-cmd –add-masquerade
success
[root@router zones]# vim /etc/sysctl.conf 編輯該配置文件,打開轉發功能
這裏寫圖片描述
masquerade,其作用就是ip地址僞裝,也就是NAT轉發中的一種,具體處理方式是將接收到的請求的源地址設置爲轉發請 求網卡的地址,所以在路由器中將請求實際發送到互聯網的時候就會將請求的源地址設置爲路由器的外網地 址,這樣請求就能正確地返回給路由器了,然後路由器再根據記錄返回給我們發送請求的主機了,這就是masquerade。

一、iptables


(1)firewalld和iptables的關係
firewalld自身並不具備防火牆的功能,而是和iptables一樣需要通過內核的netfilter來實現,也就是說firewalld和 iptables一樣,他們的作用都是用於維護規則,而真正使用規則幹活的是內核的netfilter,只不過firewalld和iptables的結 構以及使用方法不一樣罷了。
(2)iptables基本概念
三張表:
filter: 主要和主機自身有關,主要負責防火牆功能 過濾本機流入流出的數據包是默認使用的表
mangle:數據包修改(QOS),用於實現服務質量
nat:負責網絡地址轉換,即來源於目的IP地址和端口的轉換,一般用於共享上網或特殊端口的轉換服務
1.snat :地址轉換
2.dnat :標地址轉換
3.pnat :標端口轉換
5個檢查點(內置鏈)
·PREROUTING:用於目標地址轉換(DNAT)。
·INPUT:處理輸入數據包
·FORWARD:處理轉發數據包。
·OUTPUT:處理輸出數據包。
·POSTROUTING:用於源地址轉換(SNAT)。
因此在編寫規則的時候應該先指定表,再指定鏈。
(3)安裝和配置
爲了避免firewalld的作用,影響實驗,先關閉firewalld
systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl mask firewalld.service
安裝啓動
yum install iptables-services.x86_64 -y
systemctl start iptables
systemctl enable iptables
(4)iptables常用參數說明
這裏寫圖片描述
這裏寫圖片描述
動作包括:
ACCEPT:接收數據包。
DROP:丟棄數據包。
REDIRECT:重定向、映射、透明代理。
DNAT:目標地址轉換。
LOG:日誌記錄。
故iptables命令選項輸入順序:
iptables -t 表名 <-A/I/D/R> 規則鏈名 [規則號] <-i/o 網卡名> -p 協議名 <-s 源IP/源子網> –sport 源端口 <-d 目標IP/目標子網> –dport 目標端口 -j 動作
例如:iptables -A INPUT -p tcp –dport 21 -j DROP(禁止訪問本機的ftp)
iptables -t nat -D INPUT 1(刪除nat表INPUT鏈的第一條策略)
service iptables save(保存策略)
ip tables -A INPUT -p tcp -s 172.25.254.112 –dport 22 -j ACCEPT(允許172.25.254.112的主機通過tcp協議,通過該主機的22端口)
總之:這些參數可以自由組合,直至達到目的
(5)SNAT和DNAT
在實驗之前,先配置三臺虛擬機,client1的ip爲172.25.12.112,router有兩個網卡,eth0的ip爲172.25.254.212,eth1的ip爲172.25.12.212。client2的ip爲172.25.254.112
實驗1.內網訪問外網
POSTROUTING:可以在這裏定義進行源NAT的規則,系統在決定了數據包的路
由以後在執行該鏈中的規則。
SNAT就是改變轉發數據包的源地址 –to-source
router:
這裏寫圖片描述
[root@router ~]# iptables -t nat -A POSTROUTING -o eth0 -j SNAT –to-source 172.25.254.212
[root@router ~]# vim /etc/sysctl.conf
這裏寫圖片描述
[root@router ~]# sysctl -p forward功能生效
net.ipv4.ip_forward = 1
實驗2:外網訪問內網
PREROUTING:(外部訪問內部)可以在這裏定義進行 目的NAT的規則,因爲路由
器進行路由時只檢查數據包的目的ip地址,所以爲了使數據包得以正確路由,我們必
須 在路由之前就進行目的NAT;
DNAT就是改變轉發數據包的目的地址 –to-dest:
[root@router ~]# iptables -t nat -A PREROUTING -i eth0 -d 172.25.254.212 -j DNAT –to-dest 172.25.12.112
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章