用一台linux主机做iptables防火墙推荐

一台linux主机干这么多活:iptables+DHCP+squid+samba最近公司扩建了一个新的办公区,规模也就100人左右。领导有几个要求:1:不允许坐席上网,但是允许坐席上几个固定的网站(比如行政区划网)。2:允许办公室的后勤人员上网。3:允许坐席拨VPN连接总部腾讯通。公司拉的10M光纤,从光电设备出来后没有路由器。我做了两个方案: 1:利用squid做个透明代理,然后做个DHCP分配IP地址给坐席。 squid负责控制端口跟网站 2:利用linux自带的iptables作为防火墙,控制端口,所有坐席的IP的包直接DROP。 利用squid给坐席代理,简单的那种,用IE上网。后勤部门则有iptables直接开放。 利用iptables开放VPN端口给所有IP地址,这样,公司里的任意一台电脑都能拨VPN了。 后来想了想,还是第二种方案比较好。于是就做了第二个方案: 由于公司的设备有限,只能拿有限的资源来干最多的活(相信大多数公司都是这样的)找了个台式机,配置一般般,买了块100M网卡。 安装linux,我用的是CentOS5.5 把etho第一块网卡配上内网的IP地址:10.2.0.1子网掩码:255.255.255.0 网关:10.2.0.1第二块网卡:eth1:192.168.0.9(假设的外网IP地址)子网掩码:255.255.255.0 网关:192.168.0.1(假设的网关,真是网关跟IP地址跟运营商要就OK了)DNS:电信的填电信的,网通的填网通的不做解释了。 输入route命令,查看下路由信息,查看default gateway是多少,是不是外网的IP地址,如果是的话那就ok了,不是的话就设置成外网的网关,不然是出不去的。 正好你的机器就你内网的网关也就是10.2.0.1所以我感觉内网gateway可以忽略。 都设置好以后 用这台机器分别ping 外网和内网网段,看看能不能ping通。都ping同了,在看看坐席上的电脑(随便找个,设置个10.2.0.*锻的IP,netmask 255.255.255.0, gateway 10.2.0.1)能不能ping通10.2.0.1——-都通了,就开始设置防火墙规则。—- 首先开启内核转发的功能:方法有好几种1:echo “echo 1 /proc/sys/net/ipv4/ip_forward” /etc/rc.d/rc.local–后面这个是加入到开机启动,因为重启后ip_forward这个文件自动会变成0,不是1 2:vi /etc/sysctl.conf 把net.ipv4.ip_forward =1 –把0改成1 然后运行 sysctl.conf -p立即生效 —— 清空防火墙规则iptables -Fiptables -Xiptables -Z——— 设置链的默认规则iptables -P INPUT DROPiptables -P OUTPUT ACCEPTiptables -P FORWARD DROP——— 一般防火墙都会开下面两条规则iptables -A INPUT -i lo -j ACCEPT —回环端口打开iptables -AFORWARD -m state –state RELATED,ESTABLISHED -j ACCEPT—已连接和已配置的规则允许iptables -A POSTROUTING -s 10.2.0.0/255.255.0.0 -o eth1 -j SNAT –to-source 192.168.0.9让内网的用户通过192.168.0.9出去。这样这台电脑就相当于一个路由器了,而且有个强大的iptables防火墙。我是用FORWARD链控制内网上网的,例如:办公室电脑IP地址为10.2.0.3那就添加规则:iptables -A FORWARD -s 10.2.0.3 -j ACCEPT这样这台电脑就可以上网了。———— 再装上DHCP给坐席分配IP地址。挂载光盘 mount /dev/cdrom /mnt到mnt目录下找到挂载的光盘,找到dhcp安装包,直接用rpm安装就ok了。初级的dhcp的配置很简单,只要分配个IP地址,DNS就可以了。—————- 安装代理软件squid,也是找光盘的rpm包,我装的是64为的,把那两个64位的包装上就ok了。这里说一下,为什么要用squid而不是直接用防火墙打开某个网站的访问权限?原因是这样的: 假如:我用防火墙开放了EMS的官方网站,我只需要在iptables上配上一条规则就可以访问了 iptables -A FORWARD -s 10.2.0.0/16 -d 0.0.0.0(pingEMS得到的IP地址) -j ACCEPT 就可以了,坐席访问EMS一点问题也没有。但是有的网站挂的广告,你的IP地址可能就没有包括连接广告的IP,这样网页打开速度会非常满,举个例子:www.xzqh.org,这个网站就是,挂了N多谷歌广告。————- 安装完后在/etc/squid/squid.conf里配置相关信息。 比如设置内存大小,缓存大小,缓存位置,acl访问规则控制http_port 3128 //设置监听的IP与端口号cache_mem 64 MB //设置内存缓冲的大小cache_dir ufs /var/spool/squid 2000 16 256 //设置硬盘缓冲大小dns_nameservers 192.168.0.254? //设置DNS服务器地址,一般可以不设置,默认使用服务器自己设置的dnscache_access_log /var/log/squid/access.log //设置访问日志文件cache_log /var/log/squid/cache.log //设置缓存日志文件cache_store_log /var/log/squid/store.log //设置存储缓存对象的状态记录文件visible_hostnamesquid //设置squid主机名称cache_mgrit@test.com//设置管理员邮箱acl all src 0.0.0.0/0.0.0.0 //设置访问控制列表比如要让坐席访问EMS网站就这样写acl EMS(–自己起名字)dstdomain .ems.com.cn–注意EMS前有个点http_access allow EMS(对应上面起的名字)重启squid就可以访问EMS网站了,当然要在IE或者其他浏览器上设置代理才行http_access allow all //设置访问权限这样,squid一般代理就做好了,如果你需要使用透明代理,那就另找资料看看。他们需要个共享服务器,直接在这上面配了个简单的samba~唉累死我了。终于折腾完了。其实文件服务器用windows的就非常不错,可惜,我还是相信linux的稳定性。这样我就少网这边跑两趟,倒是剩了不少事。文中若有不对的地方,欢迎指出! 失败是什么?没有什么,只是更走近成功一步;

用一台linux主机做iptables防火墙推荐

相关文章:

你感兴趣的文章:

标签云: