准备工作
# vmware
vmware是虚拟化软件.(实验环境用,此软件不必深究)
windows平台使用的话下载 - vmware workstation; mac平台使用的话下载 - vmware fusion.
以下是基于vmware workstation的使用进行的阐述哦~
# 原理
vm1,vm2,vm3
应用程序vmware
操作系统
计算机硬件
Ps: 一些快捷键
ctrl+r 重启计算机
ctrl+alt 将鼠标从虚拟机中切换到宿主机
唠唠嗑:
服务器一多,应该使用自动化运维平台管理每台服务器的IP账户密码,而不是记录在excel表上.
运维在部署时会很痛苦,因为要找软件的依赖包.
而go语言有个便利之处,开发好软件后,可以将软件所有的依赖包打到一起成一个二进制文件.部署会很方便.
2
3
4
5
6
7
8
9
10
11
12
13
# 网络三种模式
1> 仅主机 (几乎不用)
vm只能与宿主机及宿主机上的其他vm通信,不能与外网通信
宿主机会产成一个虚拟网卡VMnet1,所以的vm都使用这个虚拟网卡,VMnet1就相当于一个交换机.
2> 桥接 (不推荐)
vm与宿主机处于同一个LAN中,相当于在局域网中新增了一台主机,
vm会直接通过宿主机的本地网卡进行通信.
若使用静态配置,LAN中IP易冲突
3> NAT (推荐) 网络地址转换
NAT模式的虚拟机就是通过宿主机(物理计算机)上网和交换数据的
宿主机会产生一个虚拟网卡VMnet8给vm使用,在VMnet1基础之上VMnet8可以做路由转发
路径: vm - VMnet8 - 虚拟的路由 - 宿主机的本地网卡 - 交换机 - 路由器 - internet
vmware创建的虚拟机默认会使用本地DHCP服务将IP地址分配给虚拟机.
当然我们可以手动进行网络的配置.
注意: 网关的IP,若是一个c类地址,去头去尾 1-254可用,习惯会用1或254.
服务器集群化作业,配置的IP一定是静态配置,固定死的!!
# centos的安装
vmware fusion:
https://blog.csdn.net/vbirdbest/article/details/107375067
vmware workstation:https://www.cnblogs.com/linhaifeng/p/13252347.html
.iso结尾的镜像文件 通常压缩的是操作系统的代码 镜像文件就是一种特殊格式的压缩包
普通账户密码 1998.0307
root账户密码 123456
□ 按住F2进入BIOS界面
修改启动项, Hard Drive(本地硬盘)第一位,其次是CD-ROM Drive(CD/DVD镜像文件)
□ 在"安装信息摘要"页面
1> 软件安装 -- 一般选择 最小安装
2> KDUMP -- 取消勾选.因为此功能会占用内存.(OS的开发者使用,对我们来说没用)
3> 网络与主机名(N) -- 打开
4> 安装位置 -- 选择“我要配置分区”
Ps: 对vm占用的宿主机的那部分硬盘进行分区,一个分区就是一个文件夹对应一块硬盘空间
硬盘 -- 水桶
分区 -- 水桶的隔断
挂载点(eg: / /boot swap) -- 某一个具体的隔断
注意哦,/boot是/的子文件夹,但是它两是两个分区, 是隔断了的!
[分区方案]
方案一 常规生产场景:
/boot 相当于windows的C盘,300-500M,建议500M
swap 虚拟内存,占用的是硬盘空间,1.5-2倍物理内存的大小(最大8G)
/ 根分区 剩余空间
方案二 数据库及存储角色的服务器,即有大量重要的数据的业务:
/boot
swap
/根分区 50-200G,只存放系统相关文件,网站业务数据不放这里
/data 剩下的所有硬盘空间
So,本方案其实就是把重要数据单独分区,便于备份和管理
方案三 大型门户网站
不同与方案二在于 无/data 会将剩下的硬盘空间根据需求再分
So, 此方法更灵活,比较适合业务线比较多需求不确定的大企业使用
云平台、云环境要考虑动态扩容的需求会使用LVM(逻辑卷)在线调整分区大小(效率肯定不如直接固定分配好的)
Ps: 网上还有很多方案会建立很多分区/var,/swap,/usr等..不建议这样做!!要有度,不然会很乱..
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
□ 安装好进入页面后,在终端先输入命令安装一些软件包 在root账户下执行!
yum -y install tree nmap sysstat lrzsz dos2unix telnet bash-completion bash-completion-extras vim lsof net-tools rsync ntpdate nfs-utils
yum是Shell 前端软件包管理器
yum这个应用软件/工具可用于去centos官方仓库里下载一些常用的软件.
yum一开始就对应了一个默认的yum源,可自行配置.
yum update 慎重!会更新所有的软件包.不要轻易使用,一般只在最开始安装好操作系统时使用下.
在终端看到 $ 表示普通用户 # 表示root管理员用户
出错1: 使用不了yum命令,是同一时间只能使用一个yum
ps aux|grep yum
kill -9 487388(相应的进程号)
出错2: 下载不了,发现上不了网,使用下方这条命令重启网络服务.它包含重新激活网卡.
systemctl restart network
安装好后,可以打一个快照,然后执行 rm -rf /* 命令玩一玩,然后再恢复快照.
[补充:linux支持多个联机终端]
现在来看,没啥用途.. ctrl+alt+F'n'(1<=n<=6)
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# xshell
xshell是一个 远程登录 的客户端程序,对应服务端程序openssh-server
(运行在linux上的软件 默认是22号端口)
ssh root@服务器的ip
systemctl status sshd
可查看服务端软件状态.
套接字客户端 | 网络 | 套接字服务端 |
---|---|---|
xshell | ---------- | openssh-server |
# 远程连接
注意:
▲ xshell只能用在windows系统上.
▲ mac系统的本源就是linux.. 但凡是linux系统,默认都会安装软件openssh-server和openssh-client. 也就是说,linux系统的主机可以作为客户端连接别人,也可以作为服务端让别人连! 建议使用iterm2.
Ps: xshell的下载好后初始的一点优化. https://www.cnblogs.com/linhaifeng/p/13252347.html
windows xshell 缓冲区的设置!(控制内容显示行数) 上下翻页: shift+PgUP shift+PgDn
在虚拟机终端输入命令: ifconfig
在输出结果里 网卡名:`ens33`是vm的本地网卡;`lo`是vm本地回环的网卡(数据走到网卡又原路返回,用于测试).
(网卡名通常会改成eth0之类的,表示以太网协议)
`ens33`
inet 172.16.150.128 netmask 255.255.255.0 broadcast 172.16.150.255
`lo
inet 127.0.0.1 netmask 255.0.0.0
★★★ 查看其ip地址,进行远程连接.. `ssh root@服务器的IP`
Ps: `ens33`网卡里面有个mtu属性,表示最大传输单元(单位字节) 代表网卡带宽的大小. 若为1500,则是千兆网卡.
若是光纤模块的话,这个值相应要调大!
2
3
4
5
6
7
8
9
10
11
12
13
# 连接排错
[远程连接失败排错]
一:测试网络是否通畅
ping www.baidu.com
route -n 查看网关地址
ping 网关地址
在vm服务端 ifconfig查看ip
在客户端ping 172.16.150.128 (此IP是服务端IP地址)
若ping不同,检查NAT模式下VMnet8所处的网段是否有问题
二:防火墙 数据包被防火墙过滤了导致连接不上
vm的终端输入命令:
systemctl stop firewalld (关闭防火墙)
systemctl disable firewalld (开机不启动防火墙)
三:SElinux软件 会提升linux的安全级别到很高 但安全性越高,可用性越低 它会挡住很多软件的正常运行
SElinux有三种状态(0 1 2)分别对应
Permissive 加载了不生效但给warning提示信息
enforcing 加载了生效
disabled 不加载,意味着内核启动起来后,SElinux这部分不会加载进内存..在硬盘待着.
vm的终端依次输入命令:
setenforce 0 (临时关闭SElinux 配置文件里是没有修改的!)
vim /etc/sysconfig/selinux (修改配置文件永久关闭)
在文件中修改 SELINUX=enforcing 为 SELINUX=disabled
getenforce 查看SElinux当前状态 -- Permissive
ps:有些软件跟OS没关系,改完后重启软件即可;有些软件是集成在OS内核里的,重启就意味着重启OS.
而SElinux是在OS内核里的,要想修改的配置文件生效,需要重启.重新读取配置文件内容到内存.
是否需要重启生效取决于此软件的开发者是否提供了这个机制.像nginx就不用重启..
重启后,getenforce -- disabled
Ps: 上述体现了linux的两个特点.
linux的模块化就是解耦合的思想
linux一切皆文件,文件也就是硬盘
四.应开启服务端的openssh-server程序 以下两命令二选一.
systemctl start sshd
systemctl restart network (重启网络服务,包含了开启openssh-server程序)
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
30
31
32
# CentOS
# Linux启动流程
详见:
https://www.cnblogs.com/linhaifeng/p/13274099.html
开机 - BIOS - 主引导记录MBR - GRUB引导程序 - 加载Linux内核 - 读取运行级别 - 初始化系统 - 启动服务.
1> 计算机通电
2> 启动BIOS,检查启动项
3> 读取启动盘第一个扇区512Bytes到"内存",包含的是MBR(主引导记录)
前446字节 grub这种bootloader(引导程序) 打个比方:操作系统的排头兵
中间64字节 分区信息
最后2字节 结束标志
grub启动后会加载内核到内存(简单理解就是指操作系统)
4> OS启动起来后
△ 内核的运行级别 级别3常用
0 -- 关机
1 -- 单用户模式 可用于破解管理员root密码
不需要输入账号和密码,登录进来就是管理员账号,root权限
但禁止远程登录,意味着必须去机房,在服务器面前操作,所以此级别基本不用
2 -- 多用户模式(没有网络)
3 -- 多用户模式(有网络) 常用
4 -- 系统未使用,保留
5 -- 图形界面模式,在3的基础上加上了GUI界面
6 -- 重启
centos7: vim /etc/systemd/system/default.target
△ linux操作系统运行起来后运行的每一个程序/进程都有个身份标识PID号
centos6里运行的第一个进程叫做 init 进程号PID为0
centos7里运行的第一个程序/进程叫做 systemd 进程号PID为1
由systemd启动OS的其他进程,是一个树型结构.systemd运行子程序,子程序再运行子程序...
所以systemd是OS其他进程的老祖宗!所有的进程都是它的儿子.
唠唠嗑
在centos7之前,其内核既要管理硬件也要管理上层应用程序.
在centos7里内核只负责硬件部分的管理啦,上层运行的软件统一被systemd软件管理起来啦.相当于架空了内核.
当然,centos7这一举动引发了linux的不满..Hhhh
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
# 系统密码破解与安全加固
参考链接:
https://zhuanlan.zhihu.com/p/315472061
攻 | 防 |
---|---|
可以用单用户模式 修改root账户的密码! | GRUB加密可以防止单用户模式下root密码的修改! |
光盘修复模式可以直接绕过本地硬盘的认证修改root密码.╮(╯▽╰)╭可恶. 当然,GRUB密码也可以改. | BIOS加密 |
扣主板电池让BIOS失效后,再用光盘修复模式. | 锁住机柜..物理防御xswl |
在某个启动盘里启动操作系统:
选择linux内核,按e进入编辑模式,发现ro那一行数据跟参考资料有些出入,可能是小版本不对应导致的..略
ctrl+x后进入单用户模式,输入命令:
切换到原始系统 chroot /sysroot
修改root账户的密码 password root
设置selinux状态为disabled vim etc/sysconfig/selinux (不设置的话会失败)
grub加密,在终端输入命令
设置密码 grub2-setpassword (账号root 密码123)
修改文件 vim /boot/grub2/grub.cfgs 删除--unrestricted
重启系统,会发现,在选择linux内核页面,不管是加载内核还是按e进入编辑,都会叫先输入用户和密码..
在光盘/U盘里启动操作系统 -- 光盘修复模式 降纬打击
没有账户密码,进去就是管理员..
哪怕是装有操作系统的启动盘也可以管理,可以改本地硬盘上的OS root账户的密码.Hhhh
光盘修复模式的第一步是修改BIOS启动项的顺序!
给BIOS加密!(我设置的是111)
还可以扣BIOS主板电池让BIOS设置失效.. 所以应该锁住机柜.
没有绝对的安全,只能见招拆招!
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21