selinux
一.SELINUX的运行模式
修改文件/etc/selinux/config
设置 SELINUX=disabled 禁用
设置 SELINUX=permissive 宽松模式
设置 SELINUX=enforcing 强制模式
二.查看当前运行模式
[root@localhost ~]# getenforce
Enforcing
三.临时修改运行模式
[root@localhost ~]# setenforce
usage: setenforce [ Enforcing | Permissive | 1 | 0 ] //1代表强制,0代表宽松
#yum -y install setrouble* //排错软件,提示selinux发生的错误
#reboot //安装完软件需重启
四.配置SELINUX的两个主要方面
1.SELINUX上下文环境
(1)查看一个文件的上下文环境
[root@localhost html]# ls -Z
-rw-r--r--. root root unconfined_u:object_r:net_conf_t:s0 index.html //文件的上下文环境
[root@localhost html]# ls -Zd
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 .//目录上下文环境
[root@localhost html]#
只关心httpd_sys_content_t,对照目录的ls -Zd 的httpd_sys_content_t去修改文件的上下文环境
(2)修改selinux上下文环境值
[root@localhost html]# chcon -t httpd_sys_content_t index.html
(2.1)把文件恢复到所在目录的默认值
#restorecon -Rv /var/www/html //-R带表递归恢复上下文环境值,包括子文件和子文件夹
#restorecon -v /var/www/html/index.html //只修改一个文件的上下文环境,-v打印出来
从其他目录拷贝过来的文件,会继承他原目录的上下文环境
而从其他目录移动过来的文件,则会继承移动目标文件夹的上下文环境
SELINUX布尔值
4.windows通过samba访问linux
(1)安装samba
(2) # smbpasswd -a root
(3) service smb start 启动服务
(4) 在windows下用UNC路径访问,能够看到root的家目录,但是双击打不开
(5) # getsebool -a | grep samba
(6) # sebsebool -P samba_export_all_rw 1 //r,读,w写,1代表打开读写,也可写成rw=on
(7) 再次在windows下用UNC路径访问,可以打开root的家目录
2.例二. 实现FTP匿名用户上传
(1) # mkdir -m 757 /var/ftp/incoming
(2)vim /etc/vsftpd/vsftpd.conf
anon_upload_enable=YES 修改vsftpd.conf打开匿名上传
(3) 上传文件测试,
ftp 192.168.10.1 -> 回车 -> ftp -> 回车 ->
ftp> cd incoming
ftp> lcd /etc //lcd改变本地目录
ftp> put passwd
如果已经安装setroubleshoot,屏幕右上角会弹出提示,根据提示修改,
#chcon -t public_content_rw_t /var/ftp/incoming //修改上下文环境
# getsebool -a | grep ftp > 获得与ftp 相关的selinux布尔值
# setsebool -P allow_ftpd_anon_write 1 //打开布尔值,也可写成write=on
(4)再次尝试上传,成功
ftp 192.168.1.2
ftp>jack 用jack登陆
ftp>密码
提示不能更改目录
# getsebool -a | grep ftp > 获得与ftp 相关的selinux布尔值
# setsebool -P ftp_home_dir 1 //打开布尔值,允许访问目录
vimdiff vsftpd.conf vsftpd.conft //比较两个文件的不同之处
六.安装setroubleshoot (troubleshooting) 排错
# yum install -y setroubleshoot*
重启
有任何的selinux违规行为,系统都会给出提示和解决方案
如果是图形界面下,屏幕右上角会弹出消息。如果是字符终端下,可以查看日志文件
vim /var/log/messages
run sealert -l 17876b7e-c588-4d5e-a900-ca093341fc38
在终端在运行这行则会有相关帮助信息提示
# sealert -l 17876b7e-c588-4d5e-a900-ca093341fc38
七.获得SELINUX设置的帮助
(1)man ftpd selinux
man httpd selinux
man samba selinux
(2)有些服务配置文件中也有说明
vim /etc/samba/smb.conf
加密解密
[root@localhost html]# tr 'a-z' 'A-Z' //把字母转换成大写
hellow
HELLOW
^C
[root@localhost html]# cat index.html | tr 'a-z' 'A-Z' //把文件字母转换成大写输出
BBB
[root@localhost html]# tr 'a-z' 'A-Z' < index.html //把文件字母转换成大写输出
WSYHT
[root@localhost html]# tr 'a-y' 'b-z' //加密
hellow
ifmmpx
^C
GnuPG加密工具
对称加密
非对称加密
签名
gpg --version //查看版本
对称加密
加密操作: -c
解密操作: -d
对称加密
终端1(bob)
ssh -X bob@192.168.10.1 //-X表示可以打开图形界面
echo "bob" > bob.txt
gpg -c bob.txt //加密
cp bob.txt.gpg /tmp
终端2 (jack)
ssh -X jack@192.168.10.1 //-X表示可以打开图形界面
cp /tmp/bob.txt.gpg .
gpg -d bob.txt //解密输出到屏幕 (不写-d也行)
gpg -d bob.txt.gpg > bob.txt //解密并重定向到bob.txt这个文件
非对称加密
终端1(bob)
ssh -X bob@192.168.10.1 //-X表示可以打开图形界面
#gpg --gen-key
#回车
#回车
#0
#y
#wsyht
#bob@wsyht.com
#回车
#O
#输入保护私钥的密码
提示框点右边选项
随便按乱按字母生成密钥
#gpg --list-keys //查看公钥信息
#gpg --list-secret //查看私钥信息
#gpg --export -a > /tmp/bob.key //导出公钥,-a表示用ASCII码形式输出 (1)
#cat /tmp/bob.key
#gpg --fingerprint //打印指纹信息
#cp /tmp/bob.txt.asc . //拷贝javk已加密的文件到当前文件夹 (4)
#gpg bob.txt.asc
#ls
终端2(jack)
#ssh -X jack@192.168.10.1 //-X表示可以打开图形界面
#gpg --import /tmp/bob.key //导入公钥 (2)
#gpg --list-keys //可以查看公钥
#gpg --list-secret //查看不了私钥,没有密钥对
#man gpg
#gpg -ear bob bob.txt e,加密,a,ASCIID码输出,r,接收者,bob用户名
#y
#cat bob.txt.asc
#cp /bob.txt.asc /tmp //拷贝用公钥加密的文件到tmp (3)
三.使用GPG签名
1.签名可实现的功能:
(1)身份认证,表明用户确实是他声称的那个人
(2)数据完整性,数据一旦被篡改,签名就会失效
(3)认可,不可抵赖
终端1(bob)
2.bob发送签名文件给jack
#echo 'bob file' > bob.txt
#gpg -b bob.txt //签名
#ls
bob.txt bob.txt.sig
2.2把原文和签名文件发送给jack
#cp bob.txt* /tmp
终端2(jack)
2.3验证签名
#cp /tmp/bob.txt*
#ls
bob.txt bob.txt.sig
#gpg --verify bob.txt.sig 验证签名