Squid配置之限制IP访问

1. 安装squid
使用root用户进行操作。
先使用rpm检测是否已经安装了sqlid,如>> rpm –q squid
如未安装,可使用>> yum –install squid进行安装


2. 配置squid
Squid安装后提供几个设置的地方:
/etc/squid/squid.conf:这个是主要的设置文件,所有squid所需要的设置都放在这里
/etc/squid/mime.conf:这是squid所支持的internet上的mime格式列表,一般来说不需修改
/usr/sbin/squid:squid 的主程序
/var/spool/squid:预设的squid放置缓存的地方
/usr/lib64/squid/:squid 提共的控制组件,如密码认证等


对/etc/squid/squid.conf进行配置:

只开通80端口的代理功能,把数据缓存关掉,通过限制IP访问的方式使用代理,其它均不需要,设置如下:

# 定义授权组
acl localhost src 172.21.63.141

# 定义端口
acl Safe_ports port 80		# http

# 拒绝所有非定义的端口
http_access deny !Safe_ports

# 允许授权组
http_access allow localhost

# 拒绝其它所有未定义的
http_access deny all

# Squid 端口
http_port 3128

# 缓存设置
cache_dir ufs /var/spool/squid 100 16 256 read-only
cache_mem 0 MB
coredump_dir /var/spool/squid


设置授权用户:
做好配置后,我们需要设置授权用户(即上面设置的密码文件):
>> htpasswd -c /etc/squid/squid_user.txt atco
此命令使用htpasswd进行密码设置生成用户atco,首次生成文件需要使用-c参数,如果无此命令则需使用指令>> yum install httpd,安装httpd。


3. 启动squid
>> /etc/init.d/squid start


4. 使用代理
Squid代理的使用方式与普通的代理使用方式一致,其端口为3128(可改),密码加密方式为base64位加密,示例如下:

[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. try {  
  2.     URL url = new URL("http://www.baidu.com");  
  3.     // 创建代理服务器  
  4.     InetSocketAddress addr = new InetSocketAddress("172.21.63.136",3128);  
  5.     Proxy proxy = new Proxy(Proxy.Type.HTTP, addr); // http 代理  
  6.     URLConnection conn = url.openConnection(proxy);  
  7.         
  8.     InputStream in = conn.getInputStream();  
  9.     // InputStream in = url.openStream();  
  10.     String s = IOUtils.toString(in, "utf-8");  
  11.     System.out.println(s);  
  12. catch (Exception e) {  
  13.     e.printStackTrace();  
  14. }  
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
译者序: 本人在工作中维护着数台Squid服务器,多次参阅Duane Wessels(他也是Squid的创始人)的这本书,原书名是"Squid: The Definitive Guide",由O'Reilly出版。我在业余时间把它翻译成中文,希望对中文Squid用户有所帮助。对普通的单位上网用户,Squid可充当代理服务器;而对Sina,NetEase这样的大型站点,Squid又充当WEB加速器。这两个角色它都扮演得异常优秀。窗外繁星点点,开源的世界亦如这星空般美丽,而Squid是其中耀眼的一颗星。 目录 第1章介绍....................................................................................................................................2 1.1 Web缓存.............................................................................................................................2 1.2 Squid的简明历史...............................................................................................................2 1.3 硬件和操作系统要求........................................................................................................2 1.4 squid是开源的....................................................................................................................3 1.5 Squid的Web主页................................................................................................................3 1.6 获取帮助............................................................................................................................3 1.6.1 FAQ..........................................................................................................................3 1.6.2 邮件列表.................................................................................................................3 1.6.3 职业支持.................................................................................................................4 1.7 启动Squid..........................................................................................................................4 第2章获取Squid..........................................................................................................................2 2.1版本和发布.........................................................................................................................2 2.2使用源代码......................................
Squid 可以通过访问控制列表(ACL)来控制用户访问权限。以下是在 Squid配置用户访问权限的步骤: 1. 定义 ACL:在 squid.conf 文件中定义 ACL,例如: ``` acl mynet src 192.168.0.0/16 acl myuser proxy_auth REQUIRED ``` 第一个 ACL 定义了一个名为 mynet 的 ACL,它包含 IP 地址为 192.168.0.0/16 的所有客户端。第二个 ACL 定义了一个名为 myuser 的 ACL,它要求客户端必须使用代理服务器的用户名和密码进行身份验证。 2. 配置访问规则:在 squid.conf 文件中配置访问规则,例如: ``` http_access allow mynet http_access allow myuser http_access deny all ``` 这些规则指定了允许哪些客户端访问代理服务器。第一行规定了名为 mynet 的 ACL 允许访问代理服务器,第二行规定了名为 myuser 的 ACL 允许访问代理服务器,第三行规定了所有其他客户端拒绝访问代理服务器。 3. 配置用户名和密码文件:在 squid.conf 文件中配置用户名和密码文件,例如: ``` auth_param basic program C:\squid\sbin\ncsa_auth C:\squid\etc\passwd auth_param basic children 5 auth_param basic realm Squid proxy-caching web server auth_param basic credentialsttl 2 hours auth_param basic casesensitive off ``` 这些规则指定了 Squid 代理服务器使用的用户名和密码文件的路径,并设置了其他相关参数,如认证程序、子进程数、凭证有效期等。 4. 创建用户名和密码文件:使用 htpasswd 程序创建用户名和密码文件,例如: ``` C:\squid\etc> htpasswd -c passwd alice New password: ******** Re-type new password: ******** Adding password for user alice ``` 这将在 C:\squid\etc 目录下创建一个名为 passwd 的文件,并将用户名 alice 和相应的密码添加到文件中。你可以重复使用 htpasswd 命令添加其他用户。 这样就完成了 Squid 中用户访问权限的配置。需要注意的是,为了保证安全性,你应该使用 HTTPS 协议来加密用户名和密码的传输过程。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值