Linux 第21天: (09月14日) Linux自动化安装和SELinux

Linux系统自动化安装

本章内容
系统安装过程
配置anaconda
自动化安装系统

安装程序
CentOS系统安装
系统启动流程:
bootloader-->kernel(initramfs)-->rootfs-->/sbin/init
anaconda: 系统安装程序
tui: 基于图形库curses的文本窗口
gui:图形窗口

安装程序启动过程
MBR:boot.cat
stage2: isolinux/isolinux.bin
配置文件:isolinux/isolinux.cfg
每个对应的菜单选项:
加载内核:isolinuz/vmlinuz
向内核传递参数:append initrd=initrd.img...
装载根文件系统,并启动anaconda
默认启动GUI接口
若是显式指定使用TUI接口:向内核传递text参数即可
(1)按tab键,在后面增加text
(2)按ESC键:boot: linuxtext

anaconda工作过程
Anaconda安装系统分成三个阶段:

安装前配置阶段
安装过程使用的语言
键盘类型
安装目标存储设备
Basic Storage:本地磁盘
特殊设备:iSCSI
设定主机名
配置网络接口
时区
管理员密码
设定分区方式及MBR的安装位置
创建一个普通用户
选定要安装的程序包

安装阶段
在目标磁盘创建分区,执行格式化操作等
将选定的程序包安装至目标位置
安装bootloader和initramfs

首次启动
iptables
selinux
core dump

系统安装
启动安装过程一般应位于引导设备;后续的anaconda及其安装用到的程序包等可来自下面几种方式:
本地光盘
本地硬盘
ftp server: yum repository
http server: yum repostory
nfsserver
如果想手动指定安装源:
boot: linuxaskmethod

anaconda的配置方式:
(1) 交互式配置方式
(2) 通过读取事先给定的配置文件自动完成配置;
按特定语法给出的配置选项;
kickstart文件

安装boot引导选项:boot:
text: 文本安装方式
askmethod: 手动指定使用的安装方法
与网络相关的引导选项:
ip=IPADDR
netmask=MASK
gateway=GW
dns=DNS_SERVER_IP
ifname=NAME:MAC_ADDR
与远程访问功能相关的引导选项:
vnc
vncpassword='PASSWORD'

指明kickstart文件的位置:ks=
DVD drive: ks=cdrom:/PATH/TO/KICKSTART_FILE
Hard drive: ks=hd:device:/directory/KICKSTART_FILE
HTTP server: ks=http://host:port/path/to/KICKSTART_FILE
FTP server: ks=ftp://host:port/path/to/KICKSTART_FILE
HTTPS server: ks=https://host:port/path/to/KICKSTART_FILE
NFS server:ks=nfs:host:/path/to/KICKSTART_FILE
启动紧急救援模式:
rescue
官方文档:《Installation Guide》

kickstart文件的格式
命令段:指明各种安装前配置,如键盘类型等;
程序包段:指明要安装的程序包组或程序包,不安装的程序包等;
%packages
@group_name
package
-package
%end
脚本段:
%pre: 安装前脚本
运行环境:运行于安装介质上的微型Linux环境
%post: 安装后脚本
运行环境:安装完成的系统
命令段中的命令:
必备命令
authconfig: 认证方式配置
authconfig--useshadow--passalgo=sha512
bootloader:bootloader的安装位置及相关配置
bootloader --location=mbr--driveorder=sda–
append="crashkernel=auto rhgbquiet"
keyboard: 设定键盘类型
lang: 语言类型
part: 创建分区
rootpw: 指明root的密码
timezone: 时区
可选命令
install OR upgrade
text: 文本安装界面
network
firewall
selinux
halt
poweroff
reboot
repo
user:安装完成后为系统创建新用户
url: 指明安装源
key –skip 跳过安装号码,适用于rhel版本

