Day65-企业级防火墙iptables精讲1

Day65-企业级防火墙iptables精讲1

  • 补充:
  • 1.什么是防火墙?
  • 2.防火墙种类
    • 2.1 商用防火墙介绍
    • 2.2 Linux下防火墙介绍
  • 3.选择何种防火墙?
  • 4.企业级架构最佳防火墙场景
  • 5.学好iptables的技术栈基础
  • 6.Iptables是什么?
  • 7.Iptables企业常用场景
  • 8.Iptables工作流程
  • 9.iptables的表(tables)和链(chains)
  • 10.iptables工作原理见图
  • 11.iptables实践:
  • 12.安装iptables web01
  • 13.启动和查看iptables状态
  • 14.检查内核模块:
  • 15.iptables命令使用
    • 15.1 需求1:禁止所有主机访问22端口:
    • 15.2 需求2:禁止对10.0.0.1(vnet8)访问
    • 15.3 需求3:只允许办公网的IP段访问服务器SSH。
    • 15.4 需求4:封单个IP:
    • 15.5 需求5:自己的人可以ping,其他人不能ping
    • 15.6 需求6:让10.0.0.7和SSH客户端(10.0.0.1)服务器可以Ping,其它的不能Ping
  • 16. 企业级防护墙项目:部署一个最安全的企业级防火墙(案例)
  • 17. 生产场景维护iptables:

补充:

1.部署bbs产品(www.discuz.net)
URL实现伪静态,理解rewrite规则。

# 论坛主题列表页	{fid}, {page}	 forum-{fid}-{page}.html# 帖子列表页:
http://bbs.etiantian.org/forum.php?mod=forumdisplay&fid=2# 伪静态:
http://bbs.etiantian.org/forum-2-1.html
rewrite ^([^\.]*)/forum-(\w+)-([0-9]+)\.html$  # \w 任意单词字符 [_0-9a-zA-Z]$1/forum.php?mod=forumdisplay&fid=$2&page=$3 last;
http://bbs.etiantian.org/forum.php?mod=forumdisplay&fid=2&page=1# 帖子页:
http://bbs.etiantian.org/forum.php?mod=viewthread&tid=1&extra=page%3D1# 论坛主题内容页	{tid}, {page}, {prevpage} thread-{tid}-{page}-{prevpage}.htmlhttp://bbs.etiantian.org/thread-1-1-1.html
rewrite ^([^\.]*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=viewthread&tid=$2&extra=page%3D$4&page=$3 
http://bbs.etiantian.org/forum.php?mod=viewthread&tid=1&extra=page%3D1&page=1rewrite ^([^\.]*)/forum-(\w+)-([0-9]+)\.html$ $1/forum.php?mod=forumdisplay&fid=$2&page=$3 last;
rewrite ^([^\.]*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=viewthread&tid=$2&extra=page%3D$4&page=$3 last;
if (!-e $request_filename) {return 404;
}

链接: http://www.netfilter.org/projects/iptables/index.html
iptables哲学:
学习防火墙的最高境界就是不使用防火墙,服务器还能更安全! ——老男孩
使用iptables的最高境界,永远都不使用哲学
1)服务器不给外网IP。
2)大并发网站不开Iptables,使用硬件防火墙。

1.什么是防火墙?

放在企业网站或应用的前部,用来阻挡异常攻击、渗透,保护企业网站或应用的安全
在这里插入图片描述

2.防火墙种类

2.1 商用防火墙介绍

​ 华为
​ 深信服
​ 思科
​ H3C
​ Juniper
​ 天融信
​ 飞塔
​ 网康
​ 绿盟科技
​ 金盾

2.2 Linux下防火墙介绍

ipfwadm,ipchains,是iptables祖先。
iptables火了20年。。
firewalld
在这里插入图片描述

3.选择何种防火墙?

有条件选择硬件无疑
iptables和firewalld

4.企业级架构最佳防火墙场景

架构在网站最前端上联口交换机前。

5.学好iptables的技术栈基础

