iptables filter表案例
[root@test-7 shell]# cat iptables.sh
#! /bin/bash
ipt="/usr/sbin/iptables" #iptables使用绝对路径
$ipt -F # 清空iptables
$ipt -P INPUT DROP #将所有进来的先drop
$ipt -P OUTPUT ACCEPT #将所有出去的接受
$ipt -P FORWARD ACCEPT #将转发到外部机器的接受
$ipt -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT #接受含有状态的(RELATED,ESTABLISHED)
$ipt -A INPUT -s 192.168.100.0/24 -p tcp --dport 22 -j ACCEPT #接受192.168.100.0/24 的22端口
$ipt -A INPUT -p tcp --dport 80 -j ACCEPT #80/21端口开发
$ipt -A INPUT -p tcp --dport 21 -j ACCEPT
2、[root@test-7 shell]# sh iptables.sh
3、
[root@test-7 shell]# iptables -nvL
Chain INPUT (policy DROP 9 packets, 702 bytes)
pkts bytes target prot opt in out source destination
38 2664 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
0 0 ACCEPT tcp -- * * 192.168.100.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
4、[root@test-7 shell]# service iptables save
5、禁ping
[root@test-7 shell]# iptables -D INPUT -p icmp --icmp-type 8 -j DROP
iptables nat表应用
A机器两块网卡eno16777736(192.168.100.102)、eno33554984(192.168.133.1),eno16777736可以上外网,eno33554984仅仅是内部网络,B机器只有eth1(192.168.133.2),和A机器eno33554984可以通信互联。
需求1:可以让B机器连接外网,就是让A机器做路由器,B机器就是手机,电脑
解决:
1、需要在A、B机器上都添加一个网卡,选择自定义的区段
2、在A机器上设置IP [root@test-7 ~]# ifconfig eno33554984 192.168.133.1/24
在B机器上设置IP [root@test-2 ~]# ifconfig eth1 192.168.133.2/24
3、保证192.168.133.1 、192.168.133.2互通(ping的通)
4、A机器上打开路由转发 echo "1">/proc/sys/net/ipv4/ip_forward
5、在A机器上添加:iptables -t nat -A POSTROUTING -s 192.168.133.0/24 -o eno16777736 -j MASQUERADE
6、service iptables save
7、在B机器上设置网关(这个是A机器的IP):route add default gw 192.168.133.1
8、在B机器上ping 192.168.133.1、192.168.100.1(可以访问外网的网关)
9、在B机器上设置DNS:114.114.114.114
10、在B机器上ping www.baidu.com
需求2:C机器只能和A通信,让C机器可以直接连通B机器的22端口
C机器就是window电脑 192.168.100.100
A机器就是路由器 192.168.100.102
B机器 192.168.133.2
1、A上打开路由转发echo "1">/ proc/sys/net/ipv4/ip_forward
2、端口映射,访问192.168.100.102:1122 跳转到192.168.133.2:22
先清空防火墙设置:iptables -t nat -F
A上执行:iptables -t nat -A PREROUTING -d 192.168.100.102 -p tcp --dport 1122 -j DNAT --to 192.168.133.2:22
iptables -t nat -A POSTROUTING -s 192.168.133.2 -j SNAT --to 192.168.100.102
3、 B上设置网关为192.168.133.1
4、在C机器上连接192.168.100.102:1122;可以连接