RedHat 5.4 Squid配置透明代理服务器

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介:

一、基本配置

Squid代理服务器配置两个网卡

WAN:eth0:10.10.10.200   需要配置网关、DNS,允许上网

LAN:eth1:172.168.1.254  不用配置网关、DNS

Clinet:172.16.1.2/24    需要配置网关、DNS

squid(代理)   端口:3128

  

主机名

服务器IP

客户端IP

RedHat 5.4

proxy

Eth0:10.10.10.200

172.16.1.0

Eth1:172.16.1.254

 

需求:

1. 禁止单IP上网

2. 禁止网段10-50上网

3. 禁止所有网段访问IP:172.16.1.200(MySQL)

4. 禁止访问:www.youku.com网站

5. 禁止访问包含关键字163网址

6. 禁止下载*.mp3$ *.exe$ *.zip$ *.rar$ 类型的文件

7. 禁止网段10-50客户端在周一到周五的09:00-18:00上班时间上网

8. 禁止端口号上网

9. 限制用户并发连接数为:5

 

1、配置IP

WAN配置:

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE="eth0"

BOOTPROTO="static"

IPADDR=10.10.10.200

NETWASK=255.255.255.0

GATEWAY=10.10.10.1

:wq  保存

LAN配置:

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE="eth1"

BOOTPROTO="static"

IPADDR=172.16.1.254

NETWASK=255.255.255.0

:wq  保存

[root@localhost ~]# service network restart

2、配置DNS文件

[root@localhost ~]# vim /etc/resolv.conf

nameserver 202.96.134.133

nameserver 202.96.128.166

:wq  保存

3、配置主机名:proxy

[root@localhost ~]# vim /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=proxy

:wq  保存

[root@localhost ~]# hostname proxy

断开终端,再次连接,这样就需要重新启动系统:ctrl+d

[root@proxy ~]# hostname

proxy

4SELinux关闭

SELinux关闭

永久方法  需要重启服务器

修改/etc/selinux/config文件中设置SELINUX=disabled ,然后重启服务器。

临时方法  设置系统参数

使用命令setenforce 0

5、查看路由表、测试是否能上网

[root@proxy ~]# route -n

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

172.16.1.0      0.0.0.0         255.255.255.0   U     0      0        0 eth1

10.10.10.0      0.0.0.0         255.255.255.0   U     0      0        0 eth0

169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth1

0.0.0.0         10.10.10.1      0.0.0.0         UG    0      0        0 eth0

[root@proxy ~]# ping www.baidu.com

PING www.a.shifen.com (220.181.111.148) 56(84) bytes of data.

64 bytes from 220.181.111.148: icmp_seq=1 ttl=53 time=42.0 ms

64 bytes from 220.181.111.148: icmp_seq=2 ttl=53 time=39.6 ms

二、安装squid

[root@proxy ~]# yum install squid -y

[root@proxy ~]# rpm -ql squid |less    #查看安装路径

/etc/rc.d/init.d/squid

[root@proxy ~]# grep -v "^#" /etc/squid/squid.conf |grep -v "^$"    #查看squid配置文件需要修改重要部分

[root@proxy ~]# ll /var/spool/squid/

total 0

[root@proxy ~]# cp /etc/squid/squid.conf /etc/squid/squid.confbak   #备份

1、编辑squid配置文件

[root@proxy ~]# vim /etc/squid/squid.conf

http_access deny all上面一行插入http_access allow all

637 http_access allow all           #设置允许所有客户端访问

638 http_access deny all

 

2995 #  TAG: visible_hostname       

修改为

2995 visible_hostname 172.16.1.254    #设置squid可见主机名

:wq

[root@proxy ~]# service squid start  #启动

init_cache_dir /var/spool/squid... Starting squid: .       [  OK  ]

[root@proxy ~]# chkconfig squid on   #设置开机启动

[root@proxy ~]# ll /var/spool/squid/

[root@proxy ~]# netstat -anp |grep :3128   #查看squid端口号

tcp      0    0 0.0.0.0:3128       0.0.0.0:*      LISTEN      5967/(squid)

2、客户端配置网关和DNS

3、开启路由转发功能

[root@proxy ~]# vim /etc/sysctl.conf

7 net.ipv4.ip_forward = 0    #0为关闭

修改为

7 net.ipv4.ip_forward = 1    #1为开启路由

:wq  保存

[root@localhost ~]# sysctl  -p     #命令查看

net.ipv4.ip_forward = 1

net.ipv4.conf.default.rp_filter = 1

net.ipv4.conf.default.accept_source_route = 0

kernel.sysrq = 0

kernel.core_uses_pid = 1

net.ipv4.tcp_syncookies = 1

kernel.msgmnb = 65536

kernel.msgmax = 65536

kernel.shmmax = 4294967295

kernel.shmall = 268435456

4、配置Iptables防火墙

[root@proxy ~]# setup                  #进入图形界面,打开防火墙为:Enabled

[root@proxy ~]# service iptables start #开启

[root@proxy ~]# chkconfig iptables on  #开机启动

