12.计算机网络---iptables防火墙管理工具

2023-11-13


学习iptables之前,我们需要先了解防火墙是什么呢?iptables又是如何发挥作用的呢?

一.防火墙基础知识

1.1 防火墙是什么?

firewall:对进出系统的数据进行过滤,符合要求的数据,可以放行也可以不放行,也就是对进出的数据进行限制
防火墙主要是对数据包进行分析,包括:帧、IP包、tcp/udp、协议(icmp、arp、http等)
一般情况下,防火墙是不能捕获应用层的包的,但是可以通过打补丁的方式来限制应用层的包

防火墙在计算机网络中类似于一个保安,允许何种数据进出,但是它并不能够防止病毒
防火墙的位置:

  • 公司入口:路由器
  • 重要的服务器集群前面放一个防火墙
  • 服务器上也可以启用防火墙

防火墙过多的坏处?

  • 成本过高
  • 会导致数据延迟(网络的速度会比较慢)

1.2 iptables基础知识

iptables是一个软件,是用户用来传递参数的,它是用户端的程序,实现给内核传递参数。
真正起到防火墙作用的并不是iptables这个软件,而是内核中的netfilter模块。
也就是说,防火墙中的包过滤机制是netfilter模块,管理工具是iptables

内核:是操作系统内部最核心的软件 —>内核在内存里运行,也是一个软件对应的进程
内核负责的事情非常多,所以内核里面分了很多的模块来实现对应的功能。其中netfilter模块是对网络数据进行过滤,对tcp/ip协议的支持
回顾一下内核的作用有哪些?
1.CPU管理—>CPU
2.进程的管理,例如创建一个进程,杀死一个进程,运行进程等
3.内存的管理,例如给哪个进程分配内存空间,回收内存空间等–>内存memory
4.文件系统的管理,例如创建文件,删除文件等—>disk磁盘
5.网络的管理 —>防火墙,netfilter模块—>网卡
6.其他硬件的管理

1.3 netfilter和iptables的关系:

在这里插入图片描述
iptables和netfilter的关系:
user输入参数给iptables,iptables相当于一个中间人,再传递给netfilter
在这里插入图片描述
Linux中iptables和netfilter的具体存放位置:

[root@xieshan ~]# cd /lib/modules/3.10.0-957.el7.x86_64/kernel/net/netfilter/		#内核的具体位置
[root@xieshan netfilter]# ls
[root@xieshan /]# vim /sbin/iptables	#iptables的具体位置

1.4 新型防火墙工具:firewalld

iptables是一个比较老式的防火墙工具,而firewalld是一个比较新式的防火墙工具,需要注意,这两者本质上都还是防火墙管理工具,都还是用来给netfilter传参的
firewalld底层原理还是使用了iptables规则,但是加入了很多新的概念(zone、DMZ),类似于Windows里的防火墙
firewalld的默认规则都是拒绝,而iptables默认规则是允许,这就意味着firewalld需要在每个服务器上设置了才能放行

firewalld与iptables的更多差别可以查看这两篇博客:
firewalld和iptables的具体比较
firewalld和iptables的具体比较

[root@xieshan ~]# service firewalld stop		#背后就是清除所有的iptables规则
Redirecting to /bin/systemctl stop firewalld.service

二.iptables的四表五链

学习四表五链之前,我们先看一张图片:
五虎上将图
正如图片中写的,我们可以将五个链路比喻成三国中的五个角色,这样,四表五链的学习会简单很多。
有了这张图的比喻,接下来我们再正式学习四表五链:

2.1 规则表

规则表:
  具有某一类相似用途的防火墙规则,按照不同处理时机区分到不同的规则链以后,被归置到不同的“表”中
  规则表是规则链的集合
默认的4个规则表
  raw表:确定是否对该数据包进行状态跟踪 --》新连接还是就的连接产生的数据
  mangle表:为数据包设置标记 --》往数据包插入标志
  nat表:修改数据包中的源、目标IP地址或端口 --》snat和dnat相关
  filter表:确定是否放行该数据包(过滤) --》进入应用程序相关
规则表间的优先顺序:raw、mangle、nat、filter(iptables默认的表就是filter表)

2.2 规则链

规则链:
  规则的作用在于对数据包进行过滤或处理,根据处理时机的不同,各种规则被组织在不同的“链”中
  规则链是防火墙规则/策略的集合