1.OSI7层模型以及不同层对应常用协议?
2.熟练掌握TCP/IP三次握手,四次断开原理。
3.熟悉TCP头及11种状态转换。
4.熟练掌握OSI7层模型封包解包流程。
5.熟练掌握局域网通信原理及广域网通信原理。
6.常用的服务端口要了如指掌。
推荐阅读:【tcp/ip协议卷1】

6.Iptables是什么?

是Linux下自带(C7以前)的开源的一款免费的基于包过滤的防火墙工具,
可以对流入、流出、流经服务器的数据包进行精细的控制
Iptables主要工作在OSI七层的二、三、四层,如果重新编译内核,
Iptables也可以支持7层控制(squid代理+iptables)。

7.Iptables企业常用场景

1、场景1:做主机防火墙功能(filter表的INPUT链)。
2、场景2:局域网共享上网,做网关(nat表的POSTROUTING链)。半个路由器,NAT功能,zebra+squid。
3、场景3:端口及IP映射(nat表的PREROUTING链),硬防的NAT功能。
4、场景4:实现IP一对一映射(DMZ)。

8.Iptables工作流程

iptables是采用数据包过滤机制工作的,所以它会对请求的数据包的包头数据进行分析,并根据我们预先设定的规则进行匹配来决定是否可以进入主机。
在这里插入图片描述

iptables工作流程小结:
1、防火墙是一层层过滤的。实际是按照配置规则的顺序从上到下,从前到后进行过滤的。
2、如果匹配上了规则,即明确表明是阻止还是通过,此时数据包就不在向下匹配新规则了。
3、如果所有规则中没有明确表明是阻止还是通过这个数据包,也就是没有匹配上规则,向下进行匹配,
直到匹配默认规则得到明确的阻止还是通过。
4、防火墙的默认规则是对应链的所有的规则执行完以后才会执行的(最后执行的规则)。
问题:有人恶意刷网站,如何封IP?

9.iptables的表(tables)和链(chains)

链:对进、出、经过起一个称呼区别下就叫表
表:按照功能区分,起一个称呼

包含关系
iptables(用户空间)==>netfilter(内核空间)
==>4个表(tables)===>5个链=(chains)==>规则(policy)

5表:
filter(作用:主机防火墙) ,iptables默认的表。*****
nat(作用:端口或IP映射或共享上网)*****
mangle(配置路由标记ttl\tos\mark),忽略
raw(忽略)
security:(忽略)

不同的表包含的链:
filter:INPUT,OUTPUT,FORWARD *****
NAT:POSTROUTING,PREROUTING,OUTPUT *****
mangle:INPUT,OUTPUT,FORWARD,POSTROUTING,PREROUTING
raw(忽略)
security:(忽略)
帮助:man iptables

链:
*INPUT:进入主机的数据包。主机防火墙(filter表的INPUT链)
OUTPUT:流出主机的数据包。
FORWARD:流经主机的数据包。

*PREROUTING:进入服务器最先经过的链,NAT端口或IP映射(导向)。(nat表的PREROUTING链)
*POSTROUTING:在流出服务器最后经过的链,NAT共享上网。局域网共享上网(nat表的POSTROUTING链)
在这里插入图片描述

面试题:精通4表5链及工作原理流程

10.iptables工作原理见图

Centos6 iptables()
Centos7 firewalld(用的很少)
在这里插入图片描述

在这里插入图片描述

11.iptables实践:

链接: https://www.cnblogs.com/fengzhilaoling/p/12454424.html
iptables,是Linux下自带的一款免费的基于包过滤的防火墙工具,
可以对流入、流出、流经服务的数据包进行精细的控制,而在centos7中将iptables给取消掉了,我们需要自行安装

12.安装iptables web01

1)关闭selinux
不关闭selinux,iptables不读取配置文件

# 临时关闭selinux
setenforce 0# 查看selinuxgetenforce
## Permissive# 永久关闭
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config #修改完成后需要重启才能生效

2)关闭firewalld并关闭开机自启
centos7中默认的防火墙是firewalld,使用iptables需要先关闭firewalld防火墙

#关闭防火墙
systemctl stop firewalld#关闭开机自启
systemctl disable firewalld#查看防火墙状态
systemctl status firewalld

3)安装iptables

