初学Linux——week3

模块目录:
1. SELinux
2. Firewall
3. samba服务
4. iscsi跨平台共享
5. mariadb数据库
6. Apache httpd网页服务


SELinux
  三种运行模式 Enforcing Permissive Disabled
  其配置文件为 /etc/selinux/config

命令:
  getenforce ---> 查看SELinux的模式
  setenforce ---> 临时更改SELinux模式,不过只能在Enforcing和Permissive间切换
  getsebool  -a  ---> 查看布尔值
  setsebool  ---> 设置布尔值
  chcon -R --reference=[目录a]  [目录b] ---> 将a的安全上下值赋给b
  semanage port -l | grep [软件] ---> 查看某软件的端口号
  semanage port  -a  -t  http_port_t  -p  tcp 8909 ---> 修改某软件的开放端口号(修改的时候会消耗很多内存,耐心等待)


Firewall
  防火墙,一般影响两台设备间的通信

  四种模式:
    public   允许一部分 默认允许ssh,dhcp,ping 
    trusted  全允许
    block    全禁止,并且反馈给客户
    drop     全禁止,并且不反馈

命令:
  firewall-cmd  --get-default-zone  ---> 查看防火墙默认安全模式
  firewall-cmd  --set-default-zone=[安全模式]  ---> 设置防火墙默认安全模式
  firewall-cmd  --zone=public  --add-service=[服务名,如http ,ftp]  ---> 默认区域的服务添加
  firewall-cmd  --zone=public  --list-all  --->列出所有该防火墙的相关服务


samba服务(day12)

  作用  跨平台共享文件夹
  软件: 服务端samba  客户端cifs-utils
  服务: 服务端smb 
  配置文件 /etc/samba/smb.conf

搭建 :
服务端:装包配置起服务,加用户设权限关se防火墙
  1.装包
    yum install -y samba

  2.建立samba共享用户
    pdbedit -a [用户名]

  3.修改配置文件
     /etc/samba/smb.conf

[名字]
  path = [共享目录]
  write list = [允许读写的用户名]

  4.重启服务
     systemctl restart smb

  5.SELinux和防火墙
      firewall-cmd --set-default-zone=trusted
      getsebool -a | grep samba
      setsebool samba_export_all_rw on

  6.本机目录权限 (setfacl 添加acl权限策略,跟的选项是-m)
      setfacl  -m  u:[用户名]:rwx  [共享目录]

客户端:装包,挂载
  1. 装包 cifs-utils

  2. 挂载  插入到挂载配置文件 /etc/fstab
      //[IP]/共享名  [挂载点]  cifs  defaults,user=[用户名],pass=[密码],_netdev 0 0

注意点:
   1. 创建共享用户的命令是pdbedit
   2. 软件是samba 服务是smb
   3. SELinux干涉samba的是bool值,所以用setsebool命令修改
   4. 单独赋权的时候setfacl后面加的选项是-m
   5. 客户端可以用samba-client软件做测试具体看day12
   6.客户端访问服务端影响的方面
       6-1.防火墙(firewall-cmd)
       6-2.SELinux(getsebool  和  setsebool)
       6-3.服务本身的策略(配置文件)
       6-4.服务端本地目录的权限(判断共享目录对于设置的samba用户权限是什么,用setfacl设置)


iscsi 网络磁盘共享

   软件: 服务端 targetcli    客户端 iscsi-initiator-utils
   服务: 服务端 target    客户端 iscsid iscsi
   配置: 服务端 targetcli命令   客户端 /etc/iscsi/initiatorname.iscsi   iscsiadm
 
   把服务器的磁盘当本地磁盘用,分backstore(后端存储),target(磁盘组),lun(逻辑单元)

   IQN - ISCSI Qualified Name 名称规范,要求极高
      iqn.[yyyy]-[mm].[com].[域名]:[自定义标识]
      作用:用来识别 target 磁盘组, 也用来识别客户机身份

配置:
服务端:分区关防火墙,装包配置起服务

  1. 分区,从磁盘中分一个区(fdisk),不用格式化,具体看day8。

  2. 关闭防火墙

  3. 装包
     yum install -y targetcli

  4. 配置 
     targetcli(里面创建5个模块)

/> backstores/block create name=[名字] dev=[磁盘]
/> iscsi/ create  [iqn命名,作为iscsi的名字]
/> iscsi/[tab键]/tpg1/luns create /ba[tab键]
/> iscsi/[tab键]/tpg1/acls create [iqn命名,用于验证用户名]
/> iscsi/[tab键]/tpg1/portals create [本机用于传递的IP]

  5.重启服务
    systemctl restart target

客户端:装包 配置起服务✖️2

  1. 装包
     yum install -y iscsi-initiator-utils
 
  2. 配置用户名
     vim vim /etc/iscsi/initiatorname.iscsi 
     把InitiatorName后面的值改成服务端设置的验证的用户名

  3. 重启服务
     systemctl restart iscsid
   
  4. 配置IP(可以用man iscsiadm中的example来找)
      iscsiadm --mode discoverydb --type sendtargets --portal [IP] --discover

  5. 重启服务
     systemctl restart iscsi

注意点:
   1. iscsi服务端装的包是targetcli  而服务是target
   2. 客户端要配置两次重启两个服务
   3. 网络服务要处理好防火墙和SELinux
   4. 在服务端配置的时候多用tab键


mariadb数据库

配置:
    装包: yum install -y mariadb-server
    起服务: systemctl restart mariadb

修改密码:
     mysqladmin -u [用户名]  [-p[旧密码]] password '新密码'

登录:
     mysql -u [用户名] -p[密码]

导入备份:
     mysql -u [用户名] -p[密码] [库] < [文件]

基本操作:
   show databases  查看所有库的基本信息
   use database [库名]    前往某个库
   show tables    查看库中的表的基本信息

   对用户创建并赋权
   grant [增删改查的权限] on [库].[表] to [用户名]@[登陆IP] identified by [密码];

   对表进行查找
   select [表1].[表中数据的字段1],[表2].[表中数据的字段2]……  from  [表1],[表2]……  where [表].[字段] = '' and ……;

   对表进行删除
   delete from [表1],[表2]……  where [表].[字段] = '' and ……;

   对表进行增加
   insert into [表] values ('[按照表的要求写入数据1]','[按照表的要求写入数据2]' …… );

注意点:
   1. mariadb 进去数据库的命令是mysql  , 设置密码是 mysqladmin
   2. ***注意登录或者改密码时候-p后面要紧跟密码,不能有空格
   3. mariadb 数据库中,每个语句要家;
   4. 增删改查中where用于设置条件,其连接方式是and,其他是用[ , ]  所以要注意分开记忆。


Apache http网页服务

    软件包: httpd
    服务: httpd
    配置: /etc/httpd/conf/httpd.conf(主配置文件)   /ect/httpd/conf.d/*.conf(用户配置文件)

配置(只有服务端,客户端直接访问就好):
  1. 安装配置文件   yum install -y httpd
  2. 起服务:systemctl restart httpd

对其进行特殊要求的部署:
  1. 修改域名 --> vim /etc/httpd/conf/httpd.conf 中的 ServerName行

  2. 修改网页文件根目录 --> vim /etc/httpd/conf/httpd.conf 中的 DocumentRoot 

  3. 虚拟主机 --> 修改配置文件 /etc/httpd/conf.d/[自己设置虚拟主机配置的名字].conf

<virtualhost [IP,一般是*]:[端口,一般是80]>
ServerName [域名]
DocumentRoot [网络根目录]
</virtualhost>

  4. 设置权限(一般默认/var/www下所有子目录对所有人有访问权限,其他地方默认没有权限)--> 修改配置文件 /etc/httpd/conf.d/[自己设置权限配置的名字].conf ---> 设置SELinux的安全上下文值

<Directory [目录的绝对路径]>
  Require all granted | denied  # 全体禁止访问或者允许
  Require ip [IP]     # 只允许某IP访问
</Directory>

    **** 设置完权限要设置SELinux 的安全上下文值  
    chcon -R --reference=[目录a]  [目录b]  # 把a目录的上下文值给b目录

  5. 部署Python的动态页面 ---> 装包,修改 conf.d/[虚拟主机配置文件].conf 
    yum install -y mod_wsgi
    vim /etc/httpd/conf.d/[虚拟主机的配置文件]

<VirtualHost *:80>
  WsgiScriptAlias  [客户端网络路径]    [服务器实际原始路径]
</VirtualHost>

  6. 修改端口 ---> 修改配置文件vim /etc/httpd/conf.d/[虚拟主机的配置文件] --->修改SELinux的开发端口
    vim /etc/httpd/conf.d/[虚拟主机的配置文件]

Listen 8909
<VirtualHost *:8909>
  WsgiScriptAlias [客户端网络路径]    [服务器实际原始路径]
</VirtualHost>
    semanage port -l | grep http
    semanage port  -a  -t  http_port_t  -p  tcp 8909

注意:
   1. 每次修改配置文件都要重启服务
   2. 虚拟主机存在的时候,直接用IP,会调用第一个虚拟主机的信息,客户端调用的时候,出现端口不匹配或者域名不匹配,当中有一个不匹配时,会根据端口信息调用该端口中的第一个虚拟主机。
   3. 搭建Apache服务的时候,需要考虑的几个问题:1.部署的服务是否有权限  2. 修改到新的路径下,要设置权限并且修改目录的上下文值(部署到/var/www以外的地方)3. 设置SELinux的默认端口,并且配置文件中要写Listen(修改端口信息)

猜你喜欢

转载自blog.csdn.net/Yu1543376365/article/details/81783832