iptables mangle,iptables使用

  • 编辑: 庄用
  • 2019-11-13 10:35:00
  • 人阅读
centos iptables,ipterbales默认访问策略(也称为流量策略)在这种情况下可以是一个拦截策略,以及一个称为阻塞策略然后打开的规则。(我倾向于阻止这种策略,我需要打开未定义的内容,下面

iptbales默认ACCEPT策略,也称通策略,这种情况下可以做拦截策略,还有种叫堵策略,然后开放通的规则。(我偏向堵策略,自己需要开放什么在开,以下例子也是在此基础上的)

iptables 一些参数名称:

四表五链:fifter表、NAT表、Mangle表、Raw表 。 INPUT链、OUTPUT链、FORWARD链、PREROUTING链、POSTROUTING链

  INPUT链 处理来自外部的数据。

  OUTPUT链 处理向外发送的数据。

  FORWARD链 将数据转发到本机的其他网卡设备上。 

  PREROUTING链 处理刚到达本机并在路由转发前的数据包。它会转换数据包中的目标IP地址(destination ip address),通常用于DNAT(destination NAT)。(NAT表需要开启linux路由 net.ipv4.ip_forward = 1)

  POSTROUTING链 处理即将离开本机的数据包。它会转换数据包中的源IP地址(source ip address),通常用于SNAT(source NAT)。

  OUTPUT链 处理本机产生的数据包。

iptables 新建时情况所有记录

iptables -F

iptables -X

iptables -F -t mangle

iptables -t mangle -X

iptables -F -t nat

iptables -t nat -X

开放22 SSH端口

iptables -A INPUT -p tcp -p tcp --dport 22 -j ACCEPT (允许外部访问本机的22端口)

iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT (有进就有出,IP包是来回的)

例如一条比较完整的SSH端口限制:(意思为:从eth0进来的SSH访问,除了公司192.168.16.0/24不限制,其他的地址都限制为每个ip最多5个SSH连接,且只为NEW和ESTABLISHED的连接,其他的都拒接)

iptables -A INPUT -i eth0 ! -s 192.168.16.0/24 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -m connlimit --connlimit-above 5 -j REJECT

----

iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT(允许本机去ssh其他的服务器的22端口)

iptables -A INPUT -p tcp --sport 22 -j ACCEPT

设置默认规则为DROP

iptables -P INPUT DROP

iptables -P OUTPUT DROP

此时占时不要service iptables save,先用客户端ssh连接一下服务器,看看可以连接吗?如果不行最起码还可以重启,这样规则没保存重启是不生效,如果保存了发现不通就麻烦一些了!

当发现可以SSH的时候,我们就可以继续下面的步骤了!

打开回环地址,为了本地访问,如本地访问数据库之类

iptables -A INPUT -i lo -j ACCEPT

iptables -A OUTPUT -o lo -j ACCEPT

打开服务器的ping功能,我觉得有必要打开,可以检测服务器状况

iptables -A INPUT -p icmp -m icmp --icmp-type 0 -j ACCEPT (此2条规则是允许本机ping外网的ip,不包括域名,其中8是icmp的请求,0是icmp的响应)

iptables -A OUTPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT

----

iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT (此2条规则是允许外部ping本机)

iptables -A OUTPUT -p icmp -m icmp --icmp-type 0 -j ACCEPT

允许内部ping外部的域名

iptables-A INPUT -p udp --sport 53 -j ACCEPT

iptables -A OUTPUT -p udp --dport 53 -j ACCEPT

允许外部访问本机的80服务,且只允许新连接的和已经连接的会话(状态检测)

iptables-A INPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT

iptables -A OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT

允许外部访问我本地多个端口 如 8080,8081,8082,且只允许是新连接,已经连接的和已经连接的在延伸出新连接的会话

iptables -A INPUT -p tcp -m multiport --dport8080,8081,8082 -m state --state NEW,ESTABLISHED,RELATED-j ACCEPT

iptables -A OUTPUT -p tcp -m multiport--sport 8080,8081,8082-m state --state ESTABLISHED -j ACCEPT

允许外部访问本机81端口,且本机初始只允许有200个连接,超过了此数量,然后每秒新增加2个连接,如果访问超过此限制则拒接 (此方式可以限制一些攻击)

iptables-A INPUT -p tcp --dport 81 -m limit --limit 2/s --limit-burst 200 -j ACCEPT

iptables -A OUTPUT -p tcp --sport 81 -j ACCEPT

限制除用户192.168.16.99以外的IP连接数为50(相当于可以给自己开特权^_^)

iptables -A FORWARD -p tcp -s !192.168.16.99 -m connlimit --connlimit-above 50 -j REJECT

TCP匹配扩展协议--tcp-flags

iptables -A INPUT -p tcp --tcp-flags SYN,FIN,ACK,RST SYN (表示SYN,FIN,ACK,RST的标识都检查,但只匹配SYN标识)

iptables -A INPUT -p tcp --syn (如果这是为了匹配SYN标识位也可以写成这样,选项syn相当于--tcp-flags SYN,RST,ACK SYN的简写。)

实例:

//nmap-xmas

iptables -AINPUT-p tcp --tcp-flags ALL FIN,URG,PSH -j DROP (检查所以的标识位,匹配到FIN URG PSH的丢弃)

//nmap-push

iptables -A INPUT -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP(检查所以的标识位,匹配到SYN RST ACK FIN URG的丢弃)

// Null

iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP(检查所以的标识位,没标志位的丢弃)

以上就是电脑技术吧给大家介绍的如何使用关于 iptables 入站 出站以及NAT实例的方法了,如何使用关于 iptables 入站 出站以及NAT实例的方法到这里也全部结束了相信大家对如何使用关于 iptables 入站 出站以及NAT实例的方法都有一定的了解了吧,好了,如果大家还想了解更多的资讯,那就赶紧点击电脑技术吧系统官网吧。

本文原标题:iptables,linux没有iptables

版权声明:本文由 庄用 整理编辑,如果侵权请联系我们!

转载注明出处:https://www.nintaus.net/houtai@123/makehtml_archives_action.php?endid=0&startid=0&typeid=0&totalnum=11732&startdd=5220&pagesize=20&seltime=0&sstime=1589370344&stime=&etime=&uptype=mkall&mkvalue=0&isremote=0&serviterm=

文章评论

共有 条评论来说两句吧...

用户名:

验证码:

Top