LiNUX20180509七周四次课(5月9日)IPTABLES

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LiNUX20180509七周四次课(5月9日)IPTABLES相关的知识,希望对你有一定的参考价值。

七周四次课(5月9日)

10.15 iptables filter表案例
10.16/10.17/10.18 iptables nat表应用

扩展
1. iptables应用在一个网段 http://www.aminglinux.com/bbs/thread-177-1-1.html
2. sant,dnat,masquerade http://www.aminglinux.com/bbs/thread-7255-1-1.html
3. iptables限制syn速率 http://www.aminglinux.com/bbs/thread-985-1-1.htmlhttp://jamyy.us.to/blog/2006/03/206.html



iptables filter表案例

技术分享图片



技术分享图片

技术分享图片

-ipt是定义变量,这样不用每次都写绝对地址,以后写shell脚本的时候最好写据对路径

首先要把之前的规则清空,所以 -F

然后默认的策略定义  INPUT -DROP OUTPUT- ACCEPT FORWARD -ACCEPT  

接着 添加规则 -A ,指定了状态是 related和established的,针对这些状态的数据放行。这一行主要是保证保持连接的状态。related是一个边缘的状态,没有这个的话,有可能其他的被禁掉了。这一行必须有。

接下里是把192.168.133.0/24网段的访问22端口的放行

然后是把80和21端口数据放行


iptables [-t 表名] <-A|I|D|R> 链名[规则编号] [-i|o 网卡名称] [-p 协议类型] [-s 源IP地址|源子网] [--sport 源端口号] [-d 目标IP地址|目标子网] [--dport 目标端口号] <-j 动作>

技术分享图片

写脚本的目的就是连续操作,因为中间的某些操作有可能会断掉连接无法继续操作。


iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT # 允许被ping

iptables -I INPUT -p icmp --icmp-type 8 -j DROP 这个就是不允许被ping 但是可以ping外面


需要将service iptables restart后才能去操作icmp

操作完之后的效果就是iptables -I INPUT -p icmp --icmp-type 8 -j DROP 可以ping出去 其他ping不了它

技术分享图片


技术分享图片



iptables nat表应用 1


技术分享图片

首先需要给虚拟机1新做一个网卡

技术分享图片

技术分享图片

然后给虚拟机2新建一个网卡,因为本身的网卡已经设置好IP等所以可以取消它启动时连接,第二块网卡也使用lan区段。也就是说想完成这个实验(一台机器一网卡内网,一个外网,另一个机器网卡内网,但是想上网)必须俩内网网卡在一个区段,使用同一个交换机。因为第二个虚拟机的网卡已经变化了,所以远程连接已经不行了。

技术分享图片

技术分享图片


技术分享图片

接下来要给虚拟出来的网卡设定一个ip ens37

可以ifconfig 网卡 ip 来临时指定ip 如果想永久保存要修改配置文件

技术分享图片

接着给另一台机器设置内网ip,因为没有办法登陆远程,只能直接从机器登陆,为了保险,ifdown再去关闭第一块网卡。

技术分享图片

使用同样的命令 ifconfig 网卡 192.168.100.100/24,而且可以ping通之前那个机器的第二个内网网卡。这样前提条件都已经满足了。

技术分享图片


iptables nat表应用(中)


准备工作已经就绪, 准备做实验。

技术分享图片

首先A机器上需要打开路由转发 echo "1">/proc/sys/net/ipv4/ip_forward 

默认 /proc/sys/net/ipv4/ip_forward这个文件的值是0,就意味着没有开启路由转发。

技术分享图片

技术分享图片

然后需要添加规则,实现上网。iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE 目的就是让100.0的网段上网。

技术分享图片

然后给b机器设置网关。

192.168.100.1

route -n 查找网关,目前是没有网关的。

技术分享图片

设置网关 route add default gw 192.168.100.1 

技术分享图片

B网卡可以pingA的外网ip就成功了。

技术分享图片然后理论上就可以连接外网了。

注意的几点:

1. A需要一个网卡连接外网,一个内网,B的内网网卡和A的内网在一个网段

2. A的内网IP作为B的内网网卡的网关来提供上网。

其实就是实现了一个路由器的功能



技术分享图片

远程登陆B机器,通过映射到A机器的其他端口来实现。就是说访问A的1122端口,实际上访问的是B的22端口


第一步还是打开端口转发

第二步增加规则。在这时候需要先将之前的规则删除。

技术分享图片

此时的nat表是空的

技术分享图片

第二步需要加规则,prerouting这个就是把进来的包,转发到100.100:22

技术分享图片

第三部是 回来的包,经过A机器再做一个

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


第四部给B机器加网关

这时候应该就可以远程访问B机器了

以上是关于LiNUX20180509七周四次课(5月9日)IPTABLES的主要内容,如果未能解决你的问题,请参考以下文章

七周四次课(1月25日)

Python学习——七周四次课(12月7日)

十五周四次课(4月9日)

2018.5.9 七周四次课

十周四次课(3月5日)

linux七周五次课(3月23日)