61阅读

系统代理服务器设置-Linux系统下配置squid代理服务器的过程详解

发布时间:2017-08-04 所属栏目:Windows系列

一 : Linux系统下配置squid代理服务器的过程详解

简单记录一下Squid透明代理服务器的配置

环境:VirtualBox + CentOS 6.0 + squid-3.1.4-1.el6.i686

0、检查squid是否默认安装,没有安装的先安装


[root@Slyar ~]# rpm -qa squid
squid-3.1.4-1.el6.i686

1、虚拟机添加双网卡,全部设置桥接,配置IP,eth0作为外网,eth1作为内网,注意配置文件里的网卡MAC地址要和设备匹配!
2015123112804623.png (500×238)

2015123113146760.png (498×237)



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


DEVICE="eth0"
ONBOOT=yes
TYPE=Ethernet
HWADDR=08:00:27:BC:6A:0D
IPADDR=172.17.1.221
PREFIX=24
GATEWAY=172.17.1.254
DNS1=172.16.5.133
NAME="System eth0"


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


DEVICE="eth1"
ONBOOT=yes
TYPE=Ethernet
HWADDR=08:00:27:20:52:B2
IPADDR=192.168.1.254
PREFIX=24
NAME="System eth1"


[root@Slyar ~]# /etc/init.d/network restart #重新启动网卡

配置之后无法上网的,注意用route命令看一下默认路由。建议eth1就不要设置网关了,省的麻烦,当然如果你愿意配置默认路由也没所谓。

2、配置squid及透明模式


[root@Slyar ~]# cp /etc/squid/squid.conf /etc/squid/squid.conf.bak
[root@Slyar ~]# vim /etc/squid/squid.conf


为了省事,我直接把下面这行改成 http_access allow all,读者可以自行修改允许范围。


# And finally deny all other access to this proxy
http_access deny all


切记一定要在配置文件最下方增加下面这条语句,否则squid无法启动!


visible_hostname localhost


如果你要使用透明模式,在端口后面增加关键字"transparent"。
不使用透明模式的话,这行不用改,进行第3步之后可以直接跳到第7步测试了。


# Squid normally listens to port 3128
http_port 3128 transparent

3、启动squid


[root@Slyar ~]# service squid restart

4、为透明代理配置iptables,设置转发

为了省事,直接创建一个shell脚本,开启网卡间流量交换,开启NAT,设置DNS转发,设置80端口流量全部转发到3128端口交给squid处理。


[root@Slyar ~]# vim squid.sh #创建脚本文件




#!/bin/bash
echo "1" > /proc/sys/net/ipv4/ip_forward
modprobe iptable_nat
/sbin/iptables -t nat -A POSTROUTING -j MASQUERADE
iptables -t nat -A PREROUTING -p udp --dport 53 -j DNAT --to 172.16.5.133
iptables -t nat -A PREROUTING -i eth1 -p tcp -s 192.168.1.0/24 --dport 80 -j REDIRECT --to-ports 3128</p> <p>[root@Slyar ~]# chmod o+x squid.sh #给脚本执行权限
[root@Slyar ~]# ./squid.sh #启动脚本

5、将iptables指定保存到配置文件


[root@Slyar ~]# service iptables save

6、重新启动iptables


[root@Slyar ~]# service iptables restart

7、测试squid透明代理

客户端设置IP地址:192.168.1.x/24

网关:192.168.1.254

DNS服务器:192.168.1.254

8、打开IE,不用设置代理(因为是透明代理),输入www.61k.com如果能打开就成功。

9、补充非透明代理测试方法:打开IE - 工具 - Internet选项 - 连接 - 局域网设置 - 代理服务器,设置服务器IP为192.168.1.254,端口3128,确定。

