网卡配置:
TYPE=Ethernet(最常用的)
BOOTPROTO=none/dhcp(获取方式)
IPADDR0=
PREFIX0=
GATEWAY0=
DEFROUTE=yes
ONBOOT=
若是dhcp就不需要写ipadd和prefix
第一天:
selinux-------
sestatus:查看状态
setenforce:设置selinux在强制和警告间切换
更改安全值:chcon -t 安全值 文件名
恢复安全值:restorecon -v 文件名
查看进程的安全值:ps -Z
安全值的主配置文件: /etc/selinux/config
也可以利用图形化界面实现,但前提是要有图形化功能(安装policycoreutils-gui工具),之后在控制台或者终端输入system-config-selinux即可进入配置
bool值:
查看:getsebool -a |grep XX
设置:setsebool (-P) xxxx_SS_wd on
同时设置多个:setsebool -P xxxx_SS_wd=on xxxx_Sd_wd=on
在linux中除了防火墙之后还有tcp_wrappers用来安全防护:
对服务的本身进行控制
其主要有两个配置文件:
/etc/hosts.allow
/etc/hosts.deny
语法规则:服务: 控制对象 宏
如: sshd: 172.16.40.0/24 EXCEPT 172.16.40.3
注意: 匹配时先匹配allow中的,再匹配deny中的,之后前者未匹配才匹配后者;
控制对象可以是ip也可以是网段,掩码可以用简写(/24)也可以用32位形式写
宏原则上在allow和deny中都可以定义,但在allow中意义不大,因为就算在allow中定义了,还是要去deny中匹配
几大宏:
LOCAL 主机中不含.的主机(通常是指自己)
KNOWN 所有在DNS中可以解析到的主机
UNKNOWN 所有在DNS不可以解析到的主机
PARANOID 所有在DNS中正向解析与反向解析不匹配的主机
ALL 代表匹配所有(这个主机和服务都可以定义)
还有一个非常有用的定义方式:
EXCEPT
openssh:
服务:openssl
可以实现安全远端文件copy:
scp /root/aaa root@x.x.x.x/root/bbb
还可以在两主机之间建立信任的通信(无需密码验证登录)
方法:
创建证书:ssh-keygen -t rsa(选择加密算法)
完成后将公钥发送给对方:
scp /root/.ssh/id_rsa.pub root@x.x.x.x:/root/.ssh/authorized_keys(默认位置)
之后就可以登录对方:ssh
同时对方也可以建立:形成双方信任
关于ssh服务器的几点features:
首先需要openssh-server服务(默认安装)
A.设置登录端口
ssh的默认端口是22,但可以在主配置文件中进行修改:
/etc/ssh/sshd_config
将端口的注释去掉,再修改一个端口即可
重启服务:systemctl restart
sshd.service
B.设置root不能ssh登录:
在主配置文件中设置 PermitRootLogin no即可
C.设置allow的用户:
在主配置文件的最后加上:
AllowUsers user XX DD
以上特性都需要重启服务后实现
基于证书的ssh登录:
创建证书并设定大小:
ssh-keygen -t rsa -b 4096
修改公钥文件名,因为缺省是authorized_keys ,改为id_rsa.pub
之后将私钥和公钥导出,在X-shell中设置,登录
关于命令的缓存(history):
A.设置history缓存大小;
在、/root/.bash_profile
中加上HISTSIZE=X
B.设置执行时间:
在/etc/bashrc中添加
ISTFILESIZE=SS
HISTSIZE=DD
HISTTIMEFORMAT="%Y%m%d--%H%M%S"
export HISTTIMEFORMT
之后重新登录查看
第二天
1.DHCP环境搭建:
安装DHCP服务
编辑配置文件
/etc/dhcp/dhcpd.conf
设置全局参数和局部参数;全局的对于所有的局部都实用
必须要的两个全局参数:
ddns-update-style(none|interim|ad-hoc)设置DNS动态更新类型
none:不更新
interim:互动更新
ad-hoc:特殊dns更新
ignore client-updates:忽略客户端更新
局部模版:
subnet 172.16.40.0 mask 255.255.255.0 {
range 172.16.40.100 172.16.40.150;
option routers 172.16.40.254;
option subnet-mask 255.255.255.0;
option ntp-servers 172.16.40.252;
option domain-name-servers 172.16.40.253;
default-lease-time 21600;
max-lease-time 43200;
filename "aaa"
next-server 172.16.40.240
}
最后两行是用于网络引导安装,确定网络引导文件和由谁来引导(引导服务器)
除了批量dhcp,还可以根据mac下放:
host fantasia {
hardware ethernet xx:xx:xx:xx:xx:xx;
fixed-address X.X.X.X;
option routers X.X.X.X;
option-name-servers X.X.X.X;
}
多作用于就是用一个全局,多个局部,下放不同网段的地址,写多个
subnet x.x.x.x mask x.x.x.x {}
linux下系统常见问题及其修复:
1.Linux的启动过程简概
硬盘读取引导扇区(这部分出问题,可以将硬盘数据备份后,重新格式化硬盘)
加载LIL0或者Grub(7.0中是grub2)(这部分出错,7.0就可以利用重新安装grub2,重新生成grub.cfg文件解决,6.0可以重装grub并将提前备份的grub.conf文件重写)
加载内核(kernel,以只读形式挂载)(出问题后,重装kernel并需重装grub,以及相关文件)
挂载根文件系统
启动init,所有进程的父进程
读取/etc/inittab,定义启动级别
启动服务
读取开机启动脚本/etc/rc.local中的文件(自己编写的脚本所在目录)
A.grub出错
7.0:
从光盘启动系统,进入troubleshooting下的救援系统
切换系统到硬盘系统(chroot /mnt/sysimage)
之后会发现boot下少了grub2目录,重装grub2(grub2-install /dev/sda(重装的位置必须是第一个分区))
grub2重装完成后,在grub2还没有grub.cfg文件,还需要重新生成:
grub2-mkconfig -o /boot/grub2/grub.cfg
之后会发现grub2下有了grub.cfg,之后exit,重启,将启动位置改为hardware即可
6.0:
需要事先有备份的kernel:
root (hd0,0)
kernel /vmlinuz-2.6.32-131.0.15.el6.x86_64 ro root=UUID=54ba193f-e355-469e-934c-6688f5c0bb7a rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LANG=zh_CN.UTF-8 KEYBOARDTYPE=pc KEYTABLE=us crashkernel=auto rhgb quiet
initrd /initramfs-2.6.32-131.0.15.el6.x86_64.img
之后重启修改引导位置即可
注意:在进行修改的时候,必须先将系统切换到硬盘系统(chroot),而且在输入上面信息的时候不能错一个字符
B.kernel出错:
从光盘启动系统,进入troubleshooting下的救援系统
切换系统到硬盘系统(chroot /mnt/sysimage)
由于是从光盘启动,现在要将kernel修复以便可以正常从硬盘启动,所以需要在硬盘中安装kernel,但需要挂载光盘到硬盘,因此需要在硬盘中新建一个目录来存放rpm包(目录名随意,以/cdroom为例)
mkdir /cdroom
之后挂载光盘到/cdroom
mount /dev/sr0 /cdroom
之后cd 到/cdroom/Packages下安装kernel
安装完成后还需要安装grub2(grub2-install /dev/sda)以及重新生成grub.cfg(grub2-mkconfig -o /boot/grub2/grub.cfg)
完成后推出重启,改变引导位置即可
6.0和7.0差不多,只是也需要将grub.conf的信息手动输入到grub
at:计划任务
可以用来在多长时间后实现某种功能,是一次性的 at now +X时间
atq可以查看
atrm可以删除,后加序号
可以通过/etc/at.deny来限制谁可以使用计划任务
默认没有at.allow文件,但可以手动添加,当deny和allow同时存在时,先执行allow的
write可以用来发私信,write 用户名
crontab:周期性的计划任务
crontab -e:编辑计划任务
分 时 日 月 周 指令 内容
crontab -l:查看
crontab -r:删除,全部删除
任务存放位置:/var/spool下(at、cron)
配置文件:/etc/crontab
也可以设置cron.deny和allow
同时还支持在开机后多长时间执行某个指令:
/etc/cron.weekly(monthly、daily、hourly)
计划任务总的就是可以在某个特定时间执行某个任务的一种功能
磁盘配额:
若想使用整个磁盘来做磁盘配额,则直接格式化磁盘,若只想用一个分区做,则需要先划分区:
划分区:
fdisk -l:查看分区列表(82表示swap,83表示ext2,3,4或者xfs文件系统,5表示扩展
分区,b表示fat32文件系统)
fdisk /dev/sda
n(创建新分区)
e(创建扩展分区)
完成后保存退出,partx -a /dev/sda(让刺痛识别分区)
分区划好后就是格式化分区:
mkfs.ext4(6.0) /dev/sdaX(逻辑分区号),mkfs.xfs(7.0)
格式化完成后创建目录,用于实现磁盘配额(如:/cipan)
之后:
6.0:mount /dev/sdaX /cipan
mount -o remount,rw,usrquota,grpquota
为了验证可以使用mount查看
挂载成功后刷新数据库:
quotacheck -cumg /dev/sdaX(但在刷新前需要将selinux设置好,一般设置为警告)
刷新后激活磁盘配额:
quotaon /dev/sdaX
完成后创建一个或多个新用户用于验证
用户创建完成修改/cipan的权限,方便 切换用户后可以使用该目录,并且利用edquota 用户名:编辑磁盘配额限制(前面的soft和hard是表示文件大小的限制,单位是K,inodes后面的soft和hard表示文件数量的限制)
之后切换用户验证:
su - XX
dd if=/dev/zero of=/cipan/XX bs=YY count=NN
if后面表示从哪而获取空间,/dev/zero表示无线零资源
of后面表示路径和文件名,XX表示文件名
bs表示区块的大小
count表示区块数目
bs*count就是真实大小
quota -p XX YY NN:可以将XX用户的限制copy给YY和NN用户
Linux下的挂载:
1.手动挂载
mount -t(type,以某种类型挂载,默认是auto,但有的必须指定挂载type) -o(指定参数) /dev/sda5(指定挂载设备) /mnt(指定挂载点)
注意:一个设备可以挂载在多个目录下,一个目录虽然也可以挂载多个设备,但同一时刻只有一个设备生效,最后一个生效,其他设备存在,但只有后一个卸载前一个才生效
umount:卸载,后加设备或者挂载点都可,但有的加挂载点不行,所以最好都加设备
2.开机挂载
编辑/etc/fstab文件:
挂载设备 挂载点 类型 参数(默认为defaults) 0 0:第一个0表示不设置dump,1表示设置dump1天一次,2表示2天一次一般分区设置为0;第二个0表示是否开机自检,0表示不自检,1表示第一个自检,2表示在第一个之后自检
注意:在开机挂载中,可能会由于/etc/fstab文件出错而重启后进入超级守护进程或者相关服务出错,需要配置正确的/etc/fstab才能正常运行
UUID存放位置:/dev/disk/by-uuid
或者使用blkid查看
3.自动挂载(实现在需要时挂载,不需要后,在一定时间戳后自动取消)
A.自动挂载是基于服务的(autofs),若没有该服务需要先安装
B.设置主配置文件在:/etc/auto.master
里面可以设置辅助配置文件
/XX /etc/auto.XX
XX为目录名(默认/misc)
C.设置辅助配置文件:/etc/auto.XX
格式:
MM(触发条件,也是挂载设备的目录名) -fstype=is9660,ro(设定类型及参数) :/dev/sr0(挂载设备)
D.进入/XX利用cd MM触发即可
自动挂载对需要根据设备的类型来设置挂载类型
实现集中验证(nis):
分为server端和client端,在server上创建用户,实现在client端可以切换
server端:
1.配置yum,安装服务ypserv
2.创建nis用户的专用目录
3.添加nis验证用户及密码
4.指定nis域,进入/etc/sysconfig/network写入:NISDOMAIN=xx.com
5.运行nidomainname xx.com
6.将xx.com写入开机启动脚本:
echo “/bin/nisdomainname example.com” >> /etc/rc.local
7.启动ypserv服务查看ypserv状态:
8.生成nis服务器:
/usr/lib64/yp/ypinit -m
输入服务器名
ctrl+d退出
9.重启相关服务,若向开机生效,则设置开机启动
10.使用nfs共享nis用户的家目录
client端:
1.设置selinux为警告,重启
2.client端加入nis域,重启服务
3.设置自动挂载
sudo:实现对特定用户在特定主机上使用特定命令,对权限的一个下放
配置文件位置:/etc/sudoers
文件格式:默认 root all=(all) all
特定用户 在那些主机上 (那些用户 ) 可以使用
的命令
root用户可以根据需求修改配置文件,控制普通用户使用系统
除了直接进入配置文件外,还可以利用visudo命令进入,visudo的好
处在于,出错时会报错;并且visudo还能呢个防止两个用户同时修改
注意:在修改时,要注意语法格式,可能会因为语法格式报错,注意
分隔符可能是,tab等
对分区的操作:划分区,格式化分区,挂载,使用
划分区:fdisk
格式化分区:mkfs.格式 分区
挂载:mount(可以写到/etc/fstab下)
当swap分区不够用时,增加swap分区的方法:
方法1:
利用磁盘剩余空间或者未使用的分区来做
1.将未使用的分区的ID改为82(因为可以通过
id号来区分分区的作用,82是swap),具体方法是进
入分区操作,利用t改变
2.利用探测命令让内核识别分区
3.格式划分区(命令和文件系统格式化不同,
mkswap),同时还要注意uuid,后面会用到
4.激活swap分区(swapon /dev/sdaX),可以
先查看大小,再激活
5.写入开机挂载(/etc/fstab)
6.重启验证
方法2:
利用分区剩余空间
1.选择分区剩余空间大的操作(df -h)
2.创建一定大小的文件(dd if=
/dev/zero of=/swapfile bs=YY count=XX)
3.格式化创建的swapfile文件(mkswap
/swapfile)
4.激活swap(swapon /swapfile)
5.写入fstab,查看优先级(swapon -s,越大越优)
6.为使其生效,先关swap,再重启(swapoff -a;
swapon -a )
LVM逻辑卷管理器:优势----可以随意扩大或减少分
区大小
创建逻辑卷的步骤:
1.通过pvcreate命令将Linux分区或物理磁盘
处理成物理卷(PV)
2.通过vgcreate命令将建好的物理卷处理成
卷组(Vg)
3.通络lvcreate命令将卷组分成若干逻辑卷
(Lv)
我们真正可以操作(格式化等)的是Lv,可以动态
调整并且不会影响逻辑卷
具体步骤:
1.创建物理分区(fdisk)或者添加磁盘;注意在创建时,需要修改id为8e,因为lvm的代码是8e
2.使用pvcreate创建物理卷:pvcreate /dev/sdaX /dev/sdaY /dev/sdaZ ......
3.使用vgcreate创建卷组:vgcreate vg0(卷组名) /dev/sdax /dev/sday /dev/sdaz .... 后面还可以使用 -s来设置PE大小(默认PE大小是4MB,可以修改,但必须是2的次方大小)
4.使用lvcreate创建逻辑卷:lvcreate -l(小写l是指定多少个PE,n*PE就是容量;大写L就是直接指定大小)XX NN(卷组名) -n LVM1(逻辑卷名)
5.格式化,挂载逻辑卷(所有的操作只能对逻辑卷进行)mkfs.XX /dev/vg0/LVM1;创建挂载目录/LVM,mount /dev/vg0/LVM1 /LVM
基本操作完成,可以通过pvdisplay/vgdisplay/lvdisplay查看
6.可以将其写入开机挂载中:/etc/fstab
关于LVM的其他操作:
1.扩大pv/vg/lv空间:
物理卷:pvextend /dev/sdaE
卷组:vgextend vg0 /dev/sdaE
完成后可以使用vgdisplay查看
重点是对逻辑卷的操作:
逻辑卷:lvextend -L mm(K、M、G) /dev/vg0/LVM1
在对逻辑卷扩容时,还需要系统重新识别:resize2fs /dev/vg0/LVM1(如果是xfs文件系统,则需要使用xfs_growfs /dev/vg0/LVM1)
2.缩小lv的空间:
a.缩小之前,如果是挂载了,需要先卸载:umount /dev/vg0/LVM1
b.强制检查:e2fsck -f /dev/vg0/LVM1
c.缩小文件系统:resize2fs /dev/vg0/LVM1 XX(缩小到XX,单位:K,M,G)(注意,如果是xfs文件系统,需要使用xfs_growfs,不是resize2fs)
d.调整逻辑卷大小:lvresize -L XX /dev/vg0/LVM1
e.使用vgreduce命令刷新
f.检查,重新挂载
总结:创建的步骤是:创建物理分区-----创建物理卷-----创建卷组------创建逻辑卷------格式化,挂载
删除的步骤是:删除逻辑卷-------删除卷组-----删除物理卷------删除分区
lvremove /dev/vg0/LVM1
gvremove vg0
pvremove /dev/sdaX
pvremove /dev/sdaY
.......
RAID阵列: 管理raid的工具mdadm
raid具体功能:帮助安全的文件操作、
文件备份,分为软raid和硬raid,硬raid稳定
,性能好,但成本高,软raid成本低,但稳
性不强,容易破坏
raid分为多种,raid0、1、5、6、10、50等
raid0就是同时读写多个硬盘,读写速度快
raid1是镜像方式,数据安全,全备份,因此
磁盘利用率低,有一半做备份,利用率1/2
raid5,分成区块,各块独立,有校验算法,
部分损坏可以根据其他推算出来,至少需要三块,利用率:N-1/N
raid6,在raid5的基础上增加了一层校验,至少需要4块,利用率:N-2/N
raid10就是结合raid0、1优点
对于软raid的管理工具mdadm,有基本的create
assemble build manage misc grow monitor等
功能
实现一个软raid的方法:(可以用整个磁盘做,也可以用分区做)
1.创建物理磁盘/分区,修改代码为fd
2.创建阵列设备:mknod /dev/mdX(x是编号,必须是/dev/mdX) b(块设备) 9(主设备号,不能变) 1(从设备号,唯一);创建完成后,检查时候有该设备(ls /dev/mdX)
3.创建raid阵列:
mdadm -C(create) /dev/mdX -l(级别,0、1、10、5、6、50) L -n(物理分区数目) N
分区名,以空格隔开
可以使用mdadm -D /dev/mdX,查看状态
4.格式化raid设备:
mkfs.ext3 /dev/mdX
5.创建raid目录并挂载:
mkdir /mnt/raid
munt /dev/mdX /mnt/raid,之后进入raid目录验证是否有lost+found目录,有代表raid创建成功
6.设置配置文件:/etc/mdadm.conf,默认没有,需要手动添加
可以使用mdadm -Ds查看需要配置的内容,之后复制到配置文件,或者直接生成后重定向到配置文件: mdadm -Ds > /etc/mdadm.conf
7.设置开机挂载
注意:如果重启后raid无法使用。可以使用mdadm -A /dev/mdX (设备名) /dev/sdb /dev/sdc (用到的磁盘名 )
注意:当raid和lvm同时使用时,先做raid再做lvm,并且在写入开机挂载时,注意写的是lvm的内容,而raid的不用再写