默认的5种规则链
  INPUT:处理入站数据包
  OUTPUT:处理出站数据包
  FORWARD:处理转发数据包
  POSTROUTING链:在进行路由选择后处理数据包
  PREROUTING链:在进行路由选择前处理数据包

规则–》规则链–》表
各种规则组成了规则链,各种规则链组成了规则表

规则链间的匹配顺序:
 入站数据:PREROUTING、INPUT
 出站数据:OUTPUT、POSTROUTING
 转发数据:PREROUTING、FORWARD、POSTROUTING
规则链内的匹配顺序:
 按顺序依次进行检查,找到相匹配的规则即停止(LOG策略会有例外)
 若在该链内找不到相匹配的规则,则按该链的默认策略处理

一般我们是在INPUT链和PREROUTING链中设置规则,如果防火墙的范围比较广,就在PREROUTING前面拦住,如果范围比较小就是在INPUT前面

2.3 规则表和规则链之间的关系

这张图片告诉我们不同的规则表中包含哪些链:
在这里插入图片描述
如果你不能很好的记住这张表中规则表与规则链的关系,也没事,在Linux中,我们可以通过命令来查看不同的表中包含哪些链:

[root@xieshan /]# iptables -t raw -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination    
[root@xieshan /]# iptables -t mangle -L
[root@xieshan /]# iptables -t nat -L
[root@xieshan /]# iptables -t filter -L		#通过这条命令可以查看表里面有哪些链

2.4 数据报的过滤匹配流程:

在这里插入图片描述

2.5 小练习

写一个脚本,对于INPUT链,设定以下规则:
 1.允许任何人ping
 2.允许192.168.2.102访问服务器80、22端口
 3.默认规则设置为DROP

[root@xieshan shell-test]# vim iptables.sh 
#!/bin/bash
iptables -F  #清除filter里的所有的链的规则 ,不指定表就是filter表
iptables -t nat -F
#允许icmp协议通过
iptables -t filter -A INPUT  -p icmp -j ACCEPT
#开放80端口给192.168.2.108主机
iptables -A INPUT -p tcp --dport 80 -s 192.168.2.108 -j ACCEPT
#开放22端口给192.168.2.108主机
iptables -A INPUT -p tcp --dport 22 -s 192.168.2.108 -j ACCEPT
#设置filter表的INPUT链默认策策略为DROP
iptables -P INPUT DROP			#如果是脚本,默认规则链放在前面和后面都无所谓;如果是一条一条的敲的话,要放在后面
[root@xieshan shell-test]# bash iptables.sh 
[root@xieshan shell-test]# iptables -t filter -L -n
Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     tcp  --  192.168.2.102        0.0.0.0/0            tcp dpt:80
ACCEPT     tcp  --  192.168.2.102        0.0.0.0/0            tcp dpt:22

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination   

三. iptables的语法

3.1 iptables命令的语法格式

iptables命令的语法格式:
  iptables [-t 表名] 管理选项 [链名] [条件匹配] [-j 目标动作或跳转]
几个注意事项:
  不指定表名时,默认表示filter表
  不指定链名时,默认表示该表内的所有链
  除非设置规则链的缺省策略,否则需要指定匹配策略

3.2 iptables的选项

在这里插入图片描述
在这里插入图片描述
接下来,我们来看一些iptables的使用举例:

[root@xieshan ~]# iptables -t filter -L -v -n --line	#指定filter内的所有链,-L查看所有规则,-v展示详细信息,-n以数字方式显示ip地址和端口号,不进行域名解析,--line显示行号
Chain INPUT (policy DROP 6 packets, 2478 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           
2        0     0 ACCEPT     tcp  --  *      *       192.168.2.102        0.0.0.0/0            tcp dpt:80
3       11   828 ACCEPT     tcp  --  *      *       192.168.2.102        0.0.0.0/0            tcp dpt:22

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 7 packets, 784 bytes)
num   pkts bytes target     prot opt in     out     source               destination          
[root@xieshan shell-test]# iptables -P INPUT ACCEPT	#设置filter表的INPUT链的默认规则为ACCEPT
[root@xieshan shell-test]# iptables -L		#查看filter表的INPUT链的所有规则
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     icmp --  anywhere             anywhere            
ACCEPT     tcp  --  192.168.2.102        anywhere             tcp dpt:http
ACCEPT     tcp  --  192.168.2.102        anywhere             tcp dpt:ssh

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination     
[root@xieshan shell-test]# iptables -A INPUT -s 192.168.2.43 -p tcp --dport 80 -j ACCEPT	#在filter表的INPUT链末尾增加一条规则,规则内容是:允许源IP是192.168.2.43的访问服务器的80端口
[root@xieshan shell-test]# iptables -L -n	#查看filter表的INPUT链的所有规则,并且以数字形式显示,不进行域名解析
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     tcp  --  192.168.2.102        0.0.0.0/0            tcp dpt:80
ACCEPT     tcp  --  192.168.2.102        0.0.0.0/0            tcp dpt:22
ACCEPT     tcp  --  192.168.2.43         0.0.0.0/0            tcp dpt:80

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination 
[root@xieshan shell-test]# iptables -I INPUT -s 192.168.2.33 -p tcp --dport 80 -j ACCEPT 	#在filter表的INPUT链首部增加一条规则,规则内容是:允许源IP是192.168.2.33的访问服务器的80端口
[root@xieshan shell-test]# iptables -L -n	#查看filter表的INPUT链的所有规则,并且以数字形式显示,不进行域名解析
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  192.168.2.33         0.0.0.0/0            tcp dpt:80
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     tcp  --  192.168.2.102        0.0.0.0/0            tcp dpt:80
ACCEPT     tcp  --  192.168.2.102        0.0.0.0/0            tcp dpt:22
ACCEPT     tcp  --  192.168.2.43         0.0.0.0/0            tcp dpt:80

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination   
[root@xieshan shell-test]# iptables -I INPUT 3 -s 192.168.2.34 -p tcp --dport 80 -j ACCEPT	#在filter表的INPUT链路上的第三条规则前面增加一条规则,规则内容是:允许源IP是192.168.2.34的访问服务器的80端口
[root@xieshan shell-test]# iptables -L -n --line	#查看filter表的INPUT链的所有规则,并且以数字形式显示,不进行域名解析,并且显示行号
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    ACCEPT     tcp  --  192.168.2.33         0.0.0.0/0            tcp dpt:80
2    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
3    ACCEPT     tcp  --  192.168.2.34         0.0.0.0/0            tcp dpt:80
4    ACCEPT     tcp  --  192.168.2.102        0.0.0.0/0            tcp dpt:80
5    ACCEPT     tcp  --  192.168.2.102        0.0.0.0/0            tcp dpt:22
6    ACCEPT     tcp  --  192.168.2.43         0.0.0.0/0            tcp dpt:80

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination   
[root@xieshan shell-test]# iptables -D INPUT 2		#单独删除INPUT链的第二条规则
[root@xieshan shell-test]# iptables -L -n --line
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    ACCEPT     tcp  --  192.168.2.33         0.0.0.0/0            tcp dpt:80
2    ACCEPT     tcp  --  192.168.2.34         0.0.0.0/0            tcp dpt:80
3    ACCEPT     tcp  --  192.168.2.102        0.0.0.0/0            tcp dpt:80
4    ACCEPT     tcp  --  192.168.2.102        0.0.0.0/0            tcp dpt:22
5    ACCEPT     tcp  --  192.168.2.43         0.0.0.0/0            tcp dpt:80

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination    

自定义链:

[root@xieshan shell-test]# iptables -N sc		#新增一条链sc,放在filter表内
[root@xieshan shell-test]# iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  192.168.2.33         0.0.0.0/0            tcp dpt:80
ACCEPT     tcp  --  192.168.2.34         0.0.0.0/0            tcp dpt:80
ACCEPT     tcp  --  192.168.2.102        0.0.0.0/0            tcp dpt:80
ACCEPT     tcp  --  192.168.2.102        0.0.0.0/0            tcp dpt:22
ACCEPT     tcp  --  192.168.2.43         0.0.0.0/0            tcp dpt:80

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain sc (0 references)		#新增的链
target     prot opt source               destination         
[root@xieshan shell-test]# iptables -A sc -p tcp --dport 80 -j ACCEPT		#在sc链中新增一条规则
[root@xieshan shell-test]# iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  192.168.2.33         0.0.0.0/0            tcp dpt:80
ACCEPT     tcp  --  192.168.2.34         0.0.0.0/0            tcp dpt:80
ACCEPT     tcp  --  192.168.2.102        0.0.0.0/0            tcp dpt:80
ACCEPT     tcp  --  192.168.2.102        0.0.0.0/0            tcp dpt:22
ACCEPT     tcp  --  192.168.2.43         0.0.0.0/0            tcp dpt:80

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain sc (0 references)
target     prot opt source               destination         
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80
[root@xieshan shell-test]# iptables -I INPUT -p tcp --dport 80 -j sc		#拜在某条链的下面,做它安排的事
[root@xieshan shell-test]# iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
sc         tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80
ACCEPT     tcp  --  192.168.2.33         0.0.0.0/0            tcp dpt:80
ACCEPT     tcp  --  192.168.2.34         0.0.0.0/0            tcp dpt:80
ACCEPT     tcp  --  192.168.2.102        0.0.0.0/0            tcp dpt:80
ACCEPT     tcp  --  192.168.2.102        0.0.0.0/0            tcp dpt:22
ACCEPT     tcp  --  192.168.2.43         0.0.0.0/0            tcp dpt:80

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain sc (1 references)
target     prot opt source               destination         
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80