rpm -qa iptables iptables-services
yum install iptables-services -y[root@web01 ~]# rpm -qa iptables iptables-services
iptables-services-1.4.21-35.el7.x86_64
iptables-1.4.21-35.el7.x86_64

13.启动和查看iptables状态

[root@web01 ~]# systemctl start iptables
[root@web01 ~]# systemctl enable iptables
[root@web01 ~]# cat /etc/sysconfig/iptables
# sample configuration for iptables service
# you can edit this manually or use system-config-firewall
# please do not ask us to add additional ports/services to this default configuration
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMITiptables -L -n 或iptables -L -n -v -x 

查看启动状态命令:

iptables -nL --line-number
-n            #<==以数字的形式显示规则
-L            #<==列表链里的所有规则--line-number #<==打印规则序号
-t 指定表(default: `filter')

14.检查内核模块:

lsmod |egrep "nat|filter|ip"
[root@web01 ~]# lsmod |egrep "nat|filter|ip"
ipt_REJECT             12541  0
nf_reject_ipv4         13373  1 ipt_REJECT
nf_conntrack_ipv4      19149  0
nf_defrag_ipv4         12729  1 nf_conntrack_ipv4
nf_conntrack          143411  2 xt_conntrack,nf_conntrack_ipv4
iptable_filter         12810  0
ip_tables              27126  1 iptable_filter[root@web02 ~]# lsmod |grep ip
ip_tables              27126  0  ###真正处理规则的。

加载如下模块到linux内核

modprobe ip_tables
modprobe iptable_filter
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ipt_state[root@web01 ~]# cat /etc/rc.local 
modprobe ip_tables
modprobe iptable_filter
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ipt_state[root@web01 ~]# lsmod |egrep "nat|filter|ipt"
nf_nat_ftp             12809  0 
nf_conntrack_ftp       18478  1 nf_nat_ftp
iptable_nat            12875  0 
nf_nat_ipv4            14115  1 iptable_nat
nf_nat                 26583  2 nf_nat_ftp,nf_nat_ipv4
nf_conntrack          139264  6 nf_nat_ftp,nf_nat,xt_state,nf_nat_ipv4,nf_conntrack_ftp,nf_conntrack_ipv4
iptable_filter         12810  0 
ip_tables              27126  2 iptable_filter,iptable_nat
libcrc32c              12644  3 xfs,nf_nat,nf_conntrack[root@web01 ~]# lsmod |egrep "nat|filter|ip"
nf_nat_ftp             12809  0
nf_conntrack_ftp       18448  1 nf_nat_ftp
iptable_nat            12875  0
nf_nat_ipv4            14115  1 iptable_nat
nf_nat                 26583  2 nf_nat_ftp,nf_nat_ipv4
ipt_REJECT             12541  0
nf_reject_ipv4         13373  1 ipt_REJECT
nf_conntrack_ipv4      19149  1
nf_defrag_ipv4         12729  1 nf_conntrack_ipv4
nf_conntrack          143411  7 nf_nat_ftp,nf_nat,xt_state,nf_nat_ipv4,xt_conntrack,nf_conntrack_ftp,nf_conntrack_ipv4
iptable_filter         12810  0
ip_tables              27126  2 iptable_filter,iptable_nat
libcrc32c              12644  3 xfs,nf_nat,nf_conntrack

15.iptables命令使用

iptables -h
table 表
chain 链
rule 规则

[root@web01 ~]# iptables -h
iptables v1.4.21
Usage: iptables -[A] chain rule-specification [options] # 添加规则到链iptables -I chain [rulenum] rule-specification [options] # 插入规则到链iptables -D chain rulenum [options] # 根据规则号删除规则iptables -[FZ] [chain] [options]   # 清除规则清除计数器iptables -[X] chain                # 删除用户自定义的链。iptables -P chain target [options] # 针对链设置默认规则iptables -h                        # 帮助
Commands:
Either long or short options are allowed.--append  -A chain	          # 添加规则到链--delete  -D chain	          # 删除规则从链里--delete  -D chain rulenum      # 根据规则号删除--insert  -I chain [rulenum]    # 插入规则默认到第一条--list    -L [chain [rulenum]]  # 列表规则--flush   -F [chain]		      # 清空所有规则--zero    -Z [chain [rulenum]]  # 计数器--policy  -P chain target       # 改默认规则Options:
--protocol	-p proto	             # 针对协议过滤,例如`tcp'
--source	-s address[/mask][...]   # 基于源地址
--destination -d address[/mask][...]  # 基于目的地址
--in-interface -i input name[+]       # 指定进入接口
--jump	-j target                     # 跳转
--numeric	-n	                      # 数字输出地址和端口
--out-interface -o output name[+]     # 指定出去接口
--table	-t table	                  # 指定表(default: `filter')
--line-numbers	                      # 显示规则号

命令:

iptables [-t table] -A chain rule-specification
iptables [-t table] -I chain [rulenum] rule-specification
iptables [-t table] -D chain rulenum   #<==根据规则号删除。
iptables [-t table] -D chain rule-specification

注释:

-t  # 指定表d(efault: `filter')
-A  #<==把规则添加到指定的链上,默认添加到最后一行。
-I  #<==插入规则到指定的链上,默认插入到第一行(封IP)。
-D  #<==删除链上的规则

根据规则号删除:

iptables -D INPUT 4 #<==4是规则号。
-F #<==清除一个链或所有链上的规则
-Z #<==链的记数器清零
-X #<==删除用户自定义的链。

实践:针对默认的表filter操作

[root@web01 ~]# iptables -Z
[root@web01 ~]# iptables -X
[root@web01 ~]# iptables -F
[root@web01 ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination 

15.1 需求1:禁止所有主机访问22端口:

[root@web02 ~]# iptables -t filter -A INPUT -p tcp --dport 22 -j DROP
# 规则注释:
-p       #<==指定过滤的协议-p(tcp,udp,icmp,all)
--dport  #<==指定目标端口(用户请求的端口)。
-j       #<==对规则的具体处理方法(ACCEPT,DROP,REJECT,SNAT,DNAT)
--sport	 #<==指定源端口。
# 恢复,从虚拟机平台进入,执行
[root@web01 ~]# iptables -nL
[root@web01 ~]# iptables -nL --line-numbers
[root@web01 ~]# iptables -D INPUT 1

15.2 需求2:禁止对10.0.0.1(vnet8)访问

[root@web01 ~]# iptables -I INPUT -p tcp -s 10.0.0.1 -i eth0 -j DROP
[root@web01 ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
DROP       tcp  --  10.0.0.1             0.0.0.0/0         ####增加的规则    

取反:

[root@web01 ~]# iptables -A INPUT -p tcp ! -s 10.0.0.1 -i eth0 -j DROP
-s       #<==指定源地址或网段(10.0.0.0/24)。 ! 取反。
-d       #<==指定目的地址(nat表prerouting)。
-i       #<==进入的网络接口(eth0,eth1)。
-o       #<==出去的网络接口(eth0,eth1)。

15.3 需求3:只允许办公网的IP段访问服务器SSH。

iptables -I INPUT -p tcp -s 10.0.0.0/24 -i eth0 -j ACCEPT
iptables -I INPUT -p tcp -s 203.81.19.0/24 -i eth0 -j ACCEPT

办公网地址:10.0.0.0/24
所有机房公网局域网地址:203.81.19.0/24

15.4 需求4:封单个IP:

iptables -I INPUT -p tcp -s 10.0.0.1 -j DROP

为什么要封单个IP?

[root@web01 ~]# netstat -an|awk '/^tcp/'|grep -i est|wc -l
4
[root@web01 ~]# netstat -an|awk '/^tcp/'|grep -i est|awk -F "[: ]+" '{print $6}'|sort|uniq -c|head -10
4 10.0.0.1

如果第一列连接数大于100,把第二列封了
shell项目

匹配端口范围:

iptables -I INPUT -p tcp -m multiport --dport 21,23,24,80,3306 -j DROP #同时封21,23,24,80,3306端口
iptables -I INPUT -p tcp --dport 23:8809 -j DROP ##从23端口到8809端口

匹配ICMP类型

iptables -A INPUT -p icmp --icmp-type 8
iptables -A INPUT -p icmp --icmp-type 8 -j DROP

ICMP:
链接: http://www.cnitblog.com/yang55xiaoguang/articles/59581.html

内核参数:禁止PING

net.ipv4.icmp_echo_ignore_all=0

15.5 需求5:自己的人可以ping,其他人不能ping

默认规则是禁止的:

iptables -A INPUT -p icmp -s 192.168.1.0/24 --icmp-type 8 -j ACCEPT

15.6 需求6:让10.0.0.7和SSH客户端(10.0.0.1)服务器可以Ping,其它的不能Ping

iptables -I INPUT -p icmp --icmp-type 8 -s 10.0.0.51 -j ACCEPT
iptables -I INPUT -p icmp ! -s 10.0.0.1 --icmp-type 8 -j DROP

是有顺序的
匹配上:
1.丢弃
2.通过

匹配网络状态

-m state --stateNEW:已经或将启动新的连接ESTABLISHED:已建立的连接RELATED:正在启动的新连接INVALID:非法或无法识别的	

#允许关联的状态包(ftp协议)

iptables -A INPUT  -m state --state ESTABLISHED,RELATED -j ACCEPT

限制指定时间包的允许通过数量及并发数

-m limit --limit n/{second/minute/hour}:

指定时间内的请求速率"n"为速率,后面为时间分别为:秒、分、时

iptables -I INPUT -p icmp --icmp-type 8 -m limit --limit 6/min -j DROP

–limit-burst [n]
在同一时间内允许通过的请求"n"为数字,不指定默认为5

iptables -I INPUT -s 10.0.0.0/24 -p icmp --icmp-type 8 -m limit --limit 6/min --limit-burst 2 -j ACCEPT

链接: http://blog.csdn.net/gnicky/article/details/51334793

16. 企业级防护墙项目:部署一个最安全的企业级防火墙(案例)

1)两种思想:针对默认规则而言。
逛公园:黑名单 #部署企业网关
1、默认规则默认是允许的状态。
2、看谁不顺眼禁止。

看电影:白名单 更安全。 主机防火墙
1、默认规则默认是不允许的状态。
2、看谁顺眼让他通过。

看电影的思想更安全。部署主机防火墙 清一色看电影模式。
部署主机防火墙默认禁止模式

实战部署:
1)各种清零

[root@web02 ~]# iptables -F
[root@web02 ~]# iptables -X
[root@web02 ~]# iptables -Z

2)允许自己的网段及22端口通过。

