安装和配置 Squid 代理http代理

安装
sudo apt install squid

编辑配置

 

=====编辑配置=========

----访问权限设置固定IP------

sudo nano /etc/squid/squid.conf

第一行加入,这个没测试行不行,别的教程简化版

acl ip1 src xxx.xxx.xx.xx
http_access allow ip1
再加条命令,拒绝其它情况访问

http_access deny all

----访问账号密码访问------

printf "账号:$(openssl passwd -crypt '密码')\n" | sudo tee -a /etc/squid/htpasswd

sudo nano /etc/squid/squid.conf

第一行加入,

auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid/htpasswd
auth_param basic realm proxy
acl authenticated proxy_auth REQUIRED
http_access allow localhost
http_access allow authenticated
http_access deny all

--------------------------------------------------

 

改端口

sudo nano /etc/squid/squid.conf

ctrl+w搜索http_port 3128  把3128改你要的端口

关闭客户端IP头

搜索# forwarded_for on 把#去掉,on改off。。说明:默认HTTP 请求中转发附加客户端的 IP 地址

=========编辑配置======

 

重启服务,回到系统命令,输入

 sudo service squid restart

 

======================squid配置说明====

squid常用命令:
/usr/local/squid/sbin/squid -z 初始化缓存空间
/usr/local/squid/sbin/squid 启动
/usr/local/squid/sbin/squid -k shutdown 停止
/usr/local/squid/sbin/squid -k reconfigure 重新载入配置文件
/usr/local/squid/sbin/squid -k rotate 轮循日志

#acl all src 0.0.0.0/0.0.0.0 and http_access allow all选项定义了一个访问控制列表。详细情况参见和Squid软件
#携带的文档。这里的访问控制列表允许所有对代理服务的访问,因为这里该代理是加速web服务器。
acl all src 0.0.0.0/0.0.0.0                 #允许所有IP访问
acl manager proto http                 #manager url协议为http
acl localhost src 127.0.0.1/255.255.255.255  #允午本机IP
acl to_localhost dst 127.0.0.1                 #允午目的地址为本机IP
acl Safe_ports port 80                # 允许安全更新的端口为80
acl CONNECT method CONNECT        #请求方法以CONNECT
http_access allow all                #允许所有人使用该代理.因为这里是代理加速web服务器
http_reply_access allow all                #允许所有客户端使用该代理

acl OverConnLimit maxconn 16        #限制每个IP最大允许16个连接,防止攻击
http_access deny OverConnLimit

icp_access deny all                        #禁止从邻居服务器缓冲内发送和接收ICP请求.
miss_access allow all                #允许直接更新请求
ident_lookup_access deny all                                #禁止lookup检查DNS
http_port 8080 transparent                                #指定Squid监听浏览器客户请求的端口号。

hierarchy_stoplist cgi-bin ?                #用来强制某些特定的对象不被缓存,主要是处于安全的目的。
acl QUERY urlpath_regex cgi-bin ?
cache deny QUERY

cache_mem 1 GB        #这是一个优化选项,增加该内存值有利于缓存。应该注意的是:
                     #一般来说如果系统有内存,设置该值为(n/)3M。现在是3G 所以这里1G
fqdncache_size 1024        #FQDN 高速缓存大小
maximum_object_size_in_memory 2 MB        #允许最大的文件载入内存

memory_replacement_policy heap LFUDA  #动态使用最小的,移出内存cache
cache_replacement_policy heap LFUDA         #动态使用最小的,移出硬盘cache

cache_dir ufs /home/cache 5000 32 512  #高速缓存目录 ufs 类型 使用的缓冲值最大允午1000MB空间,
#32个一级目录,512个二级目录

max_open_disk_fds 0                                 #允许最大打开文件数量,0 无限制
minimum_object_size 1 KB                         #允午最小文件请求体大小
maximum_object_size 20 MB                 #允午最大文件请求体大小

cache_swap_low 90                            #最小允许使用swap 90%
cache_swap_high 95                            #最多允许使用swap 95%

ipcache_size 2048                                # IP 地址高速缓存大小 2M
ipcache_low 90                                #最小允许ipcache使用swap 90%
ipcache_high 95                                  #最大允许ipcache使用swap 90%


