1.逻辑卷LVM实现原理:
|--实现传统硬盘分区不能解决容量拉伸的问题
|--底层是把物理硬盘分成PE进行管理.
|-- 物理硬盘--> PV--> VG--> LV {见图}
*.创建使用LVM:
创建LVM:
|-- pvcreate /dev/sdb /dev/sdc
vgcreate myvg /dev/sdb /dev/sdc
lvcreate -n mylv -L 2G myvg
//现在mylv这个逻辑卷路径就是: /dev/myvg/mylv
挂载文件系统: mkfs.ext4 /dev/myvg/mylv
现在就可以挂载: mount /dev/myvg/mylv /mnt
查看LVM:
|-- pvdisplay
pvs
vgdispaly
vgs
lvdisplay
lvs
删除LVM:
*需要注意删除的联动性:删除LV直接删除LV,删除VG必须先删除LV,而删除PV,必须先删除VG*
lvremove /dev/myvg/mylv //删除LV
vgremove myvg //删除VG
pvremove /dev/sdb //删除PV
*.LV的拉伸与缩小:
*拉伸:
|--特点:逻辑卷的拉伸操作可以在线执行,无需卸载。
原理:从VG中获取更多PE
|-- vgdisplay //保证VG中还有空闲空间
lvextend -L +4G /dev/myvg/mylv //扩充LV空间
lvdisplay
df -h //查看文件系统
resize2fs /dev/myvg/mylv //更新下文件系统
df -h //查看文件系统是否更新可用
|-- 假设我们这个VG不够用了,我们必须:
向VG里加PV来扩充VG,进而LV。
*拉伸一个VG:
fdisk -l //查看都有哪些硬盘可用
pvcreate /dev/sdd
vgs
vgextend myvg /dev/sdd
vgs
*缩小:
|-- 特点:LV的缩小必须离线,即卸载,否则数据丢失。
原理:把部分PE还给VG
|-- 顺序:先缩小文件系统,再缩小LV
unmount /mnt
e2fsck -f /dev/myvg/mylv //对文件系统进行校验
resize2fs /dev/myvg/mylv //缩小文件系统
lvreduce -L -4G /dev/myvg/mylv //缩小LV
lvdisplay //查看缩小后的LV
mount /dev/myvg/mylv /mnt //重新挂载
|--当我们需要撤走一部分硬盘,
*缩小VG:
vgs //确保VG的当前空余空间要大于物理硬件的空间大小
vgreduce myvg /dev/sdd
vgdisplay
pvremove /dev/sdd
2.ACL:
|--解决传统UGO模型控制权限的缺陷:不能支持一个文件多用户多组;
|-- mount -o acl /dev/sda5 /mnt //ACL功能必须在文件挂载时打开
getfacl linuxcast.net //查看文件ACL信息
setfacl -m u:haoge:rwx linuxcast.net //添加访问文件的用户
setfacl -m g:traning:rw linuxcast.net //添加组
getfacl linuxcast.net //操作完之后查看一下
setfacl -x u:haoge linuxcast.net //删除用户
setfacl -x g:traning linuxcast.net //删除组
getfacl linuxcast.net //咱们再来查看这个文件一下
/*修改就是重新添加一次*/
*重做笔记1的实例:ACL.png*
groupadd training
groupadd market
groupadd manage
groupad boss
useradd -G training nash_su
useradd -G training bob
useradd -G market alice
useradd -G market john
useradd -G manage steve
useradd -G manage david
useradd -G boss snake
cd /
mkdir linuxcast.net
ls -ld linuxcast.net
cd linuxcast.net
mkdir training
mkdir market
mkdir manage
mkdir boss
ls -ld training|market|manage|boss
chgrp training training/
chgrp market market/
chgrp manage manege/
chgrp boss boss /
ls -ld training|market|manage|boss
chmod o-rwx traning
chmod o-rwx market
chmod o-rwx manage
chmod o-rwx boss
ls -l
chmod g+s training //让每个部门下的每个用户继承相应部门。
chmod g+s market
chmod g+s manage
chmod g+s boss
ls -ld training|market|manage|boss
cd training
mkdir nash_su
chown nash_su nash_su/
ls -ld nash_su //查看它的O权限,应该默认就是r-x,所以不做修改O第五个要求。
mkdir bob
chown bob bob/
cd market
mkdir alice
chown alice alice
mkdir john
chown john
cd manage
mkdir steve
chown steve steve
mkdir david
chown david david
cd boss
mkdir snake
chown snake snake
setfacl -m g:boss:rx training/
setfacl -m g:boss:rx market/
setfacl -m g:boss:rx manage
getfacl training|market|manage //查看manage的acl权限是否生效
3.
RAID:
|--特点:解决传统硬盘的两个问题:读写IO性能极低,安全稳定性极差(冗余性很差)
基于多硬盘并行操作的原理,提高硬盘IO,提高冗余性。
|--DAID0 RAID1 RAID5 RAID6 的各个原理及优缺点:
|--0:
*至少两块硬盘,一个数据分解后存在多块硬盘上,并行读写、
*IO性能最佳,冗余性为0,空间利用率最佳。
|--1:
*两块硬盘,一个数据copy成两份分别存在两块硬盘上,并行读操作,写反倒是要写两份。
*IO性能{读等同于RAID0,写效率很低},冗余性高{可以允许一块硬盘挂掉},空间利用率一般。
|--5:
*至少三块硬盘,数据分解写到三块硬盘,然后往第四块上写一个奇偶校验信息{任意知三推一},可恢复丢失数据
*IO{读写与RAID0相当},冗余性高{允许一块硬盘挂掉,可"知三恢"复出来},空间利用率一般。
|--6:
*至少四块硬盘,相比较RAID5,多写一份奇偶校验值。
*IO,空间利用率接近RAID5,只是冗余性更高{允许两块硬盘挂掉,"知2推二"}
|--实际生产中的实现分类:
|--硬件RAID:单独安装RAID硬件卡。
|--软件RAID:{受操作系统稳定性影响,占用CPU等系统资源,受到硬盘接口的很大影响。}
|--安装RAID软件:
|--
4.
linux网卡绑定和子接口:
|--网卡高级命令:
mil -tool eth0 //查看网卡状态
ethtool eth0 //查看网卡物理特性
ethtool -i eth0 //查看网卡舞动信息
ethtool -S eth0 //查看网卡状态{非常详细}
|--IP别名:
|--目的:把一块物理网卡配置多个ip,充分利用网卡资源
|--
service NetworkManage shutdown //centos为了方便图形界面用户管理网络,默认使用NM{上方那个电脑图标}
chkconfig NetworkManage off //永久禁用NM
ifconfig
ip addr add 192.168.1.300/24 dev eth0 label eth0:0|eth0:1
ifconfig
/* ip命令只是临时修改,如果需要永久修改,cd /etc/sysconfig/network-scripts/ 添加配置文件 */
cd /etc/sysconfig/network-scripts/
vim ifcfg-eth0:0
DEVICE=eth0:0
IPADDR=192.168.1.300
PREFIX=24 //子网掩码的缩写
ONPARENT=yes //设置父母网卡
|--多网卡绑定:
|--目的:* 把多块物理网卡并行启动,合并成一块逻辑网卡:提高速度,提高稳定性{冗余性}
* 绑定后单独是网卡不再使用,ip地址将绑定在逻辑网卡上:/etc/bond0
* 三种模式:0{平衡轮训,提高速度} 1{主动备份,提高冗余性} 3{广播}
|-- /* 修改某配置文件,记得先关闭相应的服务,否则或报错。 */
cd /etc/sysconfig/network-scripts/ //首先修改添加一个bond0的配置文件{逻辑网卡}
ls
vim ifcfg-bond0
DEVICE=bond0
IPADDR=192.168.1.2
PREFIX=24
ONBOOT=yes //开机自启动
BOOTPROTO=none
USERCTL=no
BOND_OPTS="mode=0 mlimon=50" //向bond0的模块程序传入两个参数。
cd /etc/sysconfig/network-scripts/ //然后去修改物理网卡的配置文件
ifconfig
ifdown eth0 //在修改服务配置文件前,先关掉服务、
ifdown eth1
vim ifcfg-eth0 //同理修改 ifcfg-eth1
DEVICE=eth0
BOOTPROTO=none
HWADDR=... //mac地址不用修改
ONBOOT=yes
MASTER=bond0 //逻辑网卡{主网卡}为bond0
SLAVE=yes //设置这块网卡为slave{从网卡}
USERCTL=no
cd /etc/modprobe.d/ //为新网卡{bond0}配置模块{windows里的驱动}
ls
vim bonding.conf //moudle的文件名格式就是XXXing.conf
alias bond0 bonding //这句话就是对bond0网卡启用bonding这个模块
ifup bond0
ifconfig
/*
之后可在另外一台机器上ping这个bond0的ip,
然后在配置了bond0的这台机器上观察流量变化:watch -n ifconfig
试着把 BOND_OPTS="mode=0 mlimon=50" 的模式改成1,3看看流量变化。
*/
5.selinux:
|--特点:* selinux属于是NSA开发的一种全新的安全机制,属于内核级别的安全策略。
* 进程和系统资源{文件,socket系统调用} 分别对应着 domain context,
domain限制进程,context限制系统资源。
* 策略:selinux通过定义策略来控制哪些进程访问哪些资源。domain-->context
* centos/rhel 默认有预置策略,无需用户自定义{除非我们自己加入某些自定义服务},它称作target策略,
意思是:selinux只会限制target进程:即网络进程。
{其他进程不受selinux限制,因为服务器上的安全问题大部分来自网络服务}
*被限制的常见网络服务有:dhcpd httpd mysqld named ntpd rpcbind squid syslogd
|--selinux的工作模式:
* enforce{强烈禁止} permissive{警告} disable{禁用selinux}
* 模式配置文件: /ect/sysconfig/selinux //如果需要永久性修改selinux的某些配置,需要修改配置文件
* getenforce //查看当前selinux信息 {不过这两个命令都是暂时的修改}
setenforce 0|1 //设置当前selinux工作状态
* ps -Z{domain} ls -Z{context} //查看当前selinux信息
|-- 运维中系统排错:
*情形:如果用户在运行网络服务的时候,修改了某些文件,引起进程无法访问某些文件,很可能是修改文件导致domain
和content不对应,这时候需要ps -Z 或者 ls -Z 分析selinux是不是正常。
然后一般我们能够修改的就是恢复文件的content,和修改content.
restorecon -R -v 文件路径 //恢复文件的content
chcon --reference=/etc/named.conf.orig /etc/named.conf //前一个路径下的文件的content为模板
*实例:
比如用户在home目录下创建了一个index.html,然后启动apache服务,利用mv命令移动到/var/www/html/,
发现apache正常启动之后解析不了index.html,我们 ls -Z index.html 和 ls -Z apache.html
{在/var/www/html/创建一个apache.html},发现他们的content不一样。
正是因为在家目录下面创建的index.html默认自动继承home对应的content,而mv又并不改变它的content,
所以当index.html被移动到/var/www/html/后,apache默认的domain无权限访问home目录下的content,
{apache只认自己目录下的文件对应的content},所以我们需要把/var/www/html/下所有的文件的content
恢复为apache默认的content。
restorecon -R -v /var/www/html/
/* 之后我们再ls -Z 发现index.html的content变成了apache服务默认的content,
而且apache可以解析index.html了 */
6.iptables:
|--linux服务器安全需考虑:
*哪些ip可以访问服务器
*可以使用哪些协议
*可以使用哪些接口
*是否要对数据包进行修改
*如果服务器被攻击,这时就需要对某些ip进行禁用
|--linux内核集成了以上这些基本的访问控制功能,由netfilter模块控制。
而在用户层,我们使用iptables对netfilter进行控制。
|--netfilter:
*支持对数据accept drop modify操作.
*对数据分类方式:
源ip地址
目标ip地址
使用接口
使用协议 // TCP UDP ICMP等
端口号
连接状态 // new ESTABLISHED RELATED INVALID
|--netfilter的基础图解:NetFilter.png NetFilter2.png
|--常用功能:
|-- 作为服务器:
|-- 作为路由:
|--规则:
|--iptables的配置管理:
7.linux远程管理:
|--基础协议类别:
|-- RDP : windows系统下图形界面使用的远程协议
|-- telnet: 几乎所有系统支持的明文传输的协议 {很不安全}
|-- SSH : 类linux的CLI界面下支持内容加密的远程管理协议,openssh是实现ssh的一个开源软件。
|-- RFB : 类linux的GUI界面下支持加密内容的远程管理协议,vnc是实现RFB的最常用软件。
|-- SSH:
|--特点:
* 使用非对称算法的秘钥对数据进行加密传输。
* SSH协议使用TCP协议,端口号22,开源实现程序是openssh
* 分为clinet和server,默认已安装自启动{常驻服务}
|--使用:
*默认第一次在两台主机上连接,需要接受公钥,互相验证。
* ssh nash_su@192.168.1.100 //登陆远程主机
ssh nash_su@192.168.1.100 ls / //支持不登陆地执行一个命令
*其他使用ssh的命令:
* scp source destination //linux下常用的远程加密传输文件
scp linuxcast nash_su@192.168.1.100:/home/ //确保登陆的用户有权限访问目标文件
/* -r 复制文件夹 -p 传输时保留文件的权限及时间戳 -C 传输时进行数据压缩 */
* rsync *.* nash_su@192.168.1.100:/home/ //两台机器间的一种增量的同步文件方式,用于备份。
|-- RBF:
|--服务端:yum install -y tigervnc-server
cd /etc/sysconfig/ //vnc的配置文件
ls -ld vncservers
vim vncservers
VNCSERCERS="1:linuxcast 2:nash_su" //这是指定vnc服务的编号及其对应用户
su - linuxcast //切换到vnc服务对应的用户下创建相应的vncpasswd
vncpasswd
service vncserver start //启动vnc服务
/* 这里注意可能要关闭防火墙或者添加允许策略,实验下就直接关闭:iptables -F */
|-- 客户端:
|-- centos默认集成了tigervnc,但是未安装,我们在客户机上安装它:
yum install -y tigervnc
|-- 图形界面登陆即可。
vnc server 192.168.1.100:1
// :1指的是我们登陆哪个vnc服务{我们在服务端配置文件里面配置了linuxcast和nash_su两个}
8.DHCP服务基础:
|--基础原理:client DHCPDISCOVER //client发出discovr
server DHCPOFFER //所有的DHCP全部提供
client DHCPREQUEST //从所有的offer里面选择一个并向该提供服务的server发出request
server DHCPACK //server给client发送packet
|--
|--
/**************/
后面还有三个很重要,记得要学习:mysql
git
ubuntu