10月26日任务

10.15 iptables filter表案例

10.16/10.17/10.18 iptables nat表应用

1.iptables filter表小案例

iptables 多个ip iptables放行一个网段_python

案例一:把80,22,21端口放行,但是22端口要指定端口,只有这个ip段的可以访问,其他全部拒绝。

  • #vim  /usr/local/sbin/iptables.sh ,添加下图内容

iptables 多个ip iptables放行一个网段_网络_02

iptables 多个ip iptables放行一个网段_运维_03

  • #sh /usr/local/sbin/iptables.sh 执行一下该配置

案例二:ICMP示例,禁ping。

iptables 多个ip iptables放行一个网段_python_04

  • #iptables -I INPUT -p icmp --icmp-type 8 -j DEOP

让其他机器包括本机无法ping通,但是自己可以ping出去。

iptables 多个ip iptables放行一个网段_内网_05

 

2.iptables nat表应用

iptables 多个ip iptables放行一个网段_运维_06

iptables 多个ip iptables放行一个网段_内网_07

iptables 多个ip iptables放行一个网段_iptables 多个ip_08

  • 案例一:
  • A机器两块网卡,一块是外网,一块网卡是lan区段(内网),B机器添加一个网卡lan区段(内网)
  • A机器使用命令#ifconfig ens37 192.168.100.1/24给lan区段内网网卡设置临时ip,重启即失效
  • B机器使用命令#ifconfig ens37 192.168.100.100/24给lan区段内网网卡设置临时ip,重启即失效
  • 完成网卡ip设置后,满足AB机器内网可以相互ping通内网网卡ip地址
  • 检测不能ping通外网
  • 需求一:让B机器可以连接外网,就想当于一个小路由器的功能
  • 修改内核参数,开启内核转发
  • # cat /proc/sys/net/ipv4/ip_forward 查看一下该文件,如果是0的话,执行下条命令
  • #echo "1" >!$ 添加内容1,打开端口转发
  • 添加该规则:#iptables -t net -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE   定义一条规则,让这个ip可以上网,做一个欺骗
  • B机器设置一个网关,执行命令:#route add default gw 192.168.100.1
  • ping 一下A机器公网网卡ip地址,检测是否可以和公网通信
  • B机器设置一个DNS,执行命令:#nameserver 119.29.29.29 
  • ping一下公网119.29.29.29,可以ping通,则可以ping通外网www.baidu.com 了
  • 需求二:C机器只能和A机器通信,让C机器可以直接连通B机器的22端口,(端口映射)
  • A机器,执行命令:#echo “1” > /proc/sys/net/ipv4/ip_forward 打开端口转发,因为前面已经打开过了,现在不用再执行该命令
  • A机器,执行命令:#iptables -F 清空一下规则
  • 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机器,#route add default gw 192.168.100.1 设定网关。因为前边已经设定过了,现在可以不用再执行该命令
  • 使用xshell远程登陆一下A机器的ip地址192.168.133.130,就可以远程连接到B机器上192.168.100.100
  • 并且B机器也可以和外网通信的