[root@proxy ~]# iptables -L           #列出规则

[root@proxy ~]# iptables -F           #清空规则

[root@proxy ~]# iptables -t nat -L    #用详细方式列出 nat 表所有链的所有规则

[root@proxy ~]# iptables -t filter -L #用详细方式列出 filter 表所有链的所有规则

编辑iptables配置文件,开启防火墙3128端口(后面配置squid的端口号3128)

[root@proxy ~]# vim /etc/sysconfig/iptables 

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3128 -j ACCEPT

[root@proxy ~]# service iptables restart #重启

开启外网eth0DNSNAT网络地址转换功能

[root@proxy ~]# iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -p udp --dport 53 -o eth0 -j MASQUERADE

[root@proxy ~]# iptables -t nat –Lvn   #用详细方式列出 nat 表所有链的所有规则,只显示IP地址和端口号

设置端口转发功能,把内网eth180端口转发到外网eth03128端口

[root@proxy ~]# iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-ports 3128

[root@proxy ~]# iptables -t nat -Lvn

Chain PREROUTING (policy ACCEPT 104 packets, 12110 bytes)

pkts bytes target  prot opt in  out  source     destination        

 2   96 REDIRECT  tcp  --  eth1  *   0.0.0.0/0  0.0.0.0/0   tcp dpt:80 redir ports 3128

Chain POSTROUTING (policy ACCEPT 10 packets, 752 bytes)

 pkts bytes target     prot opt in   out     source          destination        

   5  307 MASQUERADE udp --  *  eth0    172.16.1.0/24    0.0.0.0/0       udp dpt:53

Chain OUTPUT (policy ACCEPT 1 packets, 284 bytes)

 pkts bytes target     prot opt in     out     source               destination 

[root@proxy ~]# service iptables save    #保存规则

Saving firewall rules to /etc/sysconfig/iptables:          [  OK  ] 

5、客户端IE浏览访问:http://www.baidu.com

6、编辑squid配置文件

[root@proxy ~]# vim /etc/squid/squid.conf

924 http_port 3128

修改为

924 http_port 3128 transparent     #监听3128端口接收到的http请求

1576 # cache_mem 8 MB

修改为

1576 cache_mem 256 MB    #高速缓存

1783 # cache_dir ufs /var/spool/squid 100 16 256   

修改为

1783 cache_dir ufs /var/spool/squid 10240 16 256     #设置硬盘缓存大小为10G,目录为/var/spool/squid,一级子目录16个,二级子目录256

1945 access_log /var/log/squid/access.log squid      #设置访问日志

1961 cache_log /var/log/squid/cache.log            #设置缓存日志

1971 cache_store_log /var/log/squid/store.log       #设置网页缓存日志

2941 # cache_mgr root

修改为

2941 cache_mgr yanghw85@163.com              #设置管理员邮箱地址

:wq  保存

[root@proxy ~]# service squid restart   

Stopping squid:                                          [  OK  ]

Starting squid: .                                        [  OK  ]

7、测试正常上网:

8、查看日志:

[root@proxy ~]# tail -f /var/log/squid/access.log

9、手动添加访问控制策略(注意:策略要合理的配置应用,避免冲突)

[root@proxy ~]# vim /etc/squid/squid.conf

配置策略在590行开始

在下面添加以下策略内容:

#####################禁止单IP上网###############################

acl badip src 172.16.1.2/32

http_access deny badip

#####################禁止网段10-50上网##########################

acl badip src 172.16.1.10-172.16.1.50/32

http_access deny badip

#####################禁止所有网段访问IP:172.16.1.200(MySQL)#######

acl MySQL dst 172.16.2.100

http_access deny MySQL

#####################禁止访问:www.youku.com网站################

acl web dstdomain -i www.baidu.com

http_access deny web

#####################禁止访问包含关键字163网址##################

acl web163 url_regex -i 163

http_access deny web163

###########禁止下载*.mp3$ *.exe$ *.zip$ *.rar$ *.doc$类型的文件########

acl webxiazai urlpath_regex -i \.mp3$ \.exe$ \.zip$ \.rar$ \.doc$

http_access deny webxiazai

#####禁止网段10-50客户端在周一到周五的09:00-18:00上班时间上网######

acl badip src 172.16.1.10-172.16.1.50/32

acl worktime time MTWHF 09:00-18:00

http_access deny badip worktime

########################限制443端口上网 ############################

acl http port 443

http_access deny http

########################限制用户并发连接数为:5 ######################

acl client15 src 172.16.1.15

acl conn5 maxconn 5

http_access deny client15 conn5

:wq 

[root@proxy ~]# service squid restart      #重启

Stopping squid:                            [  OK  ]

Starting squid: .                          [  OK  ]

配置完成!现在内部网段172.16.1.0/24内客户机可以通过代理服务器172.16.1.254访问外网。





本文转自 yhw85 51CTO博客,原文链接:http://blog.51cto.com/yanghuawu/1112751,如需转载请自行联系原作者

