10月26日任务
10.15 iptables filter表案例
10.16/10.17/10.18 iptables nat表应用
1.iptables filter表小案例
案例一:把80,22,21端口放行,但是22端口要指定端口,只有这个ip段的可以访问,其他全部拒绝。
- #vim /usr/local/sbin/iptables.sh ,添加下图内容
- #sh /usr/local/sbin/iptables.sh 执行一下该配置
案例二:ICMP示例,禁ping。
- #iptables -I INPUT -p icmp --icmp-type 8 -j DEOP
让其他机器包括本机无法ping通,但是自己可以ping出去。
2.iptables nat表应用
- 案例一:
- 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机器也可以和外网通信的