kickstart文件创建
创建kickstart文件的方式:
(1) 直接手动编辑;
依据某模板修改
(2) 可使用创建工具:system-config-kickstart
依据某模板修改并生成新配置;
http://172.16.0.1/centos6.x86_64.cfg
检查ks文件的语法错误:ksvalidator
# ksvalidator/PATH/TO/KICKSTART_FILE

制作引导光盘和U盘
创建引导光盘:
#cp/media/cdrom/isolinux/ /tmp/myiso/
#vi /tmp/myiso/isolinux/isolinux.cfg
initrd=initrd.imgtext ks=cdrom:/myks.cfg
#cp/root/myks.cfg/tmp/myiso/
#cd /tmp
# mkisofs-R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "CentOS 6.6 x86_64 boot" -b isolinux/isolinux.bin-c isolinux/boot.cat -o /root/boot.isomyiso/
创建U盘启动盘
#ddif=/dev/sr0 of=/dev/sdb

SELinux

本章内容
SELinux概念
启用SELinux
管理文件安全标签
管理端口标签
管理SELinux布尔值开关
管理日志
查看SELinux帮助

SELinux介绍
SELinux: Secure Enhanced Linux,是美国国家安全局(NSA=The National Security Agency)和SCC(Secure Computing Corporation)开发的Linux的一个强制访问控制的安全模块。2000年以GNU GPL发布,Linux内核2.6版本后集成在内核中
DAC:Discretionary Access Control自由访问控制
MAC:Mandatory Access Control 强制访问控制
DAC环境下进程是无束缚的
MAC环境下策略的规则决定控制的严格程度
MAC环境下进程可以被限制的
策略被用来定义被限制的进程能够使用那些资源(文件和端口)
默认情况下,没有被明确允许的行为将被拒绝

SELinux工作类型
SELinux有四种工作类型:
strict: centos5,每个进程都受到selinux的控制
targeted: 用来保护常见的网络服务,仅有限进程受到selinux控制,只监控容易被***的进程,rhel4只保护13个服务,rhel5保护88个服务
minimum:centos7,修改过的targeted,只对选择的网络服务
mls:提供MLS(多级安全)机制的安全性
minimum和mls稳定性不足,未加以应用

SELinux安全上下文
传统Linux,一切皆文件,由用户,组,权限控制访问
在SELinux中,一切皆对象(object),由存放在inode的扩展属性域的安全元素所控制其访问
所有文件和端口资源和进程都具备安全标签:安全上下文(security context)
安全上下文有五个元素组成:
user:role:type:sensitivity:category
user_u:object_r:tmp_t:s0:c0
实际上下文:存放在文件系统中,ls –Z;ps–Z
期望(默认)上下文:存放在二进制的SELinux策略库(映射目录和期望安全上下文)中
semanagefcontext–l

五个安全元素
User:指示登录系统的用户类型,如root,user_u,system_u,多数本地进程都属于自由(unconfined)进程
Role:定义文件,进程和用户的用途:文件:object_r,进程和用户:system_r
Type:指定数据类型,规则中定义何种进程类型访问何种文件Target策略基于type实现,多服务共用:public_content_t
Sensitivity:限制访问的需要,由组织定义的分层安全级别,如unclassified,secret,top,secret, 一个对象有且只有一个sensitivity,分0-15级,s0最低,Target策略默认使用s0
Category:对于特定组织划分不分层的分类,如FBI Secret,NSA secret, 一个对象可以有多个categroy,c0-c1023共1024个分类,Target 策略不使用category

SELinux策略
对象(object):所有可以读取的对象,包括文件、目录和进程,端口等
主体:进程称为主体(subject)
SELinux中对所有的文件都赋予一个type的文件类型标签,对于所有的进程也赋予各自的一个domain的标签。domain标签能够执行的操作由安全策略里定义。
当一个subject试图访问一个object,Kernel中的策略执行服务器将检查AVC (访问矢量缓存Access Vector Cache), 在AVC中,subject和object的权限被缓存(cached),查找“应用+文件”的安全环境。然后根据查询结果允许或拒绝访问
安全策略:定义主体读取对象的规则数据库,规则中记录了哪个类型的主体使用哪个方法读取哪一个对象是允许还是拒绝的,并且定义了哪种行为是充许或拒绝

