iptables与squid
一:iptables
netfilter/iptables可以作为网络防火墙,也可以作为个人电脑防火墙,具有很强大的功能。工作在网络层,能很好的适用于各种类型的网络服务。其中netfilter是一个架构,实现防火墙功能,iptables为用户提供了netfilter管理工具。
iptables有五条规则链,PREROUTING,FORWARD,POSTROUTING,INPUT,OUTPUT。将规则放入某个链的适当位置后,就可以开始进行真正的网络信息包过滤工作。
iptables有三个规则表,filter:INPUT,FORWARD,OUTPUT
net: PREROUTING,POSTROUTING,OUTPUT
mangle:PREROUTING,POSTROUTING,INPUT,OUTPUT,FORWARD.
主机的安全性主要集中在filter表中的INPUT,OUTPUT规则链。
(1)iptables的基本管理,
iptables的软件包组成,iptables-1.2.11-3.1.RHEL4
iptables 是主要的管理命令,iptables-save,iptables-restore是辅助工具,可以进行保存和恢复。
停止与启动跟其他的网络服务一样。
相关命令:
查看:iptables [-t table] -L
保存:iptables-save > ipt.v1.1
恢复:iptables-restore < ipt.v1.1
保存到/etc/sysconfig/iptables service iptables save
也可以使用配置工具:system-config-securitylevel-tui
清除规则表中的所有规则链的规则,iptables -F ;iptables -t nat -F
清除规则表中的指定的规则链,iptables -X
以上两个命令常用来在重新设置防火墙规则之前对防火墙进行初始化的工作。
添加规则:-A用于在规则链的末尾添加规则,-i选项用于指定数据包流入的网络接口,-j用于设置对数据包的处理。-D 用于删除指定规则链中的规则。
(2)设置实例:把linux作为网关使用,需要完成数据包的伪装过程。
echo '1' > /proc/sys/net/ipv4/ip_forward
modprobe ip_tables
modprobe ip_nat_ftp
modprobe ip_nat_irc
modprobe ip_conntrack_ftp
modprobe ip_conntrack_irc
iptables -F
iptables -X
iptables -Z
iptables -P INPUT DROP
iptables -t nat -A POSTRTOUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
之后就可以在客户机上验正是否可以上网了。
一:iptables
netfilter/iptables可以作为网络防火墙,也可以作为个人电脑防火墙,具有很强大的功能。工作在网络层,能很好的适用于各种类型的网络服务。其中netfilter是一个架构,实现防火墙功能,iptables为用户提供了netfilter管理工具。
iptables有五条规则链,PREROUTING,FORWARD,POSTROUTING,INPUT,OUTPUT。将规则放入某个链的适当位置后,就可以开始进行真正的网络信息包过滤工作。
iptables有三个规则表,filter:INPUT,FORWARD,OUTPUT
net: PREROUTING,POSTROUTING,OUTPUT
mangle:PREROUTING,POSTROUTING,INPUT,OUTPUT,FORWARD.
主机的安全性主要集中在filter表中的INPUT,OUTPUT规则链。
(1)iptables的基本管理,
iptables的软件包组成,iptables-1.2.11-3.1.RHEL4
iptables 是主要的管理命令,iptables-save,iptables-restore是辅助工具,可以进行保存和恢复。
停止与启动跟其他的网络服务一样。
相关命令:
查看:iptables [-t table] -L
保存:iptables-save > ipt.v1.1
恢复:iptables-restore < ipt.v1.1
保存到/etc/sysconfig/iptables service iptables save
也可以使用配置工具:system-config-securitylevel-tui
清除规则表中的所有规则链的规则,iptables -F ;iptables -t nat -F
清除规则表中的指定的规则链,iptables -X
以上两个命令常用来在重新设置防火墙规则之前对防火墙进行初始化的工作。
添加规则:-A用于在规则链的末尾添加规则,-i选项用于指定数据包流入的网络接口,-j用于设置对数据包的处理。-D 用于删除指定规则链中的规则。
(2)设置实例:把linux作为网关使用,需要完成数据包的伪装过程。
echo '1' > /proc/sys/net/ipv4/ip_forward
modprobe ip_tables
modprobe ip_nat_ftp
modprobe ip_nat_irc
modprobe ip_conntrack_ftp
modprobe ip_conntrack_irc
iptables -F
iptables -X
iptables -Z
iptables -P INPUT DROP
iptables -t nat -A POSTRTOUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
之后就可以在客户机上验正是否可以上网了。
二:squid
所需的软件包:squid-2.5.STABLE6-3
1,确认当前主机有完整的域名
echo ‘192.168.1.1 www.test.com www’ >> /etc/hosts
2,squid -z 进行服务器的初始化工作。
3,配置文件在/etc/squid中的squid.con文件。
修改第54行:# http_port 3128为 http_port 3128 8080
修改第481行:# cache_mem 8 MB为cache_mem 64 MB
第639行为squid服务器工作目录
访问控制由http_access和acl完成。
http_access用于设置允许或拒绝指定名称的访问控制列表ACL对像访问squid服务器。
在squid配置文件1801行下面添加一行:acl clients src 192.168.1.0/24
在1864行下面添加一行:http_access allow clients
重新启动:servivce squid restart 即可
所需的软件包:squid-2.5.STABLE6-3
1,确认当前主机有完整的域名
echo ‘192.168.1.1 www.test.com www’ >> /etc/hosts
2,squid -z 进行服务器的初始化工作。
3,配置文件在/etc/squid中的squid.con文件。
修改第54行:# http_port 3128为 http_port 3128 8080
修改第481行:# cache_mem 8 MB为cache_mem 64 MB
第639行为squid服务器工作目录
访问控制由http_access和acl完成。
http_access用于设置允许或拒绝指定名称的访问控制列表ACL对像访问squid服务器。
在squid配置文件1801行下面添加一行:acl clients src 192.168.1.0/24
在1864行下面添加一行:http_access allow clients
重新启动:servivce squid restart 即可
三:配置透明代理服务器
1.在/etc/squid/squid.conf中添加以一配置行:
http_accel_host virtual
http_accel_port 80
http_accel_with_proxy on
http_accel_user_host_header on
重新启动服务,service squid reload
2.修改防火墙配置脚本。
#!/bin/bash
echo '1' > /proc/sys/net/ipv4/ip_forward
modprobe ip_tables
modprobe ip_nat_ftp
modprobe ip_nat_irc
modprobe ip_conntrack_ftp
modprobe ip_conntrack_irc
iptables -F
iptables -X
iptables -Z
iptables -t nat -F
iptables -t nat -X
iptables -t nat -Z
iptables -P INPUT ACCEPT
iptables -t nat -A PREROUTING -s 192.168.1.0/24 -p tcp --dport 80 -j REDIRECT --to-ports 3128
iptables -t nat -A POSTRTOUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
执行脚本后,linux主机将具有透明代理功能,如果来自内部网络中的数据包是访问WWW服务的,它将重定向到squid服务器提供代理服务,如果数据包访问的是非WWW服务,则进行ip伪装处理。
1.在/etc/squid/squid.conf中添加以一配置行:
http_accel_host virtual
http_accel_port 80
http_accel_with_proxy on
http_accel_user_host_header on
重新启动服务,service squid reload
2.修改防火墙配置脚本。
#!/bin/bash
echo '1' > /proc/sys/net/ipv4/ip_forward
modprobe ip_tables
modprobe ip_nat_ftp
modprobe ip_nat_irc
modprobe ip_conntrack_ftp
modprobe ip_conntrack_irc
iptables -F
iptables -X
iptables -Z
iptables -t nat -F
iptables -t nat -X
iptables -t nat -Z
iptables -P INPUT ACCEPT
iptables -t nat -A PREROUTING -s 192.168.1.0/24 -p tcp --dport 80 -j REDIRECT --to-ports 3128
iptables -t nat -A POSTRTOUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
执行脚本后,linux主机将具有透明代理功能,如果来自内部网络中的数据包是访问WWW服务的,它将重定向到squid服务器提供代理服务,如果数据包访问的是非WWW服务,则进行ip伪装处理。
四:客户机的设置
在internet选项听连接选项中局域网设置的代理服务器中设置代理服务器地址为squid服务器的IP地址,端口为3128,之后就可以访问网络!
在internet选项听连接选项中局域网设置的代理服务器中设置代理服务器地址为squid服务器的IP地址,端口为3128,之后就可以访问网络!