(一)cenos基本信息
一:什么是CentOS
CentOS 是一个基于Red Hat Linux 提供的可自由使用源代码的企业级Linux发行版本。每个版本的 CentOS都会获得十年的支持(通过安全更新方式)。新版本的 CentOS 大约每两年发行一次,而每个版本的 CentOS 会定期(大概每六个月)更新一次,以便支持新的硬件。这样,建立一个安全、低维护、稳定、高预测性、高重复性的 Linux 环境。CentOS是Community Enterprise Operating System的缩写
二:CentOS的特点
1.可以把CentOS理解为Red Hat AS系列!它完全就是对Red Hat AS进行改进后发布的.各种操作、使用和RED HAT没有区别.
2.CentOS完全免费,不存在RED HAT AS4需要序列号的问题。
3.CentOS独有的yum命令支持在线升级,可以即时更新系统,不像RED HAT那样需要花钱购买支持服务!
4.CentOS修正了许多RHEL的BUG.
5.CentOS版本说明:CentOS3.1 等同于 RED HAT AS3 Update1 CentOS3.4 等同于 RED HAT AS3 Update4 CentOS4.0 等同于 RED HAT AS4
(三)CentOS的一些常用命令
1.查看cpu
.more /proc/cpuinfo | grep "model name"和grep “model name” /proc/cpuinfo可以查看cpu
1).[root@instance-rrkkmshy ~]# more /proc/cpuinfo | grep “model name”
model name : Intel® Xeon® Gold 6148 CPU @ 2.40GHz
2).[root@instance-rrkkmshy ~]# grep “model name” /proc/cpuinfo
model name : Intel® Xeon® Gold 6148 CPU @ 2.40GHz
2.查看内核版本的三种命令
1)cat /proc/version
[root@instance-rrkkmshy ~]# cat /proc/version
Linux version 3.10.0-957.27.2.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) ) #1 SMP Mon Jul 29 17:46:05 UTC 2019
2)uname -r
[root@instance-rrkkmshy ~]# uname -r
3.10.0-957.27.2.el7.x86_64
3)uname -a
[root@instance-rrkkmshy ~]# uname -a
Linux instance-rrkkmshy 3.10.0-957.27.2.el7.x86_64 #1 SMP Mon Jul 29 17:46:05 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
3.查看内存
1)grep MemTotal /proc/meminfo
[root@instance-rrkkmshy ~]# grep MemTotal /proc/meminfo
MemTotal: 2047068 kB
2)grep MemTotal /proc/meminfo | cut -f2 -d:
[root@instance-rrkkmshy ~]# grep MemTotal /proc/meminfo | cut -f2 -d:
2047068 kB
3)free -m |grep “Mem” | awk ‘{print $2}’
[root@instance-rrkkmshy ~]# free -m |grep “Mem” | awk ‘{print $2}’
1999
4)free -m
[root@instance-rrkkmshy ~]# free -m
total used free shared buff/cache available
Mem: 1999 138 663 112 1197 1574
Swap: 0 0 0
4.查看linux 内存大小
1)cat /proc/meminfo |grep MemTotal #查看内存总量
[root@instance-rrkkmshy ~]# cat /proc/meminfo |grep MemTotal
MemTotal: 2047068 kB
2)cat /proc/meminfo |grep MemFree #查看空闲内存总量
[root@instance-rrkkmshy ~]# cat /proc/meminfo |grep MemFree
MemFree: 680120 kB
5.查看linux 磁盘信息
fdisk -l
[root@instance-rrkkmshy ~]# fdisk -l
Disk /dev/vda: 42.9 GB, 42949672960 bytes, 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000ad62e
Device Boot Start End Blocks Id System
/dev/vda1 * 2048 83886046 41941999+ 83 Linux
6.查看安装的软件包
1)rpm -qa | wc -l
[root@instance-rrkkmshy ~]# rpm -qa | wc -l
524
2)yum list installed | wc -l
[root@instance-rrkkmshy ~]# yum list installed | wc -l
523
7.查看系统运行时间、用户数、cpu负载
uptime
[root@instance-rrkkmshy ~]# uptime
16:13:32 up 20 days, 5:23, 1 user, load average: 0.00, 0.01, 0.05
8.查看所有网络接口属性
ifconfig
[root@instance-rrkkmshy ~]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.16.0.4 netmask 255.255.240.0 broadcast 172.16.15.255
inet6 fe80::f816:3eff:fe9b:34c2 prefixlen 64 scopeid 0x20
ether fa:16:3e:9b:34:c2 txqueuelen 1000 (Ethernet)
RX packets 3880623 bytes 504748269 (481.3 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 3648374 bytes 893770879 (852.3 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1000 (Local Loopback)
RX packets 1038425 bytes 629680966 (600.5 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1038425 bytes 629680966 (600.5 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions
9.查看当前用户的计划任务服务
crontab -l
[root@instance-rrkkmshy ~]# crontab -l
no crontab for root
10.查看 linux cpu型号 核数
cat /proc/cpuinfo |grep “model name” && cat /proc/cpuinfo |grep “physical id”
[root@instance-rrkkmshy ~]# cat /proc/cpuinfo |grep “model name” && cat /proc/cpuinfo |grep “physical id”
model name : Intel® Xeon® Gold 6148 CPU @ 2.40GHz
physical id : 0
(二)ssh(安全外壳协议)
1.什么是ssh
SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。**SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。**利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。**SSH客户端适用于多种平台。**几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。
2.SSH的安全机制
SSH之所以能够保证安全,原因在于它采用了非对称加密技术(RSA)加密了所有传输的数据。
传统的网络服务程序,如FTP、Pop和Telnet其本质上都是不安全的;因为它们在网络上用明文传送数据、用户帐号和用户口令,很容易受到中间人(man-in-the-middle)攻击方式的攻击。就是存在另一个人或者一台机器冒充真正的服务器接收用户传给服务器的数据,然后再冒充用户把数据传给真正的服务器。
但并不是说SSH就是绝对安全的,因为它本身提供两种级别的验证方法:
第一种级别(基于口令的安全验证):只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人攻击”这种方式的攻击。
第二种级别(基于密钥的安全验证):你必须为自己创建一对密钥,并把公钥放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密钥进行安全验证。服务器收到请求之后,先在该服务器上你的主目录下寻找你的公钥,然后把它和你发送过来的公钥进行比较。如果两个密钥一致,服务器就用公钥加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私钥在本地解密再把它发送给服务器完成登录。与第一种级别相比,第二种级别不仅加密所有传输的数据,也不需要在网络上传送口令,因此安全性更高,可以有效防止中间人攻击。
3.SSH 的验证
第一种级别(基于口令的安全验证)
就是只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。就是不太安全
第二种级别(基于密匙的安全验证)
需要依靠密匙,也就是你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后,先在该服务器上你的主目录下寻找你的公用密匙,然后把它和你发送过来的公用密匙进行比较。如果两个密匙一致,服务器就用公用密匙加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私人密匙解密再把它发送给服务器。
该方法,你必须知道自己密匙的口令。但是,与第一种级别相比,第二种级别不需要在网络上传送口令。
第二种级别可以加密所有传送的数据,但是整个登录的过程可能比较第一个来说耗费时间长。
4.如何让ssh只允许指定的用户登录
第一步我们先看看有哪些用户登录
使用cat /etc/passwd命令查看,结果如下:
[root@instance-rrkkmshy ~]# cat /etc/passwd
root❌0:0:root:/root:/bin/bash
bin❌1:1:bin:/bin:/sbin/nologin
daemon❌2:2:daemon:/sbin:/sbin/nologin
adm❌3:4:adm:/var/adm:/sbin/nologin
lp❌4:7:lp:/var/spool/lpd:/sbin/nologin
sync❌5:0:sync:/sbin:/bin/sync
shutdown❌6:0:shutdown:/sbin:/sbin/shutdown
halt❌7:0:halt:/sbin:/sbin/halt
mail❌8:12:mail:/var/spool/mail:/sbin/nologin
operator❌11:0:operator:/root:/sbin/nologin
games❌12💯games:/usr/games:/sbin/nologin
ftp❌14:50:FTP User:/var/ftp:/sbin/nologin
nobody❌99:99:Nobody:/:/sbin/nologin
systemd-bus-proxy❌999:997:systemd Bus Proxy:/:/sbin/nologin
systemd-network❌192:192:systemd Network Management:/:/sbin/nologin
dbus❌81:81:System message bus:/:/sbin/nologin
polkitd❌998:996:User for polkitd:/:/sbin/nologin
libstoragemgmt❌997:995:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
abrt❌173:173::/etc/abrt:/sbin/nologin
rpc❌32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
tss❌59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
postfix❌89:89::/var/spool/postfix:/sbin/nologin
sshd❌74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
ntp❌38:38::/etc/ntp:/sbin/nologin
chrony❌996:994::/var/lib/chrony:/sbin/nologin
tcpdump❌72:72:😕:/sbin/nologin
(哇塞,登录用户好多呀)
第二步:来限制用户登录(方法用多种,任选其一)
方法1:
在/etc/pam.d/sshd文件第一行加入
auth required pam_listfile.so item=user sense=allow file=/etc/sshusers
onerr=fail
然后在/etc下建立sshusers文件,编辑这个文件,加入你允许使用ssh服务的用户名,不用重新启动sshd服务。
方法2:
pam规则也可以写成deny的
auth required pam_listfile.so item=user sense=deny file=/etc/sshusers
onerr=succeed
方法3:
在sshd_config中设置AllowUsers,格式如
AllowUsers a b c
重启sshd服务,则只有a/b/c3个用户可以登陆
5.CentOS更改SSH服务默认端口号
1)进入到配置文件目录:
cd /etc/ssh,如图所示
2)查看目录下文件:
ls
如图
3)使用 vi/vim 打开 sshd_config 文件:
vi sshd_config
4)修改商口号为
在#Port 22下面添加
Port 12222
6.Win主机环境运行SSH命令
一些常用的shell命令如下:
cd[目录名]转换路径
cd… 返回上级目录
ls显示当前目录下所有文件
rm[-r]-f[][文件名]删除文件,加[-r]可以删除文件下所有子文件,如rm[ -r]-f [abc]删除 abc文件夹及文件夹下的所有文件
tar -xzf [解压下载的压缩包]
unzip[文件名]解压文件
cp -rpf .A/* B 将A文件夹中的所有文件拷贝到其上级目录B中
wget(远程下载文件到服务器上)
参考原文·:https://blog.csdn.net/wangxiaona_616/article/details/103494797