CentOS 5.5上单网卡Squid 3.0配置透明代理

5星 · 超过95%的资源 需积分: 9 13 下载量 43 浏览量 更新于2024-09-11 收藏 33KB DOC 举报
本文档介绍如何在 CentOS 5.5 系统上使用单个网卡设置 Squid 3.0 透明代理,并通过 iptables 进行内网控制。这个解决方案旨在帮助管理员更好地管理公司网络,控制用户上网行为。 在安装 Squid 3.0 透明代理之前,首先确保系统已经更新到最新版本。对于 CentOS 5.5,可以使用 yum 安装 Squid: ```bash yum install squid ``` 接下来,配置 Squid 配置文件 `/etc/squid/squid.conf`。删除原有的配置文件并创建新的: ```bash cd /etc/squid/ rm -f squid.conf vi squid.conf ``` 配置文件 `squid.conf` 的主要内容如下: - `http_port 3128 transparent`:设置 Squid 代理监听的端口为 3128,并开启透明代理模式。 - `cache_mem 64MB` 和 `cache_swap_low 90`、`cache_swap_high 95`:设定缓存内存大小为 64MB,当缓存使用率低于 90% 或超过 95% 时进行交换操作。 - `maximum_object_size 4096KB` 和 `maximum_object_size_in_memory 8KB`:限制缓存对象的最大大小为 4MB,内存中对象的最大大小为 8KB。 - `cache_dir ufs /var/spool/squid 1024 16 256`:设置缓存目录为 UFS 类型,路径为 `/var/spool/squid`,分配 1024 MB 空间,分为 16 个子目录,每个子目录最多 256 个文件。 - `cache_effective_users squid` 和 `cache_effective_groups squid`:限制只有 squid 用户和组可以访问缓存。 - `access_log /var/log/squid/access.log squid` 和其他日志设置:定义访问日志路径和其他日志记录。 - `refresh_pattern` 行:设置缓存更新规则。 - `acl` 和 `no_cache deny` 行:定义 ACL 规则,例如禁止访问包含 "cgi-bin?" 和 "coach" 的 URL。 - `acl` 和 `SSL_ports` 行:定义安全端口,如 443(HTTPS)等。 配置完成后,重启 Squid 服务以应用更改: ```bash service squid restart ``` 为了实现透明代理,还需要使用 iptables 设置规则,将内网流量重定向到 Squid 代理: ```bash iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128 ``` 这将所有 HTTP 请求(端口 80)重定向到 Squid 监听的 3128 端口。如果需要支持 HTTPS,还需添加对端口 443 的处理: ```bash iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 3128 ``` 最后,保存 iptables 规则,以便在下次启动时自动加载: ```bash service iptables save ``` 通过以上步骤,你可以成功地在单网卡 CentOS 5.5 系统上部署 Squid 3.0 透明代理,有效地管理和控制内网用户的网络访问行为。同时,通过调整配置和 ACL 规则,可以进一步优化网络管理策略,满足特定的网络管理需求。
2019-10-28 上传