squid透孙吴理+iptables防火墙,多网卡详细布置

Linux Fedora
8安装并配备squid代理服务器

squid透汉朝理+iptables防火墙详细布署

1.非透唐宋理

看到十分多人都在不停地问iptables+squid做透西魏理的主题材料,鄙人不才,斗胆在此做联合解答。如有任何破绽还望各位商量指教。

观察无尽人都在不停地问iptables+squid做透清朝理的标题,鄙人不才,斗胆在此做联合解答。如有任何漏洞还望各位议论指教。 
===================================================================== 
连锁能源: 
man.chinaunix.net,左下角有iptables的man,仔细看看。 
系统: 
CentOS4.2,三块网卡,三个内网,贰个外网。双至强,2GHz,2GB内部存款和储蓄器。服务器首要开了squid,sshd,其余的一概闭掉了。 
eth0:192.168.100.1 
eth1:192.168.168.12 
eth2:A.B.C.D ―― 外网地址 
===================================================================== 
squid设定能够依照自个儿的情景来,大家假如其端口为3128,在三块网卡上都有监听(不要绑定某二个IP或网卡)。 
/etc/squid/squid.conf 
http_port 3128 
cache_mem 1000 MB 
cache_swap_low 90 
cache_swap_high 95 
cache_dir ufs /opt/cache/squid 8000 16 256 
cache_access_log /var/log/squid/access.log 
cache_store_log /var/log/squid/store.log 
dns_nameservers 210.77.192.88 
maximum_object_size 409600 KB 
maximum_object_size_in_memory 64000 KB 
emulate_httpd_log on 
ipcache_size 1024 
ipcache_low 90 
ipcache_high 95 
fqdncache_size 1024 
forwarded_for off 
coredump_dir /opt/cache/squid/coredump httpd_accel_port 80 
httpd_accel_host virtual 
httpd_accel_with_proxy on 
httpd_accel_single_host off 
httpd_accel_uses_host_header on 
acl all src 0.0.0.0/0 
acl lixiaedu100 src 192.168.100.0/24 
acl lixiaedu168 src 192.168.168.0/24 
http_access allow lixiaedu100 
http_access allow lixiaedu168 
http_access deny all 
cache_effective_user squid 
cache_effective_group squid 
cache_mgr zhaobing8181@163.com 
visible_hostname lixiaedu 
====================================================================== 
iptables设定。iptables的设定分为两局地,一是如何进行SNAT,二是在实行了squid的意况下什么进展安全堤防的难点。 

一、SNAT 
modprobe ip_tables 
modprobe iptable_nat 
modprobe iptable_filter 
modprobe ip_conntrack_ftp 
modprobe ip_nat_ftp 
增加挂牌一些iptables的不可缺少的模块,以便调用。 
echo 1 > /proc/sys/net/ipv4/ip_forward 
打开“转载”成效。让数据包能够在区别的网卡间“流动”。 
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o eth2 -j SNAT –to
A.B.C.D 
iptables -t nat -A POSTROUTING -s 192.168.168.0/24 -o eth2 -j SNAT –to
A.B.C.D 
iptables -t nat -A PREROUTING -s 192.168.100.0/24 -i eth0 -p tcp –dport
80 -j REDIRECT –to-port 3128 
iptables -t nat -A PREROUTING -s 192.168.168.0/24 -i eth1 -p tcp –dport
80 -j REDIRECT –to-port 3128 
上边这四句比较根本,是展开透秦代理的机要。前两句的成效是拓展“源地址调换”,也正是说要开始展览内网地址到外网地址的转变。推行了这两句,纵然未有squid,内网机器也能够上网了。 
末尾两句是对从四个内网网卡进入的、tcp协议的、目标端口号是80的,做“端口重定向”。重定向到3128端口。那样,squid就能够吸取这几个数额包了。 
OK!若是您的squid没不正常,而且你也实践了地方的言语,并且未有报错。那就恭喜你,贰个iptables+squid的透晋朝理做成了。如若您不
相信,有三个艺术能够测试:一是登陆:
,那是叁个外国网址,能够展现你的外网ip地址,还恐怕有是还是不是被代理过。二是在一台内网机器上下载三个文书,大概看一页图片多数并且一点也不快的网页,然后转到另一
台内网机器上下载一样的文件或看刚刚的图形网页。比 
较一下进程,就可以感到出来了。 

