iptables基本知识

1)Linux下的防火墙概念

a、一般谈到Linux下的防火墙,我们都会首先想到iptables,其实更确切的叫法应该是Netfilter/iptables,iptables和Netfilter其实是存在差别的。

b、尽管它们经常被用来相互替换使用,Netfilter是用来实现Linux内核中防火墙的Linux内核空间程序代码段,它要么被直接编译进内核,要么被包含在模块中。

c、而iptables是用来管理Netfilter防火墙的用户程序,而我这里提到的iptables是包含Netfiler和iptables。

d、Netfilter/iptables是基于包过滤的防火墙,主要是针对2-4层,另外,iptables也支持7层控制。

2)iptables的组成部分:

iptables有四个表和五个链以及一些规则组成:

四个表:filter、nat、mangle、raw

filter表(过滤规则表),nat表(地址转换规则表),mangle(修改数据标记位规则表),raw(跟踪数据表规则表)

其中最常用的是filter表以及nat表

五个链:INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING

iptables的命令语法:

iptables [-t 表名]<-A|-I|-D|-R>链名[规则编号][-i|-o 网卡名称][-p 协议类型][-s 源IP地址|源子网][–sport 源端口号][-d 目标IP地址|目标子网][–dport 目标端口号]<-j 动作>

3)参数及动作信息

-A 追加防火墙规则

-D 删除防火墙规则

-I 插入防火墙规则

-F 清空防火墙规则

-L 列出防火墙规则

-R 替换防火墙规则

-Z 清空防火墙数据表统计信息

-P 设置链默认规则

匹配参数:

-p                  匹配协议

-s                 匹配源地址

-d                 匹配目标地址

-i                  匹配入站网卡接口

-o                 匹配出站网卡接口

–sport               匹配源端口

–dport               匹配目标端口

–src-range             匹配源地址范围

–dst-range            匹配目标地址范围

–limit              匹配数据表速率

–mac-source            匹配源MAC地址

–state              匹配状态(INVALID、ESTABLISHED、NEW、RELATED)

–string              匹配应用层字串

触发动作:

ACCEPT 允许数据包通过

DROP 丢弃数据包

REJECT 拒绝数据包通过,并发回封包通知对方

LOG 将数据包信息记录syslog日志

DNAT 目标地址转换

SNAT 源地址转换(适用于静态IP)

MASQUERADE 地址欺骗(只能用于ADSL拨号上网的IP伪装,也就是主机的IP是由ISP分配动态的)

REDIRECT 重定向,将数据包重定向到本机或另外主机的某一个端口,通常能实现透明代理或者对外开放内网的某些服务

4)常用的命令

a、查看filter表的所有规则:

[root@localhost ~]# iptables -n -L
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

b、清空filter表的所有规则:

[root@localhost ~]# iptables -F

c、查看nat表的所有规则:

[root@localhost ~]# iptables -t nat -n -L

# 记录10.10.10.1访问主机80端口的日志信息(/var/log/messages)

[root@localhost ~]# iptables -I INPUT -s 10.10.10.1 -p tcp --dport 80 -j LOG
[root@localhost ~]# tail -10 /var/log/messages
Jul 13 14:44:53 localhost kernel: IN=eno16777736 OUT= MAC=00:0c:29:c5:a0:8d:00:50:56:c0:00:08:08:00 SRC=10.10.10.1 DST=10.10.10.133 LEN=40 TOS=0x00 PREC=0x00 TTL=64 ID=10253 DF PROTO=TCP SPT=62700 DPT=80 WINDOW=253 RES=0x00 ACK FIN URGP=0 
Jul 13 14:44:55 localhost chronyd[829]: Selected source 202.118.1.130
Jul 13 14:44:59 localhost kernel: IN=eno16777736 OUT= MAC=00:0c:29:c5:a0:8d:00:50:56:c0:00:08:08:00 SRC=10.10.10.1 DST=10.10.10.133 LEN=40 TOS=0x00 PREC=0x00 TTL=64 ID=10256 DF PROTO=TCP SPT=62701 DPT=80 WINDOW=256 RES=0x00 ACK FIN URGP=0 
Jul 13 14:44:59 localhost kernel: IN=eno16777736 OUT= MAC=00:0c:29:c5:a0:8d:00:50:56:c0:00:08:08:00 SRC=10.10.10.1 DST=10.10.10.133 LEN=40 TOS=0x00 PREC=0x00 TTL=64 ID=10257 DF PROTO=TCP SPT=62702 DPT=80 WINDOW=256 RES=0x00 ACK FIN URGP=0 
Jul 13 14:44:59 localhost kernel: IN=eno16777736 OUT= MAC=00:0c:29:c5:a0:8d:00:50:56:c0:00:08:08:00 SRC=10.10.10.1 DST=10.10.10.133 LEN=40 TOS=0x00 PREC=0x00 TTL=64 ID=10258 DF PROTO=TCP SPT=62703 DPT=80 WINDOW=256 RES=0x00 ACK FIN URGP=0 
Jul 13 14:44:59 localhost kernel: IN=eno16777736 OUT= MAC=00:0c:29:c5:a0:8d:00:50:56:c0:00:08:08:00 SRC=10.10.10.1 DST=10.10.10.133 LEN=40 TOS=0x00 PREC=0x00 TTL=64 ID=10259 DF PROTO=TCP SPT=62704 DPT=80 WINDOW=256 RES=0x00 ACK FIN URGP=0 
Jul 13 14:44:59 localhost kernel: IN=eno16777736 OUT= MAC=00:0c:29:c5:a0:8d:00:50:56:c0:00:08:08:00 SRC=10.10.10.1 DST=10.10.10.133 LEN=40 TOS=0x00 PREC=0x00 TTL=64 ID=10260 DF PROTO=TCP SPT=62701 DPT=80 WINDOW=256 RES=0x00 ACK URGP=0 
Jul 13 14:44:59 localhost kernel: IN=eno16777736 OUT= MAC=00:0c:29:c5:a0:8d:00:50:56:c0:00:08:08:00 SRC=10.10.10.1 DST=10.10.10.133 LEN=40 TOS=0x00 PREC=0x00 TTL=64 ID=10261 DF PROTO=TCP SPT=62702 DPT=80 WINDOW=256 RES=0x00 ACK URGP=0 
Jul 13 14:44:59 localhost kernel: IN=eno16777736 OUT= MAC=00:0c:29:c5:a0:8d:00:50:56:c0:00:08:08:00 SRC=10.10.10.1 DST=10.10.10.133 LEN=40 TOS=0x00 PREC=0x00 TTL=64 ID=10262 DF PROTO=TCP SPT=62703 DPT=80 WINDOW=256 RES=0x00 ACK URGP=0 
Jul 13 14:44:59 localhost kernel: IN=eno16777736 OUT= MAC=00:0c:29:c5:a0:8d:00:50:56:c0:00:08:08:00 SRC=10.10.10.1 DST=10.10.10.133 LEN=40 TOS=0x00 PREC=0x00 TTL=64 ID=10263 DF PROTO=TCP SPT=62704 DPT=80 WINDOW=256 RES=0x00 ACK URGP=0

# 将来自10.10.10.0/24网段的主机并访问80端口的请求给予拒绝

[root@localhost ~]# iptables -I INPUT -s 10.10.10.0/24 -p tcp --dport 80 -j DROP
[root@localhost ~]# iptables -n -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
DROP       tcp  --  10.10.10.0/24        0.0.0.0/0            tcp dpt:80
LOG        tcp  --  10.10.10.1           0.0.0.0/0            tcp dpt:80 LOG flags 0 level 4
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

  

# 禁止10.10.10.0/24网段内的主机ping。ICMP类型为8

[root@localhost ~]# iptables -A INPUT -s 10.10.10.0/24 -p icmp --icmp-type 8 -j DROP
说明:禁止10.10.10.0/24网段内的主机ping

# 查看filter表中防火墙规则并显示规则编号:

[root@localhost ~]# iptables -nL --line-number
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    DROP       tcp  --  10.10.10.0/24        0.0.0.0/0            tcp dpt:80
2    LOG        tcp  --  10.10.10.1           0.0.0.0/0            tcp dpt:80 LOG flags 0 level 4
3    DROP       icmp --  10.10.10.0/24        0.0.0.0/0            icmptype 8
Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination         
Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination

# -D参数,删除INPUT链的第三条规则:  

[root@localhost ~]# iptables -D INPUT 3
[root@localhost ~]# iptables -nL --line-number
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    DROP       tcp  --  10.10.10.0/24        0.0.0.0/0            tcp dpt:80
2    LOG        tcp  --  10.10.10.1           0.0.0.0/0            tcp dpt:80 LOG flags 0 level 4
Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination         
Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination

# -R参数,替换第二条规则       

[root@localhost ~]# iptables -R INPUT 2 ! -s 10.10.10.1 -p tcp --dport 80 -j ACCEPT
[root@localhost ~]# iptables -nL --line-number
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    DROP       tcp  --  10.10.10.0/24        0.0.0.0/0            tcp dpt:80
2    ACCEPT     tcp  -- !10.10.10.1           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

# 查看iptables的版本号:

[root@localhost ~]# iptables -V
iptables v1.4.21
[root@localhost ~]# iptables -A INPUT -i lo -j ACCEPT
[root@localhost ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

# CentOS7下iptables的安装:

CentOS 7 默认使用firewalld来管理iptables规则,由于防火墙规则变动的情况很少,动不动态变得无所谓了。但是总是感觉不太习惯。
使用下面的办法来恢复原来的习惯,同时解决iptables开机启动的问题。
# yum install iptables-services -y
# systemctl enable iptables
这样的话,iptables服务会开机启动,自动从/etc/sysconfig/iptables 文件导入规则。
为了让/etc/init.d/iptables save 这条命令生效,需要这么做
# cp /usr/libexec/iptables/iptables.init /etc/init.d/iptables
# /etc/init.d/iptables save
而chkconfig iptables 命令会自动重定向到sytemctl enable iptables

# 定义iptables默认策略

默认策略的定义格式为:

iptables [-t 表名] <-P> <链名> <动作>

查看iptables的状态

[root@ip-172-31-22-8 ~]# /etc/init.d/iptables status
Table: filter
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination         
Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination         
[root@localhost ~]# iptables -I INPUT -s 10.10.10.0/24 -p tcp --dport 80 -j ACCEPT
[root@localhost ~]# iptables -I INPUT -s 10.10.10.0/24 -p tcp --dport 22 -j ACCEPT
[root@localhost ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  10.10.10.0/24        0.0.0.0/0            tcp dpt:22
ACCEPT     tcp  --  10.10.10.0/24        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

  

5)iptables的状态state

下面解释iptables的几种状态:

NEW:如果你的主机向远程主机发出一个请求连接,这个数据包的状态就是NEW

ESTABLISHED:已建立的连接(完成TCP的三次握手后),远程主机和你的主机通信数据状态为ESTABLISHED

RELATED:正在启动新连接,比如FTP服务传输,21端口负责传送命令,20端口负责传输数据,在已有的21端口建立好连接后发生命令,这时候20端口或其他端口传送FTP-DATA,状态就是RELEATED

INVALID:非法或无法识别的数据包,不能被识别属于哪个连接或者没有任何状态,通常这种状态包会被丢弃

iptables脚本的基本模板:

#!/bin/bash
#created by molewan 2016/07/16
#email:molewan@163.com
iptables -F
iptables -F -t nat
iptables -X
iptables -Z
iptables -P INPUT DROP
iptables -A INPUT -m state --state NEW -j DROP
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

6)生产环境中我们如何维护我们的iptables

系统运维人员在维护iptables的时候,经常会发现误操作了iptables导致无法进入了系统,这个时候只有去机房重启iptables,其实这个也是有办法解决的,可以通过配置

计划任务的方式来处理:

[root@ip-172-31-22-8 ~]# crontab -l
*/5 * * * * /etc/init.d/iptables stop

7)iptables防火墙应用案例:

案例1:允许任意客户端访问主机的日常服务(HTTP、HTTPS、DNS、NTP、SMTP、POPS3、SSH)