二 : Win7系统代理服务器怎么设置?Win7代理服务器设置教程

  Win7系统代理服务器怎么设置?相信有很多电脑用户并不了解代理服务器,代理服务器是一种特殊的网络服务,它可以代理网络用户去取得网络信息,可以提高浏览速度和效率,还可以突破自身IP访问限制,访问国外站点等。那么,Win7系统下要如何设置代理服务器呢?本文就给大家带来Win7代理服务器设置教程,一起来看看吧。

  步骤

  1.依次点击“开始”→“控制面板”→“网络和 Internet”,点击“Internet 选项”。

  2.在“Internet 选项”对话框下,点击“连接”选项卡,然后点击“局域网设置”按钮。

  3.在弹出的“局域网(LAN)设置”对话框下,选中“为 LAN 使用代理服务器”的复选框。然后点击“高级”按钮。

  4.在弹出的“代理服务器设置”对话框下,设置不同类型的代理服务器(如 HTTP、HTTPS 或 FTP)。然后输入“要使用的代理服务器地址”,点击“确定”按钮即可。

  通过以上步骤操作后,代理服务器也就设置好了。以上就是小编带来的Win7系统设置代理服务器的方法,希望可以帮助到大家,更多内容请关注61阅读网站!

三 : Linux系统中Squid代理服务器配置全过程解析

什么是squid?

Squid是一个缓存internet数据的一个软件,它接收用户的下载申请,并自动处理所下载的数据。也就是说,当一个用户象要下载一个主页时,它向Squid发出一个申请,要Squid替它下载,然后Squid连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面时,Squid把保存的备份立即传给用户,使用户觉得速度相当快。目前,Squid 可以代理HTTP, FTP, GOPHER, SSL 和 WAIS 协议.

使用squid的好处:快速响应,减少网络阻塞,增强访问控制,提高安全性.可以针对特定的网站,用户,网络,数据类型实施访问控制.

squid有3种代理方式:普通代理模式,透明代理模式,反向代理模式

1.普通代理模式

   一个标准的代理缓冲服务被用于缓存静态的网页(例如:html文件和图片文件等)到本地网络上的一台主机上(即代理服务器)。当被缓存的页面被第二次访问的时候,浏览器将直接从本地代理服务器那里获取请求数据而不再向原web站点请求数据。这样就节省了宝贵的网络带宽,而且提高了访问速度。但是,要想实现这种方式,必须在每一个内部主机的浏览器上明确指明代理服务器的IP地址和端口号。客户端上网时,每次都把请求送给代理服务器处理,代理服务器根据请求确定是否连接到远程web服务器获取数据。如果在本地缓冲区有目标文件,则直接将文件传给用户即可。如果没有的话则先取回文件,先在本地保存一份缓冲,然后将文件发给客户端浏览器。


2.透明代理模式

   透明代理缓冲服务和标准代理服务器的功能完全相同。但是,代理操作对客户端的浏览器是透明的(即不需指明代理服务器的IP和端口)。透明代理服务器阻断网络通信,并且过滤出访问外部的HTTP(80端口)流量。如果客户端的请求在本地有缓冲则将缓冲的数据直接发给用户,如果在本地没有缓冲则向远程web服务器发出请求,其余操作和标准的代理服务器完全相同。对于Linux操作系统来说,透明代理使用Iptables或者Ipchains实现。因为不需要对浏览器作任何设置,所以,透明代理对于ISP(Internet服务器提供商)特别有用。

3.反向代理模式

    反向代理是和前两种代理完全不同的一种代理服务。使用它可以降低原始WEB服务器的负载,又称HTTP加速器。反向代理服务器承担了对原始WEB服务器的静态页面的请求,它是一种通过在繁忙的WEB服务器和Internet之间增加一个高速的WEB缓冲服务器(即:WEB反向代理服务器)来降低实际的WEB服务器的负载.Web服务器加速(反向代理)是针对Web服务器提供加速功能的。它作为代理Cache,但并不针对浏览器用户,而针对一台或多台特定Web服务器。只要将Reverse Proxy Cache设备放置在一台或多台Web服务器前端即可。当互联网用户访问某个WEB服务器时,通过DNS服务器解析后的IP地址是Reverse Proxy Server的IP地址,而非原始Web服务器的IP地址,这时Reverse Proxy Server设备充当Web服务器,浏览器可以与它连接,无需再直接与Web服务器相连。因此,大量Web服务工作量被卸载到反向代理服务上。不但能够防止外部网主机直接和web服务器直接通信带来的安全隐患,而且能够很大程度上减轻web服务器的负担,提高访问速度。


