内容分发网络
[root@up12 ~]# sysctl -a | grep ip_forward //内核决定转不转发不是发给自己的数据包。
net.ipv4.ip_forward = 1
用linux系统做路由只需要两点:1、forward ;2、nat
在vmware中:
nat相当于把主机做成了一个路由器
host-only默认是不能上网的,但是可以设置(forward+net)
vim /etc/sysctl.conf //修改配置文件,将第7行改为1,就可以开启转换。sysctl -p 读取文件。
ware-12.0.2-3.20
iptables ---redhat里只允许ping的包,和ssh 22的端口,默认是不能转发的
开启防火墙,设置为允许转发
iptables {-S,-L} //查看默认的防火墙规则
将电脑设置为路由器,1.首先修改配置文件sysctl.conf 2.设置防火墙规则,允许转发 system-config-firewall 可以用图形界面管理防火墙的规则 system-config-firewall-tui 也可以设置防火墙规则
iptables -D FORWARD 1//删除规则
iptables -t nat -I POSTROUTING [-p tcp -s 192.168.30.21 (只允许192.168.30.21的tcp协议做源地址转换)] -j SNAT --to 192.168.1.9 //开启nat,做源地址转换
masquerade
重启后,就会失效 /etc/init.d/iptables save 保存配置文件
删除规则
综上,也可以在/etc/sysconfig/iptables --可以直接在文件里修改规制,修改完之后用reload重新加载文件
[root@up12 /]# iptables -t nat -S
-P PREROUTING ACCEPT
-P POSTROUTING ACCEPT
-P OUTPUT ACCEPT
-A POSTROUTING -s 172.16.255.2/32 -j MASQUERADE
squid :一般用做反向代理
squid正向代理
添加删除路由
在浏览器上,设置网络代理。squid 软件安装上后,重启之后就可以使用了。在想要通过代理上网的电脑上,在浏览器里设置,然后加上代理网络的主机IP 和端口号3128(这个是默认的)。然后在重启浏览器就可以实现上网了。
squid中进行访问控制设置,通过ACL
/etc/squid/squid.conf //配置文件,在里面修改
可以在acl里面加入一个文件的绝对路径,可以将内容写入文件中。
/usr/share/doc/squid-3.1.23/squid.conf.documented //使用文档,里面有定义acl的方法
修改完之后要进行,服务重新载入。
注意:ACL的顺序会对我们的结果有影响。
1、只允许在周一到周五的中午休息时间上网 12:00 - 13:30
A: acl midtime time MTWHF 12:00-14:00
http_access deny !midtime //如果不加上!,则是休息时间不能上网。
2、只允许在周一到周五的下课时间上网 17:00 - 20:00
A:acl aftertime time MTWHF 17:00-20:00
http_access deny !aftertime
3、禁止下载某些附件 .exe .rar .rm .rmvb .avi .mp3
A acl badfiles urlpath_regex -i .*\.(exe|rar|rm|rmvb|avi|mp3)$
http_acess deny badfiles
4、禁止访问网址中包含这些关键字的网站: sex sexy movie news sport
A: acl badsites url_regex -i .*(sex|sexy|movie|news|sport).*
http_access deny badsites
5、周末全天候开放上网
A:acl open time AS 00:00-24:00
http_access allow open
6、VIP上网没限制(使用MAC过滤)
mac: 00:24:1d:ec:aa:e0
A: acl vip arp 00:24:1d:ec:aa:e0
http_access allow vip
7、在黑名单的网站不允许访问 .youku.com .mop.com .qq.com
A: acl block dstdomain "/etc/squid/blocksites"
http_access deny block
squid透明代理
用squid代理https,但是出现了很多问题
创建一个新的证书中心
cd /etc/pki/ctl/
./CA --newca //生成一个新证书中心
./CA -newreq-nodes //生成一个证书签名请求
./CA -sign //证书认证
newreq.pem // 证书私钥
newcert.pem //
/etc/pki/CA 根证书的存放位置
最后使用MASQUERADE 可以正常让https正常访问了
squid正向代理认证的方法:
squidclient --能够查看到相应的缓存
squidclient -p 3218 mgr:object | grep less //查看缓存
现在squid配置文件中设置缓存的文件位置和大小,文件数量等等
linux 系统拨号上网
1.yum install rp-pppoe
2.pppoe -setup
3.ipup ppp0
方向代理应用场景
1.LAN
2.LB
3.CDN cache 内容分发网络
反向代理服务器一般常用 nginx squid varnish
nginx [web proxy cache]
squid [proxy cache]
varnish [proxy cache]
nginx 配置文件
[root@up12 books]# cat /etc/nginx/conf.d/192.168.238.17.conf
upstream lanweb{
server 192.168.238.17:80;
server 192.168.30.3:80;
}
server {
listen 80;
server_name 192.168.30.153;
location /{
proxy_pass http://lanweb;
}
}
[root@up12 books]#
nginx安装好后,在nginx配置文件中配置好我们的代理网张,192.168.238.17是我的虚拟机上的IP,我已经在虚拟机上设置好了相应的HTTP网站。192.168.30.3是同一个局域网中的其他电脑。我们用物理机代理这两个网站。配置好后,直接重启nginx。我们在局域网中用其他任何一台电脑访问我的主机ip192.168.30.153 经过不断的刷新会不断出现我代理的这两个网站的页面。证明我们的代理成功了。
squid 配置
/etc/squid/squid.conf
lynx -dump -reload www.up.com //测试网页的时候,不保留缓存。