[root@localhost ~]# iptables -A INPUT -p tcp --dport 22 -j ACCEPT
[root@localhost ~]# iptables -A INPUT -p udp --dport 25 -j ACCEPT
[root@localhost ~]# iptables -A INPUT -P tcp --dport 53 -j ACCEPT
[root@localhost ~]# iptables -A INPUT -p udp --dport 53 -j ACCEPT
[root@localhost ~]# iptables -A INPUT -p tcp --dport 80 -j ACCEPT
[root@localhost ~]# iptables -A INPUT -p tcp --dport 110 -j ACCEPT
[root@localhost ~]# iptables -A INPUT -p tcp --dport 143 -j ACCEPT
[root@localhost ~]# iptables -P INPUT DROP
[root@localhost ~]# iptables -P OUTPUT ACCEPT
[root@localhost ~]# iptables -P FORWARD DROP
[root@localhost ~]# iptables -n -L
Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:25
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:53
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:53
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:110
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:143
Chain FORWARD (policy DROP)
target     prot opt source               destination         
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
[root@localhost ~]# cat /etc/services #可以在此文件中查看服务的名称

案例2:公司拥有一个公有IP,使用防火墙实现局域网中所有主机通过SNAT共享上网。

原理:使用CentOS7作为公司软路由,将内网192.168.0.0/24的数据包源地址修改为路由器上的公有IP 124.126.199.84

,使用SNAT规则,以及NAT表的POSTROUTING链

先开启系统上的路由转发:

# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
# sysctl -p
# iptables -t nat -I POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source 124.126.199.84

案例3:公司对外有一个公网IP,公司内部有HTTP、MAIL两台核心服务器,通过防火墙实现客户可以从互联网的任意位置访问公司内部的两台服务器资源

拓扑;
Internet <--124.126.199.84(防火墙)-->192.168.0.0/24
http:192.168.0.100
postfix:192.168.0.101
处理过程:
开启路由转发:
# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
# sysctl -p
针对80端口的
# iptables -t nat -I PREROUTING -d 124.126.199.84 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.100
针对25端口和110端口
# iptables -t nat -I PREROUTING -d 124.126.199.84 -p tcp --dport 25 -j DNAT --to-destination 192.168.0.101
# iptables -t nat -I PREROUTING -d 124.126.199.84 -p tcp --dport 110 -j DNAT --to-destination 192.168.0.101

案例4:目前网络的攻击手法层出不穷,很多攻击会采用发生大量无效的数据包给服务器,造成服务器无法响应正常的请求包,iptables

提供了一个limit扩展功能,可以限制单位时间内数据包的个数。下面的规则是当每秒钟数据包个数为500接受入站连接,负责拒绝连接。

[root@localhost ~]# iptables -I INPUT -m limit --limit 500/sec -j ACCEPT
[root@localhost ~]# iptables -P INPUT DROP
[root@localhost ~]# iptables -n -L
Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            limit: avg 500/sec burst 5
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:25
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:53
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:53
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:110
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:143
Chain FORWARD (policy DROP)
target     prot opt source               destination         
Chain OUTPUT (policy ACCEPT)
target     prot opt source

案例5:根据数据连接状态设置防火墙规则,放行所有出站数据包,拒绝入站的新连接请求和无效连接,放行入站的回应请求

[root@localhost ~]# iptables -F
[root@localhost ~]# iptables -X
[root@localhost ~]# iptables -Z
[root@localhost ~]# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
[root@localhost ~]# iptables -I INPUT -m state --state NEW -j DROP
[root@localhost ~]# iptables -P OUTPUT ACCEPT
[root@localhost ~]# iptables -n -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
DROP       all  --  0.0.0.0/0            0.0.0.0/0            state NEW
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
Chain FORWARD (policy DROP)
target     prot opt source               destination         
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

案例6:公司采用基于Linux的软路由设备,要求在路由设备上设置防火墙规格,记录10.0.0.1至10.0.0.128地址段内所有的主机发送给路由要求转发的数据包,并允许转发这些数据包