设置SELinux
配置SELinux:
SELinux是否启用
给文件重新打安全标签
给端口设置安全标签
设定某些操作的布尔型开关
SELinux的日志管理
SELinux的状态:
enforcing: 强制,每个受限的进程都必然受限
permissive: 允许,每个受限的进程违规操作不会被禁止,但会被记录于审计日志
disabled: 禁用

配置SELinux
相关命令:
getenforce: 获取selinux当前状态
sestatus:查看selinux状态
setenforce0|1
0: 设置为permissive
1: 设置为enforcing
配置文件:
/boot/grub/grub.conf
使用selinux=0禁用SELinux
/etc/sysconfig/selinux
/etc/selinux/config
SELINUX={disabled|enforcing|permissive}

修改SELinux安全标签
给文件重新打安全标签:
chcon[OPTION]... [-u USER] [-r ROLE] [-t TYPE] FILE...
chcon[OPTION]... --reference=RFILE FILE...
-R:递归打标;
恢复目录或文件默认的安全上下文:
restorecon[-R] /path/to/somewhere

默认安全上下文查询与修改
semanage来自policycoreutils-python包
查看默认的安全上下文
semanagefcontext–l
添加安全上下文
semanagefcontext-a –t httpd_sys_content_t‘/testdir(/.*)?’
restorecon–Rv/testdir
删除安全上下文
semanagefcontext-d –t httpd_sys_content_t‘/testdir(/.*)?’
1212
查看端口标签
semanageport –l
添加端口
semanageport -a -t port_label-p tcp|udpPORT
semanage port -a -t http_port_t -p tcp 9527
删除端口
semanageport -d -t port_label-p tcp|udpPORT
semanage port -d -t http_port_t -p tcp 9527
修改现有端口为新标签
semanageport -m -t port_label-p tcp|udpPORT
semanageport -m -t http_port_t-p tcp9527
Selinux端口标签

SELinux布尔值
布尔型规则:
getsebool
setsebool
查看bool命令:
getsebool[-a] [boolean]
semanageboolean–l
semanageboolean-l –C 查看修改过的布尔值
设置bool值命令:
setsebool[-P] booleanvalue(on,off)
setsebool[-P] Boolean=value(0,1)

SELinux日志管理
yum install setroublesshoot*(重启生效)
将错误的信息写入/var/log/message
grep setroubleshoot/var/log/messages
sealert-l UUID
查看安全事件日志说明
sealert-a /var/log/audit/audit.log
扫描并分析日志
yum -y install selinux-policy-devel(centos7)
yum –y install selinux-policy-doc (centos6)
mandb | makewhatis
man -k _selinux
SELinux帮助

转载于:https://blog.51cto.com/11897100/1852935