二、firewall 
比方您把这么一台服务器放到internet上,无异于是想“自杀”。防火墙未有此外的保卫安全体制和过滤效果。很轻便被各样攻击所战胜。不要迷 
信Linux的安全性,网管员的安全意识要比空喊Linux安全重点得多。 
iptables -F 
iptables -X 
iptables -F -t mangle 
iptables -t mangle -X 
iptables -F -t nat 
iptables -t nat -X 
先是,把四个表清空,把自行建造的规则清空。 
iptables -P INPUT DROP 
iptables -P OUTPUT DROP 
iptables -P FORWARD ACCEPT 
设定INPUT、OUTPUT的默许战略为DROP,FO奇骏WAEscortD为ACCEPT。 
iptables -A INPUT -i lo -j ACCEPT 
iptables -A OUTPUT -o lo -j ACCEPT 
先把“回环”展开,以防有不供给的分神。 
iptables -A INPUT -i eth+ -p icmp –icmp-type 8 -j ACCEPT 
iptables -A OUTPUT -o eth+ -p icmp –icmp-type 0 -j ACCEPT 
在具有网卡上开荒ping作用,便于维护和检查实验。 
iptables -A INPUT -i eth0 -s 192.168.100.250 -d 192.168.100.1 -p tcp
–dport 22 -j ACCEPT 
iptables -A OUTPUT -o eth0 -d 192.168.100.250 -s 192.168.100.1 -p tcp
–sport 22 -j ACCEPT 
开发22端口,允许远程处理。(设定了成都百货上千的叠合条件:管理机器IP必须是250,并且必须从eth0网卡跻身) 
iptables -A INPUT -i eth0 -s 192.168.100.0/24 -p tcp –dport 3128 -m
state –state NEW,ESTABLISHED -j ACCEPT 
iptables -A OUTPUT -o eth0 -d 192.168.100.0/24 -p tcp –sport 3128 -m
state –state ESTABLISHED -j ACCEPT 
iptables -A INPUT -i eth1 -s 192.168.168.0/24 -p tcp –dport 3128 -m
state –state NEW,ESTABLISHED -j ACCEPT 
iptables -A OUTPUT -o eth1 -d 192.168.168.0/24 -p tcp –sport 3128 -m
state –state ESTABLISHED -j ACCEPT 
iptables -A INPUT -i eth2 -p tcp –dport 32768:61000 -m state –state
ESTABLISHED -j ACCEPT 
iptables -A OUTPUT -o eth2 -p tcp –sport 32768:61000 -m state –state
NEW,ESTABLISHED -j ACCEPT 
iptables -A OUTPUT -o eth2 -p udp –dport 53 -j ACCEPT 
iptables -A INPUT -i eth2 -p udp –sport 53 -j ACCEPT 
下边这几句是比较高烧的,笔者做逐一分解。 
iptables -A INPUT -i eth0 -s 192.168.100.0/24 -p tcp –dport 3128 -m
state –state NEW,ESTABLISHED -j ACCEPT 
允许192.168.100.0/24网段的机械发送数据包从eth0网卡跻身。要是数据包是tcp协议,而且指标端口是3128(因为REDIRECT
已经把80改为3128了。nat表的PREROUTING是在filter表的INPUT后边的。)的,再而且,数据包的情景必须是NEW大概ESTABLISHED的(NEW代表tcp三段式握手的“第一握”,换句话说便是,允许客户端机器向服务器发出链接申请。ESTABLISHED代表通
过握手已经创制起链接),通过。 
iptables -A OUTPUT -o eth2 -p tcp –sport 32768:61000 -m state –state
NEW,ESTABLISHED -j ACCEPT 
咱俩先来看这一句。未来您的数据包已经进入到linux服务器防火墙上来了。squid须要代表你去拜访,所以此时,服务器就成了客户端的剧中人物,所以它要
使用32768到6一千的个人端口举办走访。(大家会意外应该是1024到65535吗。其实CentOS版的linux所定义的个体端口是
32768到61000的,你能够透过cat  /proc/sys/net/ipv4/ip_local_port_range,查看一下。)再度评释:这里是squid以客户端的地位去访问别的的服务器,所以那边的源端口是32768:6一千,而不是3128! 

iptables -A INPUT -i eth2 -p tcp –dport 32768:61000 -m state –state
ESTABLISHED -j ACCEPT 
当然了,数据有去就有回。 

iptables -A OUTPUT -o eth0 -d 192.168.100.0/24 -p tcp –sport 3128 -m
state –state ESTABLISHED -j ACCEPT 
数码包还得经过服务器,转到内网网卡上。请留心,这里,是squid帮您去做客了您想要访问的网址。所以在内网中,你的机械是客户端剧中人物,而squid是服务器剧中人物。那与刚刚对外访问的进度是例外的。所以在那边,源端口是3128,而不是32768:6一千。 

iptables -A OUTPUT -o eth2 -p udp –dport 53 -j ACCEPT 
iptables -A INPUT -i eth2 -p udp –sport 53 -j ACCEPT 
自然,DNS是不足缺失的。 

