网络 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这个服务功能

posted @ 2021-12-06 16:09  陽YANG  阅读(164)  评论(1编辑  收藏  举报