Linux 第21天: (09月14日) Linux自动化安装和SELinux相关推荐

  1. Linux 第24天: (09月26日) Linux DNS

    Linux 第24天: (09月26日) Linux DNS 本章内容 名字解析 DNS服务 实现主从服务器 实现子域 实现view 编译安装 压力测试 DNS排错 DNS服务 DNS: Domain ...

  2. Linux 第20天: (09月12日) Linux启动和内核管理

    Linux 第20天: (09月12日) Linux启动和内核管理 本章内容 CentOS 5和6的启动流程 服务管理 Grub管理 自制Linux 启动排错 编译安装内核 Linux组成 Linux ...

  3. 6月14日Linux设备驱动开发免费讲座PPT

    这次讲座主要针对的是有一定开发经验的人士,谈了一些开发体会. 6月14日Linux设备驱动开发免费讲座PPT [url]http://www.linuxdriver.cn/20086/20086159 ...

  4. Linux 第五天: (08月01日) Linux用户组管理

    管理员 root,0 普通用户 1-65535 系统用户 1-499(centos6), 1-999(centos7) 登录用户 500(centos6)+, 1000(centos7)+ echo ...

  5. 德纳社区项目进度跟进(22年2月14日-22年2月21日)

    德纳社区秉承长期服务原则,对于参与过的项目会进行持续跟进,并以周报的形式跟大家汇报,以下是22年2月14日-22年2月21日一周的项目进展,欢迎查看. 1.Acala (一个兼容以太坊的智能合约平台) ...

  6. 解密谷歌机器学习工程最佳实践——机器学习43条军规 翻译 2017年09月19日 10:54:58 98310 本文是对Rules of Machine Learning: Best Practice

    解密谷歌机器学习工程最佳实践--机器学习43条军规 翻译 2017年09月19日 10:54:58 983 1 0 本文是对Rules of Machine Learning: Best Practi ...

  7. 【历史上的今天】4 月 14 日:Ruby 之父诞生;GDPR 首次颁布;Lindows 更名为 Linspire

    整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 今天是 2022 年 4 月 14 日,在 2006 年的今天,当当网联合总裁李国庆和俞渝夫妇首次明确表示了当当网的上市计 ...

  8. 2020链家杭州二手房数据分析(截止到2020年09月07日)

    2020链家杭州二手房数据分析(截止到2020年09月07日) 1 项目背景 通过python爬去链家杭州二手房的数据,网址为:https://hz.lianjia.com/ershoufang/.可 ...

  9. 2010年全球地震统计 4月14日 更新

    2010年全球地震统计 4月14日 更新 2010年4月14日 中国地震台网中心消息,北京时间2010年4月14日09时25分许,青海省玉树藏族自治州玉树县(北纬33.2°,东经96.6°)发生6.3 ...

最新文章

  1. CTFshow 命令执行 web44
  2. Codeforces 868F Yet Another Minimization Problem 决策单调性 (看题解)
  3. Windows 8 :妥协的产物
  4. cmd MySQL登录
  5. python相关linux_Python实现获取Linux系统基本信息
  6. python模块之codecs: 自然语言编码转换
  7. JavaScript基础知识。
  8. ffmpeg命令解析
  9. spring 包的依赖问题
  10. 信息安全工程师学习笔记《第一章》
  11. 智能交通管理领域常用技术标准
  12. How do I find the FC ID (WWN) of a scsi device/LUN on Red Hat Enterprise Linux?
  13. centos7克隆机修改ip地址,并与另一台虚拟机ping起来
  14. Android自定义一个属于自己的刻度尺
  15. 【使用python和flask建个人博客】如何在jinja2中进行简单的四则运算和把一个浮点数显示成整数?
  16. 密码学和加密数字货币的简介
  17. win10突然复制粘贴用不了了
  18. 阿里企业邮箱smtp设置(实践)
  19. 如何将计算机桌面屏幕放大,怎么能把电脑屏幕放大
  20. H3C、思科路由器简单配置

热门文章

  1. HttpServlet爆红线
  2. 苹果的指纹信息会上传服务器吗,苹果新专利遭曝光 指纹信息上传到云端
  3. Picgo+Bilibili图床插件
  4. 自动驾驶、人工智能将把你的未来生活变成什么样?
  5. 宇瞻内存条怎么样_宇瞻内存条质量怎么样_宇瞻内存条什么颗粒_宇瞻内存条和金士顿内存条能在一起使用吗?
  6. python除法向上取整碰到的问题及解决
  7. 电竞DOTA2数据API接口 - 【即时指数】API调用示例代码
  8. JavaScript获取时间戳
  9. mysql索引 include_MySql索引详解
  10. 技校毕业是什么学历_技校毕业算什么学历?技校毕业文凭介绍