设为首页 收藏本站
查看: 654|回复: 0

[经验分享] Linux安全管理

[复制链接]

尚未签到

发表于 2018-5-16 10:48:58 | 显示全部楼层 |阅读模式
  ssl 功能
  机密性 认证 完整性 重放保护
  TLS协议工作在应用层的下层传输层的上层
  TLS协议(也是大的协议集合)
  Handshake协议:协商 服务器身份验证 密钥交换
  ChangeCipherSpec协议:代表握手阶段已经完成 会发送消息通知
  Alert协议:警报 warning(警告) fatal(高度危险)
  Record协议:对消息认证和完整性保护 加密等
  HTTPS协议:和ssl/tls协议的组合
  

  https工作过程
  1 客户端发送hello消息给服务器
  2 服务器将CA签过名的私钥证书发送给客户端
  3 客户端拥有CA的公钥就可以解开CA签过名的私钥证书 从而得到服务器公钥
  4 客户端随机生成对称密钥 使用解密出来的服务器公钥加密再发送给服务器
  5 服务器收到后使用自己的私钥解密获取对称密钥
  6 双方都拥有了对称密钥就可以使用对称密钥加密
  

  支持ssl功能的Openssl
  openssl命令
  对称加密:
      工具:enc
      帮助:man enc
      openssl enc -e -des3 -a -salt -in fstab -out fstab.des3(将fstab文件使用对称秘钥进行加密)
      -a:使用base64编码
      -e:加密
      -des3:使用des3算法加密
      -in:输入文件
      -out:将加密后的文件生成为一个新的文件
      -salt:指定盐
      解密:
      openssl enc -d -des3 -a -salt -in fstab.des3 -out fstab
      -d:解密
      -salt:指定盐(随机字符中第二个$到第三个$之间的值成为盐)
  

      生成文件hash值
      工具:dgst
      帮助:man dgst
      openssl dgst -md5[-hex] fstab(生成此文件的hash值)
                  -hex:默认,16进制
  

      生成用户密码
      passwd
          -1:代表md5
              openssl passwd -1(生成密码的md5值)
     生成随机数
         帮助:man sslrand
     openssl rand -base64  10(随机生成10位的base64的字符)
         -base64位置可以替换不同的编码格式;当换成hex时那么每个字符为16进制,相当于4位二进制,出现的字符数要x2
     
  生成私钥加密
     (umask 066;openssl genrsa -out test.key 2048)
      (umask 066;openssl genrsa -out test2.key -des3 4096)将生成的私钥文件使用对称算法加密
      -out:生成后的私钥文件名称
      2048:长度 可自行修改
      -des3:对称算法加密
      修改umask值 这样生成的文件默认权限就为600提高安全性 如果不在括号中执行后续创建的文件默认权限都会为600 括号的含义是在子shell中执行 不影响后续创建文件的操作
     解密被加密的私钥
      openssl rsa -in test2.key -out test2.key.out
      选项含义同上
  从私钥中提取公钥
      openssl rsa -in test.key -pubout -out test.key2.pub
      -in:从test.key文件
      -pubout:输出
      -out:到test.key2.pub
     
      生成随机数
      根据键盘和鼠标的操作生成随机数
      /dev/random:生成随机数的文件 并且需要操作鼠标和键盘才能生成随机数
      /dev/urandom:不停的生成随机数
      cat /dev/urandom | tr -dc '[:alnum:]' | head -c30 由于/dev/urandom中会不断的生成随机数 于是要使用"tr"取除了数字的所有随机数 并且取前30个字节
  CA的搭建
     建立私有CA:
       OpenCA
       openssl
     证书申请以及签署步骤:
       1 生成申请请求
       2 RA核验
       3 CA签署
       4 获取证书
  /etc/pki/tls/openssl.cnf     :openssl生成证书需要用到的配置文件
  
  1 创建所需要的文件
  touch /etc/pki/CA/index.txt 生成证书数据库文件
  echo 01 > /etc/pki/CA/serial 指定第一个颁发证书的序列号
  
  2 搭建CA
  生成私钥
  cd /etc/pki/CA/#生成的私钥必须要在这个目录下 并且私钥名比喻为cakey.pem
  (umask 066;openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)
  
  生成自签名证书
  openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3650
  -new:生成新证书请求
  -x509:用于自签证书
  -key:生成请求时用到的私钥文件
  -days 3650(以天为单位):证书的有限期限
  -out:证书保存路径
  操作完成后系统会提示输入一系列信息
  国家:
  省:
  城市:
  公司名:
  部门:
  网站名:*.域名(泛域名)比如*.tianmao.com
  邮箱(可选):
  文件生成
  openssl x509 -in cacert.pem -noout -text #以文本方式查看自签证书
  3 客户端申请证书
  1 创建私钥
    (umask 066;openssl genrsa -out /app test.key 2048)
    /app:私钥存放位置
    test.key:私钥名称
      2 申请证书
            openssl req -new -key test.key -out app.csr
  操作完成后系统会提示输入信息
  国家: 与上述相同
  省:  与上述相同
  城市:  可以不同
  公司名: 与上述相同
  部门:可以不同
  网站名:*.test.com(给这个网站颁发证书)
  邮箱(可选):
  
  3 将证书申请文件存放到CA服务器并检查申请信息
  
  4 颁发证书
      openssl ca -in app.csr -out certs/app.crt -days 730
  [ ca ]
  default_ca=CA_default   #默认使用的CA
  #unique_subject=no#是否允许申请两次
  [ CA_default ]
  dir=/etc/pki/CA #CA工作的主目录
  certs=$dir/certs#存放证书文件的位置
  crl_dir=$dir/crl #吊销证书列表
  database=$dir/index.txt#将证书信息添加到这个文件中
  new_certs_dir=$dir/new_certs #默认证书的路径
  certificate     =   $dir/cacert.pem #私钥存放位置
  serial=$dir/serial#证书的编号 存放的是下一个要颁发的证书的编号
  crlnumber=$dir/crlnumber#吊销证书的编号
  crl =$dir/crl.pem#
  default_days=365#证书有效期 默认365天
  default_md=sha256#默认算法
  policy =policy_match 或者 policy_anything
  [ policy_match ]
  countryName=match       #两边国家必须相同
  stateOrProVinceName=match  #省份
  organizationName=match #地区名
  commonName=supplied#部门名
  [ policy_anything ]
  内容全为"optional" 也就是有些选项可以不同
  Openssh
  工具:
  基于C/S结构
  Client:ssh,scp,sftp,slogin
  Windows客户端:
  xshell,putty,securecrt,sshsecureshellclient
  Server:sshd
  

  ssh客户端
  ssh配置文件:/etc/ssh/ssh_config
  .ssh文件中存放的是登录过的主机的公钥,也就是已知主机,下次登录不会提示yes or no;known_hosts文件中的内容与登录过主机下的/etc/ssh/ssh_host_rsa_key.pub内容相同
  格式:ssh [user@]host [command]
  例子:ssh fang@192.168.27.144 who 在目标主机上执行who命令
  -p port:指定服务器端端口号 默认为22;"可在/etc/ssh/ssh_config中修改Port这一行的端口号 对正在连接的用户不起作用"
  -b:指定连接的源IP;"当发起端IP不止一个的时候并且想刻意使用某一个ip去连接就使用此选项"
  -v:显示连接的详细过程
  -C:压缩;可使数据包变小
  -X:支持x11转发;"可以在目标主机上启用图形化的功能"
  -t:A-->B-->C当C禁止A连接则A可以使用ssh -t "B的IP" ssh "C的IP"
  ssh服务登录验证
  基于用户名口令验证
  1 客户端发起ssh请求,服务器会把自己的公钥发送给客户端
  2 用户会根据服务器发来的公钥对密码进行加密
  3 加密后传给服务器,服务器使用自己的私钥解密,密码正确,登录成功
  /etc/ssh中存放了许多公钥与私钥".pub"后缀的为公钥
      基于密钥的验证方法
  1 在客户端生成一对儿密钥,将公钥复制给服务器端并且在服务器端自动存放到authorized_keys
  2 客户端发起连接请求,服务器端收到后会在存放公钥的位置查,如果有对应的主机和用户信息,会生成随机字符串 将字符串使用客户端的公钥进行加密传送给客户端
  3 客户端收到后使用私钥解密查看字符串是否相等,相等的话传送给服务器端查看是否相等,相等就可以进行互相
  实现基于密钥的验证方法:
  1在客户端生成秘钥对
      ssh-keygen -t rsa [-P ''] [-f "~/.ssh/id_rsa"] 中括号内可不指定
  -P:给秘钥加口令
  -t:指定算法;默认为rsa算法
  -f:指定生成的文件存放的位置;默认就为用户家目录下的/.ssh/id_rsa下
  2 把公钥文件传输到服务端对应用户的家目录
          ssh-copy-id -i id_rsa.pub root@"对方IP地址"
  
  3 再次登录可以不用输入用户名密码直接登录
      转换不正确的公钥格式
          ssh-keygen -i -f "公钥文件名称"
  ###给生成好的密钥添加口令:ssh-keygen -p 再次登录需要输入私钥的密码
     将私钥的密码交给代理程序,这样以后连接也不用输入私钥的密码,但关闭终端连接后代理也会停止,每次连接要启动一下代理
     1 启动代理程序
      ssh-agent bash
     2 将私钥口令用它代理
      ssh-add
     要添加新的基于密钥的验证的话;将客户端公钥发送到被连接主机并且将内容追加到 authorized_keys中即可
  解决ssh连接过慢
    修改服务器端的/etc/ssh/sshd_config中的UseDNS no以及GSSAPIAuthentication no
  sshd服务的配置文件,两个文件都存放在/etc/ssh目录下
    ssh_config:客户端配置文件
    Port:默认连接端口  -p可以指定端口号
    StrictHostKeyChecking ask:管理第一次连接是否提示yes or no,不启用的话讲ask改为no
  scp命令:
  scp [options]源...目标/
  两种方式:
  scp [options] [user@]host:/sourcefile /目标路径
  scp [options] /sourcefile [user@]host:/目标路径
  [options]:
  -q:静默模式
  -r:递归复制
  -C:压缩
  -p:保持源文件的属性
  -P:指定端口
  rsync
  rsync [options] "文件名" "目标IP:/目标目录路径"
  比scp更快,只复制发生变化的文件
  注意:如果要复制整个目录就不要在目录最后加"/" 加了/的话就把整个目录复制过去
  选项:
  -n 模拟复制过程
  -v 显示详细过程
  -r 递归复制目录
  -p 保留权限
  -t 保留时间戳
  -g 保留组信息
  -o 保留所有者信息
  -l 将软链接文件本身进行复制(默认)
  -L 将软链接文件指向的文件复制
  -a 保留源文件所有属性
  sftp命令
  sftp "目标IP地址"
  基于ssh协议的ftp
  带!的命令是在本地执行
  get:下载
  put:上传
  ?:查看帮助
  pssh工具(适用于小型环境)
  语法:pssh [options] [user@]hostip command
  pssh存放在epel源中
  注意:执行命令中如果存在星号 $符号的时候需要用单引号将命令引起来才能实现在目标主机上操作
  -H:指定对方的IP地址 后方可以跟多个主机IP地址双引号引起来 用空格隔开
  -i:将结果输出
  -h:读取文件中数据 可将多个主机ip地址写入到文件中 使用-h读取文件数据
  -o:将输出结果生成文件单独放在指定目录中 以ip地址为文件名
  pscp.pssh将本地文件批量复制到远程主机(要在基于密钥验证的前提下才能使用)
  语法:pscp.pssh [options] [本地文件or目录] [目标主机文件or目录]
  -h:读取文件中数据 可将多个主机ip地址写入到文件中 使用-h读取文件数据
  -v:显示复制过程
  -a:保留所有常规属性
  -r:递归复制目录
  -H:指定目标主机ip地址
  将目标主机文件拉取到本机
  pslurp -h ip.txt -L /app /var/log/secure remote_secure
  -L:指定本地目录
  remote_secure:复制到本地/app目录下并且改名
  ssh的端口转发
  例子:
  从外部向内部
  C是telnet服务器
  B是ssh服务器
  A是ssh telnet客户端
  在A主机上进行操作
    当A想通过telnet访问C的时候过程可能不安全,所以可以使用ssh进行端口转发,建立隧道,使用ssh协议封装telnet 访问,过程相对安全
  A主机端口随机
  1 建立隧道
  ssh -L A主机端口:C telnet主机IP:C主机的telnet端口  B主机的IP -Nf
      -N:不登录目标shell
      -f:后台运行
  2 telnet 127.0.0.1 端口 此时建立成功 但在C服务器上认为的是B主机在访问
  从内部向外部
  A为ssh服务器
  B为ssh客户端
  C为smtp服务器
  在B主机上进行操作
  1 ssl -R A主机sshd服务的端口:C主机IP:C主机的smtp端口 A主机的IP -Nf
  2 telnet 127.0.0.1 端口
  动态端口转发:
  例子:
  A为国内服务器
  B为中间服务器
  C为google服务器
  1 在C服务器上搭建httpd服务
  yum -y install httpd
  2 在C服务器上设置防火墙策略禁止A访问
  iptables -A INPUT -s A主机IP -j REJECT
  3 在A服务器上执行;A与B服务器建立了ssh连接;在A服务器上的浏览器中进行代理设置;
  ssh -D "随机本地端口" B服务器IP地址 -N
  4 测试
  curl --socks5 127.0.0.1:A上的随机端口 http://C主机IP地址
  ssh服务器:
  服务器端:sshd
  配置文件:/etc/ssh/sshd_config
  #Port:端口;
  #AddressFamily any:支持的ip格式,ipv4 ipv6默认都支持;
  #ListenAddress:默认监听的IP地址是任意的,后方对应的ip就是对外可连接的ip地址;
  #HostKey:对应的私钥;
  #LoginGraceTime 2m:登录最长时间;
  #PermitRootLogin:禁止root用户连接,默认是可以的;
  #StrictModes:检查.ssh/目录下的权限;权限不正确拒绝连接;
  #MaxAuthTries 6:默认最多错误输入3次;设置的值的一半;
  #MaxSessions 10:在一个连接的情况下最多建立多少个会话,针对克隆连接;
  #PubkeyAuthentication yes:是否支持基于密钥的连接
  #PasswordAuthentication yes:是否支持用户名密码的连接;一般都是禁用此项使用基于密钥的连接
  #PermitEmptyPasswords:是否允许空口令
  #GatewayPorts no:是否充当网关
  #ClientAliveInterval:多久发送检查,检查如果没有任何操作就断开;默认为永久不断开
  #ClientAliveCountMax:最多发送几个检查
  #UseDNS:将DNS反向解析改为no可提升速度
  #GSSAPIAuthentication:改为no提升连接速度
  #MaxStartups:用户没有输入密码的连接数,达到10个以上会拒绝没有验证的用户,以30%的比例拒绝,当10-100的时候比例增长,并发最多达到100个;
  #Banner:连接上目标主机之后的提示信息(写在一个独立的文件中,sshd_config配置文件中Banner后写的是文件的绝对路径)
  限制可登录用户的方法:
  /var/log/secure中可查看到sshd的日志
  #手动添加Allowusers "用户名" 没有写的所有用户都不可以连接,包括root
  #手动添加Denyusers  "用户名" 拒绝指定用户连接 当Allowusers和Denyusers都有同一个用户时,拒绝优先
  #Allowgroups "组名"  写的组可以连接
  #Denygroups  "组名"写的组都拒绝连接;
  AIDE:文件完整性检查和入侵检查
  安装:yum -y install aide
  aide.conf为配置文件
  CONTENT_EX在配置文件中定义了关心哪几个位置
  #/boot/ CONTENT_EX:对boot这个目录进行所有权限的记录
  ........等多个目录相同含义
  也可以自定义关键字,方便后期要监控的目录进行引用
  #CUSTOM = p+u+g+s+sha256+m+acl
  #/app CUSTOM      #监控app目录下的CUSTOM后方对应的属性,一系列属性在配置文件中有解释
  #!/app/f3 #加!的意思是不关心app目录下的f3文件
  #aide --update    #更新数据库中的信息
  #aide --init #生成新的数据库中的信息
  新的生成的aide.db.new.gz文件要改为aide.db.gz才能进行比对
  #aide --check  #比对数据库中的信息和当前被监控的目录的信息
  /var/log/aide为日志文件路径
  更改身份
  su 切换身份: su -l username -c 'command'
   使用用户登录并且执行后面的命令
  sudo
  -u:指定要代表的用户
  -V:查看版本配置信息
  -l,ll:列出用户在主机上可用和禁用的命令
  -k:清除时间戳,下次使用sudo需要输入密码
  -v:将密码有效期延长
  -K:删除时间戳文件
  -b:在后台执行指令
  -p:改变输入密码的提示符
  /etc/sudoers:在此文件中授权
  可使用visudo拥有语法检查功能,如果有问题,保存退出会提示
  格式:username登录主机=(以哪个用户的身份)要执行的命令;多条命令以逗号作为分隔符,需要些绝对路径
  登录主机:写哪一个IP就只能在哪台主机上进行sudo操作,可以写多个地址或网段
  例子:
  1fangALL=(root)/usr/bin/mount /dev/cdrom /media       #使fang用户以root用户使用挂载命令
  如果想要用户可以任意挂载到任何位置将/dev/cdrom /media等去掉只写命令的绝对路径即可
  
  2如果想要单个用户使用单个配置文件则可以在/etc/sudoers.d下创建文件即可
  例子:
  vim /etc/sudoers.d/fang#创建新文件
  fang ALL=(root) /usr/bin/mount,/usr/bin/umount,/usr/bin/cat /etc/shadow#文件中的格式
  3/etc/sudoers中%开头的就是对组的配置
  %wheelALL=(ALL)ALL #wheel组默认存在将用户加入到此组中就附带ALL权限
  usermod -G wheel fang #fang用户拥有wheel组的所有权限
  例子2:
  如果希望普通用户可以查看/var/log/secure-`date +%F`的日志信息按以下方式写
  vim /etc/sudoers.d/fang
  fang ALL=(root)/usr/bin/cat /var/log/secure*,!/usr/bin/cat /var/log/secure* *      #既防止了用户访问别的文件也赋予了正确权限
  sudo在配置文件中,还支持通配符的使用
  sudo别名和实例
  用户:user
  以哪个用户身份运行:runas
  通过哪些主机:host
  运行的命令:command
  别名拥有四种类型:
  USER_Alias
  Runas_Alias
  Host_Alias
  Cmnd_Alias
  别名格式
  别名名称要为大写在,多个命令使用逗号隔开
  User_Alias "别名名称" = "包括的用户名"
  Cmnd_Alias "命令别名" = "命令的绝对路径"
  用户别名名称 ALL=(root) 命令别名名称
  TCP_Wrappers守护进程
  工作在传输层的TCP协议
  判断服务是否能够由tcp_wrapper进行访问控制的方法:
  ldd "程序的绝对路径" (libwarp.so)
  配置文件:/etc/hosts.allow,/etc/hosts.deny
  当hosts.allow文件中没有匹配条件的时候才去查看hosts.deny文件
  格式:
  /etc/host.deny,修改完整后即时生效
  "进程名称","第二个进程名称":"要拒绝的ip地址" 空格隔开多个IP
   当两个文件都没有定义的话默认是允许连接的
  例子:
  in.telnetd,sshd@172.18.0.6:ALL(拒绝所有通过telnet以及ssh访问172.18.0.6的ip地址)
  sshd:192.168.27.EXCEPT 192.168.27.7(拒绝所有27网段的ip,仅允许192.168.27.7访问,要在allow文件中写27.7的地址,也可以在deny中如此定义)
  EXCEPT:排除后方的ip或网端
  sshd:192.168.27. :spawn echo `date +%%F` client  login > /app/tcp_warppers.log(记录27网段登录后会将echo后面的信息输入到文件中)
  spawn:开启一个进程
  %c:客户端信息
  %s:服务器信息
  %u:用户
  twist:当客户端连接到服务端的时候执行twist后方定义的操作,而服务不做响应
   sshd:192.168.27. :twist /bin/echo "Deny access Server sshd 403" (当27网段的客户端来通过sshd连接到服务端的时候不会响应并且回回复twist后方信息)
  tcpdmatch -d:测试当前目录下的hosts.allow以及hosts.deny文件是否生效
  例子:

  cd /app

  touch hosts.deny;vim hosts.deny
  sshd:192.168.27.7    #vim编辑器中添加的内容
  tcpdmatch -d sshd 192.168.27.7
  若返回access的值为denied为拒绝,granted则为允许
  PAM:可插入的认证模块
  认证库:文本文件(/etc/passw;/etc/shadow),MySQL,NIS,LDAP
  远程登录,本地登录
  PAM相关文件
  模块文件目录:/lib64/security/*.so
  环境相关配置:/etc/security/(有些模块比较简单没有配置文件,比较复杂的就拥有配置文件在此处,模块在上方目录)
  主配置文件:/etc/pam.conf;默认不存在
  为每种应用模块提供一个专用的配置文件:/etc/pam.d/应用名称,格式与主配置文件基本相同,文件中主要描述是如何调用/lib64/security/*.so文件
  注意:如果/etc/pam.d存在,那么/etc/pam.conf文件将会失效
  PAM模块认证过程:
  Service(服务)→PAM(配置文件)→pam_*.so
  PAM首先确定一项服务,然后加载相应的PAM的配置文件(/etc/pam.d/*.conf),然后通过配置文件查看调用某一个模块以及认证过程
  通用配置文件/etc/pam.conf格式
  applicationtypecontrolmodule-patharguments     #不常用
  专用配置文件/etc/pam.d/*格式
  type controlmodule-patharguments
  type(类型): Auth(验证账号是否合法)
   Account(判断账号是否可登陆)
  Password(在用户修改密码的时候做复杂检查)
   Session(用户在使用服务之前或使用服务之后附带的一系列信息;比如在用户登陆后是否要记录日志)
          -Auth|Account|Password|Session:(对应模块没有安装的话不会记录到日志,不会报错)
  control(控制):PAM如何处理模块的成功或失败情况
   required:一票否决,还会继续检查,但总体来说已经失败,下面有通过也没用;本模块必须成功不代表一定成功,但是不一定一定成功,因为后方还有检测
   requisite:一票否决,如果失败就直接失败,不会继续向下检查
   sufficient:一票通过,如果返回通过,则通过,后面就不用看了
   optional:结果忽略,不影响结果
   include:指定后方模块是调用
  module-path(模块路径):默认就去/lib64/security下查找
  arguments(参数):传递给模块的参数
  例子1 :
  模块:pam_shells.so
  说明:检查登录有效shell
  ssh服务没有调用此项模块,所以对sshd无效,编辑/etc/pam.d/sshd在其中添加
  auth requiredpam_shells.so    #当ssh连接的用户使用的shell不在/etc/shells中就会拒绝连接
  例子2 :
  模块:pam_securetty.so
  说明:如果用户登录的是安全的tty(/etc/securetty)则允许root登录,否则不允许root登录,不针对其他用户
  telnet默认就是不允许root登录
  remote中调用了pam_securetty.so模块,就是所有远程连接如果不是安全的tty都不可以登录;包括telnet,在/etc/securetty中添加tty即可登录
  例子3 :
  模块:pam_nologin.so
  说明:man pam_nologin
   当/etc/nologin存在的时候,拒绝用户的登录,并且文件内容将显示在登录提示位置,对root用户不影响
  touch /etc/nologin          #创建/etc/nologin文件
  vim /etc/pam.d/su  auth  required pam_nologin.so #编辑/etc/pam.d/su添加auth required pam_nologin.so
  这样使用su切换用户的时候也是不可以的,默认是可以的
  例子4 :
  模块:pam_limits.so
  说明:限制用户系统资源使用,对root也有影响
  ulimit:限制资源,包括shell以及进程创建
  -a:显示当前所有ulimit限制
     open files:最多打开的文件个数,默认为1024;每发起一个连接就会打开一个sockets文件
        -n:修改最多打开文件个数,最大接收的并发连接数(普通用户只能调小不能调大)
     cpu time:每运行一个程序使用的cpu的时间
     max user processes:最大用户的进程数,最多这么多进程
  配置文件:/etc/security/limits.conf
     -:包括软硬限制都做了限制
     nproc:最大进程数
  比如"fang"这个用户最大打开10个进程就使用以下格式
  #fang -nproc10    #如果用户名部分写组名的话则要加上@符号
  
    ab -c 10 -n 200 http://IP/
     -c:并行发起10个链接
     -n:总链接数200个
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-460898-1-1.html 上篇帖子: Linux cp命令总结 下篇帖子: linux operators
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表