squid3 配置配置完成后检查配置警告掩码不正确怎么回事

萌飞の家版权所有,转载请注明:
在伟大的某国,某些网络会被受限,有一堵特别长的墙阻碍着你.作为一名开发工程师或者谷歌系语言工具开发者, 上个技术论坛或者某语言官网,只要访问谷歌API全部KO!好吧,我们来搭一个VPN或者一个代理服务器吧!
你只要有一台境外或者能不受某国域名污染的机器,如亚马逊云.
你可以通过VPN翻墙,也可以在在浏览器等客户端中设置翻墙(http或sock5)!
以下操作系统均是CentOS7!假设我们的机器IP是45.45.45.45
然后我假设你知道如何在本地的Window操作系统使用VPN等!
二.方式一: SSH高级功能
ssh -ND 1082 ubuntu@45.45.45.45
在本地开一个1082端口,做动态转发,暴露为socks5协议。程序需要明确生命使用该代理。比如 proxychains4 和 google ext SwitchyOmega
这时可以使用sock5 127.0.0.1 1082代理, 所有经过此代理的TCP请求会经远程主机45.45.45.45转发…
你还可以双重转发, 比如你可以经主机1去翻墙,但是主机1翻墙速度慢, 你可以让主机1通过主机2接力翻墙:
viaproxy 'socks5 127.0.0.1 1082' ssh -ND 1081 ubuntu@2.2.2.2
我们本地1082是代理, 经45.45.45.45转发, 现在我们45.45.45.45继续转发给2.2.2.2
viaproxy参考:
#!/bin/bash
# Usage: viaproxy "socks5 127.0.0.1 1080" telnet some-host
command -v proxychains4 && proxychains=proxychains4 || proxychains=proxychains
proxy="$1"
$proxychains -f &(/bin/echo -e "strict_chain\nproxy_dns\nlocalnet 127.0.0.0/255.0.0.0\n[ProxyList]\n$proxy") "$@"
/wonderbeyond/6ef3cdca6b12162deab4fd7
本地是host1:
情形一: host1和host3互通,host3和host2互通, host1和host2不通, 需要host3做接力让host1访问host2
# 本地端口转发
ssh -NL 5556:host2:5555 ubuntu@host3 # 本地端口转发, 开一个5556端口,以目标服务器身份访问指定IP的指定端口。所有经过本地5556的数据都会由host3转到host2的555端口
ssh -NL 9901:host2:22 ubuntu@host3
ssh -p 9901 localhost
# host1只要登录本地9901就可以通过host3登录host2
情形二: host3能访问host1, 但host1不能访问host3, host3和host2互通, host1和host2不通, 需要host3做接力让host1访问host2,此时本地端口转发失效
# 远程端口转发
# 在host3起命令, 登录host1, 让host1监听2121端口
ssh -R 2121:host2:21 host1
# 在host1经2121传数据, 会被host3收到并送到host2
ftp localhost:2121
三.方式二: 远程机器,安装VPN服务器
虚拟专用网络的功能是:在公用网络上建立专用网络,进行加密通讯。在企业网络中有广泛应用。VPN网关通过对数据包的加密和数据包目标地址的转换实现远程访问。VPN有多种分类方式,主要是按协议进行分类。VPN可通过服务器、硬件、软件等多种方式实现。
1.安装PPTP,以用来提供VPN服务.
yum install pptpd.x86_64 # 按tab补全
vim /etc/pptpd.conf
localip 192.168.0.1
remoteip 192.168.0.12-238,192.168.0.245
localip是主机VPN内网地址,remoteip是连接VPN分配的内网地址,也就是说VPN这个网络里实际上形成一个局域网,
每个连接到这个网络的远程机器都有一个局域网IP!这个上面12-238有226台机器,所以同时可以有两百多个客户连接到这个VPN.
3.分配账号给自己使用.
vim /etc/ppp/chap-secrets
在里面添加账户按如下格式
hunterhug1
hunterhug为你的用户名,123456为你的密码,最后的*号表示允许在任意IP连接到服务
然后我们重启这个东东!
service pptpd restart
重启服务后如果发现还访问不了外网。我们需要让他能访问外网。首先,
vim /etc/ppp/pptpd-options
文件名可能为
vim /etc/ppp/options.pptpd
找到ms-dns,取消掉注释,改成你喜欢的DNS比如8.8.8.8,8.8.4.4
再开启内核IP转发
sudo vi /etc/sysctl.conf
# 取消掉 net.ipv4.ip_forward=1 这一行的注释. 可能找不到这一句
sudo sysctl -p
使修改后的文件配置立即生效。
开启NAT转发.
NAT(Network Address Translation,网络地址转换)是1994年提出的。当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但现在又想和因特网上的主机通信(并不需要加密)时,可使用NAT方法。
这种方法需要在专用网连接到因特网的路由器上安装NAT软件。装有NAT软件的路由器叫做NAT路由器,它至少有一个有效的外部全球IP地址。这样,所有使用本地地址的主机在和外界通信时,都要在NAT路由器上将其本地地址转换成全球IP地址,才能和因特网连接。
另外,这种通过使用少量的公有IP 地址代表较多的私有IP 地址的方式,将有助于减缓可用的IP地址空间的枯竭。在RFC 1632中有对NAT的说明
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eno -j MASQUERADE
service iptables save
service iptables restart
192.168.0.0/24是你在上面设置的IP段,让这个段转发,注意eno是你连接外网的那块网卡,这样就以NAT的方式请求外网的东西了。
不知道你的机器哪块网卡连的外网的话ifconfig一下!!
service pptpd restart
如果还是无法使用VPN,防火墙上,全部接受,完美!!
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P INPUT ACCEPT
service iptables save
service iptables restart
没有iptables?那先装一个!
#先检查是否安装了iptables
service iptables status
#安装iptables
yum install -y iptables
#升级iptables
yum update iptables
#安装iptables-services
yum install iptables-services
#停止firewalld服务
systemctl stop firewalld
#禁用firewalld服务
systemctl mask firewalld
#查看iptables现有规则
iptables -L -n
#先允许所有,不然有可能会杯具
iptables -P INPUT ACCEPT
#清空所有默认规则
iptables -F
#清空所有自定义规则
iptables -X
#所有计数器归0
iptables -Z
#允许来自于lo接口的数据包(本地访问)
iptables -A INPUT -i lo -j ACCEPT
#开放22端口
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
#开放21端口(FTP)
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
#开放80端口(HTTP)
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
#开放5902端口(VCN)
iptables -A INPUT -p tcp --dport 5902 -j ACCEPT
#开放5901端口(VNC root)
iptables -A INPUT -p tcp --dport 5901 -j ACCEPT
#开放443端口(HTTPS)
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
#开放3306端口(MYSQL)
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
#允许接受本机请求之后的返回数据 RELATED,是为FTP设置的
iptables -A INPUT -m state --state
RELATED,ESTABLISHED -j ACCEPT
#其他入站一律丢弃
iptables -P INPUT DROP
#所有出站一律绿灯
iptables -P OUTPUT ACCEPT
#所有转发一律丢弃
iptables -P FORWARD DROP
#保存上述规则
service iptables save
#注册iptables服务
#相当于以前的chkconfig iptables on
systemctl enable iptables.service
systemctl start iptables.service
systemctl status iptables.service
systemctl restart iptables.service
查看/etc/sysconfig/iptables,结果是这样的
[root@spider2 ~]# cat /etc/sysconfig/iptables
# Generated by iptables-save v1.4.21 on Fri Nov
4 10:01:51 2016
:INPUT ACCEPT [4:192]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [49:7158]
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 5902 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 5901 -j ACCEPT
# Completed on Fri Nov
4 10:01:51 2016
# Generated by iptables-save v1.4.21 on Fri Nov
4 10:01:51 2016
:PREROUTING ACCEPT [50:2445]
:INPUT ACCEPT [16:835]
:OUTPUT ACCEPT [24:1821]
:POSTROUTING ACCEPT [24:1821]
-A POSTROUTING -s 192.168.0.0/24 -o eno -j MASQUERADE
# Completed on Fri Nov
4 10:01:51 2016
到这里一般都可以了
四.方式三:安装HTTP代理服务器
1.安装squid
yum -y install squid
Squid Cache: Version 3.3.8
chkconfig --level 35 squid on
安装密码,hunterhug是你的用户名,根据提示输入密码,我输入了:12345
yum install httpd-tools
-c /etc/squid/passwd hunterhug
# 一定要设置!!
chmod 777 /etc/squid/passwd
编辑,看后面完整
vim /etc/squid/squid.conf
# squid.conf后加上,请看最下面完整配置
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd
auth_param basic realm proxy
acl authenticated proxy_auth REQUIRED
http_access allow authenticated
完整配置:
# Recommended minimum configuration:
# Example rule allowing access from your local networks.
# Adapt to list your (internal) IP networks from where browsing
# should be allowed
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 localnet src fc00::/7
# RFC 4193 local private network range
acl localnet src fe80::/10
# RFC 4291 link-local (directly plugged) machines
acl SSL_ports port 443
acl Safe_ports port 80
acl Safe_ports port 21
acl Safe_ports port 443
acl Safe_ports port 70
acl Safe_ports port 210
acl Safe_ports port
# unregistered ports
acl Safe_ports port 280
# http-mgmt
acl Safe_ports port 488
# gss-http
acl Safe_ports port 591
# filemaker
acl Safe_ports port 777
# multiling http
acl CONNECT method CONNECT
# Recommended minimum Access Permission configuration:
# Deny requests to certain unsafe ports
http_access deny !Safe_ports
# Deny CONNECT to other than secure SSL ports
http_access deny CONNECT !SSL_ports
# Only allow cachemgr access from localhost
http_access allow localhost manager
http_access deny manager
# We strongly recommend the following be uncommented to protect innocent
# web applications running on the proxy server who think the only
# one who can access services on "localhost" is a local user
#http_access deny to_localhost
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
# Example rule allowing access from your local networks.
# Adapt localnet in the ACL section to list your (internal) IP networks
# from where browsing should be allowed
#http_access allow localnet
#http_access allow localhost
# Uncomment and adjust the following to add a disk cache directory.
# squid是一个缓存服务器,我们不要它的缓存功能
cache_dir ufs /var/spool/squid 100 16 256 no-store
cache deny all
# Leave coredumps in the first cache dir
coredump_dir /var/spool/squid
# Add any of your own refresh_pattern entries above these.
refresh_pattern ^ftp:
refresh_pattern ^gopher: 40
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern .
0 20% 4320
# 这里是授权区,需要用户名和密码
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd
auth_param basic realm proxy
acl authenticated proxy_auth REQUIRED
http_access allow authenticated
# Squid normally listens to port 3128
# 我们开808端口给代理服务器
http_port 808
# And finally deny all other access to this proxy
# 拒绝透明代理!
http_access deny all
#http_access allow all
# 转发的头部隐藏,高匿代理
forwarded_for off
follow_x_forwarded_for deny all
request_header_access X-Forwarded-For deny all
#header_access X_Forwarded_For deny all
# 某些情况出错,设置这个!
visible_hostname hunterhug
然后,检查一下,有没有语法错误:
#squid -k parse
#squid -k reconfigure
如果想透明代理,不需要帐号和密码访问,请去掉http_access deny all,加上http_access allow all,
改端口请修改http_port 808
防火墙将这个808端口打开
iptables -A INPUT -p tcp --dport 808 -j ACCEPT
初始化缓存
#初始化缓存
systemctl start squid.service
squid -Nd1
systemctl stop squid.service
systemctl restart squid.service
2.多IP squid设置!
如果你的机器是多个IP的话,那么从不同IP进来的话也应该由不同的IP来代理,这种适合大型爬虫自己架设代理服务器,
我曾经架设过有五个网关,两百多个IP的一台机器,注意,是一台机器有两百多个IP,2333!
由于IP实在太多,我编了一个程序来实现….hahha
# !/usr/bin/python3.4
# -*-coding:utf-8-*-
生成IP给Squid配置文件用
# acl ip1 localip 192.168.1.2
# acl ip2 localip 192.168.1.3
# acl ip3 localip 192.168.1.4
# tcp_outgoing_address 192.168.1.2 ip1
# tcp_outgoing_address 192.168.1.3 ip2
# tcp_outgoing_address 192.168.1.4 ip3
if __name__ == "__main__":
while True:
ips = input("如:146.148.149.202-254:")
temp = ips.split("-")
ipend = int(temp[1])
temptemp = temp[0].split(".")
ipprefix = ".".join(temptemp[0:3])
ipbegin = int(temptemp[3])
for i in range(ipbegin, ipend + 1):
dudu.append(ipprefix + "." + str(i))
ii = ii + 1
except Exception as e:
for i in dudu:
# acl ip3 localip 192.168.1.4
# tcp_outgoing_address 192.168.1.2 ip1
print("acl ip" + i + " localip " + i)
print("tcp_outgoing_address " + i + " " + "ip" + i)
将以下追加到配置中,然后重启即可:systemctl restart squid.service
acl ip1 localip 192.168.1.2
acl ip2 localip 192.168.1.3
acl ip3 localip 192.168.1.4
tcp_outgoing_address 192.168.1.2 ip1
tcp_outgoing_address 192.168.1.3 ip2
tcp_outgoing_address 192.168.1.4 ip3
五.赠送:多网关和多IP机器配置
有很多方法,我只写一种!参考:/tool/centos7.html
目前一台机器有两个IP网段(IP群),分别对应两个网关,且只有一块网卡,网卡名为eno
IP群:146.148.149.202-254 网关:146.148.149.193
IP群:146.148.150.194-254 网关:146.148.150.193
1.多网关绑定
我们要将一个网关和一个网段绑定,这样网段中的IP出去的时候才会从指定的网关出去
在/etc/sysconfig/static-routes:写入路由信息,如果没有这个文件自己创建 (尝试过十分好用)!(推荐!!!!!!)
any net 146.148.149.0/24 gw 146.148.149.193
any net 146.148.150.0/24 gw 146.148.150.193
any net 0.0.0.0/0 gw 146.148.149.193
# 默认路由写法,这里的子网掩码为0
创建完请这样,ifcfg-Wired_connection_1这个是你自己的网络连接,要自己把握哦
cd /etc/sysconfig/network-scripts
ifdown ifcfg-Wired_connection_2 && ifup ifcfg-Wired_connection_2 && service network restart
[root@centos7 network-scripts]# route -n
Kernel IP routing table
Destination
Flags Metric Ref
146.148.149.193 0.0.0.0
146.148.149.193 0.0.0.0
146.148.149.0
255.255.255.0
146.148.150.0
146.148.150.193 255.255.255.0
146.148.150.0
255.255.255.0
修改好后保存退出,然后重启网络:
service network restart
2.多IP设置
如在/etc/sysconfig/network-scripts/ifcfg-eno手填,网关不要设置
HWADDR=00:50:56:83:7B:B0
TYPE=Ethernet
BOOTPROTO=none
DNS1=8.8.8.8
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
NAME="Wired connection 2"
UUID=94ce50-8d94-6cd594a2759c
ONBOOT=yes
IPADDR1=146.148.149.203
PREFIX1=24
IPADDR2=146.148.149.204
PREFIX2=24
IPADDR3=146.148.149.205
PREFIX3=24
IPADDR4=146.148.150.194
PREFIX4=24
IPADDR=146.148.149.202
写了个程序批量生成:
# !/usr/bin/python3.4
# -*-coding:utf-8-*-
生成IP给Linux配置文件用
# IPADDR=146.148.149.202
# PREFIX=24
# IPADDR1=146.148.149.203
# PREFIX1=24
# IPADDR2=146.148.149.204
# PREFIX2=24
# IPADDR3=146.148.149.205
# PREFIX3=24
# IPADDR4=146.148.150.194
# PREFIX4=24
if __name__ == "__main__":
while True:
ips = input("如:146.148.149.202-254:")
temp = ips.split("-")
ipend = int(temp[1])
temptemp = temp[0].split(".")
ipprefix = ".".join(temptemp[0:3])
ipbegin = int(temptemp[3])
for i in range(ipbegin, ipend + 1):
if ii == 0:
a = "IPADDR="
b = "PREFIX="
a = "IPADDR" + str(ii) + "="
b = "PREFIX" + str(ii) + "="
dudu.append(a + ipprefix + "." + str(i))
dudu.append(b + "24")
ii = ii + 1
except Exception as e:
for i in dudu:
ifdown ifcfg-Wired_connection_1
ifup ifcfg-Wired_connection_1
六.客户端使用
1.proxychains
命令行代理工具用法,任何命令只需在前面加上
proxychains go get -u -/hunterhug/zhihuxx
yum install proxychains # Centos7系统
sudo apt-get install proxychains # Ubuntu系统
配置,我们之前装了代理squid服务器,端口808,帐号hunterhug,密码12345,所以:
在/etc/proxychains.conf 最下面加一行,http
45.45.45.45 808 "hunterhug" "12345"
格式是这样的
# ProxyList format
port [user pass]
(values separated by 'tab' or 'blank')
socks5 192.168.67.78 1080 lamer secret
http 192.168.89.3 8080 justu hidden
socks4 192.168.1.49 1080
http 192.168.39.93 8080
proxy types: http, socks4, socks5
( auth types supported: "basic"-http
"user/pass"-socks )
2. 浏览器代理插件
请下载chrome浏览器, 自己想办法
然后下载本翻墙插件, 打开chrome浏览器, 然后拖曳该文件到浏览器.
打开该插件, 选择导入/导出, 从备份文件恢复, 导入
然后填入代理IP即可.
萌飞の家版权所有,转载请注明:
感谢您的支持,我会继续努力的!
&&&&&&请我喝一杯小小的咖啡吧查看:8746|回复:48
【♂ゞRedKingStyleゞ√】
公司搭建一台代理服务器,需要提高内网访问互联网速度并能够对内部员工的上网行为进行限制,采用squid代理服务器软件,对内部网络进行优化。
提高用户访问速度,需要对squid服务器进行优化并且需要使用acl对访问行为进行相应限制。
1、路由及NAT设置
设置网卡IP地址
eth0:192.168.8.188 netmask:255.255.255.0
vim /etc/sysconfig/network-scripts/ifcfg-eth0
eth1:dhcp获取
vim /etc/sysconfig/network-scripts/ifcfg-eth1
开启内核路由功能
echo 1 & /proc/sys/net/ipv4/ip_forward
配置iptables设定nat,即透明代理
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-ports 3128
如果只设置下面一句而上面一句不设置,客户端也可以上网,只是不通过squid哈~
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
保存iptables设置
service iptables save
2、修改selinux设置
setsebool -P squid_disable_trans on
如果配置squid透明代理,要开启selinux的squid_disable_trans,否则squid不能启动哈~
3、添加squid系统用户和组
[root@rhel5 ~]# groupadd squidadmin
[root@rhel5 ~]# useradd squidadmin -g squidadmin -s /sbin/nologin
4、建立相应目录
[root@rhel5 ~]# mkdir /usr/local/squid
[root@rhel5 ~]# mkdir /usr/local/squid/cache
[root@rhel5 ~]# mkdir /usr/local/squid/var
[root@rhel5 ~]# mkdir /usr/local/squid/var/logs
5、改变目录的所有者
为了保证服务正常启动并可以写入缓存、日志等信息,我们更改目录所有者为squidadmin哈~
[root@rhel5 ~]# chown -R squidadmin /usr/local/squid/cache
[root@rhel5 ~]# chgrp -R squidadmin /usr/local/squid/cache
[root@rhel5 ~]# chown -R squidadmin /usr/local/squid/var/logs
[root@rhel5 ~]# chgrp -R squidadmin /usr/local/squid/var/logs
6、修改squid配置文件
vim /etc/squid/squid.conf
设置监听地址和端口
http_port 3128 transparent
红色部分是支持透明代理,这是squid新版本的改进
好多资料说透明代理设置为
httpd_accel_host virtual
httpd_accel_port 80& &
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
实际上透明代理只是在普通代理的基础上加上了http_port 3128 transparent及IPTABLES的端口转发功能,使用Iptables或者Ipchains实现,即把用户对外部www站点的访问转到Squid的端口上去,相对用用户来讲是“透明”的,不需在浏览器中指明代理服务器的IP和端口。
而对于反向代理来说,从squid2.6开始squid.conf已经没有httpd_accel字段了哈~Squid 2.6与3.0一样哈~相对于2.5的accel模式下配置要简单许多,只要设置不同的后端,cache_peer parent originserver就可以进行反向代理,而不再需要httpd_accel系列参数的配置.配置squid时最好制定内部dns,或者修改/etc/hosts文件,否则squid可能会回环访问其自身而出现问题哈~
udp_incoming_address 0.0.0.0
设置squid内存大小及cahce目录
cache_mem 512 MB
cache_dir ufs /usr/local/squid/cache
设置日志文件和pid文件位置
access_log /usr/local/squid/var/logs/access.log
cache_log /usr/local/squid/var/logs/cache.log
cache_store_log none
emulate_httpd_log on
使Squid按照Web服务器的格式创建访问记录,Web访问记录分析程序,就需要设置这个参数
pid_filename /usr/local/squid/var/logs/squid.pid
配置访问控制
acl all src 0.0.0.0/0.0.0.0
acl mynet src 192.168.8.0/255.255.255.0
http_access allow mynet
http_access deny all
设置运行时的用户和组权限
设置squid进程所有者
cache_effective_user squidadmin
设置squid进程所属组
cache_effective_group squidadmin
设置管理信息
设置squid可见主机名
visible_hostname 192.168.8.188
swap性能微调
half_closed_clients off
cache_swap_low 80
cache_swap_high 100
maximum_object_size 1024 KB
squid配置逻辑是自上而下,满足条件即不再和下面匹配。
7、检查squid.conf配置文件
当更改过配置文件后最好验证一下配置文件:squid -k parse
8、squid服务初始化
在第一次启动squid服务之前,一定要使用squid -z命令来使squid在硬盘缓存中建立cache目录,或者重新设置了cache_dir字段的值之后也要使用此命令来重新建立硬盘缓存目录哈~
如果我们要观察此过程,我们可以加个-X参数哈~
注意:在cache目录激活后永远不要改变L1和L2的值哈~
9、启动squid服务
service squid start
squid -D检查squid服务有没启动
客户端只要设置IP地址、子网掩码、网关及DNS就可以直接上网了哈~
测试http网站
测试https网站
测试邮箱网站
[/url],检测你的代理是否成功哈~~~
tail /usr/local/squid/var/logs/access.log
我们会发现访问的记录都在access.log中哈~~~
cat /usr/local/squid/var/logs/cache.log
此外我们还可以使用acl和http_access deny组合来禁止指定IP、指定网段、屏蔽访问指定网站及指定固定时间上网等等哈~~~
#################Michael分割线#######################
免费分享IT技术资料,就在51CTO下载中心:
想搞点无忧币?
为何灌水半天,依旧两手空空??
助理工程师
沙发先抢,多谢楼主的系列教程呵呵
初级工程师
:(mars_24): 大哥 你给我 赶出 全了饿啊:(mars_24):
助理工程师
谢谢分享 学习 收下了
HOHO 正好要做代理服务器上网 呵呵
助理工程师
呵呵 不错谢谢楼主,一如既往的精神:victory:
Squid服务全攻略之常规配置
Squid服务全攻略之常规配置
Squid服务全攻略之常规配置
Squid服务全攻略之常规配置
Squid服务全攻略之常规配置
Squid服务全攻略之常规配置
Squid服务全攻略之常规配置
Squid服务全攻略之常规配置
VVCCSquid服务全攻略之常规配置
Squid服务全攻略之常规配置
Squid服务全攻略之常规配置
Squid服务全攻略之常规配置
Squid服务全攻略之常规配置
Squid服务全攻略之常规配置
差不多刚好学到这里哈,呵呵
差不多刚好学到这里哈
差不多刚好学到这里哈
aaaaaaaaaaaaaaaaaaaaaaaa
ssssssssssssssssssss
gggggggffffffffffffffffff
哇~~!!!用户名:feilong0663
文章数:145
访问量:23989
注册日期:
阅读量:1297
阅读量:3317
阅读量:587055
阅读量:473543
51CTO推荐博文
利用SQUID做透明代理实现内网访问Internet & & & &在真实世界中我们常常会去帮人家办一些事情,例如帮人家交电费什么的,在这种情况下你不是电表的主人,而是代办者(代理者)的身份。在网络世界中Proxy就是相当于那个帮人家交电费的人了,当我们发出连接请求的时候,就会通过Proxy去帮我们直接与目标服务器沟通,帮我们取得资料。通常我们所说的高速缓存代理,就是以空间换时间。本文主要介绍了代理服务器的概念、作用、产生的原因以用工作原理。介绍了如何在Linux2.4内核环境下应用iptables NAT和squid实现透明代理的方法。结果表明,该方法实现了利用squid做透明代理实现内网访问Internet,从而解决了IP地址紧缺、网络速度慢、客户端设置代理服务器麻烦等问题。一 概述 & & & &Linux是一套免费使用和自由传播的类Unix操作系统,它主要用于基于Intel x86系列CPU的计算机上。这个系统是由全世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。 & & & Linux的出现,最早开始于一位名叫Linus Torvalds的计算机业余爱好者,当时他是芬兰赫尔辛基大学的学生。他的目的是想设计一个代替Minix(是由一位名叫Andrew Tannebaum的计算机教授编写的一个操作系统示教程序)的操作系统,这个操作系统可用于386、486或奔腾处理器的个人计算机上,并且具有Unix操作系统的全部功能,因而开始了Linux雏形的设计。 & & &Linux以它的高效性和灵活性著称。它能够在PC计算机上实现全部的Unix特性,具有多任务、多用户的能力。Linux是在GNU公共许可权限下免费获得的,是一个符合POSIX标准的操作系统。Linux操作系统软件包不仅包括完整的Linux操作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。它还包括带有多个窗口管理器的X-Windows图形用户界面,如同我们使用Windows NT一样,允许我们使用窗口、图标和菜单对系统进行操作。 & & &代理服务器(Proxy)是网络信息的中转站,比方说HTTP代理服务器。我们使用网络浏览器直接链接其他Internet站点并取得网络信息时,需送出Request信号来得到回答,然后对方再把信息传送回来。代理服务器是介于浏览器和Web服务器之间的一台服务器,有了它之后,浏览器不是直接到Web 服务器去取回网页而是向代理服务器发出请求,Request信号会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并传送给你。而且大部分代理服务器都具有缓冲功能,就好像一个大Cache,它不断将新取得的数据包存到它本机的存储器上,如果浏览器所请求的数据在它本机的存储器上已经存在而且是最新的,那么它就不重新从Web服务器取数据,而直接将存储器上的数据传送给用户的浏览器,这样就能显著提高浏览速度和效率。除此之外还有SOCKS代理服务器,其原理大同小异。用户机通过Proxy Server上网的步骤如下:650) this.width=650;" alt="\" src="/uploadfile/730.jpg" style="border:1px solid #000000;margin:0padding:0width:541height:270" /> (1)用户机端向Server发出请求。 (2)Server收到请求后比较判断Cache中时候存在用户机想要的资料,如果没有则向远程Server发送数据请求。 (3)将请求回来的资料先存放到Cache中,再将资料传送给用户端。 (4)当用户端发出的请求中所需要的资料在Cache中有,则将Cache中的资料直接传送给client端。虽然当第一访问这向Proxy请求的数据Cache中没有时,Proxy抓取数据后会先保存在Cache中,这样访问速度变慢了,可是第二个访问者以及后来的访问者需要该资料的时候,proxy都不要想远程服务器请求,直接将cache中的资料发送给后来的请求者就行了,这样就减少了连接远程服务器的流量,另外由于proxy是在本地的,所以传输速度也更快。 二 代理服务器的产生随着因特网技术的迅速发展,越来越多的计算机连入了因特网。它促进了信息产业的发展,并改变了人们的生活、学习和工作方式,对很多人来说,因特网已成为不可缺少的工具。而随着因特网的发展也产生了诸如IP地址耗尽、网络资源争用和网络安全等问题。代理服务器就是为了解决这些问题而产生的一种有效的网络安全产品。 & &如果一个单位有几百台微机连网,在上网访问时,将出现网络资源争用和增加上网费用的问题。一台主机访问了某个站点而另一台主机又访问同一个站点,如果是同时访问将出现网络资源争用的问题,如果是相继访问将出现增加本单位网络费用的问题。  本单位或本单位的各部门的网络均有安全性要求高的数据,而因特网上经常会有一些不安全的行为出现。如果每台主机都直接连到因特网上,势必会对内部网(Intranet)的安全造成严重的危害。因此,使网络安全运行是网络发展的前提条件,也是人们日益关注的热点。  如何快速地访问Internet站点,并提高网络的安全性,这已成为当今的热门话题。新一代的代理服务器使我们美梦成真。代理服务器(Proxy Server)可以缓解或解决上述问题,是因特网共享解决方案(Interne t Sharing Solution)的关键。代理服务器软件安装在网络节点上,利用其高速缓存(Cache),可以极大地、极有效地缓存因特网上的资源。当内部网的一个客户机访问了因特网上的某一站点后,代理服务器便将访问过的内容存入它的高速缓存(Cache)中,如果内部网的其他客户机再访问同一个站点时,代理服务器便将它缓存中的内容传输给该客户机,这样就能使客户机共享任何一个客户机所访问过的资源,这样就可以大大地提高访问网站的速度和效率,尤其是对那些冗长、庞大的内容,更可起到立杆见影、事半功倍的作用;同时减少网络传输流量,提高网络传输速度,节约访问时间,降低访问费用。三 代理服务器3.1什么是代理服务器 & &代理服务器(Proxy Server)是指代理服务的双宿主主机,是个人网络和Internet服务商之间的中间代理机构,它负责转发合法的网络信息,对转发进行控制和登记。代理服务器作为连接Internet(广域网)与Intranet(局域网)的桥梁3.2代理服务器的功能(1) 共享网络   & 最常见的可能是用代理服务器共享上网,很多人不知不觉中就在用,比如通过sygate,wingate,isa,ccproxy,NT系统自带的网络共享等,可以提供企业级的文件缓存、复制和地址过滤等服务,充分利用局域网出口的有限带宽,加快内网用户的访问速度,可以解决仅仅有一条线路一个IP,IP资源不足,带局域网很多用户上网的功能,同时可以做为一个防火墙,隔离内网与外网,并且能提供监控网络和记录传输信息的功能,加强了局域网的安全性,又便于对上网用户进行管理。(2)访问代理  加快访问网站速度,在网络出现拥挤或故障时,可通过代理服务器访问目的网站。比如A要访问C网站,但A到C网络出现问题,可以通过绕道,假设B 是代理服务器,A可通过B, 再由B到C。大家还记得前几个月,有段时间网络不正常,基本访问不了外国网站,如GOOGLE,YAHOO,甚至连CCF都访问不了,心里很着急。结果通过一个代理服务器,发现都可以访问,速度还不错,在这样的情况下,代理服务器就可以发挥很大的作用了。还有一类代理服务器备份有相当数量的缓存文件,如果我们当前所访问的数据在代理服务器的缓存文件中,则可直接读取,而无需再连接到远端Web服务器。这样,加快了访问速度。(3) 防止攻击  隐藏自己的真实地址信息,还可隐藏自己的IP,防止被黑客攻击。通过分析指定IP地址,可以查询到网络用户的目前所在地。例如,大家在一些论坛上看到,论坛中明确标出了发帖用户目前所在地,这就是根据论坛会员登录时的IP地址解析的。还有平日里我们最为常用的显IP版QQ,在“发送消息”窗口中,可以查看对方的IP及解析出的地理位置。而当我们使用相应协议的代理服务器后,就可以达到隐藏自己当前所在地地址的目的了。(4) 突破限制  代理服务器还可以突破网络限制。比如局域网对上网用户的端口,目的网站,协议,游戏,即时通讯软件等的限制,都可以突破这些限制,可参见我这篇帖子,如何突破局域网对上网用户的一些限制不再重复。举个例子:GOOGLE我们都喜欢用,其实GOOGLE有一个功能就有点类似于代理服务器的功能,就是网页快照,现在网站经常发生变动,地址或者网站关了,网站服务器发生故障了,或者已经更新了,但我们仍然要查以前非常有用的资料,网页快照就排上用场了,Google 以其复杂而全自动的搜索方法排除了任何人为因素对搜索结果的影响,保证了网页排名的客观公正,Google 可以方便、诚实、客观地帮您在网上找到有价值的资料。GOOGLE有一个海量的数据库,如果找不到服务器,Google 储存的网页快照也可救急。虽然网页快照中的信息可能不是最新的,但在网页快照中查找资料要比在实际网页中快得多,这时可以通过加密代理访问Google,再访问其网页快照来救急。(5)掩藏身份  代理服务器知识是黑客基本功,黑客的很多活动都是通过代理服务器,比如扫描、刺探,对局域网内机器进行渗透,黑客一般攻击的时候都是中转了很多级跳板,才攻击目标机器。隐藏了身份,保证了自己的安全。(6)提高速度提高下载速度,突破下载限制。比如有的网站提供的下载资源,做了一IP一线程的限制,这时候可以用影音传送带,设置多线程,为每个线程设置一个代理。对于限制一个IP的情况很好突破,只要用不同的代理服务器,就可同时下载多个资源,适用于从WEB和FTP 上下载的情况。不过如果是论坛里面的资源,每个用户一个账号,并且限制一账号一IP,代理服务器就突破不了。还有一种情况,比如我们这里,电信的用户上不了联通的电影网站,联通的用户上不了的电信电影网站,这种情况只要电信的找一个联通地代理,IP地址属联通就行。联通找一个电信代理。就可以去电影网站下载其电影。教育网还可以通过代理服务器可使无出国权限或无访问某IP段权限的计算机访问相关资源。3.3代理服务器的工作原理650) this.width=650;" alt="\" src="/uploadfile/342.jpg" style="border:1px solid #000000;margin:0padding:0width:678height:394" />(1)客户机发送访问请求给代理服务器 &(2)代理服务器联系客户机请求的服务器,缓存客户访问内容 &(3)客户机访问代理服务器的缓存3.4 &代理服务器的分类 & &(1)正向代理: 正向代理是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径。正向代理还可以使用缓冲特性(由mod_cache提供)减少网络使用率。使用ProxyRequests指令即可激活正向代理。因为正向代理允许客户端通过它访问任意网站并且隐藏客户端自身,因此你必须采取安全措施以确保仅为经过授权的客户端提供服务。(2)透明代理:透明代理技术中的透明是指客户端感觉不到代理的存在,不需要在浏览器中设置任何代理,客户只需要设置缺省网关,客户的访问外部网络的数据包被发送到缺省网关,而这时缺省网关运行有一个代理服务器,数据实际上被被重定向到代理服务器的代理端口(如8080),即由本地代理服务器向外请求所需 数据然后拷贝给客户端。理论上透明代理可以对任何协议通用。 & &(3)反向代理: 反向代理正好相反,对于客户端而言它就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理的名字空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端,就像这些内容原本就是它自己的一样。反向代理的典型用途是将防火墙后面的服务器提供给Internet用户访问。反向代理还可以为后端的多台服务器提供负载平衡,或为后端较慢的服务器提供缓冲服务。另外,还可以启用高级URL策略和管理技术,从而使处于不同web服务器系统的web页面同时存在于同一个URL空间下。3.5 squid简介(1)Squid是一个高性能的代理缓存服务器,它支持FTP和HTTP协议(2)Squid支持SSL,支持访问控制(3)Squid用一个单独的、非模块化的、I/O驱动的进程来处理所有的客户请求(4)Squid代理服务器可以分为:普通代理服务器、透明代理服务器、反向代理服务器(5) Squid可用在很多操作系统中,如AIX, Digital Unix, FreeBSD, HP-UX, Irix, Linux,NetBSD, Nextstep, SCO, Solaris,OS/2等,也有不少人在其他操作系统中重新编译过Squid。(6) Squid对硬件的要求是内存一定要大,不应小于128M,硬盘转速越快越好,最好使用服务7专用SCSI硬盘,处理器要求不高,400MH以上既可。四iptables与nat4.1 iptables 简介(1)netfilter & & netfilter/iptables IP 信息包过滤系统是一种功能强大的工具,可用于添加、编辑和除去规则,这些规则是在做信息包过滤决定时,防火墙所遵循和组成的规则。这些规则存储在专用的信息包过滤表中,而这些表集成在Linux 内核中。在信息包过滤表中,规则被分组放在我们所谓的链(chain)中。  虽然netfilter/iptables IP 信息包过滤系统被称为单个实体,但它实际上由两个组件netfilter 和iptables 组成。  netfilter 组件也称为内核空间(kernelspace),是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。(2)iptables & &iptables 组件是一种工具,也称为用户空间(userspace),它使插入、修改和除去信息包过滤表中的规则变得容易。除非您正在使用Red Hat Linux 7.1 或更高版本,否则需要下载该工具并安装使用它。 a.建立规则和链通过向防火墙提供有关对来自某个源、到某个目的地或具有特定协议类型的信息包要做些什么的指令,规则控制信息包的过滤。通过使用netfilter/iptables 系统提供的特殊命令iptables ,建立这些规则,并将其添加到内核空间的特定信息包过滤表内的链中。关于添加/除去/编辑规则的命令的一般语法如下:$ iptables [-t table] command [match] [target]b.表(table) & &[-t table] 选项允许使用标准表之外的任何表。表是包含仅处理特定类型信息包的规则和链的信息包过滤表。有三种可用的表选项:filter 、nat 和mangle 。该选项不是必需的,如果未指定,则filter 用作缺省表。 & &filter 表用于一般的信息包过滤,它包含INPUT 、OUTPUT 和FORWARD 链。nat 表用于要转发的信息包,它包含PREROUTING 、OUTPUT 和POSTROUTING 链。如果信息包及其头内进行了任何更改,则使用mangle 表。该表包含一些规则来标记用于高级路由的信息包,该表包含PREROUTING 和OUTPUT 链。注:PREROUTING 链由指定信息包一到达防火墙就改变它们的规则所组成,而POSTROUTING 链由指定正当信息包打算离开防火墙时改变它们的规则所组成。4.2 Netfilter/iptables系统功能Nefilter/iptables已经完全代替了ipchains,其中主要原因就在于Nefilter/iptables添加了许多新的功能.Nefilter/iptables的主要功能如下: (1) 具有连接跟踪功能 (2) 增强了日志功能. (3) 支持网络地址转换功能. (4) 具有自动碎片重装功能.支持大量增强型补丁包. & &正因为Nefilter/iptables的这些功能,所以Nefilter/iptables常被用户用于建立支持状态检测的包过滤防火墙,还可以利用NAT透明代理和共享上网.4.3 Netfilter/iptables的优点netfilter/iptables 的最大优点是它可以配置有状态的防火墙,这是ipfwadm 和ipchains 等以前的工具都无法提供的一种重要功能。有状态的防火墙能够指定并记住为发送或接收信息包所建立的连接的状态。防火墙可以从信息包的连接跟踪状态获得该信息。在决定新的信息包过滤时,防火墙所使用的这些状态信息可以增加其效率和速度。这里有四种有效状态,名称分别为ESTABLISHED 、INVALID 、NEW 和RELATED 。状态ESTABLISHED 指出该信息包属于已建立的连接,该连接一直用于发送和接收信息包并且完全有效。INVALID 状态指出该信息包与任何已知的流或连接都不相关联,它可能包含错误的数据或头。状态NEW 意味着该信息包已经或将启动新的连接,或者它与尚未用于发送和接收信息包的连接相关联。最后,RELATED 表示该信息包正在启动新连接,以及它与已建立的连接相关联。netfilter/iptables 的另一个重要优点是,它使用户可以完全控制防火墙配置和信息包过滤。您可以定制自己的规则来满足您的特定需求,从而只允许您想要的网络流量进入系统。 & &另外,netfilter/iptables 是免费的,这对于那些想要节省费用的人来说十分理想,它可以代替昂贵的防火墙解决方案。4.4 什么是私有地址 & &私有地址(Private address)属于非注册地址,专门为组织机构内部(如局域网内)使用。以下表列出留用的内部寻址地址:私有IP地址的范围私有IP地址的范围子网掩码10.0.0.0-10.255.255.255255.0.0.0172.16.0.0-172.31.255.255255.255.0.0192.168.0.0-192.168.255.255255.255.255.04.5 什么是NAT & &NAT――网络地址转换,是通过将专用网络地址(如企业内部网Intranet)转换为公用地址(如互联网Internet),从而对外隐藏了内部管理的IP 地址。这样,通过在内部使用非注册的IP 地址,并将它们转换为一小部分外部注册的IP 地址,从而减少了IP 地址注册的费用以及节省了目前越来越缺乏的地址空间(即IPV4)。同时,这也隐藏了内部网络结构,从而降低了内部网络受到攻击的风险。4.6 NAT工作原理内部地址翻译(Translation inside local addresses):这是比较通用的一种方法,将内部IP一对一的翻译成外部地址。在内部主机连接到外部网络时,当第一个数据包到达NAT路由器时,router检查它的NAT表因为是NAT是静态配置的,故可以查询出来(simply entry),然后router将数据包的内部局部IP(源地址)更换成内部全局地址,再转发出去。外部主机接受到数据包用接受到的内部全局地址来响应,NAT接受到外部回来的数据包,再根据NAT表把地址翻译成内部局部IP,转发过去。内部全局地址复用(overloading inside glogal addresses)使用地址和端口pair将多个内部地址影射到比较少的外部地址。这也是所谓的PAT。和内部地翻译一样,NAT router同样也负责查表和翻译内部IP地址,唯一的区别就是由于使用了overloading,router将复用同样的内部全局IP地址,并存储足够的信息以区分它和其他地址,这样查询出来的是extended entry。NAT router和外部主机的通讯采用翻译过的内部全局地址,故同一般的通信没有差别,router到内部主机通讯时,同样要查NAT表。 & &(3)TCP负载重分配(TCP load distributing)和以上两种操作不同,这是NAT由外到内的翻译,所 & & & & &以那种以为WEB server一定要放置到4.7 NAT功能 & &NAT(网络地址转换)提供了局域网共享上网的简单方案,内部网络用户连接互联网时,NAT将用的内部IP地址转换成一个外部公共IP地址,反之,数据从外部返回时,NAT反向将目标地址替换成初始的内部用户的地址。实际上NAT隐藏了内部IP地址,构成了一个天然的防火墙。4.8 NAT类型 & & & &NAT有三种类型:静态NAT(Static NAT)、动态地址NAT(Pooled NAT)、网络地址端口转换NAPT(Port-Level NAT)。 & & & &静态NAT设置起来最为简单和最容易实现的一种,内部网络中的每个主机都被永久映射成外部网络中的某个合法的地址。而动态地址NAT则是在外部网络中定义了一系列的合法地址,采用动态分配的方法映射到内部网络。NAPT则是把内部地址映射到外部网络的一个IP地址的不同端口上。根据不同的需要,三种NAT方案各有利弊。 & & & &动态地址NAT只是转换IP地址,它为每一个内部的IP地址分配一个临时的外部IP地址,主要应用于拨号,对于频繁的远程联接也可以采用动态NAT。当远程用户联接上之后,动态地址NAT就会分配给他一个IP地址,用户断开时,这个IP地址就会被释放而留待以后使用。 & & & & 网络地址端口转换NAPT(Network Address Port Translation)是人们比较熟悉的一种转换方NAPT普遍应用于接入设备中,它可以将中小型的网络隐藏在一个合法的IP地址后面。NAPT与 动态地址NAT不同,它将内部连接映射到外部网络中的一个单独的IP地址上,同时在该地址上加上一个由NAT设备选定的TCP端口号。 & & & &在Internet 中使用NAPT时,所有不同的信息流看起来好像来源于同一个IP地址。这个优点在小型办公室内非常实用,通过从ISP处申请的一个IP地址,将多个连接通过NAPT接入Internet。实际上,许多SOHO远程访问设备支持基于PPP的动态IP地址。这样,ISP甚至不需要支持NAPT,就可以做到多个 内部IP地址共用一个外部IP地址上Internet,虽然这样会导致信道的一定拥塞,但考虑到节省的ISP上网费用和易管理的特点,用NAPT还是很值得的。五 &基于squid透明代理在企业中的应用 & & & & 前面论述了代理,iptables,squid以及NAT技术,下面将在一个真实的环境中论述基于squid透明代理实现内网访问Internet.下图是一个理想的squid透明代理网络拓朴结构。650) this.width=650;" alt="\" src="/uploadfile/332.jpg" style="border:1px solid #000000;margin:0padding:0width:713height:199" /> & & & 透明代理是NAT和代理的完美结合,这所以称为透明,是因为在这种工作方式下用户感觉不到代理服务器的存在,不需要在浏览器或其他客户端工具中作任何设置,客户机只需要将默认网关设置为LINUX服务器的IP即可.当客户机访问INTERNET,请求数据包经过LINUX服务器转发INUX服务器上的IPTABLES将客户机的HTTP请求重定向到SQUID代理服务器,由代理服务器代替客户机访问外部信息资源,再将获取的数据传回客户机。5.1 配置网络接口给squid服务分配两块网卡一个是公网eth0一个是内网eth1,由于条件所限本实验全用私有地址进行实验,用一台windows xp充当局域网中需上网的机器并以C类私有地址0网段与10网段,配置eth0充当公网能连接Internet进行通信,配置eth1地址不能与外网进行通信.注:本设计基于在Linux 2.4内核下安装配置squid服务器(本文以Red Hat Linux 9.0为例)1、设置eth0 & & (1)#netconfig & & &如下图(1)(2)650) this.width=650;" alt="\" src="/uploadfile/232.jpg" style="border:1px solid #000000;margin:0padding:0width:790height:528" />图(1)650) this.width=650;" alt="\" src="/uploadfile/588.jpg" style="border:1px solid #000000;margin:0padding:0" />图(2)(2)启动eth0650) this.width=650;" alt="\" src="/uploadfile/838.jpg" style="border:1px solid #000000;margin:0padding:0width:762height:69" />2、设置eth1(1)进入/etc/sysconfig/network-scripts并查看650) this.width=650;" alt="\" src="/uploadfile/704.jpg" style="border:1px solid #000000;margin:0padding:0width:805height:244" />(2)拷贝ifcfg-eth0重新命名为ifcfg-eth1并用vi修改保存 & & #vi ifcfg-eth1650) this.width=650;" alt="\" src="/uploadfile/914.jpg" style="border:1px solid #000000;margin:0padding:0width:763height:517" /> 说明:把接口改为eth1 ip地址为私有地址并不能与外界通信,本文用C类的私有地址10网段 &192.168.10.25 子网掩码 &255.255.255.0 (3)重新启动网卡650) this.width=650;" alt="\" src="/uploadfile/735.jpg" style="border:1px solid #000000;margin:0padding:0width:776height:221" />3、查看两块网卡的IP地址650) this.width=650;" alt="\" src="/uploadfile/565.jpg" style="border:1px solid #000000;margin:0padding:0width:760height:281" />650) this.width=650;" alt="\" src="/uploadfile/420.jpg" style="border:1px solid #000000;margin:0padding:0width:761height:248" />注:eth0 eth1配置成功5.2 配置iptables1、启动路由650) this.width=650;" alt="\" src="/uploadfile/970.jpg" style="border:1px solid #000000;margin:0padding:0width:762height:52" />2、起动iptables650) this.width=650;" alt="\" src="/uploadfile/526.jpg" style="border:1px solid #000000;margin:0padding:0width:775height:119" />3、清空Iptables所有表中规则并查看nat表650) this.width=650;" alt="\" src="/uploadfile/105.jpg" style="border:1px solid #000000;margin:0padding:0width:725height:205" />4、添加iptables访问规则650) this.width=650;" alt="\" src="/uploadfile/707.jpg" style="border:1px solid #000000;margin:0padding:0width:763height:78" />说明:(1)在NAT表的POSTROUTING链加目标动作SNAT,当内部192.168.10.0/24网段的PC 机与外界通信 & & & &
& & 将IP伪装成192.168.0.25与外界进行通信 & & & & &(2)在NAT表的PREROUTING链加目标动作REDIRECT,将入站的数据包进行重定向,本条规则是将80 & & &
& & 号端口重定向成31285、保存并查看iptables中的nat表中规则650) this.width=650;" alt="\" src="/uploadfile/811.jpg" style="border:1px solid #000000;margin:0padding:0width:761height:269" />注:规则添加成功5.3安装squid1、RPM包安装squid(1)查看是否已经安装了squid650) this.width=650;" alt="\" src="/uploadfile/195.jpg" style="border:1px solid #000000;margin:0padding:0width:651height:23" />(2)RPM方法安装squid650) this.width=650;" alt="\" src="/uploadfile/707.jpg" style="border:1px solid #000000;margin:0padding:0width:701height:71" />5.4 配置squid需要修改squid主配置文件/etc/squid/squid.conf &(1)/etc/squid/squid.conf主配置文件添加以下内容650) this.width=650;" alt="\" src="/uploadfile/780.jpg" style="border:1px solid #000000;margin:0padding:0width:791height:326" />说明:a.设squid的HTTP监听端口为3128目的是把目标端口为80重定向到3128端口 & & & & & & b.根据服务器配置以及需要来配置指定缓冲内存大小及设置绶存位置大小存储内型 & & & & & & c.让代理服务器的缓存功能正确工作,必须将httpd_accel_uses_host_header选项设为on。(2)启动squid650) this.width=650;" alt="\" src="/uploadfile/369.jpg" style="border:1px solid #000000;margin:0padding:0width:789height:37" />(3)检查squid启动端口650) this.width=650;" alt="\" src="/uploadfile/650.jpg" style="border:1px solid #000000;margin:0padding:0width:762height:169" />5.5 测试1、配置要进行与外界通信的PC机IP在网上邻居右击――属性――本地连接右击――属性――选择INTERNET协议(TCP/IP)――属性 & &如下图:650) this.width=650;" alt="\" src="/uploadfile/531.jpg" style="border:1px solid #000000;margin:0padding:0width:443height:558" />(2)在常规选项占击使用下面的IP地址和使用下面的DNS服务器地址中添加地址――确定如下图:650) this.width=650;" alt="\" src="/uploadfile/633.jpg" style="border:1px solid #000000;margin:0padding:0width:456height:560" />说明:此处配IP必须要与上面所配的eth1是同一网段,网关要指向eth1的IP ,首选DNS服务器配置要与squid的DNS地址相同 & & 如下图: & & &650) this.width=650;" alt="\" src="/uploadfile/267.jpg" style="border:1px solid #000000;margin:0padding:0" />注:百度网页成功打开,表明测试成功总结 & & & &通过以上的论述,系统的分析了如何基于squid透明代理实现内网访问外网。从中看出SQUID透明代理配置简单,客户机设置简单不需要在浏览器中设置任何代理,具有安全性,它可以很好的保护内部主机免受外部主机的攻击并具有完整的日志,性能方面它可以提供高速缓存功能并且成本底等,更能体现它的是它可以解IP地址紧缺问题,在企业中可以很好的为企业解决租约IP问题,为企业带来经济效益,随着技术的不断发展与成熟将会有更多的人员通过它来实现访问INTERNET为更多的人带来方便。
了这篇文章
类别:┆阅读(0)┆评论(0)

我要回帖

更多关于 squid 3.5 配置 的文章

 

随机推荐