学习笔记 学习笔记
🐱 首页
    • 🚅 JAVA
    • 🚆 Python
    • 🧭 VUE
    • 🌐 JavaScript
    • 🗺 CSS
  • 🎃 MySQL
  • 🛶 Redis
  • 🛳 Nginx
  • ⚽ Dokcer
  • 🏓 Elasticsearch
  • 🏙 Windows
  • 🗽 Centos
  • ⚓ Gitlab
  • 🙈 分类
  • 🙉 标签
  • 🙊 归档
    • 👣 随笔
    • 🌹 关于
GitHub (opens new window)

爱做梦的奋斗青年

曾梦想仗剑走天涯,后来bug太多就没去
🐱 首页
    • 🚅 JAVA
    • 🚆 Python
    • 🧭 VUE
    • 🌐 JavaScript
    • 🗺 CSS
  • 🎃 MySQL
  • 🛶 Redis
  • 🛳 Nginx
  • ⚽ Dokcer
  • 🏓 Elasticsearch
  • 🏙 Windows
  • 🗽 Centos
  • ⚓ Gitlab
  • 🙈 分类
  • 🙉 标签
  • 🙊 归档
    • 👣 随笔
    • 🌹 关于
GitHub (opens new window)
  • 工具使用

  • Windows

  • CentOS

    • CentOS7系统初始化设置
    • Linux 基础命令
    • linux 常用命令
    • linux命令 find
    • iptables详解
      • 防火墙相关概念
      • 防火墙 iptables
      • ipvsadm
      • ipset
      • Sysstat 性能监控工具
    • linux命令 Tmux
    • Linux邮件服务器Postfix
  • Shell

  • gitlab

  • Jenkins

  • nexus

  • harbor

  • Jira

  • Ldap

  • cas单点登录

  • tomcat

  • kubernetes

  • 开发平台
  • CentOS
爱做梦的奋斗青年
2021-01-17
目录

iptables详解

# 防火墙相关概念

  • 从逻辑上讲。防火墙可以大体分为主机防火墙和网络防火墙。

主机防火墙:针对于单个主机进行防护。

网络防火墙:往往处于网络入口或边缘,针对于网络入口进行防护,服务于防火墙背后的本地局域网。

网络防火墙和主机防火墙并不冲突,可以理解为,网络防火墙主外(集体), 主机防火墙主内(个人)。

  • 从物理上讲,防火墙可以分为硬件防火墙和软件防火墙。

硬件防火墙:在硬件级别实现部分防火墙功能,另一部分功能基于软件实现,性能高,成本高。

软件防火墙:应用软件处理逻辑运行于通用硬件平台之上的防火墙,性能低,成本低。

  • Linux中的iptables

iptables其实不是真正的防火墙,我们可以把它理解成一个客户端代理,用户通过iptables这个代理,将用户的安全设定执行到对应的"安全框架"中,这个"安全框架"才是真正的防火墙,这个框架的名字叫netfilter

netfilter才是防火墙真正的安全框架(framework),netfilter位于内核空间。

iptables其实是一个命令行工具,位于用户空间,我们用这个工具操作真正的框架。

# 防火墙 iptables

# 安装iptables
yum install iptables-services
# 状态|启动|停止|重启|开机自启|禁止开机自启
systemctl {status|start|stop|restart|enable|disable} iptables.service

iptables -h                         # 查询帮助
iptables -L -n                      # 列出(filter表)所有规则
iptables -L -n --line-number        # 列出(filter表)所有规则,带编号
iptables -L -n -t nat               # 列出(nat表)所有规则
iptables -F                         # 清除(filter表)中所有规则
iptables -F -t nat                  # 清除(nat表)中所有规则
service iptables save               # 保存配置(保存配置后必须重启iptables)
service iptables restart            # 重启

# 禁止192.168.1.3 IP地址的所有类型数据接入
iptables -A INPUT ! -s 192.168.1.3 -j DROP
iptables -A INPUT -p tcp --dport 80 -j ACCEPT       # 开放80端口
iptables -I INPUT -p tcp --dport 22:80 -j ACCEPT    # 开发22-80范围的端口
iptables -I OUTPUT -p tcp --dport 80 -j DROP        # 不允许80端口流出
service iptables save                               # 保存修改
service iptables restart                            # 重启防火墙,修改生效

# 防火墙开启8081端口
vi  /etc/sysconfig/iptables
# 在打开的文件中加入如下内容
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8081 -j ACCEPT
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

# ipvsadm

ipvsadm工具常用的参数选项有:

-A --add-service 添加一条新的虚拟服务
-E --edit-service 编辑虚拟服务
-D --delete-service 删除虚拟服务
-C --clear 清除所有的虚拟服务规则
-R --restore 恢复虚拟服务规则
-a --add-server 在一个虚拟服务中添加一个新的真实服务器
-e --edit-server 编辑某个真实服务器
-d --delete-server 删除某个真实服务器
-L | -l --list 显示内核中的虚拟服务规则
-n --numeric 以数字形式显示IP端口
-c --connection 显示ipvs中目前存在的连接,也可以用于分析调度情况
-Z --zero 将转发消息的统计清零
-p --persistent 配置持久化时间
--set tcp tcpfin udp 配置三个超时时间(tcp/tcpfin/udp)
-t | -u TCP/UDP协议的虚拟服务
-g | -m | -i LVS模式为:DR | NAT | TUN
-w 配置真实服务器的权重
-s 配置负载均衡算法,如:rr, wrr, lc等
--timeout 显示配置的tcp/tcpfin/udp超时时间
--stats 显示历史转发消息统计(累加值)
--rate 显示转发速率信息(瞬时值)
## 管理虚拟服务
# 添加一个虚拟服务192.168.1.100:80,使用轮询算法
ipvsadm -A -t 192.168.1.100:80 -s rr
# 修改虚拟服务的算法为加权轮询
ipvsadm -E -t 192.168.1.100:80 -s wrr
# 删除虚拟服务
ipvsadm -D -t 192.168.1.100:80

## 管理真实服务
# 添加一个真实服务器192.168.1.123,使用DR模式,权重2
ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.123 -g -w 2
# 修改真实服务器的权重
ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.123 -g -w 5
# 删除真实服务器
ipvsadm -d -t 192.168.1.100:80 -r 192.168.1.123

## 查看统计
# 查看当前配置的虚拟服务和各个RS的权重
ipvsadm -Ln
# 查看当前ipvs模块中记录的连接(可用于观察转发情况)
ipvsadm -lnc
# 查看ipvs模块的转发情况统计
ipvsadm -Ln --stats | --rate
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

# ipset

pset是iptables的扩展,它允许你创建 匹配整个地址集合的规则。
官网:http://ipset.netfilter.org/ (opens new window)

# 安装
yum install -y ipset

# 黑名单
ipset create blacklist hash:net maxelem 1000000
# 白名单
ipset create whitelist hash:net maxelem 1000000

# 查看已创建的ipset
ipset list
# 加入一个名单ip
ipset add blacklist 10.60.10.xx
# 去除名单ip
ipset del blacklist 10.60.10.xx
# 创建防火墙规则,与此同时,allset这个IP集里的ip都无法访问80端口(如:CC攻击可用)
iptables -I INPUT -m set –match-set blacklist src -p tcp -j DROP
iptables -I INPUT -m set –match-set whitelist src -p tcp -j DROP
service iptables save
iptables -I INPUT -m set –match-set setname src -p tcp –destination-port 80 -j DROP
# 将ipset规则保存到文件
ipset save blacklist -f blacklist.txt
ipset save whitelist -f whitelist.txt
# 删除ipset
ipset destroy blacklist
ipset destroy whitelist
# 导入ipset规则
ipset restore -f blacklist.txt
ipset restore -f whitelist.txt
# ipset的一个优势是集合可以动态的修改,即使ipset的iptables规则目前已经启动,新加的入ipset的ip也生效
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

# Sysstat 性能监控工具

# 安装
yum install -y  sysstat
# 查看版本
sar -V
1
2
3
4

sysstat工具包包含的工具:

  • iostat 工具提供CPU使用率及硬盘吞吐效率的数据; #比较核心的工具
  • mpstat 工具提供单个处理器或多个处理器相关数据;
  • pidstat: 关于运行中的进程/任务、CPU、内存等的统计信息
  • sar 工具负责收集、报告并存储系统活跃的信息; #统计数据的核心工具
  • sa1 工具负责收集并存储每天系统动态信息到一个二进制的文件中。它是通过计划任务工具cron来运行,是为sadc所设计的程序前端程序;
  • sa2工具负责把每天的系统活跃性息写入总结性的报告中。它是为sar所设计的前端 ,要通过cron来调用
  • sadc 是系统动态数据收集工具,收集的数据被写一个二进制的文件中,它被用作sar工具的后端;
  • sadf 显示被sar通过多种格式收集的数据;
  • nfsiostat: NFS(Network File System)的I/O统计信息。
  • cifsiostat: CIFS(Common Internet File System)的统计信息
iostat --help
# -c : 仅显示cpu的状态
iostat -c 1 3
# 显示扩展状态,显示出更多内容
iostat -x

## mpstat 用于多处理器系统中的CPU的利用率的统计。细化到具体某个cpu的状态时可以使用参数-P,处理器的ID从0开始
mpstat --help
mpstat -p 0 1 2

## sdac是一个搜集写入工具,并不直接回显于屏幕上
/usr/local/lib/sa/sadc --help
1
2
3
4
5
6
7
8
9
10
11
12
编辑此页 (opens new window)
#linux
上次更新: 2022/01/20 09:00:24
linux命令 find
linux命令 Tmux

← linux命令 find linux命令 Tmux→

Theme by Vdoing
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式