1. 程式人生 > >2018-1-25 7周4次課 iptables

2018-1-25 7周4次課 iptables

image 文件 window rec oar 添加 cli 案例 分享圖片

10.15 iptables filter表小案例

技術分享圖片技術分享圖片


#! /bin/bash

ipt="/usr/sbin/iptables"

$ipt -F

(清控規則)

$ipt -P INPUT DROP

(INPUT策略DROP掉)

$ipt -P OUTPUT ACCEPT

(OUTPUT策略可接受)

$ipt -P FORWARD ACCEPT

(FORWARD策略可接受)

$ipt -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

(增加規則:-m state 指定狀態,--state 狀態為RELATED,ESTABLISHED,不加RELATED可能導致其他通信被禁,-j 操作為接受 )

$ipt -A INPUT -s 192.168.65.0/24 -p tcp --dport 22 -j ACCEPT

(增加規則:網段為192.168.65.0/24,端口為22的數據包放行)

$ipt -A INPUT -p tcp --dport 80 -j ACCEPT

(80端口數據包放行)

$ipt -A INPUT -p tcp --dport 21 -j ACCEPT

(21端口數據包放行)


·實際操作:

[root@localhost ~]# sh /usr/local/sbin/iptables.sh
[root@localhost ~]# iptables -nvL
Chain INPUT (policy DROP 0 packets, 0 bytes)
pkts bytes target     prot opt in     out     source               destination
28  1848 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
0     0 ACCEPT     tcp  --  *      *       192.168.65.0/24      0.0.0.0/0            tcp dpt:22
0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80
0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:21

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 15 packets, 1412 bytes)
pkts bytes target     prot opt in     out     source               destination
[root@localhost ~]# iptables -nvL
Chain INPUT (policy DROP 0 packets, 0 bytes)
pkts bytes target     prot opt in     out     source               destination
32  2112 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
0     0 ACCEPT     tcp  --  *      *       192.168.65.0/24      0.0.0.0/0            tcp dpt:22
0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80
0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:21
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target     prot opt in     out     source               destination
Chain OUTPUT (policy ACCEPT 18 packets, 2568 bytes)
pkts bytes target     prot opt in     out     source               destination
[root@localhost ~]# service iptables restart
Redirecting to /bin/systemctl restart iptables.service
[root@localhost ~]# iptables -nvL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target     prot opt in     out     source               destination
10   660 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0
0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:22
0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target     prot opt in     out     source               destination
0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT 6 packets, 792 bytes)
pkts bytes target     prot opt in     out     source               destination


·icmp示例:

禁掉icmp:

[root@localhost ~]# iptables -I INPUT -p icmp --icmp-type 8 -j DROP





10.16 iptables nat表應用(上)

技術分享圖片技術分享圖片


需求:

A:兩塊網卡,一塊可以上外網,一塊用內網

B:只有一塊內網網卡

讓B機器可以連外網


準備工作:

準備兩個虛擬機

給兩臺虛擬機做快照

給A機器添加網卡:

技術分享圖片技術分享圖片技術分享圖片技術分享圖片技術分享圖片

技術分享圖片

設置LAN區段,等效於設置連接的交換機(名稱可以任取)

技術分享圖片技術分享圖片

技術分享圖片

技術分享圖片


同樣方式給B機器添加網卡,並把B機器原先網卡給禁用

技術分享圖片技術分享圖片


LAN區段選擇和A機器一樣的,意味著,此時A機器的第二塊網卡和B機器的第二塊網卡已經連在同一個交換機上

技術分享圖片技術分享圖片


進入A機器,可以開到新增的網卡,名稱為ens37

技術分享圖片技術分享圖片


給新網卡設置新ip(ifconfig ens37 192.168.100.1/24,此ip重啟後消失,新建網卡配置文件重啟後ip不變)

技術分享圖片技術分享圖片


同樣的方法,設置B機器的網卡(因為B機器網卡沒有配置,所以無法遠程連接,只能在虛擬機上操作)

技術分享圖片技術分享圖片

如上圖,兩臺機器已經可以連通。

準備工作已經完成。





10.17 iptables nat表應用(中)


windows主機無法ping同兩臺虛擬機所添加的網卡

技術分享圖片技術分享圖片


B機器也無法聯網

技術分享圖片技術分享圖片


在A機器上打開端口轉發echo "1" > /proc/sys/ipv4/ip_forward(0為關閉,1為打開)

技術分享圖片技術分享圖片


A機器上增加一條規則iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE

技術分享圖片技術分享圖片


B機器設置網卡192.168.100.1,數據包從B到A通路

技術分享圖片技術分享圖片


B機器已經可以連A機器第一塊網卡

然後編輯公共DNS

vi /etc/resolve.conf

技術分享圖片技術分享圖片


但是ping不通DNS 119.29.29.29

技術分享圖片技術分享圖片


查了寫資料和其他人的處理方法,把iptables規則重新添加一次,再返回B機器就能連通了

技術分享圖片技術分享圖片

技術分享圖片技術分享圖片


能ping通DNS也就是說可以連接外網了

技術分享圖片技術分享圖片


可以連外網,但是依然連不了內網

技術分享圖片技術分享圖片

這就是一個路由器的路由器,A機器就是路由器





10.18 iptables nat表應用(下)


需求2:C機器只能和A通信,讓C機器可以直接連通B機器的22端口(遠程登錄B)


雖然無法連接192.168.100.100,但是可以連接A機器192.168.65.128,可以做一個跳轉到B機器192.168.100.100

把A機器192.168.65.128的某端口(我們設置為1122),映射為B機器上192.168.100.100的22端口


第一步:打開端口轉發echo "1" > /proc/sys/net/ipv4/ip_forward

技術分享圖片技術分享圖片


第二步:刪除iptables規則

技術分享圖片技術分享圖片


第三步:增加iptables規則

iptables -t nat -A PREROUTING -d 192.168.65.128 -p tcp --dport 1122 -j DNAT --to 192.168.100.100:22

iptables -t nat -A POSTROUTING -s 192.168.100.100 -j SNAT --to 192.168.65.128


參考:http://man.linuxde.net/iptables

http://blog.chinaunix.net/uid-26495963-id-3279216.html


2018-1-25 7周4次課 iptables