1. 程式人生 > >Linux:iptables的基本命令以及地址偽裝

Linux:iptables的基本命令以及地址偽裝

IPTABLES

IPTABLES 是與最新的 3.5 版本 Linux 核心整合的 IP 資訊包過濾系統。如果 Linux 系統連線到因特網或 LAN、伺服器或連線 LAN 和因特網的代理伺服器, 則該系統有利於在 Linux 系統上更好地控制 IP 資訊包過濾和防火牆配置。
防火牆在做資訊包過濾決定時,有一套遵循和組成的規則,這些規則儲存在專用的信 息包過濾表中,而這些表整合在 Linux 核心中。在資訊包過濾表中,規則被分組放在我們所謂的鏈(chain)中。而netfilter/iptables IP 資訊包過濾系統是一款功能強大的工具,可用於新增、編輯和移除規則。
Iptables 是用來設定、維護和檢查Linux核心的IP包過濾規則的

一·iptables的開啟服務

[root@localhost ~]# systemctl stop firewalld   ##關閉火牆
[root@localhost ~]# systemctl disable firewalld    ##開機自動關閉
[root@localhost ~]# systemctl start iptables.service    ##開啟iptables服務
[root@localhost ~]# systemctl enable iptables.service     ##開機自動開啟

這裡寫圖片描述

二·iptables的基本命令

[root@localhost
~]# iptables -nL ##列出所有策略 [root@localhost ~]# iptables -F ##清空所有策略 [root@localhost ~]# iptables -nL ##再次列出 [root@localhost ~]# service iptables save ##儲存規則資訊 iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ] ##儲存在/etc/sysconfig/iptables 檔案中 [root@localhost ~]# cat /etc/sysconfig/iptables ##檢視iptables配置檔案

這裡寫圖片描述
這裡寫圖片描述

[root@localhost ~]# iptables -t mangle -nL    ##檢視mangle表策略
[root@localhost ~]# iptables -t nat -nL       ##檢視nat表策略

這裡寫圖片描述

[root@localhost ~]# systemctl start httpd    ##開啟服務
[root@localhost ~]# iptables -P INPUT ACCEPT    ##允許訪問
[root@localhost ~]# iptables -nL   ##列出

這裡寫圖片描述
真機測試:
這裡寫圖片描述
server測試:
這裡寫圖片描述

[root@localhost ~]# iptables -A INPUT -s 172.25.254.71 -p tcp --dport 80 -j ACCEPT      ##允許真機ip訪問,埠為80的http
[root@localhost ~]# iptables -nL
ACCEPT     tcp  --  172.25.254.71        0.0.0.0/0            tcp dpt:80
[root@localhost ~]# iptables -A INPUT -p tcp --dport 80 -j REJECT    ##拒絕埠為80的http
[root@localhost ~]# iptables -nL
REJECT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80 reject-with icmp-port-unreachable

這裡寫圖片描述
這裡寫圖片描述
真機測試:
這裡寫圖片描述
server測試:
這裡寫圖片描述

三·iptables的常規配置

對第一次訪問的請求讀取允許連線的策略,當第二次訪問或者之後訪問的直接接受請求,不讀取允許連線的策略,以便節省時間
[root@localhost ~]# iptables -A INPUT -p tcp --dport 22 -j ACCEPT    ##新增ssh的埠為接受
[root@localhost ~]# iptables -A INPUT -p tcp --dport 80 -j ACCEPT    ##新增http的埠為接受
[root@localhost ~]# iptables -A INPUT -p tcp --dport 53 -j ACCEPT    ##新增dns的埠為接受
[root@localhost ~]# iptables -A INPUT -p tcp --dport 3260 -j ACCEPT  ##新增iscsi的埠為接受
[root@localhost ~]# iptables -A INPUT -i lo -j ACCEPT    ##本機迴環
[root@localhost ~]# iptables -nL       ##檢視策略
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:53
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:3260
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0                    
[root@localhost ~]# service iptables save   ##儲存
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]
[root@localhost ~]# cat /etc/sysconfig/iptables    ##檢視
[root@localhost ~]# iptables -F     ##清空策略
[root@localhost ~]# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT      ##將已經建立的和正在進行的設定允許訪問
[root@localhost ~]# iptables -nL      ##檢視策略 
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED

這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述

四·iptables的地址偽裝

在desktop中:
[root@localhost ~]# ifconfig  
eth0: inet 172.25.254.119
[root@localhost ~]# iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 172.25.254.119     ##在nat表中新增若ip為172.25.0.19的主機連線172.25.254.71的主機時,通過本臺主機的eth0網絡卡路由轉換偽裝為172.25.254.119這個ip去連線的策略
在server中:
[root@localhost ~]# ping 172.25.254.71     ##ping通真機
[root@localhost ~]# ssh [email protected]
[root@foundation71 ~]# w -i
172.25.254.119    ##偽裝成功

這裡寫圖片描述
這裡寫圖片描述

在desktop中:
[root@localhost ~]# iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 172.25.0.19
在server中:
[root@localhost ~]# ssh [email protected]
[root@localhost ~]# w -i
172.25.0.19

這裡寫圖片描述

相關推薦

no