Shorewall的单用户简单设置

Why did this:因为我的机器配置不高firestarter也太不稳定在我的breezy上老崩溃新手指南上面的shorewall不是针对单机用户语法规则shorewall有所改变

本机情况电信ADSLISP动态分配ip单机单网卡连接adsl modem(PPPoE)上网全新安装shorewall

一linux防火墙基本知识

除了软件和硬件防火墙的分类外如果以封包抵挡机制来分类大概可以分为proxy和IP Filter 基本上linux的IP Filter有两个最基本的防火墙机制分别是Ip Filter和TCP_Wrapper 这里我们谈IP Filter因为shorewall可以通过IPTABLES简单设置IP Filter的规则 或者说如果你不麻烦iptables的语法规则或者可以自己写一些shell程序批处理iptables指令完全可以不安装shorewall或者其他防火墙因为linux下的防火墙基本都是通过设置iptables的规则完成的

首先确定(uname指令确定核心lsmod确定当前载入模块如果是ipchains请执行rmmod ipchains 然后modprobe ip_tables即可将iptables装入现在使用的模块)你的内核是采用哪种抵挡机制是不是我们需要的iptables(Ubuntu的是iptables)   Linux Kernel Version 使用 ipfwadm   Linux Kernel Version 使用的是 ipchains   Linux Kernel Version 主要是使用 iptables 但为了兼容 ipchains 因此Version 版本中同时将 ipchains 编译成模组供使用好让使用者仍然可以使用來自 版的 ipchains 的防火墙规则 --------------- 然后执行下面代码来观看现在的防火墙规则(联网情况下root用户) $ sudo iptables L n (L的含义是列出目前的 table 的规则n含义是不进行IP与HOSTNAME的相互转换这样可以加快显示速度) $ sudo iptables t nat L n (t nat的含义是显示nat的filteriptables会有nat tables和filter tables不加参数为filter有兴趣的兄弟可以参看其他关于iptables的介绍介于太长此处不做介绍) --------------- 接下来我们就要清除掉现在所有的防火墙规则(联网情况下)

root@*** root]# /sbin/iptables [t tables] [FXZ] 其中参数含义为 F 清除所以已经建立的规则 X 杀掉所有使用者建立的 chain ( tables ) Z 把所有的 chain 的计数和流量统计归为 範例 [root@*** root]# /sbin/iptables F [root@*** root]# /sbin/iptables X [root@*** root]# /sbin/iptables Z [root@*** root]# /sbin/iptables t nat F ---------------

二具体安装Shorewall

下载shorewall最新的稳定版本(tarball安装即为源代码make安装确定你的机器跟随新手指南装了基本编译工具)由于新立得里面还是多的版本在官方网站看的是的介绍所以安装而且安装很简单不会出现其他依赖性问题

------------   下载地址http://wwwshorewallnet/pub/shorewall//shorewall/

安装前需要iptables(前面提到的)+iproute (检查这个的指令是sudo Which ip )(基本上ubuntu都具备了所以可以不考虑)

尽量不要在ms-windows里面编辑shorewall的配置文件因为ms和lin的文字排版不太一样比如回车

cd到你解压之后的目录然后/installsh 回车看见没有错误信息就OK了但是此刻shorewall没有启动等会儿我们来启动默认安装之后就是每次启动就自动启动防火墙(设置文件在 /etc/shorewall/shorewallconf找到STARTUP_ENABLED=Yes yes代表开机自动启动!)

安装之后所有文件分别位于/usr/shorewall 和/sbin 和 /etc/shorewall我们需要注意的就是/etc/shorewall这里是配置文件(个人建议对于一些重要的经常不需要变动的文件可以将隐藏属性chattr +i 上去具体指令信息请找男人man )

查看安装后的版本sudo shorewall version 可以得到的消息   三配置Shorewall

详细的官方文档位于http://wwwshorewallnet/Documentationhtm shorewall的文件很多但是一般用户用到的不多特别是我们这种单机拨号的用户 -------------

首先配置/etc/shorewall/zones文件浏览至最后添加代码如下 #ZONE TYPE OPTIONS fw firewall #文件原本存在的这行fw为防火墙本身必须 net ipv loc ipv #LAST LINE DO NOT REMOVE

其中关于各个typeoptions的解释该配置文件前面部分有大家如果严格要求可以参照文件配置一般用户配置成上面就可以了

配置/etc/shorewall/interfaces  (这里用到的ZONE的名字是在上个文件/etc/shorewall/zones中定义的名字所以顺序不要弄错了这种zone名字的方法是比较简单的推荐这种方法) #ZONE INTERFACE BROADCAST OPTIONS net ppp #LAST LINE DO NOT REMOVE

同样配置文件对各个参数进行了详尽的解释 --------------

配置/etc/shorewall/rules 和 /etc/shorewall/policy

关系 policy是定义默认的策略给所有的连接(从一个zone到另外一个zone 比如我们定义的从loc到net) rules是定义特殊的防火墙规则即是policy里面没有的 先后条件任何连接防火墙先检查rules如果rule中没有关于这个连接要求的描述就调用policy的默认配置

/etc/shorewall/policy的配置如下(默认) #SOURCE ZONE DESTINATION ZONE POLICY LOG LIMIT:BURST # LEVEL loc net ACCEPT net all DROP info all all REJECT info #LAST LINE DO NOT REMOVE 我一般改为下面省得每次开端口麻烦 fw net ACCEPT net all DROP info all all REJECT info 上面的含义是允许本机所有连接网络的要求网络连接到我的所有zones(比如防火墙fw本地loc)都丢弃该连接要求的tcp封包并记入日志拒绝所有连接要求并记入日志(当连接被拒绝了防火墙就会返回一个RST (加入协议是TCP) 或者一个 ICMP端口不能到达的包给其他协议)

-------------

/etc/shorewall/rules配置如下(一般不需要太大配置除非你的机器运行了比如想web服务器之类的东西需要端口开放时候再来配置该文件)

#

这里我选择保持默认就是没有定义的东西如果你以后想开什么端口就自己在这个上面写就是了关于各个选项配置文件里面有很详细的描述比如 ACCEPT net loc icmp echorequest就是让网络可以ping到本机的设置你以后要开ftpbtpop等端口的时候自己可以在这个上面设置!

---------------   四启动shorewall sudo shorewall start (注意再建立一个/var/lock/subsys这个文件夹程序需要但是ubuntu没有该目录所以要自己建立!不然会有错误信息提示) 或者重新启动计算机就自动启动了修改/etc/default/shorewall的文件把starup改为即可(一般情况下如果你的运气实在不好就请自己把该程序ln一个连接到rcSd中)

每一天都是一个阶梯,是向既定目标迈进的新的一步。

Shorewall的单用户简单设置

相关文章:

你感兴趣的文章:

标签云: