Linux防火墙与iptables命令

  • 防火墙概念
  • 一、Firewalld与iptables简介
    • 1.1Firewalld
    • 1.2Firewalld、iptables
  • 二、iptables
    • 2.1四表
    • 2.2五链
    • 2.3四表和五链的关系
    • 2.4操作表
    • 2.5操作链
    • 2.6匹配条件
    • 2.7处理动作
    • 2.8iptables基本用法
  • 三、扩展匹配条件(模块匹配)
    • 3.1iprange模块
    • 3.2time模块
    • 3.3connlimit模块
    • 3.4string模块
    • 3.5limit模块
    • 3.6tcp-flags模块
    • 3.7state模块
  • 四、防火墙规则的永久保存
  • 五、示例

防火墙概念

防火墙是指设置在不同网络与网络安全域之间的一系列部件的组合,也是不同安全域之间信息的唯-出口。通过监测、限制并更改跨越防火墙的数据流,尽可能地对外屏蔽网络内部的信息.结构和运行状态,且有选择地接受外部网络访问。在内外网之间架起一道屏障,以避免发生不可预知或潜在的入侵。
Linux的防火墙体系主要工作在网络层.针对TCP/IP数据包实时过滤和限制,属于典型的包过滤防火墙(或称为网络层防火墙)。Linux 系统的防火墙体系基于内核编码实现,具有非常稳定的性能和高效率,也因此获得广泛的应用。
操作系统占据内存的空间为内核空间也称为内核态
用户启用的应用程序占用的空间为用户空间 也称为用户态
区分内核空间和用户空间,内核空间比较稳定,用户空间不稳定,隔离开来可以避免系统崩溃

防火墙可以从两个方面进行分类

从逻辑上分类主机防火墙:针对单个主机进行防护网络防火墙:处于网络入口或者边缘,针对内外网之间的防护,服务于防火墙背后的本地局域网从物理上分类硬件防火墙:在硬件部分实现一部分防火墙功能,性能高,成本高软件防火墙:应用软件,用于处理运行在硬件平台之上的防火墙,性能低,成本低

一、Firewalld与iptables简介

1.1Firewalld

  • 支持网络区域所定义的网络链接以及接口安全等级的动态防火墙管理工具
  • 支持IPv4,IPv6防火墙设置以及以太网桥
  • 支持服务或应用程序直接添加防火墙规则接口
  • 拥有两种配置模式
  • 运行时配置(一般测试的时候使用)
  • 永久配置

iptables:并不是一个防火墙,而是管理防火墙的工具,相当于一个客户端

netfilter:防火墙“安全框架”

  • 位于Linux内核中的包过滤体系
  • 称为Linux防火墙的内核态

1.2Firewalld、iptables

  • Centos7上默认的防火墙规则管理工具
  • 称为Linux防火墙的用户态

区别

          对规则的修改         配置文件                  防火墙类型Firewalld:不需要全部刷新策略   /usr/lib/firewalld        动态防火墙不丢失现行链接  /etc/firewalldiptables: 需要全部刷新策略 /etc/sysdonfig/iptables   静态防火墙丢失链接

netfilter/iptables(简称为iptables):组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火墙解决方案,完成封包过滤、封包重定向和网络地址转换(NAT)等功能。

二、iptables

2.1四表

表名 对应内核模块 作用
filter iptables_filter 负责过滤功能
nat iptables_nat 网络地址转换
mangle iptables_mangle 报文解析和封装
raw iptables_raw 决定数据包是否被状态跟踪机制处理
  • 四表的顺序:raw - - - mangle - - - nat - - - filter(优先级次序)
    报文发送过来之后首先由raw判断是否要被状态跟踪机制处理,再交给mangle表进行解析和封装,再交给nat表进行地址转换,再交给filter表进行过滤

2.2五链

