首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Linux防火墙-netfilter应用

Linux防火墙-netfilter应用

作者头像
老七Linux
发布2018-05-09 15:50:56
发布2018-05-09 15:50:56
1.7K0
举报
iptables filter表小案例 :
nat表应用

A机器两块网卡ens33(192.168.133.130)、ens37(192.168.100.1),ens33可以上外网,ens37仅仅是内部网络,B机器只有ens37(192.168.100.100),和A机器ens37可以通信互联。

在做实验前,因为是使用的centos 7,所以咱们为了后期不必要的麻烦,一定要把firewalld关闭!!!
代码语言:javascript
复制
# systemctl disable firewalld :先停掉firewalld
# systemctl stop firewalld :关闭服务
# yum install -y iptables-services:安装服务
# systemctl enable iptables :先启用iptables
# systemctl start iptables :启动服务
需求1:可以让B机器连接外网
代码语言:javascript
复制
[[email protected]01 ~]# ifcfg ens37 192.168.100.1/24 
//快速给ens37配置IP地址
代码语言:javascript
复制
A机器上打开路由转发: echo "1">/proc/sys/net/ipv4/ip_forward
代码语言:javascript
复制
A上执行: iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE
B上设置网关为:192.168.100.1
代码语言:javascript
复制
# route -n   //查看网关(默认没有任何网关)
# route add default gw 192.168.100.1  //设置默认网关
# vim /etc/resolv.conf //增加 ”nameserver 119.29.29.29“

注意:我在测试B机器ping 119.29.29.29的时候显示不可以ping通,最终查找问题发现是A机器之前设置的iptables 策略阻挡了。
使用 #iptables -F 清除A机器的策略即可!

需求2:B机器只能和A通信,让C机器可以直接连通B机器的22端口(端口映射)
代码语言:javascript
复制
A上打开路由转发:echo "1">/ proc/sys/net/ipv4/ip_forward

在执行下一步之前,我们一定要先清除之前设定的规则,以免影响。

代码语言:javascript
复制
A上执行:iptables -t nat -A PREROUTING -d 192.168.133.130 -p tcp --dport 1122 -j DNAT --to 192.168.100.100:22
//192.168.133.130是A机器的IP地址;PREROUTING把进来的包转发到192.168.100.100:22
代码语言:javascript
复制
A上执行:iptables -t nat -A POSTROUTING -s 192.168.100.100 -j SNAT --to 192.168.133.130
//从192.168.100.100回来的包转发到指定的机器
代码语言:javascript
复制
B上设置网关为:192.168.100.1

iptables限制syn攻击

原理,每5s内tcp三次握手大于20次的属于不正常访问。

代码语言:javascript
复制
iptables -A INPUT -s ! 192.168.0.0/255.255.255.0 -d 192.168.0.101 -p tcp -m tcp --dport 80 -m state --state NEW -m recent --set --name httpuser --rsource
代码语言:javascript
复制
iptables -A INPUT -m recent --update --seconds 5 --hitcount 20 --name httpuser --rsource -j DROP

其中192.168.0.0/255.255.255.0 为不受限制的网段, 192.168.0.101 为本机IP。 该iptables策略,可有效预防syn攻击,也可以有效防止机器人发垃圾帖。


iptables 针对一个网段限制
代码语言:javascript
复制
iptables -I INPUT -m iprange --src-range 61.4.176.0-61.4.191.255 -j DROP

iptables规则备份和恢复
代码语言:javascript
复制
# service iptables save //会把规则保存到/etc/sysconfig/iptables
代码语言:javascript
复制
把iptables规则备份到/tmp/my.ipt文件中
# iptables-save > /tmp/my.ipt
代码语言:javascript
复制
恢复刚才备份的规则
# iptables-restore < /tmp/my.ipt
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016/07/13,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • iptables filter表小案例 :
    • nat表应用
    • 在做实验前,因为是使用的centos 7,所以咱们为了后期不必要的麻烦,一定要把firewalld关闭!!!
  • 需求1:可以让B机器连接外网
  • B上设置网关为:192.168.100.1
  • 需求2:B机器只能和A通信,让C机器可以直接连通B机器的22端口(端口映射)
  • iptables限制syn攻击
  • iptables 针对一个网段限制
  • iptables规则备份和恢复
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档