iptables -A INPUT -i eth+ -p tcp –dport 80 -j LOG –log-prefix
“iptables_80_alert” –log-level info 
iptables -A INPUT -i eth+ -p tcp –dport 21 -j LOG –log-prefix
“iptables_21_alert” –log-level info 
iptables -A INPUT -i eth+ -p tcp –dport 22 -j LOG –log-prefix
“iptables_22_alert” –log-level info 
iptables -A INPUT -i eth+ -p tcp –dport 25 -j LOG –log-prefix
“iptables_25_alert” –log-level info 
iptables -A INPUT -i eth+ -p icmp –icmp-type 8 -j LOG –log-prefix
“iptables_icmp8_alert” –log-level info 
当然了,来点日志记录会对网管员有所支持。 

时至明天,二个完好的造访进程就被大家深入分析过了。本篇中最要害的便是要验证squid在对内网机器和外网服务器中饰演了三种截然相反的剧中人物。 

那对大家来讲不太好精通。作者也是搜索了一段时间才成功的。愿自身的稿子投砾引珠,能唤起大家的共鸣和探究。 
本篇小说迎接大家转发,请保留小编音信。 

某个表明:近日看来过一种情景,正是squid不可能起动,只怕提及动起来几分钟就自行停掉。messages中说有squid蒙受了signal
25,所以甘休。遇到这种难点,要查看squid的日记是还是不是太大了。笔者看了须臾间,access.log有1.6GB,store.log有2GB大小。
看来是日至文件偏大。把五个文件转移或然改名后就能够了

● http

1》.squid3.0的设置就大约了,小编的系统刚更新的,本身便是3.0了,然则安装它应当轻巧

2》.对于尚未特殊供给的,选拔默许的安顿文件就ok了,在/etc/squid/squid.conf,假设你一头有改过的话,能够copyd同目录squid.conf.default到里头。

whereis squid,看看安哪了,也足以rpm -ql squid

sudo /usr/sbin/squid -z,初步化目录

sudo /etc/rc.d/init.d/squidstart

此刻暗中同意的是3128端口,防火墙是通可是的,在防火墙-》可信赖端口-》加多3128,tcp

》可信赖的服务->WWW选上

除此以外,要鲜明劳动中squid是enabled,而对于初叶的暗中同意cache目录,/var/spool/squid和/var/log/squid,作者更改了她们的属主,但估量是剩下了(squid用户和群早已有了,忘了是友好建的依旧系统代的,哈哈)

sudo chown -R squid:squid~~~

3》.在客户端ie,设置好ip:port就好了。

2.改成透亮代理

1》.同样,未有特殊要求,还是接纳默许的,只是在http_port 3128
后加一个transparent

2》.关键是安插iptables调整转载

echo “1” >/proc/sys/net/ipv4/ip_forward

iptables -t nat -A PREROUTING -i eth0 -p tcp –dport 80 -j
REDIRECT–to-ports 3128

3》.借使是在命令行输入的话,那么每趟重启系统和iptables后都要双重输入,可以这样消除:

iptable的布局,在/etc/rc.d/目录下用touch命令建构firewall文件,实践chmod
u+xfirewll以更换文
件属性,编辑/etc/rc.d/rc.local文件,在最后加上/etc/rc.d/firewall以担保开机时能自行实践该脚本。

echo “starting ip forward”
echo 1 >/proc/sys/net/ipv4/ip_forward
echo “starting iptables rules”
modprobe ip_tables
modprobe ip_nat_ftp
/sbin/iptables -F -t nat

iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp –dport 80
-jREDIRECT –to-ports3128 #将所有80#端口的包转载到3128端口

//iptables -t nat -A POSTROUTING -o eth0 -jMASQUERADE
#对eth0端口实行诈骗,单网卡用不到

4》.配置完以上内容后就足以安插客户端上网了

ie里撤废代理的安装,将客户端的网关指向服务器ip,设置好dns,然后就足以上网了

要是不设好dns的话,就只有人工剖判了,举例百度,202.108.22.43

首假使这里的dns的设置,网络说的都比较模糊,小编可疑,应该有三种艺术:

<1>.通过转账,就是讲内网的dns央浼转发到外网的dns服务器实行深入分析

<2>.Linux同期担任dns服务器,关于dns服务器的篇章也多数,但自己新手,须求不高,唯有能用就ok了。(将客户端dns钦定为服务器ip)

A.作者用的是dnsmasq:Linux下能够用Iptables加Dnsmasq做透明DNS代理。小编并从未如此做,只是简单的开启了dnsmasq而已

 B.正是用bind,有空再说吧

5》.开采那样安插的晶莹代理上频频qq,但设置代理能够上,那应该是和squid有关

图片 1

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图