3.3 设置数据包的条件

在这里插入图片描述
通用条件匹配:
在这里插入图片描述
隐含条件匹配:
在这里插入图片描述

#从ens33口进来,打算跟3306数据库端口建立新的连接的IP,都拒绝(长选项放在短选项后面)
[root@xieshan shell-test]# iptables -I INPUT -i ens33 -p tcp --tcp-flags SYN,RST,ACK SYN --dport 3306 -j REJECT	#指定tcp的标志位的SYN为1
[root@xieshan ~]# iptables -I INPUT -p icmp --icmp-type 8 -j REJECT	#让别人ping不通自己(8是request包)
[root@xieshan ~]# ping 192.168.2.43		
PING 192.168.2.43 (192.168.2.43) 56(84) bytes of data.
From 192.168.2.43 icmp_seq=1 Destination Port Unreachable
From 192.168.2.43 icmp_seq=2 Destination Port Unreachable
From 192.168.2.43 icmp_seq=3 Destination Port Unreachable
#注意区分Host  Unreachable和Port Unreachable(host是对方IP地址未使用)

显式条件匹配:
在这里插入图片描述

[root@xieshan ~]# iptables -A FORWARD -m mac --mac-source 00:0c:29:27:55:3F -j DROP
[root@xieshan ~]# iptables -A INPUT -p tcp --m multiport --dport 20,21,25,110,1250:1280 -j ACCEPT
[root@xieshan ~]# iptables -A FORWARD -p tcp --m iprange --src-range 192.168.1.20-192.168.1.99 -j DROP

在这里插入图片描述

3.4 常见的数据包处理方式

数据包(-j后面的)处理方式:
  ACCEPT:放行数据包
  DROP:丢弃数据包
  REJECT:拒绝数据包,给一个回复
  LOG:记录日志信息,并传递给下一条规则处理 --》相当于抓包
  用户自定义链名:传递给自定义链内的规则进行处理
  SNAT:修改数据包的源地址信息
  DNAT:修改数据包的目标地址信息
  MASQUERADE: 实现snat功能,不需要经常换公网ip地址
在这里插入图片描述
在这里插入图片描述

LOG日志,相当于抓包

[root@xieshan ~]# iptables -A INPUT -p tcp --dport 22 -j LOG --log-level 6
记到哪里去?
  /var/log/messages
谁会帮我们记录日志?
  service rsyslogd 帮助我们记录日志
  kernel nerfilter对数据过滤,会把日志告诉rsyslogd,让它记录日志–>kernel将日志记录功能外包给了rsyslog

[root@xieshan ~]# ps aux|grep rsyslogd		#linux里真的有rsyslogd这个进程
root       3829  0.0  0.5 220776  5924 ?        Ssl  7月27   0:10 /usr/sbin/rsyslogd -n
root      10588  0.0  0.0 112828   988 pts/1    S+   09:52   0:00 grep --color=auto rsyslogd

Linux系统里专门记录日志的服务:rsyslog

[root@xieshan ~]# vim /etc/rsyslog.conf
*.info;mail.none;authpriv.none;cron.none                /var/log/messages
 cron.info		记录cron类型的日志的info以上级别的信息,包括info
[root@xieshan ~]# tail -f /var/log/messages		#可以查看到日志信息

日志的设备类型:
  1.kernel kern.info 内核产生的info以上级别的日志 kern.* 表示所有的kern类型的日志级别
  2.authpriv --> ssh远程登录,需要输入用户名和密码
  3.cron -->计划任务
  4.mail
  5.local1~local7 都是自定义的类型
日志的级别:(数字越小优先级越高)
  7 debug
  6 info
  5 notice
  4 warning
  3 error
  2 critical
  1 alert
  0 emergency

3.5 将iptables规则设置为开机自启的方式

[root@xieshan ~]# iptables-save >/lianxi/iptables.reles		#保存iptables里的规则到指定目录下
[root@xieshan ~]# iptables -F		#清除当前所有的规则
[root@xieshan ~]# iptables-restore < /lianxi/iptables.reles 		#从制定目录下的文件里重新加载规则
[root@xieshan ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:3306 flags:0x16/0x02
LOG        tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22 LOG flags 0 level 4

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
[root@xieshan ~]# vim /etc/rc.local 		#修改开机就会执行的文件/etc/rc.local,设置为开机加载规则
[root@xieshan ~]# cat /etc/rc.local
#!/bin/bash
THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES

It is highly advisable to create own systemd services or udev rules
to run scripts during boot instead of using this file.

In contrast to previous versions due to parallel execution during boot
this script will NOT be run after all other services.

Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
that this script will be executed during boot.
touch /var/lock/subsys/local
/usr/local/sclilin99/sbin/nginx
iptables-restore < /lianxi/iptables.rules  		#设置开机加载规则

3.6 iptables里的加载模块

在这里插入图片描述

[root@xieshan ~]# lsmod	#查看内核里加载了哪些模块
[root@xieshan ~]# /sbin/depmod -a
[root@xieshan ~]# /sbin/modprobe ip_nat_ftp		#新增ftp功能模块
[root@xieshan ~]# lsmod|grep ftp
nf_nat_ftp             12770  0 
nf_conntrack_ftp       18638  1 nf_nat_ftp
nf_nat                 26787  1 nf_nat_ftp
nf_conntrack          133095  3 nf_nat_ftp,nf_nat,nf_conntrack_ftp
[root@xieshan ~]# /sbin/modprobe -r ip_nat_ftp		#卸载ftp功能模块
[root@xieshan ~]# lsmod|grep ftp

3.7 练习

题目:编写一个 sc_iptables_rule.sh脚本
1.搭建一台linux服务器,开启ssh和MySQL和nginx服务
2.使用防火墙iptables规则,允许192.168.0.*(你的windows机器)访问sshd服务,允许192.168.2.12~192.168.2.100这个ip地址段主机访问本机的8080端口
3.允许192.168.2.13和192.168.2.14访问mysql服务(3306端口)
4.web服务所有的人都可以访问
5.允许ping服务器
6.其他的端口都不允许访问
7.记录所有ping本机的信息到日志文件
8.保证开机自动使用这个脚本里的规则

[root@nginx-kafka01 lianxi]# vim /lianxi/sc_iptables_rule.sh 
[root@nginx-kafka01 lianxi]# cat /lianxi/sc_iptables_rule.sh 
#!bin/bash
#允许本机访问sshd服务
iptables -I INPUT -s 192.168.2.133 -p tcp --dport 22 -j ACCEPT
#允许ip地址段访问本机8080端口
iptables -I INPUT -m iprange --src-range 192.168.2.12-192.168.2.100 -p tcp --dport 8080 -j ACCEPT
#允许访问指定两台机器访问mysql服务
iptables -I INPUT -s 192.168.2.13 -p tcp --dport 3306 -j ACCEPT
iptables -I INPUT -s 192.168.2.14 -p tcp --dport 3306 -j ACCEPT
#80端口允许所有人访问
iptables -I INPUT  -p tcp --dport 80 -j ACCEPT
#运行所有人ping服务器
iptables -I INPUT  -p icmp --icmp-type 8 -j ACCEPT
#将ping本机的信息记录到日志文件
iptables -I INPUT  -p icmp --icmp-type 8 -j LOG
#设置默认规则为DROP
iptables -P INPUT DROP

3.8 SNAT、DNAT、iptables的综合实验

实验架构图:
在这里插入图片描述
在当路由器的那台机器上执行以下脚本:
在这里插入图片描述

这个实验跟我们之前SNAT、DNAT的实验有些相同之处,可以在回顾一下NAT的知识:09.计算机网络—网络层/NAT- SNAT- DNAT/跳板机-堡垒机-中控机

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

12.计算机网络---iptables防火墙管理工具 的相关文章

  • Linux 软件安装以及管理

    本篇主要记录常用的软件安装和管理方式 主要是 yum rpm dnf apt pip 大致都是一样的 主要是部分软件提供了解决依赖的功能 内容不包括源码安装 源码安装情况相对比较复杂 后续有时间再补充 约定 案例所用模板软件均为 pytho
  • nohup - 后台执行

    nohup no hang up 语法 nohup Command Arg 使用示例 nohup python a py 日志将被保留在 当前文件夹下的 nohup out 将日志放到文件 不输出到终端 echo hello gt 1 tx
  • centos系统有什么好处?

    CentOS是一种基于开源代码的Linux操作系统 它有以下几个优势 1 稳定性 CentOS是一种非常稳定的操作系统 它的代码经过了严格的测试和审查 因此它非常适合作为服务器操作系统使 用 2 安全性 由于CentOS是基于开源代码的操作
  • 【CTF必看】从零开始的CTF学习路线(超详细),让你从小白进阶成大神!

    最近很多朋友在后台私信我 问应该怎么入门CTF 个人认为入门CTF之前大家应该先了解到底 什么是CTF 而你 学CTF的目的又到底是什么 其次便是最好具备相应的编程能力 若是完全不具备这些能力极有可能直接被劝退 毕竟比赛的时候动不动写个脚本
  • Jenkins流水线怎么做?

    问CHAT Jenkins流水线怎么做 CHAT回复 Jenkins流水线是一种创建 测试和部署应用程序的方法 以下是为Jenkins创建流水线的步骤 1 安装Jenkins 首先你需要在你的服务器上安装Jenkins 这个过程可能会根据你
  • 38条Web测试经验分享

    1 页面链接检查 每一个链接是否都有对应的页面 并且页面之间切换正确 可以使用一些工具 如LinkBotPro File AIDCS HTML Link Validater Xenu等工具 LinkBotPro不支持中文 中文字符显示为乱码
  • 前端必备的 web 安全知识手记

    前言 安全这种东西就是不发生则已 一发生则惊人 作为前端 平时对这方面的知识没啥研究 最近了解了下 特此沉淀 文章内容包括以下几个典型的 web 安全知识点 XSS CSRF 点击劫持 SQL 注入和上传问题等 下文以小王代指攻击者 话不多
  • 2种方法,教你使用Python实现接口自动化中的参数关联

    通常在接口自动化中 经常会参数关联的问题 那么什么是参数关联 参数关联就是上一个接口的返回值会被下一个接口当做参数运用 其中Python中可以实现参数关联的方法有很多种 今天小编给大家介绍下 如何通过Python来实现接口自动化中的参数关联
  • Jenkins 插件下载速度慢、安装失败了!我教你怎么解决!

    Jenkins部署完毕 如果不安装插件的话 那它就是一个光杆司令 啥事也做不了 所以首先要登陆管理员账号然后点击系统管理再点击右边的插件管理安装CI CD必要插件 但是问题来了 jenkins下载插件速度非常慢 而且经常提示下载插件失败 真
  • messages,CentOS 7不收集日志或不存在 /var/log/messages

    var log message var log secure等都不记录了 并且都是空文件 重启机器 reboot 无效 重启日志 systemctl start rsyslog 无效 怀疑空间不足 删除 var log messages 重
  • 「网络安全渗透」如果你还不懂CSRF?这一篇让你彻底掌握

    1 什么是 CSRF 面试的时候的著名问题 谈一谈你对 CSRF 与 SSRF 区别的看法 这个问题 如果我们用非常通俗的语言讲的话 CSRF 更像是钓鱼的举动 是用户攻击用户的 而对于 SSRF 来说 是由服务器发出请求 用户 日 服务器
  • socket网络编程几大模型?看看CHAT是如何回复的?

    CHAT回复 网络编程中常见的有以下几种模型 1 阻塞I O模型 Blocking I O 传统的同步I O模型 一次只处理一个请求 2 非阻塞I O模型 Non blocking I O 应用程序轮询调用socket相关函数检查请求 不需
  • 基于java的物业管理系统设计与实现

    基于java的物业管理系统设计与实现 I 引言 A 研究背景和动机 物业管理系统是指对物业进行管理和服务的系统 该系统需要具备对物业信息 人员信息 财务信息等进行管理的能力 基于Java的物业管理系统设计与实现的研究背景和动机主要体现在以下
  • 揭秘网络世界的幕后密码——Wireshark网络协议分析软件

    在我们日常生活中 计算机和互联网已经成为不可或缺的一部分 然而 很少有人真正了解网络背后复杂的工作原理和通信协议 幸运的是 有一款强大而实用的软件 Wireshark 可以帮助我们深入了解网络世界的幕后密码 Wireshark是一款免费的网
  • tcpdump抓包

    tcpdump抓包 基本概念 1 类型的关键字 host 指明一台主机 如 host 10 1 110 110 net 指明一个网络地址 如 net 10 1 0 0 port 指明端口号 如 port 8090 2 确定方向的关键字 sr
  • Kubernetes (十一) 存储——Secret配置管理

    一 简介 从文件创建 echo n admin gt username txt echo n westos gt password txt kubectl create secret generic db user pass from fi
  • 短信系统搭建主要因素|网页短信平台开发源码

    短信系统搭建主要因素 网页短信平台开发源码 随着移动互联网的快速发展 短信系统已成为企业和个人进行信息传递的重要工具 建立一个高效可靠的短信系统对于企业来说非常重要 下面我们将介绍一些影响短信系统搭建的主要因素 1 平台选择 在搭建短信系统
  • 高防服务器什么意思

    高防服务器什么意思 为什么要用高防服务器 小编为您整理发布高防服务器什么意思的解读 高防服务器是指具备较高防御能力的服务器 能够抵御DDoS CC等网络攻击 高防服务器通常用于保护游戏 APP 金融 电商等业务 这些领域因为其业务特性 容易
  • 【安全】简单解析统一身份认证:介绍、原理和实现方法

    深入解析统一身份认证 介绍 原理和实现方法 导语 统一身份认证是什么 统一身份认证的原理 统一身份认证的实现 结语 导语 随着互联网的发展和各种在线服务的普及 用户在不同的应用和平台上需要进行多次身份验证 为了简化用户的登录和减少重复操作
  • 光波导结构

    摘要 增强现实和混合现实 AR MR 领域的新应用引起了人们对带有光栅区域的光波导系统的越来越多的关注 这些光波导系统用于输入和输出耦合以及扩瞳目的 VirtualLab Fusion为这类系统的仿真和设计提供了几个强大的工具 其中一个是具

随机推荐

  • 单端反激——隔离型DC/DC变换器的设计及仿真

    单端反激 隔离型DC DC变换器的设计及仿真 技术指标 1 原理分析 2 参数设计 3 仿真验证 技术指标 输入电压 V s m i n
  • Spring Boot 2.2.6 源码之旅二十五SpringMVC源码之RequestMappingHandlerMapping的初始化三

    Spring Boot 2 2 6 源码之旅二十五SpringMVC源码之RequestMappingHandlerMapping的初始化三 简单流程图 MappingRegistry的一些映射 urlLookup一键多值的url和Requ
  • 那些会阻碍程序员成长的细节[4]

    照例 如果没有读过之前的系列 在这里可以先回顾一下 那些会阻碍程序员成长的细节 1 那些会阻碍程序员成长的细节 2 那些会阻碍程序员成长的细节 3 本文共 1637 字 预计阅读时间 5 分钟 不愿意跟领导走的近 是不是有这样的体会 凡事有
  • 【python标准库学习】re模块

    1 什么是re 正则表达式一门相对通用的语言 在python中也有对正则表达式的支持 那就是的内置re模块 正则表达式就是一系列的规则去匹配字符串然后进行相应的操作 这些规则网上一搜一大片 而re则是运用正则表达式来提供一系列的功能强大的接
  • Vue中如何进行打包与部署?

    Vue中如何进行打包与部署 Vue是一款流行的JavaScript框架 它提供了丰富的功能和组件 可以用于构建现代化的Web应用程序 在开发Vue应用程序时 我们通常需要进行打包和部署 本文将介绍Vue中的打包和部署 包括使用Webpack
  • STL list合并

    知识点来源 cplusplus STL list 网上很多关于list的操作很少有提及到怎么合并 要说这个合并几乎是每个数据结构课提及到的O 1 操作的必修知识点 同时还有人甚至搞不清楚什么叫Merge 归并 和合并 Union 归并的意思
  • linux 查看端口连接数

    一 查看哪些IP连接本机 netstat an 二 查看TCP连接数 1 统计80端口连接数 netstat nat grep i 80 wc l 2 统计httpd协议连接数 ps ef grep httpd wc l 3 统计已连接上的
  • 高斯列主消元法 求非齐次线性方程组 C语言实现代码

    高斯列主元素消去法是由高斯消去法改进的算法 下面浅浅分享一下本人对该方法的理解 Ax b 先说高斯消去法 感觉基本的思路就跟我们手算非齐次线性方程组差不多 在线性代数中 我们求解方程组都是这种思路 消元的过程相当于是 由系数矩阵A和非齐次项
  • linux下代码分析工具Splint

    1 C代码静态分析工具 Its4 读取一个或多个 C C 源程序 将每个源程序分割成函数标志流 然后检查生成的标志是否存在于漏洞数据库中 从而得到每个源程序的所有错误警告列表 并带有相关的描 述 其规则库vulns i4d定义了各种函数的危
  • 【医学图像分割】 MIXED Transformer 、DS-TransUNet、Swin-Unet

  • Qt开发北斗定位系统融合百度地图API及Qt程序打包发布

    Qt开发北斗定位系统融合百度地图API及Qt程序打包发布 1 上位机介绍 最近有个接了一个小型项目 内容很简单 就是解析北斗GPS的串口数据然后输出经纬度 但接过来觉得太简单 就发挥了主观能动性 增加了百度地图API 不但能实时定位 还能在
  • 波兰表达式 & 逆波兰表达式

    1 概述 1 1 什么是波兰表达式 先来看看维基百科对于波兰表达式和逆波兰表单的解释 波兰表示法 Polish notation 或波兰记法 是一种逻辑 算术和代数表示方法 其特点是操作符置于操作数的前面 因此也称做前缀表示法 如果操作符的
  • C++ 大话设计之《观察者模式》(优缺点,设计原理,常用场景)

    观察者模式是一种行为型模式 优点 松散耦合 观察者模式提供了一种松散耦合的设计 使得当一个对象的状态发生变化时 它不需要知道其他对象是如何使用这些信息的 这使得系统更容易扩展和维护 动态关联 观察者模式允许在运行时动态地添加或删除观察者 而
  • #bat 利用bat脚本添加/删除环境变量

    目录 添加到Path 从Path中删除 操作环境变量有风险 目标文件夹 current path bin 添加到Path echo path gt gt log txt echo off set pathStr path set mingw
  • 从周赛中学算法-2023上

    从周赛中学算法 2023上 https leetcode cn circle discuss v2RXSN 文章目录 从周赛中学算法 2023上 一 技巧类 2730 找到最长的半重复子字符串 https leetcode cn probl
  • SpringCloudAlibaba之Sentinel 自定义熔断逻辑处理

    Sentinel服务熔断环境搭建 服务熔断 应对微服务雪崩效应的一种链路保护机制 类似保险丝 需要完成Sentinel整合Ribbon openFeign 所以我们先要搭建环境 那么先从整合Ribbon开始 环境搭建 为了演示操作 所以在这
  • 手把手教你上手Apache DolphinScheduler机器学习工作流

    摘要 Apache DolphinScheduler 3 1 0发版后 添加了诸多AI组件 帮助用户在Apache DolphinScheduler上更方便地构建机器学习工作流 本文介绍如何建立DolphinScheduler与一些机器学习
  • Windows中如何查看日志(如查看远程登陆的IP地址)以及常用日志ID

    时间 2018 12 12 题目 Windows中如何查看日志 如查看远程登陆的IP地址 以及常用日志ID 概述 在Windows中可以使用 事件查看器 来查看相关日志 并结合日志ID进行日志筛选 常见的日志有 4634 帐户被注销 464
  • 将SSE指令转换为ARM NEON指令

    相关资料 sse指令集 sse指令解释 sse2neon仓库 可以在sse2neon h中寻找对应的neon指令转换方法 注意事项 将sse指令转换为arm neon指令往往很难起到优化作用 甚至可能产生负优化 因此该部分优化仅供参考 mm
  • 12.计算机网络---iptables防火墙管理工具

    文章目录 一 防火墙基础知识 1 1 防火墙是什么 1 2 iptables基础知识 1 3 netfilter和iptables的关系 1 4 新型防火墙工具 firewalld 二 iptables的四表五链 2 1 规则表 2 2 规