10月26日任务

10.15 iptables filter表案例
iptables小案例 (80端口、22端口(指定IP段)、21端口放行)
vi /usr/local/sbin/iptables.sh //加入如下内容 
#! /bin/bash 
ipt="/usr/sbin/iptables" 
$ipt -F 
$ipt -P INPUT DROP 
$ipt -P OUTPUT ACCEPT 
$ipt -P FORWARD ACCEPT 
$ipt -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT     
$ipt -A INPUT -s 192.168.133.0/24 -p tcp --dport 22 -j ACCEPT 
$ipt -A INPUT -p tcp --dport 80 -j ACCEPT 
$ipt -A INPUT -p tcp --dport 21 -j ACCEPT   
 icmp示例 
 iptables -I INPUT -p icmp --icmp-type 8 -j DROP
 
脚本实例
[root @test ~]# vim /usr/local/sbin/iptables.sh
#! /bin/bash
ipt="/usr/sbin/iptables"   (脚本中命令需要写绝对路径(环境变量导致命令无法执行),这里定义了变量来定义命令全局路径)
$ipt -F (清空之前的规则, 但是实际工作中不能随意清空
(这里没有-F去定义表,这里默认是filter表)
$ipt -P INPUT DROP   (进入的数据全部限制掉)
$ipt -P OUTPUT ACCEPT(出去的数据开放)
$ipt -P FORWARD ACCEPT(转发的数据开放)
$ipt -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
  (进入的数据指定状态,目的是各个数据包相互顺利连接,针对状态放行,-m state --state,RELATED边缘状态建立连接后还有额外的连接,ESTABLISHED保持连接)
-m state --state <NEW,ESTATBLISHED,INVALID,RELATED> ##指定匹配哪种状态
接受已经建立连接的或由已经建立的连接所建立的新连接的TCP连接(状态防火墙能识别TCP或者UDP会话非状态防火墙只能根据端口识别,不能识别会话)
– INVALID: 无效的封包,例如数据破损的封包状态,该包不匹配于任何连接,通常这些包被DROP
–ESTABLISHED:已经联机成功的联机状态;该包属于某个已经建立的连接。
–NEW:想要新建立联机的封包状态;该包想要开始一个新的连接(重新连接或连接重定向)
–RELATED:该包是属于某个已经建立的连接所建立的新连接。举例:FTP的数据传输连接和控制连接之间就是RELATED关系。
 
$ipt -A INPUT -s 192.168.133.0/24 -p tcp --dport 22 -j ACCEPT  (网段访问22端口)
$ipt -A INPUT -p tcp --dport 80 -j ACCEPT (80端口数据包放行)
$ipt -A INPUT -p tcp --dport 21 -j ACCEPT
012301da025deaab9814c9bd72d76d2cac4.jpg
 
执行脚本:[root @test ~]# sh /usr/local/sbin/iptables.sh
[root @test ~]# iptables -nvL
75ba6109a7135ae771dea196fe91cd146fb.jpg
 
icmp  禁ping功能,本机ping外部可以通,外部无法ping通本机    禁掉icmp 8种状态
[root @test ~]#  iptables -I INPUT -p icmp --icmp-type 8 -j DROP
22238583b6329e66b477555a56101cd6275.jpg
 
 
10.16/10.17/10.18 iptables nat表应用
nat表应用 
A机器两块网卡ens33(192.168.133.130)、ens37(192.168.100.1),ens33可以上外网,ens37仅仅是内部网络,B机器只有ens37(192.168.100.100),和A机器ens37可以通信互联。 
需求1:可以让B机器连接外网 
A机器上打开路由转发 echo "1">/proc/sys/net/ipv4/ip_forward 
A上执行 iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE 
B上设置网关为192.168.100.1 
需求2:C机器只能和A通信,让C机器可以直接连通B机器的22端口 
A上打开路由转发echo "1">/ proc/sys/net/ipv4/ip_forward   
A上执行iptables -t nat -A PREROUTING -d 192.168.133.130 -p tcp --dport 1122 -j DNAT --to 192.168.100.100:22 
A上执行iptables -t nat -A POSTROUTING -s 192.168.100.100 -j SNAT --to 192.168.133.130 
B上设置网关为192.168.100.1
 
 
实际操作
A服务器ens32外网  ens34   192.168.1.3  B机器ens34  192.1768.1.2
A机器和B机器设置临时IP时操作[root @test ~]# ifconfig ens34 192.168.1.3/24
内网互通
A机器
b2294ac5bbc435f183a07b3a2f4d608cf2b.jpg
B机器
b2294ac5bbc435f183a07b3a2f4d608cf2b.jpg
1.可以让B机器连接外网
A机器变为路由器
A机器打开路由转发,修改内核参数  /proc/sys/net/ipv4/ip_forward默认为0,没有开启端口转发
[root@test ~]# echo "1">/proc/sys/net/ipv4/ip_forward
[root@test ~]# cat /proc/sys/net/ipv4/ip_forward
1
NAT表增加规则(让内网网段上网)
[root@test ~]# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ens34 -j MASQUERADE
[root@test ~]# iptables -t nat -nvL
3f3c6d22e424696be857a5085986056b942.jpg
 
B机器设置网关
查看网关
[root@test ~]# route -n
设置网关(设置网关为A机器的内网)
60a3ab0deb674ff76e6c53ae92f82235319.jpg
 
实现B机器出外网通信
9018060aeb367ead20a0ed387f5a4057392.jpg
 
设置DNS
925328803d1a31a2d769f805a0130c0daed.jpg
bdd655197467d97e5267401250a55074681.jpg
 
 
2.端口映射
通过A机器的端口映射去内网服务器的远程端口映射
A机器变为路由器
A机器打开路由转发,修改内核参数   /proc/sys/net/ipv4/ip_forward默认为0,没有开启端口转发
[root@test ~]# echo "1">/proc/sys/net/ipv4/ip_forward
[root@test ~]# cat /proc/sys/net/ipv4/ip_forward
1
删除原规则
[root@test network-scripts]# iptables -t nat -D POSTROUTING -s 192.168.1.0/24 -o ens34 -j MASQUERADE
增加规则
1.进来的包目标IP指向1122,端口转发到内网的远程地址和远程端口
[root@test network-scripts]# iptables -t nat -A PREROUTING -d 122.222.222.222 -p tcp --dport 1122 -j DNAT --to 192.168.1.2:1222
2.出来的包
iptables -t nat -A POSTROUTING -s 192.168.100.100 -j SNAT --to 192.168.133.130
 
B机器设置网关
查看网关
[root@test ~]# route -n
设置网关(设置网关为A机器的内网)
f209f42c18433138ede27b27803ce71eadf.jpg

转载于:https://my.oschina.net/u/3803396/blog/2252831

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值