


用Linux下的代理服务器保护主干网
代理服务器有什么用?
代理服务器的用途很广泛,一般用户可以用它来提高访问某些网络 (比如教育网,国外的网络) 的速度。而我们学校用它主要是让实验室里的电脑可以上网的同时又将它们与主干网络隔离开来。对于一些流量比较大的网站,代理服务器还可以起到Web加速的作用,比如一些在线视频分享网站,扫描其80端口,会发现它运行的服务是http-proxy而不是http。我用nmap来扫描www.56.com的80端口,输入下面的命令[root@localhost ~]# nmap -PN -sV -p80 www.56.com,可以得到如图1所示的结果,原来56.com是使用代理服务器将信息传给用户的,这样做不但安全,而且还大大提高了访问速度。可能有些朋友要问为什么加上代理服务器就能提高访问速度,这是因为代理服务器可以将用户经常访问的东西放在内存里,当用户需要时,可直接将信息传给用户,而像Apache这样的Web服务器是从磁盘中将信息读到内存中,然后才将信息传给用户的,这样做明显没有用代理的速度快,当然,一个很大的内存是十分必要的。
安装前的准备
在安装squid和Socks5之前,先要创建一个单独的分区来保存缓存文件,还要创建一个专门的用户来启动squid和Socks5,即使黑客利用了这两个软件的漏洞,他也没有Root权限。
1)查看服务器所挂硬盘的名称
[root@localhost ~]#fdisk -l
显示Disk /dev/hda,说明这台服务器硬盘的设备名是/dev/hda。
2)创建一个新的squid缓存分区
因为squid要将缓存文件保存在硬盘里,这样会频繁读写硬盘,所以要单独建一个分区,最好是单独用一块硬盘。输入命令:
[root@localhost ~]#fdisk /dev/hda
接着按m取得帮助,从帮助中可以看出按n是创建一个新的分区,接着按l是增加逻辑分区。
当显示“First cylinder (731-2431, default 731):”,是要求我们输入起始柱面,直接按回车就行了。当显示:
Using default value 731
Last cylinder or +size or +sizeM or +sizeK (731-1176, default 1176):
这是要求我们输入结束柱面,输入+2000M后回车,表示创建一个大小为2G的分区。
3)格式化分区为ext3格式
[root@localhost ~]#mke2fs -j -L "logical" /dev/hda5
4)挂载刚才创建的分区
[root@localhost ~]#mkdir /mnt/cache
[root@localhost ~]#mount /dev/hda5 /mnt/cache
命令执行完毕后,在/etc/fstab中添加一行:“/dev/hda5 /mnt/cache/ ext3 defaults 0 0”,可以让系统启动时能自动挂载分区。
5)创建一个proxy用户
[root@localhost ~]#useradd proxy
6)设置用户密码
[root@localhost ~]#passwd proxy
接着输入两次密码即可。
7)配置服务器ip
服务器上有两块网卡:eth0连接内网,网段为192.168.1.0/24;eth1连接外网。
执行命令配置eth0的ip:
[root@localhost ~]# ifconfig eth0 192.168.1.1 netmask 255.255.255.0
再执行命令配置eth1的ip:
[root@localhost ~]# ifconfig eth1 a.a.a.a netmask 255.255.255.0
其中a.a.a.a为公网ip地址。之后再添加一条路由,x.x.x.x为公网的网关:
[root@localhost ~]#route add -net 0.0.0.0 gw x.x.x.x eth1
安装squid
1)安装squid的rpm包,命令如下。
[root@localhost ~]#rpm -ivh squid-2.6.STABLE6-3.el5.i386.rpm
2)修改squid的配置文件
[root@localhost ~]#vim /etc/squid/squid.conf
squid.conf里的配置菜单如下,其它选项可以使用默认值。
http_port 3128 #监听端口为3128
cache_mem 700MB #设置squid的高速缓存大小。因为物理内存为1G,文本模式启动系统只占内存65M,加上squid、Socks5和iptables的守护进程占部分内存,故700M比较合适
maximum_object_size 4096 KB
#超过4M的文件不保存到硬盘上,否则硬盘的缓存空间很快会被占满
maximum_object_size_in_memory 1024 KB
#超过1MB的文件不保存到内存里
ipcache_size 1024
#DNS解析后的IP放在缓存中,可免去重复查询DNS,提高访问速度
ipcache_low 90
ipcache_high 95
fqdncache_size 1024
#IP与主机名称的记录
visible_hostname 你的计算机名
#不设置有时无法启动
squid logfile_rotate 6
#设置日志轮转,6表示会生成0~6共7个日志文件,这个设置非常重要,后面要讲到它
cache_dir ufs /mnt/cache 2000 16 256
#/mnt/cache为squid缓存分区的挂载点,2000是缓存分区的大小,与刚才新建的分区一样大
cache_swap_low 90 cache_swap_high 95
#当高速缓存占用到95%时,自动减小到90%
cache_effective_user proxy cache_effective_group proxy
#将squid的拥有者设成前面新建的那个用户
proxy acl safe_ports port 80 8000 8080 443 http_access allow safe_ports http_access deny !safe_ports
#可访问的远程计算机的端口
新文章:
- CentOS7下图形配置网络的方法
- CentOS 7如何添加删除用户
- 如何解决centos7双系统后丢失windows启动项
- CentOS单网卡如何批量添加不同IP段
- CentOS下iconv命令的介绍
- Centos7 SSH密钥登陆及密码密钥双重验证详解
- CentOS 7.1添加删除用户的方法
- CentOS查找/扫描局域网打印机IP讲解
- CentOS7使用hostapd实现无AP模式的详解
- su命令不能切换root的解决方法
- 解决VMware下CentOS7网络重启出错
- 解决Centos7双系统后丢失windows启动项
- CentOS下如何避免文件覆盖
- CentOS7和CentOS6系统有什么不同呢
- Centos 6.6默认iptable规则详解