[root@web02 ~]# iptables -A INPUT -s 10.0.0.0/24 -j ACCEPT
[root@web02 ~]# iptables -A INPUT -s 203.81.18.0/24 --dport 22 -j ACCEPT
[root@web02 ~]# iptables -A INPUT -p tcp --dport 22 -j ACCEPT ##演示,工作不用。

3)设置默认规则

[root@web02 ~]# iptables -P INPUT DROP
[root@web02 ~]# iptables -P FORWARD DROP
[root@web02 ~]# iptables -P OUTPUT ACCEPT
[root@web01 ~]# iptables -nL
Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  10.0.0.0/24          0.0.0.0/0           
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22Chain FORWARD (policy DROP)
target     prot opt source               destination         Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination 

4)设置其他允许

[root@web02 ~]# iptables -A INPUT -i lo -j ACCEPT
[root@web02 ~]# iptables -A INPUT -p tcp -m multiport --dport 80,443 -j ACCEPT
[root@web02 ~]# iptables -A INPUT -s 172.16.1.0/24 -j ACCEPT
[root@web02 ~]# iptables -A INPUT  -m state --state ESTABLISHED,RELATED -j ACCEPT

到目前为止,所有的操作都只在内存中生效。

操作过的命令集合:

iptables -F
iptables -X
iptables -Z
iptables -A INPUT -s 10.0.0.0/24 -j ACCEPT
iptables -A INPUT -s 203.81.18.0/24 --dport 22 -j ACCEPT
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -nL
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp -m multiport --dport 80,443 -j ACCEPT
iptables -A INPUT -p icmp -s 10.0.0.0/24 -m icmp --icmp-type any -j ACCEPT
iptables -A INPUT -s 172.16.1.0/24 -j ACCEPT
iptables -A INPUT  -m state --state ESTABLISHED,RELATED -j ACCEPT

扫描测试最佳方法:使用云主机部署,用笔记本虚拟机扫描

[root@db01 ~]# nmap 10.0.0.7 -p 1-10000
Starting Nmap 6.40 ( http://nmap.org ) at 2021-08-05 18:15 CST
Nmap scan report for 10.0.0.7
Host is up (0.00020s latency).
Not shown: 9996 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
3306/tcp open  mysql
MAC Address: 00:0C:29:16:5F:D9 (VMware)

永久生效:/etc/sysconfig/iptables

[root@web01 ~]# iptables-save >/etc/sysconfig/iptables
[root@web01 ~]# cat /etc/sysconfig/iptables
# Generated by iptables-save v1.4.21 on Thu Aug  5 18:21:28 2021
*nat
:PREROUTING ACCEPT [14048:622306]
:INPUT ACCEPT [10215:450635]
:OUTPUT ACCEPT [59:4581]
:POSTROUTING ACCEPT [59:4581]
COMMIT
# Completed on Thu Aug  5 18:21:28 2021
# Generated by iptables-save v1.4.21 on Thu Aug  5 18:21:28 2021
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [85:6676]
-A INPUT -s 10.0.0.0/24 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m multiport --dports 80,443 -j ACCEPT
-A INPUT -s 10.0.0.0/24 -p icmp -m icmp --icmp-type any -j ACCEPT
-A INPUT -s 172.16.1.0/24 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
COMMIT
# Completed on Thu Aug  5 18:21:28 2021

17. 生产场景维护iptables:

封掉一个IP,封掉端口
1、日常改/etc/sysconfig/iptables配置,添加到你想要的位置永久生效

-A INPUT -p tcp -m tcp --dport 3306 -j DROP
#封掉规则,要放在里面其他允许规则的上面才能生效。
#允许规则,要放在里面其他允许规则上面才能生效。
#重新加载:systemctl reload iptables

2、临时封Ip(-I),重启就没了。

iptables -I INPUT -s 203.71.78.10 -j DROP

3、常用的规则放在前面生效
把防火墙规则写成脚本:

#!/bin/bash
#this is a server firewall created by  oldboy  17:03 2006-7-26
#updated by oldboy on 10:30 2009-6-23
#http://blog.etiantian.org
#qq:49000448
#define variable PATH
IPT=/sbin/iptables#Remove any existing rules
$IPT -F
$IPT -X
$IPT -Z#setting default firewall policy
$IPT --policy OUTPUT ACCEPT
$IPT --policy FORWARD DROP
$IPT -P INPUT DROP#setting for loopback interface
$IPT -A INPUT -i lo -j ACCEPT#setting access rules
#one,ip access rules,allow all the ips of 
$IPT -A INPUT -s 202.81.17.0/24 -p all -j ACCEPT
$IPT -A INPUT -s 202.81.18.0/24 -p all -j ACCEPT
$IPT -A INPUT -s 124.43.62.96/27 -p all -j ACCEPT
$IPT -A INPUT -s 192.168.1.0/24 -p all -j ACCEPT
$IPT -A INPUT -s 10.0.0.0/24 -p all -j ACCEPT#icmp
$IPT -A INPUT -p icmp -m icmp --icmp-type any -j ACCEPT#others RELATED
$IPT -A INPUT  -m state --state ESTABLISHED,RELATED -j ACCEPT

重点:
1、iptables包过滤流程。
2、iptables4表5链作用和关系。
3、iptables工作原理(4表5链)。
4、iptables常用命令参数。
5、部署一个企业级主机防火墙案例。

??
此时其它表和链什么状态?

部署iptables防火墙的最高境界?
不用防火墙,服务器照样安全。
1、尽可能不给服务器配置外网IP。可以通过代理转发或者通过防火墙映射。
2、并发不是特别大情况再外网IP的环境,要开启iptables防火墙。
如果并发量很大,不能开iptables,影响性能,买硬件防火墙。
其他链接: http://edu.51cto.com/course/course_id-772.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/789296.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++的并发世界(三)——线程对象生命周期

0.案例代码 先看下面一个例子&#xff1a; #include <iostream> #include <thread>void ThreadMain() {std::cout << "begin sub thread:" << std::this_thread::get_id()<<std::endl;for (int i 0; i < 10; i){std::cout <&…

海豚调度任务类型Apache SeaTunnel部署指南

Apache DolphinScheduler已支持Apache SeaTunnel任务类型&#xff0c;本文介绍了SeaTunnel任务类型如何创建&#xff0c;任务参数&#xff0c;以及任务样例。 一、Apache SeaTunnel SeaTunnel 任务类型&#xff0c;用于创建并执行 SeaTunnel 类型任务。worker 执行该任务的时…

前端学习<四>JavaScript基础——01-编程语言和JavaScript简介

计算机语言 概念 计算机语言&#xff1a;人与计算机之间通信的语言。它是人与计算机之间传递信息的媒介&#xff0c;它通过特定的语法规则和语义约定&#xff0c;将人类可理解的指令转化为计算机可以执行的机器指令。 计算机程序&#xff1a;就是计算机所执行的一系列的指令…

关联对象介绍

关联对象的作用 在分类里面&#xff0c;不可以直接为分类添加属性 在代理中&#xff0c;不可以直接为代理添加属性 在普通类中&#xff0c;property (assign, nonatomic) int age; 会做三件事&#xff1a; 生成age的成员变量生成age的get、set方法的声明生成age的get、set方…

使用 Docker 部署 Puter 云桌面系统

1&#xff09;Puter 介绍 :::info GitHub&#xff1a;https://github.com/HeyPuter/puter ::: Puter 是一个先进的开源桌面环境&#xff0c;运行在浏览器中&#xff0c;旨在具备丰富的功能、异常快速和高度可扩展性。它可以用于构建远程桌面环境&#xff0c;也可以作为云存储服…

codeforces Edu 142 D. Fixed Prefix Permutations 【思维、字典树求LCP】

D. Fixed Prefix Permutations 题意 给定 n n n 个长度为 m m m 的排列 a 1 , a 2 , . . . a n a_1,a_2,...a_n a1​,a2​,...an​ 定义一个排列 p p p 的 价值 为 最大顺序长度 k k k&#xff1a; p 1 1 , p 2 2 , p 3 3 , . . . p k k p_1 1,p_2 2, p_3 3, ...…

在编程中使用中文到底该不该??

看到知乎上有个热门问题&#xff0c;为什么很多人反对中文在编程中的使用&#xff1f; 这个问题有几百万的浏览热度&#xff0c;其中排名第一的回答非常简洁&#xff0c;我深以为然&#xff1a; 在国内做开发&#xff0c;用中文写注释、写文档&#xff0c;是非常好的习惯&…

【适用于福彩3D和体彩排列3】012路直选代码对照表

在我的第6套算法中&#xff0c;我用自己搭建的AI模型&#xff0c;对012路直选进行了预测&#xff0c;但是由于没有对照表&#xff0c;导致很多朋友无法看懂预测结果。众所周知&#xff0c;对于012路直选&#xff0c;共计27种组合方式。我自己进行了组合分类&#xff0c;并赋予相…

LeetCode 209 长度最小的子数组(滑动窗口,双指针实现)

给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 连续 子数组 [numsl, numsl1, ..., numsr-1, numsr] &#xff0c;并返回其长度。如果不存在符合条件的子数组&#xff0c;返回 0 。 示例 1&#xff1a; 输入&…

[C/C++] -- 二叉树

1.简介 二叉树是一种每个节点最多有两个子节点的树结构&#xff0c;通常包括&#xff1a;根节点、左子树、右子树。 满二叉树&#xff1a; 如果一棵二叉树只有度为0的结点和度为2的结点&#xff0c;并且度为0的结点在同一层上&#xff0c;则这棵二叉树为满二叉树。深度为k&a…

创研杯赛事:激发英语热情,助力人才培养

2024 中国翻译协会年会期间&#xff0c;知名赛事活动平台赛氪承办的“AI 科技时代竞赛与就业”分论坛&#xff0c;于 3 月 30 日下午在长沙圆满落幕。其中值得瞩目的是&#xff0c;第三届”创研杯“大赛也在本次会议上进行了启动。 创研杯赛事由空中英语教室杂志社发起主办&am…

【解决问题】排查linux文件手动删除文件,但是文件标记为deleted,资源未释放

背景&#xff1a; 生产环境我们把程序生成的数据文件手动删除后&#xff0c;但是空间并没有释放&#xff0c;导致硬盘被占用&#xff0c;不够用 问题排查&#xff1a; 1.查看占用文件状态 使用命令&#xff1a; lsof | grep deleted 查看 文件已经删除了&#xff0c;但是都是…

C语言 | Leetcode C语言题解之第5题最长回文子串

题目&#xff1a; 题解&#xff1a; char* longestPalindrome(char* s) {int lenstrlen(s),max0;int p0;for(int i0;i<len;i)//这种是判断奇数回文{int lefti-1,righti1;//left左边&#xff0c;right右边while(left>0&&right<len&&s[left]s[right]){/…

10.图像高斯滤波的原理与FPGA实现思路

1.概念 高斯分布 图像滤波之高斯滤波介绍 图像处理算法|高斯滤波   高斯滤波(Gaussian filter)包含很多种&#xff0c;包括低通、高通、带通等&#xff0c;在图像上说的高斯滤波通常是指的高斯模糊(Gaussian Blur)&#xff0c;是一种高斯低通滤波。通常这个算法也可以用来模…

FME学习之旅---day19

我们付出一些成本&#xff0c;时间的或者其他&#xff0c;最终总能收获一些什么。 如何使用 Esri 模板地理数据库 在学习之初&#xff0c;首先了解什么是Esri模板、如何使用Esri模板以及如何创建Esri模板 有两种类型的 Esri 模板&#xff1a;文件地理数据库 &#xff08;.gd…

环信IM集成教程——Web端UIKit快速集成与消息发送

写在前面&#xff1a; 千呼万唤始出来&#xff0c;环信Web端终于出UIKit了&#xff01;&#x1f389;&#x1f389;&#x1f389; 文档地址&#xff1a;https://doc.easemob.com/uikit/chatuikit/web/chatuikit_overview.html 环信单群聊 UIKit 是基于环信即时通讯云 IM SDK 开…

DLL导出API注意事项

文章目录 问题原则示例一解决方案 示例二解决方法 参考 问题 在 windows 平台下&#xff0c;如果在动态库的接口中使用 std::string 或其它 std 容器&#xff0c;会导致崩溃或其它内存问题&#xff0c;所以一般要求动态库的接口必须是 C 语言实现。 原则 一个原则&#xff1a;…

专题三_二分查找(3)

目录 153. 寻找旋转排序数组中的最小值 解析 题解 LCR 173. 点名 解析 题解 153. 寻找旋转排序数组中的最小值 153. 寻找旋转排序数组中的最小值 - 力扣&#xff08;LeetCode&#xff09; 解析 题解 class Solution { public:int findMin(vector<int>& nums) …

【OpenCV】 基础入门(一)初识 Mat 类 | 通过 Mat 类显示图像

&#x1f680; 个人简介&#xff1a;CSDN「博客新星」TOP 10 &#xff0c; C/C 领域新星创作者&#x1f49f; 作 者&#xff1a;锡兰_CC ❣️&#x1f4dd; 专 栏&#xff1a;【OpenCV • c】计算机视觉&#x1f308; 若有帮助&#xff0c;还请关注➕点赞➕收藏&#xff…

30-ORM:CURD神器GORM包介绍及实战

目前&#xff0c;GitHub上 star数最多的是GORM&#xff0c;它也是当前Go项目中使用最多的ORM。 GORM基础知识介绍 GORM是Go语言的ORM包&#xff0c;功能强大&#xff0c;调用方便。像腾讯、华为、阿里这样的大厂&#xff0c;都在使用GORM来构建企业级的应用。 功能全。使用O…