Java教程

Ubuntu squid 4.13 + 重定向配置

本文主要是介绍Ubuntu squid 4.13 + 重定向配置,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

官方文档

http://www.squid-cache.org/Doc/

安装

sudo apt install squid 

配置

创建访问账号及密码

sudo apt install apache2-utils
//生成password文件 这里的路径和squid.conf中配置的路径一致
sudo htpasswd -c -d /etc/squid/passwords 自定义用户名  
//然后输入两次至少8位的密码,还要保证生成的passwords文件是可读的
sudo chmod o+r /etc/squid/passwords

备份配置文件

cd /etc/squid/ 
cp squid.conf squid.conf.bak

修改配置文件

# 匿名代理
forwarded_for off

# 配置用户名密码
auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwords
auth_param basic realm proxy
acl authenticated proxy_auth REQUIRED
# 访问控制
http_access allow authenticated

# 允许不安全端口
# http_access deny !Safe_ports
# 允许 非ssl 链接
# http_access deny CONNECT !SSL_ports

cache_mgr  xxx@gmail.com  #Squid 崩溃时邮件发送地址

# 配置重定向
url_rewrite_extras "%>a %>rm %un"
url_rewrite_children 3 startup=0 idle=1 concurrency=10
url_rewrite_program /etc/squid/squid-redirect.py

重定向脚本

# 重定向脚本
vim /etc/squid/squid-redirect.py
# 添加可执行权限
sudo chmod a+x /etc/squid/squid-redirect.py

以下为squid-redirect.py代码

#!/usr/bin/env python3
VERSION=0.3

import re
import sys
import logging
from datetime import datetime

logging.basicConfig(filename='squid-redirect.log',level=logging.DEBUG)
xxx = re.compile('\.xxx?/$')

def main():
    """
        keep looping and processing requests
        request format is based on url_rewrite_extras "%>a %>rm %un"
    """
    request  = sys.stdin.readline()
    while request:
        [ch_id,url,ipaddr,method,user]=request.split()
        logging.debug(datetime.now().strftime('%Y-%m-%d %H:%M:%S') + ': ' + request +'\n')
        response  = ch_id + ' OK'
        if 'www.baidu.com' in url:
            response +=  ' status=302 url="https://example.com"'
        response += '\n'
        logging.debug(datetime.now().strftime('%Y-%m-%d %H:%M:%S') + ': ' + response + '\n')
        sys.stdout.write(response)
        sys.stdout.flush()
        request = sys.stdin.readline()

if __name__ == '__main__':
    main()

脚本日志文件位置:
/var/spool/squid/squid-redirect.log

检查语法

squid -k parse

重定向访问控制

参考链接:https://wiki.squid-cache.org/SquidFaq/SquidAcl

acl myserver dst 172.16.5.1
url_rewrite_access myserver

运行

// 开机启动
systemctl enable squid.service

sudo service squid start
//重启服务
squid restart

//关闭服务
squid stop
这篇关于Ubuntu squid 4.13 + 重定向配置的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!