标签:网络连接 lan pack bit 状态 网络连接模式 /usr 匹配 centos
10.15 iptables filter表小案例iptables扩展选项(了解)
其实匹配扩展中,还有需要加-m引用模块的显示扩展,默认是隐含扩展,不要使用-m。
状态检测的包过滤:
-m state --state {NEW,ESTATBLISHED,INVALID,RELATED} 指定检测那种状态
-m multiport 指定多端口号
--sport
--dport
--ports
-m iprange 指定IP段
--src-range ip-ip
--dst-range ip-ip
-m connlimit 连接限定
--comlimit-above # 限定大连接个数
-m limit 现在连接速率,也就是限定匹配数据包的个数
--limit 指定速率
--limit-burst # 峰值速率,最大限定
规则:放行指定端口
使用脚本设定规则:
创建脚本:
[root@centos-01 ~]# vi /usr/local/sbin/iptables.sh
[root@centos-01 ~]# vim /usr/local/sbin/iptables.sh
#! /bin/bash
ipt="/usr/sbin/iptables"
# 定义一个变量——iptables命令(定义变量时尽量使用绝对路径,避免环境变量的影响)
$ipt -F # 清空原有规则
$ipt -P INPUT DROP
$ipt -P OUTPUT ACCEPT
$ipt -P FORWARD ACCEPT
# 上面三行是定义其默认策略
$ipt -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
)更顺畅
$ipt -A INPUT -s 192.168.239.0/24 -p tcp --dport 22 -j ACCEPT
$ipt -A INPUT -p tcp --dport 80 -j ACCEPT
$ipt -A INPUT -p tcp --dport 21 -j ACCEPT
保存退出
执行命令:
[root@centos-01 ~]# sh /usr/local/sbin/iptables.sh
查看
[root@centos-01 ~]# iptables -nvL
Chain INPUT (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
34 2296 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
0 0 ACCEPT tcp -- * * 192.168.239.0/24 0.0.0.0/0 tcp dpt:22
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:21
先恢复成默认状态
[root@centos-01 ~]# service iptables restart
Redirecting to /bin/systemctl restart iptables.service
[root@centos-01 ~]# iptables -nvL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
13 1114 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
2 80 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
iptables -I INPUT -p icmp --icmp-type 8 -j DROP
icmp协议示例
[root@centos-01 ~]#iptables -I INPUT -p icmp --icmp-type 8 -j DROP
说明: 该规则的含义是:只允许本机访问外网,不允许外网访问本机!
A机器两块网卡ens33(192.168.239.187)、ens37(192.168.100.1),ens33可以上外网,ens37仅仅是内部网络,B机器只有ens37(192.168.100.100),和A机器ens37可以通信互联。
准备工作:
设置ens37的IP:
方法2: 复制ens33的配置文件,然后在配置问价年内进行设置!
A和B机器可以100网段可以ping通
需求1: 可以让B机器连接外网
步骤一:A机器打开路由转发
[root@centos-01 ~]# echo "1" > /proc/sys/net/ipv4/ip_forward
该命令是更改内核设置,打开路由转发功能,默认值是0.
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 MASQUERADE all -- * ens33 192.168.100.0/24 0.0.0.0/0
说明: -o 选项后面跟设备名称,表示出口网卡,MASQUERADE是伪装、冒充的意思。
步骤三:为B设置网关为A机器ens37的IP:
[root@centos-01 ~]# route add default gw 192.168.100.1
步骤四:配置DNS(编辑DNS配置文件)
[root@centos-01 ~]# vim /etc/resolv.conf
nameserver 202.101.172.35
然后使用ping命令检测,网络通畅!
注: 此时B机器可以连通外网,但是外网机器无法访问B机器,A机器的作用就类似于一个路由器!
步骤一:A机器打开路由转发
[root@centos-01 ~]# echo "1" > /proc/sys/net/ipv4/ip_forward
该命令是更改内核设置,打开路由转发功能,默认值是0.
规则2:
[root@centos-01 ~]# iptables -t nat -A POSTROUTING -s 192.168.100.100 -j SNAT --to 192.168.239.187
步骤三:为B设置网关为A机器ens37的IP:
[root@centos-02 ~]# route add default gw 192.168.100.1
Finish!
iptables限制syn(同步)速度
原理: 每5s内tcp三次握手大于20次的属于不正常访问。
[root@centos-01 ~]# iptables -A INPUT -s ! 192.168.0.0/255.255.255.0 -d 192.168.239.187 -p tcp -m tcp --dport 80 -m state --state NEW -m recent --set --name httpuser --rsource
[root@centos-01 ~]# 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.239.187为本机IP。
该iptables策略,可有效预防syn攻击,也可以有效防止机器人发垃圾帖。
iptables针对一个网段设置规则:
[root@centos-01 ~]# iptables -I INPUT -m iprange --src-range 61.4.176.0-61.4.191.255 -j DROP
iptables中DNAT、SNAT和MASQUERADE
DNAT(Destination Network Address Translation,目的地址转换) 通常被叫做目的映射。
SNAT(Source Network Address Translation,源地址转换)通常被叫做源映射。
iptables中DNAT和SNAT工作原理:
在任何一个IP数据包中,都会有Source IP Address与Destination IP Address这两个字段,数据包所经过的路由器也是根据这两个字段是判定数据包是由什么地方发过来的,它要将数据包发到什么地方去。而iptables的DNAT与SNAT就是根据这个原理,对Source IP Address与Destination IP Address进行修改。
标签:网络连接 lan pack bit 状态 网络连接模式 /usr 匹配 centos
原文地址:http://blog.51cto.com/13242922/2065316