ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Ubuntu squid 4.13 + 重定向配置

2022-03-06 15:01:49  阅读:206  来源: 互联网

标签:redirect 4.13 sudo url squid request etc Ubuntu


官方文档

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

标签:redirect,4.13,sudo,url,squid,request,etc,Ubuntu
来源: https://blog.csdn.net/YiLiuF/article/details/120326466

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有