相关文章
|
2月前
|
负载均衡 监控 应用服务中间件
配置Nginx反向代理时如何指定后端服务器的权重?
配置Nginx反向代理时如何指定后端服务器的权重?
142 61
|
12天前
|
存储 弹性计算 安全
阿里云服务器配置选择策略参考及后期使用注意事项
对于初次购买阿里云服务器的一些新手用户来说,在云服务器配置选择和后期使用过程中有一些不清楚的地方,小编分享几点阿里云服务器配置选择策略,以及后期使用注意事项,购买过程中注意好下面这些事项,能让我们选对选好阿里云服务器,购买之后,在使用过程中,注意下面这些事项,能够让我们更好、更安全的使用阿里云服务器。下面是小编分享的一份详尽的阿里云服务器配置与使用指南,以供参考和借鉴。
|
2月前
|
安全 Linux 应用服务中间件
从零开始启动、配置、保护你的云服务器并搭建一个简单的网站
本文详细介绍了如何准备原料、搭建基础环境、进行安全防护、建设网站、管理证书以及开启BBR优化网络性能。主要内容包括获取健康云服务器、配置SSH登录、创建非root用户、启用密钥认证、安装Nginx、申请TLS证书、配置HTTPS自动跳转及优化网络性能等步骤。通过本文,读者可以掌握从零开始搭建个人网站的全过程。
49 1
从零开始启动、配置、保护你的云服务器并搭建一个简单的网站
|
1月前
|
开发框架 .NET PHP
网站应用项目如何选择阿里云服务器实例规格+内存+CPU+带宽+操作系统等配置
对于使用阿里云服务器的搭建网站的用户来说,面对众多可选的实例规格和配置选项,我们应该如何做出最佳选择,以最大化业务效益并控制成本,成为大家比较关注的问题,如果实例、内存、CPU、带宽等配置选择不合适,可能会影响到自己业务在云服务器上的计算性能及后期运营状况,本文将详细解析企业在搭建网站应用项目时选购阿里云服务器应考虑的一些因素,以供参考。
|
2月前
|
存储 人工智能 弹性计算
阿里云弹性计算(ECS)提供强大的AI工作负载平台,支持灵活的资源配置与高性能计算,适用于AI训练与推理
阿里云弹性计算(ECS)提供强大的AI工作负载平台,支持灵活的资源配置与高性能计算,适用于AI训练与推理。通过合理优化资源分配、利用自动伸缩及高效数据管理,ECS能显著提升AI系统的性能与效率,降低运营成本,助力科研与企业用户在AI领域取得突破。
62 6
|
4天前
|
机器学习/深度学习 人工智能 PyTorch
阿里云GPU云服务器怎么样?产品优势、应用场景介绍与最新活动价格参考
阿里云GPU云服务器怎么样?阿里云GPU结合了GPU计算力与CPU计算力,主要应用于于深度学习、科学计算、图形可视化、视频处理多种应用场景,本文为您详细介绍阿里云GPU云服务器产品优势、应用场景以及最新活动价格。
阿里云GPU云服务器怎么样?产品优势、应用场景介绍与最新活动价格参考
|
3天前
|
存储 运维 安全
阿里云弹性裸金属服务器是什么?产品规格及适用场景介绍
阿里云服务器ECS包括众多产品,其中弹性裸金属服务器(ECS Bare Metal Server)是一种可弹性伸缩的高性能计算服务,计算性能与传统物理机无差别,具有安全物理隔离的特点。分钟级的交付周期将提供给您实时的业务响应能力,助力您的核心业务飞速成长。本文为大家详细介绍弹性裸金属服务器的特点、优势以及与云服务器的对比等内容。
|
11天前
|
人工智能 JSON Linux
利用阿里云GPU加速服务器实现pdf转换为markdown格式
随着AI模型的发展,GPU需求日益增长,尤其是个人学习和研究。直接购置硬件成本高且更新快,建议选择阿里云等提供的GPU加速型服务器。
利用阿里云GPU加速服务器实现pdf转换为markdown格式
|
1天前
|
弹性计算 安全 搜索推荐
阿里云国际站注册教程:阿里云服务器安全设置
阿里云国际站注册教程:阿里云服务器安全设置 在云计算领域,阿里云是一个备受推崇的品牌,因其强大的技术支持和优质的服务而受到众多用户的青睐。本文将为您介绍阿里云国际站的注册过程,并重点讲解如何进行阿里云服务器的安全设置。
|
1天前
|
人工智能 监控 测试技术
阿里云磐久服务器稳定性实践之路
阿里云服务器质量智能管理体系聚焦自研服务器硬件层面的极致优化,应对高并发交付、短稳定性周期、早问题发现和快修复四大挑战。通过“三个重构”(质量标准、开发流程、交付模式)、“六个归一”(架构、硬件、软件、测试、部件、制造)策略,实现芯片、整机和云同步发布,确保快速稳定上量。此外,全场景测试体系与智能预警、分析、修复系统协同工作,保障服务器在萌芽阶段发现问题并及时解决,提升整体质量水平。未来,阿里云将继续深化大数据驱动的质量管理,推动服务器行业硬件质量的持续进步。

推荐镜像

更多