位置 链名 说明
进路由 PREROUTING 对数据包做路由选择前应用此规则链中的规则
进系统 INPUT 进来的数据包应用此规则链中的规则
转发 FORWARD 转发数据包时应用此规则链中的规则
出系统 OUTPUT 出去的数据包应用此规则链中的规则
出路由 POSTROUTING 对数据包作路由选择后应用此规则链中的规则
  • 五链的顺序(报文的流向):
    PREROUTING - - - FORWARD - - - POSTROUTING(由本机转发的报文)
    PREROUTING - - - INPUT(到本机某进程的报文)
    OUTPUT - - - POSTROUTING(由本机某进程发出的报文,通常为相应报文)

2.3四表和五链的关系

  • 表包含链,链包含规则

表名 包含的链
raw PREROUTING、OUTPUT
mangle PREROUTING、INPUT、FORWARD、OUTPUT、POSTROUTING
nat PREROUTING、OUTPUT、POSTROUTING(在centos7上还有INPUT链)
filter INPUT、FORWARD、OUTPUT

iptables命令

链上面的规则:根据指定的匹配条件来尝试匹配每个流经该链的报文,一旦匹配成功,则由规则后面指定的处理动作进行处理

2.4操作表

  • 用法:-t 后面跟表名(raw/mangle/nat/filter)
    一般不加 -t 选择表默认为filter表

2.5操作链

常用选项

选项 说明
-L 列出所有的链上的规则(也可以-t加表名,列出指定表上的规则)
-n ip地址和端口号以数字形式显示
-I # 在指定链的第#个位置添加规则(不指定#的话默认在第一个)
-A 在指定链的尾部添加规则
-D 删除匹配规则
-F 删除指定链上的规则(不指定的话默认为全部链)
-N 创建用户自定义链
-X 删除指定的用户自定义链
-P 修改指定链的默认规则(不指定链的话默认为全部链)
-R 修改规则
-Z 将指定链的计数器清零(不指定默认为所有链)

2.6匹配条件

  • 常见的匹配条件
选项 作用
-s 地址 匹配源地址
-d 地址 匹配目标地址
-p 匹配协议(tcp/udp/icmp……不选默认全部)
- -sport 匹配源端口(22/23/25/80……)
- -dport 匹配目标端口(22/23/25/80……)
-o interface 匹配出口网卡,作用链:OUTPUT、POSTROUTING
-i interface 匹配入口网卡 ,作用链:PREROUTING、INPUT、FORWARD

2.7处理动作

  • 常用处理动作
    用法: - j + 动作名
动作名 作用
ACCEPT 允许
REJECT 拒绝,并且做出回应
DROP 直接丢弃,不做任何回应
SNAT 源地址转换
DNAT 目标地址转换
LOG 记录一下,不作任何回应,交给下一条规则处理
  • iptables -nvL ——查看全部链上的详细规则
  • iptables -nvL --line-numbers ——给每条链上的规则加上序号

2.8iptables基本用法

iptables -t 表(raw/mangle/nat/filter) -I/A/R/D/P  前面所选表对应的链(首部/尾部/指定序号修改/指定序号删除/修改默认规则) -s/d 地址ip (源地址/目标地址,多个地址用“,”隔开,不选择默认全部) --sport/dport 端口号(源端口/目标端口,不选默认全部) -p 协议(不选默认全部)  -j 处理动作


**图片转自小萝卜的博客

  • 示例
[root@localhost ~]# iptables -t filter -nvL     //查看filter表上的所有规则信息,-n 显示ip地址,-v显示详细信息
Chain INPUT (policy ACCEPT 167 packets, 16397 bytes)pkts bytes target     prot opt in     out     source               destination         0     0 DROP       all  --  *      *       192.168.136.135      0.0.0.0/0           0     0 DROP       all  --  *      *       192.168.136.0        0.0.0.0/0           Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)pkts bytes target     prot opt in     out     source               destination         Chain OUTPUT (policy ACCEPT 79 packets, 8989 bytes)pkts bytes target     prot opt in     out     source               destination         0     0 DROP       all  --  *      *       192.168.136.0        0.0.0.0/0           [root@localhost ~]# iptables -F        //清空表上的所有规则,没有选表,默认为filter表
[root@localhost ~]# iptables -nvL  //查看filter上的所有规则
Chain INPUT (policy ACCEPT 6 packets, 432 bytes)pkts bytes target     prot opt in     out     source               destination         Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)pkts bytes target     prot opt in     out     source               destination         Chain OUTPUT (policy ACCEPT 4 packets, 448 bytes)pkts bytes target     prot opt in     out     source               destination         [root@localhost ~]# iptables -nvL --line-numbers //查看全部规则详细显示,并且带上序号字段含义pkts:对应规则匹配到的报文个数。bytes:对应规则匹配到的报文大小总和。target :前面提到的target的特殊值,动作,规则匹配成功后要采取的措施。prot – 协议:tcp, udp, icmp等opt:规则对应的选项。in:数据包由哪个接口流入,(可以设置通过哪块网卡流入的报文,需要匹配当前规则)out:数据包由哪个接口流出,(可以设置通过哪块网卡流出的报文,需要匹配当前规则)source – 数据包的源IP地址,或网段destination – 数据包的目标IP地址,或网段

三、扩展匹配条件(模块匹配)

  • 用法:-m 加模块名 加模块对应选项

常见模块

3.1iprange模块

指定ip地址段,使用该模块就代替了 -s/d 选项

选项 说明
- -src-range 后面跟源地址范围
- -dst-range 后面跟目标地址范围
  • 示例
[root@localhost ~]# iptables -I INPUT -m iprange --src-range 192.168.136.127-192.168.136.254 -j DROP        //在filter表的INPUT链上对来自192.168.136.127-192.168.136.254这个网段报文全部丢弃DROP
[root@localhost ~]# iptables -nvL
Chain INPUT (policy ACCEPT 6 packets, 432 bytes)pkts bytes target     prot opt in     out     source               destination         0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           source IP range 192.168.136.127-192.168.136.254 Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)pkts bytes target     prot opt in     out     source               destination         Chain OUTPUT (policy ACCEPT 3 packets, 568 bytes)pkts bytes target     prot opt in     out     source               destination         [root@localhost ~]# ping 192.168.136.128 //从192.168.136.130主机无法ping通上面有规则的主机
PING 192.168.136.128 (192.168.136.128) 56(84) bytes of data.
^C
--- 192.168.136.128 ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 3000ms

3.2time模块

根据时间段匹配报文,报文到达的时间在指定范围内,匹配成功,符合规则

选项 说明
- -timestart 起始时间,指定时间开始,格式:年-月-日 时:分:秒
- -timestop 结束时间,默认从当前时间开始,格式:年-月-日 时:分:秒
- -weekdays 后面跟数字,多个用逗号隔开,指定星期几
- -monthdays 后面跟数字,多个用逗号隔开,指定几月
  • 示例
[root@localhost ~]# iptables -I OUTPUT -p tcp --dport 80 -m time --timestart 08:55:00 --timestop 17:00:00 -j REJECT //从08:55:00到17:00:00从80端口过来的报文拒绝访问
[root@localhost ~]# iptables -t filter -I OUTPUT -p TCP --dport 8080 -m time --datestart 2019-04-20 --datestop 2019-04-21 -j REJECT    //从2019-04-20到2019-04-21从8080端口过来的报文拒绝女访问
[root@localhost ~]# iptables -nvL --line-numbers   //查看全部规则详细情况,并且带上序号
Chain INPUT (policy ACCEPT 8 packets, 576 bytes)
num   pkts bytes target     prot opt in     out     source               destination         Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         Chain OUTPUT (policy ACCEPT 4 packets, 864 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1        0     0 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:8080 TIME starting from 2019-04-20 00:00:00 until date 2019-04-21 00:00:00 reject-with icmp-port-unreachable
2        0     0 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80 TIME from 08:55:00 to 17:00:00 reject-with icmp-port-unreachable 

3.3connlimit模块

链接限制模块,限定每个ip链接服务器端的数量,即对单个ip的并发链接限制,一般和端口、协议配合使用

选项 说明
- -connlimit-above # #为链接上限
- -connlimit-mask # #为网段,以网段限制链接上限,与- -connlimit-above一起使用
  • 示例
[root@localhost ~]# iptables -t filter -I OUTPUT -p TCP --dport 22 -m connlimit --connlimit-above 2 -j REJECT   //从目标22号端口过来的ssh链接遵从tcp协议的最多有两个,多了就拒绝
[root@localhost ~]# iptables -t filter -I OUTPUT -p TCP --dport 22 -m connlimit --connlimit-above 2 --connlimit-mask 24 -j REJECT  //从目标22号端口过来的属于24网段的ssh链接遵从tcp协议的最多有两个,多了就拒绝
[root@localhost ~]# iptables -nvL --line-numbers
Chain INPUT (policy ACCEPT 10 packets, 720 bytes)
num   pkts bytes target     prot opt in     out     source               destination         Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         Chain OUTPUT (policy ACCEPT 6 packets, 896 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1        0     0 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:22 #conn/24 > 2 reject-with icmp-port-unreachable
2        0     0 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:22 #conn/32 > 2 reject-with icmp-port-unreachable 

3.4string模块

指定匹配的字符串。如果报文中包含对应的字符串,匹配成功,符合规则

选项 说明
- -algo 指定匹配字符串的算法,bm或者kmp,必选选项
- - string 指定需要匹配的字符串,字符串用双引号引用
  • 示例
[root@localhost ~]# iptables -t filter -I INPUT -m string --algo kmp --string "bit" -j REJECT //碰到带有“bit”敏感字段的报文全部过滤掉
[root@localhost ~]# iptables -nvL --line-numbers
Chain INPUT (policy ACCEPT 9 packets, 680 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           STRING match "bit" ALGO name kmp TO 65535 reject-with icmp-port-unreachable Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         Chain OUTPUT (policy ACCEPT 5 packets, 728 bytes)
num   pkts bytes target     prot opt in     out     source               destination

3.5limit模块

限制报文到达的速率,可以以秒、分钟、小时、天为单位限制

用法

--limit      second/minute/hour/day
10/min      一分钟十个包(平均六秒一个)
10/hour     一小时十个包(平均六分钟一个)
24/day      一天二十四个包(平均一小时一个)
…………
  • 示例
[root@localhost ~]# iptables -t filter -I INPUT -m limit --limit 10/min -j ACCEPT   //一分钟允许通过十个
[root@localhost ~]# iptables -t filter -A INPUT -p icmp -j REJECT  //将icmp协议的报文全部丢弃
[root@localhost ~]# iptables -nvL --line-numbers
[root@localhost ~]# iptables -nvL --line-numbers
Chain INPUT (policy ACCEPT 1 packets, 104 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1       48  3840 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           limit: avg 10/min burst 5
2        0     0 REJECT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-port-unreachable Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         Chain OUTPUT (policy ACCEPT 3 packets, 488 bytes)
num   pkts bytes target     prot opt in     out     source               destination*/在INPUT链上的规则有顺序,先是一分钟十个包,满足条件先执行允许通过,不满足条件不做处理交给下一条规则,下一条规则是icmp协议的包不允许通过[root@localhost ~]# ping 192.168.136.128
PING 192.168.136.128 (192.168.136.128) 56(84) bytes of data.
64 bytes from 192.168.136.128: icmp_seq=1 ttl=64 time=1.74 ms
64 bytes from 192.168.136.128: icmp_seq=2 ttl=64 time=0.885 ms
64 bytes from 192.168.136.128: icmp_seq=3 ttl=64 time=0.339 ms
64 bytes from 192.168.136.128: icmp_seq=4 ttl=64 time=0.338 ms
64 bytes from 192.168.136.128: icmp_seq=5 ttl=64 time=0.524 ms
From 192.168.136.128 icmp_seq=6 Destination Port Unreachable
64 bytes from 192.168.136.128: icmp_seq=7 ttl=64 time=0.322 ms
From 192.168.136.128 icmp_seq=8 Destination Port Unreachable
From 192.168.136.128 icmp_seq=9 Destination Port Unreachable
From 192.168.136.128 icmp_seq=10 Destination Port Unreachable
From 192.168.136.128 icmp_seq=11 Destination Port Unreachable
From 192.168.136.128 icmp_seq=12 Destination Port Unreachable
64 bytes from 192.168.136.128: icmp_seq=13 ttl=64 time=1.37 ms
From 192.168.136.128 icmp_seq=14 Destination Port Unreachable
From 192.168.136.128 icmp_seq=15 Destination Port Unreachable
From 192.168.136.128 icmp_seq=16 Destination Port Unreachable
From 192.168.136.128 icmp_seq=17 Destination Port Unreachable
From 192.168.136.128 icmp_seq=18 Destination Port Unreachable
64 bytes from 192.168.136.128: icmp_seq=19 ttl=64 time=0.290 ms
From 192.168.136.128 icmp_seq=20 Destination Port Unreachable
From 192.168.136.128 icmp_seq=21 Destination Port Unreachable
From 192.168.136.128 icmp_seq=22 Destination Port Unreachable
From 192.168.136.128 icmp_seq=23 Destination Port Unreachable
From 192.168.136.128 icmp_seq=24 Destination Port Unreachable
64 bytes from 192.168.136.128: icmp_seq=25 ttl=64 time=0.774 ms
*/使用其他主机向该主机发送icmp包时可以清楚看到每个五秒通过一个
前五行是在创建令牌,默认为五个,可以修改

3.6tcp-flags模块

该模块也属于tcp模块,匹配tcp报文的头部的标志位,然后根据标志位的实际情况实现访问控制的功能

在网络部分我们讲了三次握手,四次挥手,讲了TCP的包头,这里主要指tcp包头中的标志SYN,ACK,FIN,RST,URG,PSH。
他的匹配规则是:“SYN,ACK,FIN,RST,URG,PSH SYN”,怎么来理解,我们可以把这串字符拆成两部分去理解,第一部为"SYN,ACK,FIN,RST,URG,PSH",第二部分为"SYN"。
第一部分表示:我们需要匹配报文tcp头中的哪些标志位,那么上例的配置表示,我们需要匹配报文tcp头中的6个标志位,这6个标志位分别为为"SYN、ACK、FIN、RST、URG、PSH",我们可以把这一部分理解成需要匹配的标志位列表。
第二部分表示:第一部分的标志位列表中,哪些标志位必须为1,上例中,第二部分为SYN,则表示,第一部分需要匹配的标志位列表中,SYN标志位的值必须为1,其他标志位必须为0。

语法格式: -p tcp -m tcp - -tcp-flags SYN,ACK,FIN,RST,URG,PSH SYN/SYN,ACK(选择前面可以匹配到的标志位)

  • 示例
[root@localhost ~]# iptables -t filter -I INPUT -p tcp -m tcp --dport 22 --tcp-flags SYN,ACK,FIN,RST,URG,PSH SYN -j REJECT  //匹配在第一次握手的时候就给拒绝
[root@localhost ~]# iptables -t filter -I INPUT -p tcp -m tcp --dport 22 --tcp-flags SYN,ACK,FIN,RST,URG,PSH SYN,ACK -j REJECT //匹配在第二次握手的时候给拒绝
[root@localhost ~]# iptables -nvL --line-numbers
Chain INPUT (policy ACCEPT 8 packets, 576 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1        0     0 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:22 flags:0x3F/0x12 reject-with icmp-port-unreachable
2        0     0 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:22 flags:0x3F/0x02 reject-with icmp-port-unreachable Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         Chain OUTPUT (policy ACCEPT 4 packets, 704 bytes)
num   pkts bytes target     prot opt in     out     source               destination上述命令中的可以匹配到的条件SYN,ACK,FIN,RST,URG,PSH 也可简写为ALL

3.7state模块

可以基于连接追踪功能去查看每一报文当前所处的状态。不论什么协议,客户端第一次访问时,服务器会去内核内存中的追踪表查看他之前是否来过,查不到就证明是第一次来,记录入追踪表,如果查到以前来过就不检查规则,直接允许访问,这称为连接追踪机制。在访问量特别大的场景下,比如负载均衡服务器不建议开启,追踪表最大只能记录6万多的条目,访问数超过就会无法记录出错,导致所有的连接失败

报文的五种状态

状态 说明
ESTABLISHED 已建立的连接
NEW 第一次连接时
RELATED 相关链接
INVALID 无法识别的连接
UNTRACKED raw表上关闭连接追踪功能
  • 示例
[root@localhost ~]# iptables -t filter -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT  //允许已建立的链接和相关链接继续链接
[root@localhost ~]# iptables -t filter -A INPUT -j REJECT  //所有链接全部拒绝
[root@localhost ~]# iptables -nvL --line-numbers
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1       17  1304 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
2        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-port-unreachable Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         Chain OUTPUT (policy ACCEPT 5 packets, 760 bytes)
num   pkts bytes target     prot opt in     out     source               destination         */先匹配第一条规则 保持当前连接和相关链接,然后匹配第二条,不允许任何链接
意思就是除了现在已连接的,其他的链接不允许通过

四、防火墙规则的永久保存

在Linux操作系统中,防火墙的规则都是一次性的,下次重启后就会消失,为了防止重启后带来的问题可以先将规则保存在文件内,在下次重启的时候将规则恢复就可以了

规则的保存与恢复保存service  iptables  save            默认保存在/etc/sysconfig/iptables文件中iptables-save  >  文件路径        也可以重定向到其他文件中恢复iptables-restore  <  文件路径  将文件中保存的规则加载到防火墙中

防火墙规则配置流程

1.清除原有的规则iptables -F
2.查看规则iptables -nvL --line-numbrs
3.添加规则iptables命令
4.保存规则

Centos7

systemctl  stop  firewalld       关闭防火墙
systemctl  disable  firewalld   关闭开机自动启动防火墙
systemctl  start  firewalld     开启防火墙
systemctl  enable  firewalld        开启开机自动启动防火墙

五、示例

iptables常用编写规则

1.清空规则iptables -Fiptables -X
2.在INPUT链上,tcp为ESRANLISHED,RELATED的数据包放行iptables -t filter -I INPUT -p tcp -m state --state ESRANLISHED,RELATED -j ACCEPT
3.在INPUT链上,tcp为NEW的并且端口号为22的数据包放行iptables -t filter -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
4.在OUTPUT链上,tcp为ESRANLISHED,RELATED的数据包放行iptables -t filter -A OUTPUT -p tcp -m state --state ESRANLISHED,RELATED -j ACCEPT
5.INPUT和OUTPUT默认规则为DROPiptables -P INPUT,OUTPUT  DROP
6.打开本地回环地址访问iptables -A INPUT -i lo -j ACCEPTiptables -A OUTPUT -o lo -j ACCEPT
7.不允许其他主机ping本主机iptables -A INPUT -p icmp -j DROPiptables -A INPUT -s 192.168.136.130 -j ACCEPT
8.对主机开放DNS(53端口)的访问iptables -t filter -I INPUT -p tcp -m tcp --dport 53 -j ACCEPTiptables -A INPUT -p all --sport 53 -j ACCEPTiptables -A OUTPUT -p all --dport 53 -j ACCEPT

基本服务规则限制

1.限制ssh服务,每个ip地址最多2个链接iptables -t filter -A INPUT -p tcp -m tcp --dport 22 -m connlimit --connlimit-above 2 -j ACCPET
2.限制web服务(80端口)每个ip地址的最大链接请求数为50,超过则丢弃iptables -t filter -A INPUT -p tcp -m tcp --dport 80 ! -m connlimit --connlimit-above 50 -j DROP

Linux防火墙与iptables命令相关推荐

  1. 重启防火墙(iptables)命令#service iptable restart失效

    重启防火墙(iptables)命令#service iptable restart失效 #service iptable restart Redirecting to /bin/systemctl r ...

  2. Linux防火墙:iptables禁IP与解封IP常用命令

    转载:https://www.baidu.com/link?url=SJWsJbXb_P8s9tK4BGIwdAJD5aH1c5_eq5IHIiiqW6kUBBmH4zmnx4BNqXdmuxWz1T ...

  3. 【Linux防火墙】iptables基础用法及高级用法

    文章目录 iptables命令简介 1.语法 2.iptables命令选项输入顺序 3.选项讲解 4.基础用法示例 1.清除规则相关操作 2.查看相关规则及序列号 3.通过查看后的序列号删除规则 4. ...

  4. Linux防火墙之iptables

    文章目录 一.什么是防火墙 二.防火墙分类 1.硬件防火墙 2.软件防火墙 三.iptables详解 1.netfilter和iptables(命令) 2.四表五链 3.iptables匹配过程 4. ...

  5. Linux 防火墙之iptables

    文章目录 引言 一.iptables 概述 1.1 netfilter/iptables关系 1.2 iptables 的四表五链 二.iptables 配置 2.1 iptables 安装 2.2 ...

  6. linux防火墙reject,Iptables 扩展动作 Reject Mark

    防火墙在做信息滤决定时,有一套遵循和组成的规则,这些规则存储在专用的信息滤表中,而这些表集成在Linux内核中.在信息滤表中,规则被分组放在我们所谓的链(Chain)中.Iptables组件是一种工具 ...

  7. linux 防火墙加固,Iptables 加固服务器安全

    防火墙在做信息滤决定时,有一套遵循和组成的规则,这些规则存储在专用的信息滤表中,而这些表集成在Linux内核中.在信息滤表中,规则被分组放在我们所谓的链(Chain)中.Iptables组件是一种工具 ...

  8. Linux 防火墙工具--iptables

    iptables介绍 iptables是基于内核的防火墙,功能非常强大,iptables内置了"三表五链" 三张表 1.filter     定义允许或者不允许的 2.nat    ...

  9. linux防火墙知识,Iptables防火墙 基础知识

    Iptables防火墙 基础知识 1 位置 使用vim /usr/sysconfig/iptables 2 启动.关闭.保存 service iptables stop service iptable ...

最新文章

  1. mysql php 封装类_市面上几款常见的微信开发框架对比(PHP和JAVA)
  2. 算法提高课-图论-单源最短路的综合应用-AcWing 342. 道路与航线:最短路dijkstra、拓扑排序 、综合题、好题
  3. 实战:配置DNS客户端域名搜索后缀构造域名进行域名解析
  4. 贺TDSQL喜提286万QPS!本文回顾了它的十年锻造之路
  5. VS2010调试快捷键
  6. mt4 指标 涨跌幅 颜色k线_通达信精选指标——彩色K线指标
  7. 计算机网络(八)——web的工作原理
  8. 单纯形表的matlab输出,自编MATLAB版单纯性算法 可以列出单纯形表以及其他相关数据...
  9. 第二阶段冲刺之站立会议1
  10. Python中的get和set方法
  11. 搞懂WebRtc,语音社交源码的开发就入门了!
  12. Lambda-Stream应用
  13. 特殊字符的处理 GS RS EOT
  14. “网红直播+电商”是门好生意?直播的商品为什么这么好卖
  15. pwc(普华永道)招聘.net
  16. 安装Office 2016 出现 Office 16 Click-to-Run Extensibility Component
  17. 如何从outlook ost恢复数据(ost导入outlook)
  18. android引用外部字体
  19. 《信息物理融合系统(CPS)设计、建模与仿真——基于 Ptolemy II 平台》——1.4 角色模型...
  20. java把汉字转换成拼音_Java实现汉字转换为拼音

热门文章

  1. R语言使用scatterplot3d包的scatterplot3d函数可视化3D散点图(3D scatter plots)、在3D散点图中添加垂直线和数据点描影、3D图中添加回归平面
  2. R语言使用ggplot2包使用geom_boxplot函数绘制基础分组箱图(输出多个分组、自定义颜色配置)实战
  3. R,python(pandas)以及linux shell 常见命令对比
  4. R语言KEGGREST包
  5. php中htpt,PHP中的HTTP协议
  6. android cpu调度策略_「性能优化3.0」Android线程调度异步方式汇总
  7. 第二章 实验设计的考虑因素
  8. 三代组装软件canu学习笔记
  9. java js关键字_js中的instanceof关键字
  10. java 项目加载dll文件,在eclipse java项目中加载dll文件