iptables系列三

iptables系列之nat及其过滤功能

自定义规则链

iptables -N clean_in 
iptables -L -n 
iptables -A clean_in -d 255.255.255.255 -p icmp -j DROP 
iptables -L -n --line-number 
iptables -A clean_in -d 172.16.255.255 -p icmp -j DROP 
iptables -A clean_in -p tcp !--syn -m state --state NEW -j DROP 
iptables -A clean_in -p tcp --tcp-flags ALL ALL -j DROP 
iptables -A clean_in -p tcp tcp-flags ALL NONE -j DROP 
iptables -A clean_in -d 172.16.1.3 -j RETURN 
iptables -I INPUT -j claen_in 
iptables -L -n --line-numbers

iptables -X clean_in 
定义自定义链,以及链的引用于返回等。

利用iptables的recent模块来抵御DOS攻击

 ssh: 远程连接,
 iptables -I INPUT -p tcp --dport 22 -m connlimit --connlimit-above 3 -j DROP 
 iptables -I -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH 
 iptables -IINPUT -p tcp --dport 22 -m state NEW -m recent --update --seconds 300 --hitcount 3 --name SSH -j DROP 
 
 -m recent :将最近向本机发起连接请求的ip地址记录下来。允许您动态创建一个地址列表,然后用几种不同的方式对该列表的匹配。
       --name 
           为模板命名。一个内存空间。


 1.利用connlimit模块将单IP的并发设置为3;会误杀使用NAT上网的用户,可以根据实际情况增大该值;

2.利用recent和state模块限制单IP在300s内只能与本机建立3个新连接。被限制五分钟后即可恢复访问。

下面对最后两句做一个说明:

1.第二句是记录访问tcp 22端口的新连接,记录名称为SSH
--set 记录数据包的来源IP,如果IP已经存在将更新已经存在的条目

2.第三句是指SSH记录中的IP,300s内发起超过3次连接则拒绝此IP的连接。
--update 是指每次建立连接都更新列表;
--seconds必须与--rcheck或者--update同时使用
--hitcount必须与--rcheck或者--update同时使用

3.iptables的记录:/proc/net/ipt_recent/SSH
/proc/net/xt_recent/


也可以使用下面的这句记录日志:
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --name SSH --second 300 --hitcount 3 -j LOG --log-prefix "SSH Attack"

image.png

NAT:Network Address Translation

SNAT:源地址转换  POSTROUTING,OUTPUT 
DNAT:目标地址转换 PREROUTING 

-j SNAT 
   --to-source ipaddr[-ipaddr][:port[-port]]
  
 可以做静态NAT,动态NAT,端口NAT
  
MASQUERADE 
这个目标只适用于nat表,在POSTROUTING连锁。它只能用于动态分配的IP(拨号)连接.自动查找一个可以上网的IP地址进行源地址转换。

-j  MASQUERADE 
     --to-ports port[-port]
     --radom 
 
ip_forward 
/proc/sys/net/ipv4/ip_forward:1 
route -n 
iptables -P INPUT ACCEPT 
iptables -P OUTPUT ACCEPT 
iptables -P FPRWARD ACCEPT 
注意:对于linux,地址是属于主机的,不属于网卡的,所以一台主机上,ip都是可以通信的。

echo "1" > /proc/sys/net/ipv4/ip_forward 

vim /etc/sysctl.conf 
net.ipv4.ip_forward=1 
sysctl -p 

route del -net 0.0.0.0 
route add default gw 172.16.100.7 


地址池表

TCP报文的序列号 
nat基于地址表+nf_conntrack...


iptables -t nat 
     -j SNAT 
         --to-source 
         
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -j SNAT --to-source 172.16.100.7  

tcpdump -i  eth0 -nn -X -p icmp 
tcpdump -i eth0 -nn  |grep 192

iptables -t nat -A PREROUTING -d 192.168.1.10 -j DNAT --to-destination 172.16.10.6 
 
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o pppoe -j SNAT--to-source 123.2.3.2 

iptables -A FORWARD -s 192.168.0.0/24 -p icmp -j DROP 

iptables -P FORWARD DROP 
iptables -A FROWARD -m state ESTABLISHED -j ACCEPT 

iptables -A FORWARD -s 192.168.10.0/24 -p tcp --dport 80 -m state NEW -j ACCEPT 
iptables -A FORWARD 192.168.10.0/24 -p icmp --icmp-type 8 -m state --state NEW -j ACCEPT 
 
lsmod |grep ftp 
注意:网络防火墙,建立在FORWARD上的链。


 -j DNAT 
   --to-destination [ipaddr][-ipaddr][:port[-port]]
  --random
   --persistent
   

iptables -t nat -A PREROUTING -d 192.168.1.10  -p tcp --dport 21 

iptables -t nat -A PREROUTING -d 172.16.100.7 -p tcp --dport 80 -j DNAT  

请求内容过滤:
iptables -t filter -A FORWARD -m string --algo kmp --string "hello" -j DROP 

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏吴伟祥

IPTABLES的基本概念小结 转

iptables实际上就是一种包过滤型防火墙。iptables是Linux系统下最常见的防火墙命令,但实际上它只是一个命令行工具,真正的内核防火墙是位于操作系统...

12650
来自专栏前端架构

在深谈TCP/IP三步握手&四步挥手原理及衍生问题—长文解剖IP

如果对网络工程基础不牢,建议通读《细说OSI七层协议模型及OSI参考模型中的数据封装过程?》

21250
来自专栏Netkiller

MySQL Router 安装与配置

1.9. MySQL Router 1.9.1. 安装 MySQL Router # yum install mysql-router -y MySQL Rou...

48540
来自专栏猛牛哥的博客

CENTOS通过iptables做端口转发

87170
来自专栏Linyb极客之路

网络编程之TCP为什么需要3次握手与4次挥手

在谢希仁著《计算机网络》第四版中讲“三次握手”的目的是“为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误”。在另一部经典的《计算机网...

10530
来自专栏散尽浮华

iptables之NAT端口转发设置

背景: 服务器A:103.110.114.8/192.168.1.8,有外网ip,是IDC的一台服务器 服务器B:192.168.1.150,没有外网ip,A服...

82490
来自专栏莫韵的专栏

简易 linux 网卡带宽检查工具纯 shell 和 awk

最近要检查网卡流量,其实是有各种现存工具,非常容易实现 。但需要把这个东西与icinga2 集成起来搞报警什么的。这些cati collectd tsar 网管...

42100
来自专栏友弟技术工作室

iptsbles系列一

iptables系列之基础原理 ? linux:网络防火墙 netfilter:frame 框架 网络过滤器 iptables:数据报文过滤,NA...

33650
来自专栏北京马哥教育

iptables:防火墙以及网络协议基本原理

一、 Linux 网络安全模型 1. 防火墙: 工作在主机或者网络边缘,对进出报文使用实现定义的规则进行检测,并且由匹配的规则进行处理的一组硬件或者软件。...

42760
来自专栏QQ会员技术团队的专栏

告知你不为人知的 UDP:连接性和负载均衡

说起网络 socket,大家自然会想到 TCP ,用的最多也是 TCP,UDP 在大家的印象中是作为 TCP 的补充而存在,是无连接、不可靠、无序、无流量控制的...

7.6K120

扫码关注云+社区

领取腾讯云代金券