以下是squid反向代理实验

有2台服务器,1台HTTP Server 10.1.1.200,端口80,有2个虚拟机主机www.testone.com www.testtwo.com提供服务

另一台Squid Server为反向代理服务器,10.1.6.200

客户机ip:10.1.6.173

测试: 客户机访问通过Squid Server 访问HTTP Server. 这里需要在客户机上修改/etc/hosts,添加二行10.1.6.200 www.testone.com
10.1.6.200 www.testtwo.com(为了让客户机能够解析这2个域名对应ip为10.1.6.200 squid反向代理服务器的ip,监听端口默认是3128)

Squid Server 修改/etc/hosts,添加二行10.1.1.200 www.testone.com
10.1.1.200 www.testtwo.com


安装squid


root@10.1.6.200:~# apt-get install squid


配置squid


root@10.1.6.200:~# vim /etc/squid/squid.conf
http_port 3128 #http_port告诉squid在哪个端口监听http请求,默认3128
http_port 10.1.6.200:80 vhost #这里vhost支持虚拟主机
cache_dir aufs /opt/squid/cache 200 16 256 #缓存目录的设置,语法:<目录> <MB大小> <dir1> <dir2>




#定义acl(访问控制列表),语法为:acl <acl 名称> <acl类型> <配置的内容>
acl all src all
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8
acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network




acl Safe_ports port 80
acl purge method PURGE
acl CONNECT method CONNECT
acl manager proto cache_object




#利用前面定义的acl,定义访问控制规则
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access allow all




cache_mem 200 MB #如果物理内存很大,尽量设置大些
maximum_object_size 20 MB #最大缓存块
maximum_object_size_in_memory 5 MB #与内存保存资料有关的配置




#虚拟机主机代理配置,如从客户端访问www.testone.com,则Squid向www.testone.com的80端口发送请求.
cache_peer www.testone.com parent 80 0 no-query originserver name=one
cache_peer www.testtwo.com parent 80 0 no-query originserver name=two
cache_peer_domain one www.testone.com
cache_peer_domain two www.testtwo.com




#设置squid用户及用户组
cache_effective_user proxy
cache_effective_group proxy




#下面是关于日志文件
access_log /var/log/squid/access.log squid
cache_log /var/log/squid/cache.log
cache_store_log none




mime_table /usr/share/squid/mime.conf
pid_filename /var/log/squid/squid.pid


 


coredump_dir /var/spool/squid


设置缓存目录权限为proxy,否则启动会提示没有权限


root@10.1.6.200:opt# chown -R proxy:proxy squid/
root@10.1.6.200:opt# ll
total 8
drwxr-xr-x 3 proxy proxy 4096 2013-02-21 22:42 squid


在开启squid服务之前,先检查配置文件是否正确:(假如看不输出,配置文件有效)

root@10.1.6.200:opt# squid -k parse

初始化cache目录,即建立缓存目录的存储格式(在初次运行squid之前,或者增加了新的cache_dir,必须初始化cache目录),cache目录初始化可能花费一些时间,依赖cache目录的大小和数量,要观察详细过程可以加-X选项.


root@10.1.6.200:squid# squid -z
2013/02/22 20:31:10| Creating Swap Directories


启动squid服务


root@10.1.6.200:squid# /etc/init.d/squid start
Starting Squid HTTP proxy: squid.
root@10.1.6.200:squid# netstat -tunlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:39360 0.0.0.0:* LISTEN 1383/rpc.statd
tcp 0 0 127.0.0.1:833 0.0.0.0:* LISTEN 1929/famd
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1372/portmap
tcp 0 0 10.1.6.200:80 0.0.0.0:* LISTEN 2491/(squid)
tcp 0 0 0.0.0.0:22000 0.0.0.0:* LISTEN 1623/sshd
tcp 0 0 0.0.0.0:3128 0.0.0.0:* LISTEN 2491/(squid)
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1890/exim4
udp 0 0 0.0.0.0:58152 0.0.0.0:* 2491/(squid)
udp 0 0 0.0.0.0:3130 0.0.0.0:* 2491/(squid)
udp 0 0 0.0.0.0:711 0.0.0.0:* 1383/rpc.statd
udp 0 0 0.0.0.0:111 0.0.0.0:* 1372/portmap
udp 0 0 0.0.0.0:59518 0.0.0.0:* 1383/rpc.statd


