RHEL5下Squid+IPtables经典案例(透明代理+防火墙配置)

简介:
网络环境: 
Eth0 内网:192.168.42.194/24
Eth1 外网:接ADSL线路或外网固定IP(ADSL使用adsl-setup进行CONNECT)
PPP0拔号已设置
/etc/squid/squid.conf配置如下:
http_port 3128 transparert
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 202.96.128.86
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
acl all src 0.0.0.0/0
http_access allow all
cache_effective_user squid
cache_effective_group squid
cache_mgr [url=mailto:33219947@163.com]33219947@163.com[/url]
IPTABLES防火墙设置:
加载SNAT模块
modprobe ip_tables
modprobe iptable_nat
modprobe iptable_filter
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
启用转发
echo 1 > /proc/sys/net/ipv4/ip_forward
把三个表清空,把自建的规则清空
iptables -F
iptables -X
iptables -F -t mangle
iptables -t mangle -X
iptables -F -t nat
iptables -t nat –X
设定INPUT、OUTPUT的默认策略为DROP,FORWARD为ACCEPT
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD ACCEPT
打开“回环”
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
在所有网卡上打开ping功能
iptables -A INPUT -i eth+ -p icmp --icmp-type 8 -j ACCEPT
iptables -A OUTPUT -o eth+ -p icmp --icmp-type 0 -j ACCEPT
打开22端口,允许远程管理(设定了很多的附加条件:管理机器IP必须是19,并且必须从eth0网卡进入)
iptables -A INPUT -i eth0 -s 192.168.42.19 -d 192.168.42.194 -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -o eth0 -d 192.168.42.19 -s 192.168.42.194 -p tcp --sport 22 -j ACCEPT
透明代理的关键,将客户端的请求NAT方式转给外网进行路由
iptables -t nat -A POSTROUTING -s 192.168.42.0/24 -o PPP0 -j MASQUERADE(如果是使用PPP0即ADSL上网,使用MASQUERADE配置)

iptables -t nat -A POSTROUTING -s 192.168.42.0/24 -o eth1 -j SNAT --to A.B.C.D
(如果是固定IP,使用SNAT配置)
透明代理的关键,将客户端请求是80端口的转向服务器3128端口即WEB请求通过SQUID出去
iptable s -t nat -A PREROUTING -s 192.168.42.0/24 -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
内网计算机的TCP 80请求的三次TCP握手(NEW为新请求,ESTABLISHED为确认请求)通过
iptables -A INPUT -i eth0 -s 192.168.42.0/24 -p tcp --dport 3128 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -d 192.168.42.0/24 -p tcp --sport 3128 -m state --state ESTABLISHED -j ACCEPT
服务器的非服务端口请求通过(内网PC将请求给到LINUX,LINUX把自己当成CLIENT用非服务端口向外网发送INTERNET请求后得到结果再回送给内网计算机)
      iptables -A INPUT -i ppp0 -p tcp --dport 32768:61000 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o ppp0 -p tcp --sport 32768:61000 -m state --state NEW,ESTABLISHED -j ACCEPT
开放DNS请求
iptables -A OUTPUT -o ppp0 -p udp --dport 53 -j ACCEPT
iptables -A INPUT -i ppp0 -p udp --sport 53 -j ACCEPT
日志管理
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
保存IPTABLES规则到文件
iptables-save > /etc/sysconfig/iptables.save
启动后自动加载IPTABLES规则文件
vim /etc/rc.local                                      编辑此文件在后面加上以下语句
adsl-start                                             启动ADSL连接
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables-restore < /etc/sysconfig/iptables.save
定制任务清空SQUID日志
使用crontab –e增加任务如下(每周将access.log和store.log删除,并重启一次服务) 
20 4 * * 0 rm -r -f /var/log/squid/access.log
20 4 * * 0 rm -r -f /var/log/squid/store.log

22 4 * * 0 service squid restart



本文转自gauyanm 51CTO博客,原文链接:http://blog.51cto.com/gauyanm/230096,如需转载请自行联系原作者

相关文章
|
28天前
|
监控 网络协议 安全
华为配置防火墙直连路由器出口实验
华为配置防火墙直连路由器出口实验
|
2月前
|
网络安全 数据中心
百度搜索:蓝易云【Proxmox软件防火墙的配置教程】
现在,你已经完成了Proxmox软件防火墙的配置。请确保你的防火墙规则设置正确,以保护你的Proxmox VE环境免受未经授权的访问和网络攻击。
127 5
|
6月前
|
开发框架 网络协议 Ubuntu
【Linux】配置网络和firewall防火墙(超详细介绍+实战)
【Linux】配置网络和firewall防火墙(超详细介绍+实战)
1275 0
|
9月前
|
网络协议 Linux 网络安全
Centos7 防火墙配置+端口设置
Centos7 防火墙配置+端口设置
208 0
Centos7 防火墙配置+端口设置
|
5月前
|
网络协议 Linux 网络安全
suse 12 配置ip,dns,网关,hostname,ssh以及关闭防火墙
suse 12 配置ip,dns,网关,hostname,ssh以及关闭防火墙
141 0
|
3月前
|
网络协议 Shell Linux
系统初始化shell,包括:挂载镜像、搭建yum、设置主机名及IP地址和主机名映射、配置动态IP、关闭防火墙和selinux
系统初始化shell,包括:挂载镜像、搭建yum、设置主机名及IP地址和主机名映射、配置动态IP、关闭防火墙和selinux
37 2
|
7月前
|
网络协议 Linux 网络安全
百度搜索:蓝易云【Linux 防火墙配置(iptables和firewalld)详细教程。】
以上只是一些常见的iptables和firewalld命令示例,你可以根据自己的需求进行修改和扩展。请注意,在配置防火墙时务必小心,确保不会阻塞你所需要的合法流量,并确保保存和加载配置以使其永久生效。另外,建议在配置防火墙之前备份现有的防火墙规则以防止意外情况发生。
572 2
|
7月前
|
安全 网络安全 网络虚拟化
有配置云防火墙,那么防火墙自然无法发挥其防护功能
有配置云防火墙,那么防火墙自然无法发挥其防护功能
43 2
|
7月前
|
网络协议 安全 Linux
如何在 CentOS 8 上安装和配置配置服务器防火墙 (CSF)?
如何在 CentOS 8 上安装和配置配置服务器防火墙 (CSF)?
157 0
如何在 CentOS 8 上安装和配置配置服务器防火墙 (CSF)?
|
8月前
|
运维 Shell 网络安全
【运维知识进阶篇】iptables防火墙详解(iptables执行过程+表与链概述+iptables命令参数+配置filter表规则+NAT表实现共享上网、端口转发、IP映射)(三)
【运维知识进阶篇】iptables防火墙详解(iptables执行过程+表与链概述+iptables命令参数+配置filter表规则+NAT表实现共享上网、端口转发、IP映射)(三)
1358 0