• linux 运维,代理,acl控制访问


    运维概述:
    运行 & 维护,Operation & Maintance
    IT运维、业务运维、日常管理运维
    采用相关的方法、手段、技术、制度、流程和文档等,
    对IT运行环境、IT业务系统和IT运维人员进行的综合管理。

    传统运维技术特点:
    单一化:业务及服务单一
    简单化:部署的服务与架构相对简单
    被动化:出现问题后,救火式的管理

    linux运维最佳实践
    集中化
    自动化
    分布式
    标准化
    虚拟化
    ... ...

    ————————————————————————————————————
    squid代理

    代理服务器分类:
    正向代理:客户程序(如浏览器)用指定代理服务器的地址,端口
    反向代理:负载均衡。

    squid服务器:
    软件包:squid-3.1.23-9.el6.x86_64
    系统服务:squid
    主程序:/usr/sbin/squid
    主配置文件:/etc/squid/squid.conf
    默认监听端口:tcp 3128
    默认访问日志:/var/log/squid/access.log

    常用配置解析
    [root@daili ~]# vim /etc/squid/squid.conf
    http_port 3128(监听端口)
    cache_man 64 MB(缓存软件相关信息)
    access_log /var/log/squid/access.log(日志文件)
    visible_hostname www.hydra.org(域名/主机名。默认没有要加上去)
    cache_dir ufs /var/spool/squid 100 16 256(默认页面缓存)
    (ufs:存储格式,100:目录空间100mb,16:一级子目录,256:二级子目录)

    ——————————————————————————————————————————————

    正向代理:
    测试:使客户机机,通过代理服务器访问web主机(使用squid)
    主机:beiqiang客户机 eth0 192.168.4.1
    主机:daili为代理服务器 eth0 192.168.4.5 eth1 192.168.2.5
    主机:web服务器 eth1 192.168.4.100
    [root@daili ~]# yum -y install squid(安装squid代理)
    [root@daili ~]# vim /etc/squid/squid.conf
    http_access allow all(允许所有代理/默认拒绝,要开启)
    。。
    cache_dir ufs /var/spool/squid 100 16 256(把注释去掉以开启)
    。。
    visible_hostname www.hydra.org(配置主机名)
    。。
    http_port 3128(配置监听端口)
    [root@daili ~]# /etc/init.d/squid start(启动服务)
    [root@daili ~]# curl http://192.168.2.100(在本机测试访问web主机)
    hydra
    [root@beiqiang ~]# curl --proxy1.0 192.168.4.5:3128 http://192.168.2.100(使用客户机测试)
    hydra
    [root@beiqiang ~]# curl -I --proxy1.0 192.168.4.5:3128 http://192.168.2.100(-I抓包)
    HTTP/1.0 200 OK
    Last-Modified: Sun, 13 Aug 2017 22:25:20 GMT
    Accept-Ranges: bytes
    Content-Length: 6
    Content-Type: text/html; charset=UTF-8
    Date: Sun, 13 Aug 2017 23:31:46 GMT
    Server: Apache/2.2.15 (Red Hat)
    ETag: "1c0bba-6-556aa057c2f58"
    X-Cache: HIT from www.hydra.org
    X-Cache-Lookup: HIT from www.hydra.org:3128
    Via: 1.0 www.hydra.org (squid/3.1.23)
    Connection: keep-alive

    squid反向代理:
    与传统代理方向相反,代替公网用户访问组织内部的web服务器
    部署基于地区的cdn服务器
    测试:配置反向代理服务器
    [root@daili ~]# vim /etc/squid/squid.conf
    http_port 80 vhost(注意端口冲突,端口改为80)
    cache_peer 192.168.2.100 parent 80 0 originserver(本机ip 端口 原始服务器)
    [root@daili ~]# /etc/init.d/squid restart(设置后重启服务)
    [root@beiqiang ~]# curl http://192.168.4.5(客户机直接访问代理服务器)
    hydra

    ——————————————————————————————————————————————————————

    ACL控制访问列表

    定义acl
    acl 列表名称 列表类型 列表内容
    示例:
    acl xx src url_regex .*.mp4

    常见的acl列表类型:
    src:源地址
    dst:目标地址
    port:目标端口
    time:访问时间
    dstdomain:目标域
    maxconn:最大并发连接
    url_regex:目标url地址
    urlpath_regex:整个目标url路径

    匹配规则
    未设置任何规则时,拒绝所有访问请求
    已设置规则时,依次进行检查,匹配即停止,
    否则采用最后一条规则相反的权限。

    调用acl
    http_access allow 列表名称
    http_access deny 列表名称

    示例:
    [root@daili ~]# vim/etc/squid/squid.conf
    acl xiuxi time MTWHF 00:00-12:00(定义acl)
    acl ip src 192.168.1.1(定义acl)
    .....
    http_access deny xiuxi(调用acl)
    http_access deny ip(调用acl)

    案列:
    禁止任何客户机使用此代理服务
    [root@daili ~]# vim/etc/squid/squid.conf
    acl renhe src 0.0.0.0/0.0.0.0
    。。。。
    http_access deny all

    案列:
    允许多个局域网网段在工作时间上网
    [root@daili ~]# vim/etc/squid/squid.conf
    acl all src 0.0.0.0/0.0.0.0
    acl wangduan src 192.168.2.0/24 192.168.3.0/24
    acl shijian time MTWHF 09:30-18:30
    http_access allow wangduan shijian
    http_sccess deny all

    通过黑名单限制目标网站
    [root@daili ~]# vim/etc/squid/ipblock.list(创建地址列表)
    61.135.16.35
    56.125.65.98
    60.28.16.0/24
    [root@daili ~]# vim/etc/squid/dmblock.list(创建域列表)
    .qq.com
    .google.com
    [root@daili ~]# vim/etc/squid/squid.conf
    acl ipaddress dst "/etc/squid/ipblock.list"
    acl dmname dstdomain "/etc/squid/dmblock.list"
    。。。。。
    acl http_access deny ipaddress
    acl http_access deny dmname

    [root@daili ~]# vim/etc/squid/squid.conf
    acl binfa maxconn 20(最大支持20个用户连接)
    .。。。
    http_access deny binfa

    ————————————————————————————————————————————————
    varnish服务器

    varnish是一款高薪能且开源的反向代理服务器和http加速器
    与传统的squid相比,varnish具有性能更高,速度更快,
    管理更方便等诸多优点

    varnish服务器
    /etc/varnish:配置文件目录
    /etc/init.d/varnish:varnish启动程序
    /etc/sysconfig/varnish:配置文件,varnish定义自身属性
    /etc/varnish/default.vcl:默认配置文件,定义后端节点
    /usr/bin/varnish_reload_vcl:加载vcl
    /usr/bin/varnishadm:客户端程序
    /usr/bin/varnishstat:状态监控

    部署varnish
    编译安装(红帽没有内置的yum包,需要源码包安装)
    [root@daili ~]# yum -y install readline-devel pcre-devel
    [root@daili ~]# useradd -s /sbin/nologin varnish
    [root@daili ~]# tar -xzf varnish-3.0.6.tar.gz
    [root@daili ~]# cd varnish-3.0.6
    [root@daili ~]# ./configure --prefix=/usr/local/varnish
    [root@daili ~]# make
    [root@daili ~]# make install
    [root@daili ~]# cp redhat/varnish.initrc /etc/init.d/varnish
    [root@daili ~]# cp redhat/varnish.sysconfig/etc/sysconfig/varnish
    [root@daili ~]# cp redhat/varnish_reload_vcl /usr/bin/
    [root@daili ~]# ln -s /usr/local/varnish/sbin/varnishd /usr/sbin/

    [root@daili ~]# vim /etc/sysconfig/varnish
    VARNISH_VCL_CONF=/etc/varnish/default.vcl:后台配置文件路径
    VARNISH_LISTEN_PORT=80:默认端口6081(要改为80)
    VARNISH_SECRET_FILE=/etc/varnish/secret:密钥文件
    VARNISH_STORAGE_SIZE=64M:缓存大小,默认1G
    VARNISH_STORAGE="malloc,${VARNISH_STORAGE_SIZE}":默认为硬盘存储,改为基于内存方式

    [root@daili]# cd /etc/varnish
    [root@daili varnish]# vim default.vclvim default.vcl(改后台配置文件)
    backend default {
    .host = "192.168.2.5";
    .port = "80";
    }
    [root@daili]# service varnish restart(配置完成后重启服务)
    [root@beiqiang /]# curl http://192.168.4.5(客户机测试访问代理服务器)
    hydra

    清除缓存命令格式:
    varnishadm -T ip:端口 -S /etc/varnish/secret(密钥文件)
    [root@daili ~]# varnishadm ban.list(查看缓存)
    [root@daili ~]# varnishadm -T 127.0.0.1:6082 -S /etc/varnish/secret ban.url /test.html(删除缓存)

    varnish日志
    varnishlog [-w file](共享内存的日志,不写参数则把日志直接显示在屏幕上)
    varnishncsa [-w file](类apache日志,不写参数则把日志直接显示在屏幕上)

    ——————————————————————————————————————————————————————————

  • 相关阅读:
    开发Django项目01
    本地安装python2.x和python3.x双版本之后怎么使用pip
    python3.x并发编程
    centos6.8安装JDK1.8教程
    yum安装MySQL指定版本
    python爬虫爬取get请求的页面数据代码样例
    python网络爬虫学习笔记
    python通过get方式,post方式发送http请求和接收http响应-urllib urllib2
    CentOS7.5安装python-pip报Error: Nothing to do解决方法
    文件操作
  • 原文地址:https://www.cnblogs.com/Hydraxx/p/7365171.html
Copyright © 2020-2023  润新知