[root@localhost ~]# iptables -A FORWARD -m iprange --src-range 10.0.0.1-10.10.0.11 -p tcp --dport 80 -j LOG
[root@localhost ~]# iptables -A FORWARD -m iprange --src-range 10.0.0.1-10.10.0.11 -p tcp --dport 80 -j ACCEPT[root@localhost ~]# iptables -n -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
DROP       all  --  0.0.0.0/0            0.0.0.0/0            state NEW
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
Chain FORWARD (policy DROP)
target     prot opt source               destination         
LOG        tcp  --  0.0.0.0/0            0.0.0.0/0            source IP range 10.0.0.1-10.10.0.11 tcp dpt:80 LOG flags 0 level 4
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            source IP range 10.0.0.1-10.10.0.11 tcp dpt:80
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

一次性允许多端口通过:

[root@localhost ~]# iptables -I INPUT -s 10.10.10.0/24 -p tcp -m multiport --dport 21,22,23,80 -j ACCEPT
[root@localhost ~]# iptables -n -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  10.10.10.0/24        0.0.0.0/0            multiport dports 21,22,23,80
DROP       all  --  0.0.0.0/0            0.0.0.0/0            state NEW
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
Chain FORWARD (policy DROP)
target     prot opt source               destination         
LOG        tcp  --  0.0.0.0/0            0.0.0.0/0            source IP range 10.0.0.1-10.10.0.11 tcp dpt:80 LOG flags 0 level 4
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            source IP range 10.0.0.1-10.10.0.11 tcp dpt:80
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

原创文章,作者:Net21-冰冻vs西瓜,如若转载,请注明出处:http://www.178linux.com/24293

(0)
Net21-冰冻vs西瓜Net21-冰冻vs西瓜
上一篇 2016-07-16 22:29
下一篇 2016-07-16 22:29

相关推荐

  • PHP高效率写法(详解原因)

    1.尽量静态化:    如果一个方法能被静态,那就声明它为静态的,速度可提高1/4,甚至我测试的时候,这个提高了近三倍。   当然了,这个测试方法需要在十万级以上次执行,效果才明显。   其实静态方法和非静态方法的效率主要区别在内存:静态方法在程序开始时生成内存,实例方法在程序运行中生成内存,所以静…

    Linux干货 2015-05-28
  • linux下VMware Tools安装方法

    关于VMware Tools 是虚拟机里面的驱动,和各种实用工具,安装了vmware tools,你的虚拟机就可以打开DX3D的支持,鼠标想移出虚拟机也不需要按组合键,文件可以从主机直接拖动复制到虚拟机里面,虚拟机的分辨率也会自动跟随窗口调整而变化,还能解决图形界面下的卡顿,总之就是拓展了虚拟机的功能,方便使用。     &nb…

    Linux干货 2016-08-04
  • http2.4版本基本配置应用

    练习题:分别使用httpd-2.2和httpd-2.4实现; 1、建立httpd服务,要求: (1) 提供两个基于名称的虚拟主机: www1.stuX.com,页面文件目录为/web/vhosts/www1;错误日志为/var/log/httpd/www1/error_log,访问日志为/var/log/httpd/www1/access_log; www2…

    2017-06-05
  • shell脚本编程基础练习

    这周,我们学习了shell脚本基础,那么什么是shell脚本呢? shell script是利用shell的功能所写的一个程序,这个程序是使用纯文本文件,将一些shell的语法与指令写在里面,然后用正则表达式,管道命令以及重定向向等功能,以达到我们所想要的处理目的。Shell脚本可以帮助我们系统、自动化的去管理和处理一些东西 下面是摘抄出的几个练习: 首先,…

    2017-08-05
  • keepalived实战之小试牛刀

    keepalived是什么 keepalived是集群管理中保证集群高可用的一个服务软件,其功能类似于heartbeat,用来防止单点故障。 keepalived工作原理 keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议。 虚拟路由冗余协议,可以认为是实现路…

    Linux干货 2017-06-24
  • 逻辑卷管理(LVM)

    逻辑卷管理(LVM) LVM概念 是系统上对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上的一个逻辑层,用来提高磁盘分区管理的灵活性。 安装Linux系统时,最常见的问题是如何评估各分区大小,以分配合适的硬盘空间。随着LVM的出现,这些问题都引刃而解了,用户在无需停机的情况下方便地情况下方便的调整个分区的大小。 LVM重点在于可以弹性的调整文件系统的容量…

    Linux干货 2016-11-22