网络 yum仓库 及 selinux
Linux的基础操作(2)
一、rpm/yum 软件包管理器
1、rpm的用法
-i -> 安装某个package dependencies (依赖包)
-e -> 卸载(删除)某个package
-v -> 显示整个安装过程中的详细信息
-h -> 以#号显示安装进度
-q -> 查询
-f -> 软件包名
-l -> 软件包的文件列表
#检验软件包是否篡改
[root@wfy ~]# rpm -import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[root@wfy ~]# rpm -K package_name
常见用法
[root@wfy ~]# rpm -aq httpd
#查询服务所要用到的rpm包
[root@wfy ~]# rpm -ql httpd
#查询服务所涉及到的所有文件,包括数据文件和配置文件
[root@wfy ~]# rpm -qf httpd
#查询文件来自哪个软件包
[root@wfy ~]# rpm -ivh sl-5.02-1.el8.x86_64.rpm
#安装软件包,不能处理依赖关系
2、本地yum的配置 (配本地yum仓库)
1、红帽8以前
(1)连接系统镜像到光驱上 并挂载光驱里的镜像
root@wfy ~]# mount /dev/cdrom /media
root@wfy ~]#cd /media -> ls 查看光盘是否挂载成功(或 df -Th查看进程)
(2)修改yum源配置文件local.repo 文件后缀为.repo,文件名可自定义
local.repo 是自己创的
在/etc/yum.repos.d/里有个redhat.repo是收费的
[root@wfy ~]# vim /etc/yum.repos.d/local.repo
[rhel]
name=rhel 这与[]里一致
baseurl=file:///media file是本地目录
enabled=1 代表开启此yum仓库,0为关闭此仓库
gpgcheck=0 代表验证仓库软件包的完整性(安全性),0为不验证
(3)清空yum源缓存信息:
[root@wfy ~]# yum clean all
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-
: manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Cleaning repos: rhel
Cleaning up everything
[root@wfy ~]#
(4)检索当前yum源信息:
[root@wfy ~]# yum repolist
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-
: manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
rhel | 4.1 kB 00:00
(1/2): rhel/group_gz | 136 kB 00:00
(2/2): rhel/primary_db | 3.9 MB 00:00
repo id repo name status
rhel rhel 4,751
repolist: 4,751
[root@wfy ~]#
2、红帽8之后
第一步一致
(2)修改yum源配置文件local.repo 文件后缀为.repo,文件名可自定义
local.repo 是自己创的
在/etc/yum.repos.d/里有个redhat.repo是收费的
[root@wfy ~]# vim /etc/yum.repos.d/local.repo
[BaseOs]
name=BaseOs
baseurl=file:///media/BaseOS
enabled=1 代表开启此yum仓库,0为关闭此仓库
gpgcheck=0 代表验证仓库软件包的完整性(安全性),0为不验证
[AppStream]
name=AppStream
baseurl=file:///media/AppStream
enabled=1 代表开启此yum仓库,0为关闭此仓库
gpgcheck=0 代表验证仓库软件包的完整性(安全性),0为不验证
后两步一致
3、yum命令总结:
[root@wfy ~]# yum clean all 清空yum缓存
[root@wfy ~]# yum repolist 列表查看本操作系统所有的yum源
[root@wfy ~]# yum list 显示已安装和可用的软件包
[root@wfy ~]# yum provides + 路径(命令) 查询某个文件安装的rpm包
[root@wfy ~]# yum -y install + 软件名 安装某个软件
[root@wfy ~]# yum -y remove + 软件名 卸载某个软件
[root@wfy ~]# yum -y update + 软件名 更新某个软件
[root@wfy ~]# yum info 提供与软件包相关的详细信息,包括安装所需的磁盘空间
yum -y upgrade 升级系统内核
二、网络配置与管理
1、网络命令
在Linux里
ifconfig <=> ip addr show(ip a) 查看本地所有网卡配置信息
ens32:代表本地以太网网卡 lo:代表本地回环网卡 virbr0:代表虚拟网卡
ping 测试网络连通性(使用ctrl+c来结束测试) 用-c 指定次数
ip route 查看本地路由
netstat 查看网络连接状态 -pant 查看带有PID进程信息的tcp协议网络端口连接状态
ifconfig ens33|grep netmask |awk '{print$ 2}'
仅查看IP
在Windows里
只有ipconfig 查看本地所有网卡配置信息
ping 命令——测试网络连通性(使用ctrl+c来结束测试) 用-n 指定次数
netstat 查看网络连接状态
2、配置文件修改
连接虚拟网卡
编辑 ——> 虚拟网络编辑器 修改网段
虚拟机 ——> 设置 网络适配器 自定义
进配置文件稍作修改
[root@wfy ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens32
TYPE=Ethernet 网卡类型是以太网
BOOTPROTO=none ip地址获取方式有三种:dhcp动态获取ip,none或static手动设置固定ip地址
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens32 网卡连接名
UUID=2c22b930-96b9-4ef4-abfb-ff9fbc85ff23 网卡的系统设备ID号,唯一性
DEVICE=ens32 设备名
ONBOOT=yes 是否开机自启
IPADDR=192.168.100.20 IPv4地址
PREFIX=24 NETMASK=255.255.255.0
GATEWAY=192.168.100.2 网关
DNS1=192.168.100.254 DNS地址,一张网卡可以绑定多个DNS
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
重启网络
红帽8以前
[root@wfy ~]# systemctl restart network
[root@wfy ~]# ip a 查看
红帽8之后
[root@wfy ~]nmcli connection reload
[root@wfy ~]nmcli connection up eth0
3、nmcli 命令配置
#查看所有网卡连接信息
[root@wfy ~]# nmcli connection show
#手动添加一个连接配置
[root@wfy ~]# nmcli connection add type ethernet ifname ens32 con-name ens32 ipv4.addresses 192.168.100.20/24 ipv4.gateway 192.168.100.2 ipv4.dns 119.29.29.29 ipv4.method manual autoconnect yes
* IPv4地址是192.168.100.20
* 子网掩码24位
* 网关地址192.168.100.2
* dns服务器地址是119.29.29.29
#开启网卡连接ens32
(注:如果网卡连接起不来,可以先关闭。nmcli connection down ens32)
[root@wfy ~]# nmcli connection up ens32
#重新加载所有的网卡连接配置
[root@wfy ~]# nmcli connection reload
#检查一下网络是否配置好了
[root@wfy ~]# ifconfig
#测试新配置好的本地网络是否ping得通
[root@wfy ~]# ping 192.168.100.20
4、双网卡绑定bond模式
常用的两种模式
mode=1(active-backup)(主备策略)
当主网卡宕机时候,就会由备份代替,提供容错能力
mode=4(IEEE802.3AD)(动态链路聚合)
也称为“LACP”模式(交换机里称谓)。提供负载均衡和冗余性。
1.创建bond网卡配置
[root@wfy ~]# nmcli connection add type bond ifname bond1 mode 1 ipv4.addresses 192.168.72.10/24 ipv4.gateway 192.168.72.254 ipv4.method manual
2.设置bond从属网卡
[root@wfy ~]# nmcli connection add type bond-slave ifname ens192 master bond1
[root@wfy ~]# nmcli connection add type bond-slave ifname ens193 master bond1
4.激活bond 查看网卡绑定状态
[root@wfy ~]# nmcli connection up bond1
[root@wfy ~]# cat /proc/net/bonding/bond0
配置组Bond
[root@wfy ~]# cat /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
BOOTPROTO=static
ONBOOT=yes
NM_CONTROLLED=no
BONDING_OPTS="miimon=100 mode=0"
IPADDR=192.168.190.111
NETMASK=255.255.255.0
GATEWAY=192.168.190.2
DNS1=114.114.114.114
#NM_CONTROLLED=yes 修改后无需要重启网卡立即生效,安全隐患
#miimon参数:指定网卡故障时切换时间间隔时间,以ms为单位
#mode参数:bonding模式
[root@wfy ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
MASTER=bond0
SLAVE=yes
[root@wfy ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth0
ONBOOT=yes
MASTER=bond0
SLAVE=yes
5、脚本一键配置网络
[root@wfy ~]# vi ip.sh
#!/bin/bash
function check_var(){ #判断有无输入字符,没有输入,返回True
if [ -z $1 ];then
exit
fi
}
read -p " input interface: " get_ip #输入网卡设备
check_var $get_ip
read -p " input ipaddress: " ip_add #输入IP地址
check_var $ip_add
read -p " input prefix: " ip_prefix #输入掩码
check_var $ip_prefix
if [ $ip_prefix != "24" ];then
read -p " input prefix or Yes/No" get_yes
if [ $get_yes != "yes" ];then
exit
fi
fi
read -p " input dns: " ip_dns #输入DNS
check_var $ip_dns
read -p " input gateway: " ip_gateway #输入网关
check_var $ip_gateway
get_nmcli=$(nmcli connection show |awk {'print $1'})
for i in $get_nmcli
do
if [ "$i" == "$get_ip" ];then
nmcli connection delete $get_ip
fi
done
nmcli connection add type ethernet ifname $get_ip con-name $get_ip ipv4.addresses $ip_add/$ip_prefix ipv4.gateway $ip_gateway ipv4.dns $ip_dns ipv4.method manual autoconnect yes
# 保存后退出
#赋予执行权限
[root@wfy ~]# chmod +x ip.sh
#执行脚本
[root@wfy ~]#./ip.sh
三、SElinux Linux安全访问策略
是Linux操作系统的一个额外的强制性的安全访问规则。用于确定哪个进程可以访问哪些文件、目录和端口的一组安全规则。
保护的对象是服务、服务对应的文件/目录、服务对应的端口
如果selinux开启,以root身份运行进程,访问文件不光要受用户对文件访问权限的限定
还要受进程对文件selinux上下文类型的限定,否则,就算是root用户运行的进程,也不一定能访问某个文件。
1、selinux 的三种模式(状态):
getenforce 查看
enforcing 强制模式 拒绝非法访问并录入日志;
permissive 许可模式(警告模式) 暂时允许非法访问并录入日志
disabled 禁用模式 允许非法访问且不录入日志。
2、selinux的模式切换
临时切换:
关闭虚拟机就还原
setenforce 0 临时关闭selinux enforcing 转成 permissive
setenforce 1 临时开启selinux permissive 转成 enforcing
永久切换:
关闭虚拟机不会还原,到配置文件修改
vim /etc/selinux/config
SELINUX=enforcing/permissive/disabled -> 重启/reboot 后生效
3、查看selinux上下文类型
查看文件的上下文 ll -Z
查看进程的上下文 ps -auxZ
例:
ps -auxZ | grep sshd
查看所有端口的上下文 semamage port -l | grep 端口号
例:
semanage port -l | grep 22
查看当前启动的端口的上下文 netstat -pantZ
4、修改selinux上下文类型
如果提示找不到 semanage 这个命令
用yum provides 检索安装包后下载
semanage fcontext -a -t 上下文类型 ‘/filename(/.*)?’ 这里的filename要写绝对路径
restorecon -RFv /filename 强制递归刷新上下文类型并显示刷新过程
例:
semanage fcontext -a -t httpd_sys_content_t '/opt/test(/.*)?'
restorecon -RFv /opt/test/
文件会默认继承父文件夹的selinux类型
(在修改过上下文类型的文件夹里创建文件,文件的上下文类型跟文件夹一致)
5、给端口添加selinux上下文类型
semanage port -a -t 端口上下文类型 -p tcp/udp 端口号
例:
semanage port -a -t ssh_port_t -p tcp 22
semanage port -l|grep ssh(22)
端口不用强刷
6、selinux布尔值
当selinux开启时,系统默认会设置很多服务功能的开关
sebool就是那个开关
查看布尔值 getsebool -a
例:
getsebool -a |grep home 查看home的布尔值
设置开启或关闭 setsebool bool名 on/off
例:
setsebool ssh_sysadm_login on 开启ssh_sysadm_login这个服务功能
云计算是一种服务模型,通过网络的方式,获取资源(计算,存储,网络)