这里不详细讲解HTTP Server 10.1.1.200配置虚拟主机过程,已分别配置好www.testone.com,www.testtwo.com虚拟主机
2016130120749868.jpg (380×139)

2016130120815357.jpg (297×146)

查看HTTP Server日志,会发现是Squid Server ip 请求数据.


root@10.1.1.200:apache2# tail -f www.testone.com_access.log
10.1.6.200 - - [22/Feb/2013:20:47:17 +0800] "GET / HTTP/1.0" 304 - "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; QQDownload 734; .NET4.0C; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)"




root@10.1.1.200:apache2# tail -f www.testtwo.com_access.log
10.1.6.200 - - [22/Feb/2013:20:49:07 +0800] "GET / HTTP/1.0" 304 - "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; QQDownload 734; .NET4.0C; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)"


以下是整个访问原理过程:

     1.当客户端在浏览器输入:www.testone.com 通过本地/etc/hosts解析,域名www.testone.com对应的ip是10.1.6.200(Squid反向代理服务器),于是客户端向Squid反向代理服务器默认3128端口发送请求,注意:在客户端输入www.testone.com和http://10.1.6.200是不一样的,如果是通过ip请求,则不能实现让Squid服务器对内部网络多个服务器代理,需要使用域名方式.在 配置 Squid 时,有两个选项,cache_peer 和 cache_peer_domain,这两个配置项让 Squid 有能力知道www.testone.com这个请求最终是想访问HTTP服务器10.1.1.200的80端口,从而实现了 Squid 对内部多个服务器作代理的功能需求。

     2.Squid服务器收到客户端发来的请求,一看是www.testone.com,从配置它知道请求HTTP服务器10.1.1.200的80端口.

     3.HTTP服务器提供服务监听80端口,收到Squid发送来的请求,于是根据请求发送相应数据给Squid服务器.

     4.Squid收到HTTP服务器从80端口发送过来的数据后,会将该数据在本地缓存,同时将数据从自己的3128发送给客户端10.1.6.173.

四 : SSH密钥登录Linux系统服务器的设置方法

在通过SSH访问服务器时,使用SSH密钥进行认证是尤其重要的。这样做为服务器增加了额外的保护,确保只有那些拥有密钥的人才能访问服务器。

在本地机器上运行下面命令以生成SSH密钥:

   

ssh-keygen -t rsa

 

你会看到下面的输出,询问要将密钥写到哪一个文件里,并且设置一个密码:

   

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): my_key
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in my_key.
Your public key has been saved in my_key.pub.
The key fingerprint is:
SHA256:MqD/pzzTRsCjZb6mpfjyrr5v1pJLBcgprR5tjNoI20A

 

完成之后,就得到两个文件:


my_key</p> <p>my_key.pub

 

接下来把my_key.pub拷贝到~/.ssh/authorized_key中

   

cp my_key.pub ~/.ssh/authorized_keys

 

然后使用下面命令将密钥上传到服务器:

   

scp -P16543 authorized_keys user@yourserver-ip:/home/user/.ssh/

 

至此,你就可以从这台本地机器上无密码地访问服务器了。

关闭SSH的密码认证

既然已经有了SSH密钥,那么关闭SSH的密码认证就会更安全了。再次打开并编辑sshd_config,按如下设置:

   

ChallengeResponseAuthentication no
PasswordAuthentication no
UsePAM no

 

本文标题:系统代理服务器设置-Linux系统下配置squid代理服务器的过程详解
本文地址: http://www.61k.com/1063416.html

61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1