access_log /var/log/squid/access.log squid        #定义日志存放记录
cache_log /var/log/squid/cache.log squid
cache_store_log none                        #禁止store日志

emulate_httpd_log on        #将使Squid仿照Web服务器的格式创建访问记录。如果希望使用
                                #Web访问记录分析程序,就需要设置这个参数。

refresh_pattern . 0 20% 4320 override-expire override-lastmod reload-into-ims ignore-reload   #更新cache规则

acl buggy_server url_regex ^http://.... http://          #只允许http的请求
broken_posts allow buggy_server

acl apache rep_header Server ^Apache                 #允许apache的编码
broken_vary_encoding allow apache

request_entities off                                        #禁止非http的标分准请求,防止攻击
header_access header allow all                        #允许所有的http报头
relaxed_header_parser on                                #不严格分析http报头.
client_lifetime 120 minute                                #最大客户连接时间 120分钟

cache_mgr sky@test.com                        #指定当缓冲出现问题时向缓冲管理者发送告警信息的地址信息。

cache_effective_user squid                        #这里以用户squid的身份Squid服务器
cache_effective_group squid

icp_port 0                       #指定Squid从邻居服务器缓冲内发送和接收ICP请求的端口号。
                     #这里设置为0是因为这里配置Squid为内部Web服务器的加速器,
                     #所以不需要使用邻居服务器的缓冲。0是禁用

# cache_peer 设置允许更新缓存的主机,因是本机所以127.0.0.1
cache_peer 127.0.0.1 parent 80 0 no-query default multicast-responder no-netdb-exchange
cache_peer_domain 127.0.0.1                                 
hostname_aliases 127.0.0.1

error_directory /usr/share/squid/errors/Simplify_Chinese        #定义错误路径

always_direct allow all                # cache丢失或不存在是允许所有请求直接转发到原始服务器
ignore_unknown_nameservers on        #开反DNS查询,当域名地址不相同时候,禁止访问
coredump_dir  /var/log/squid                 #定义dump的目录

max_filedesc 2048                #最大打开的文件描述

half_closed_clients off        #使Squid在当read不再返回数据时立即关闭客户端的连接。
                                #有时read不再返回数据是由于某些客户关闭TCP的发送数据
                                #而仍然保持接收数据。而Squid分辨不出TCP半关闭和完全关闭。

buffered_logs on #若打开选项“buffered_logs”可以稍稍提高加速某些对日志文件的写入,该选项主要是实现优化特性。
=====================================

====ACL访问控制=====

(1)定义ACL访问列表

定义格式:acl  列表名称  列表类型  列表内容 ...

例:控制源IP网段

vim etc/squid.conf

acl MYLAN src 192.168.1.0/24  192.168.4.0/24

常用的ACL列表类型

(1)定义ACL访问列表

定义格式:acl  列表名称  列表类型  列表内容 ...

例:控制源IP网段

vim etc/squid.conf

acl MYLAN src 192.168.1.0/24  192.168.4.0/24

常用的ACL列表类型

src          源地址
dst              目标地址
port            目标地址
dstdomain       目标域
time            访问时间
maxconn       最大并发连接
url_regex         目标URL地址  # 可以定义大的范围比如http://www.baidu.com
urlpath_regex  整个目标URL路径  # 可以定位到每个网站的具体目标的url,比如百度音乐的一首歌的url

(2)ACL访问控制

   定义好各种访问控制列表以后,需要使用httpd_access配置项来进行控制

格式:

  ~]#vim etc/squid.conf

  http_access  allow或deny  列表名……

  在每一条http_access规则中,可以同时包含多个访问控制列表名,各个列表之间以空格分隔,为“与”的关系,表示必须满足所有访问控制列表对应的条件才会进行限制

  规则匹配原理:没有设置任何规则时,Squid服务将拒绝客户端的请求,有规则但找不到相匹配的项时,Squid将采用与最后一条规则相反的权限,即如果最后一条规则时allow,就拒绝客户端的请求,否则允许该请求,但是我们要尽量避免找不到相匹配的情况。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值