标签: 防火墙

  • Linux防火墙Firestarter

    Firestarter是一款适合个人用户和小型企业的图形界面iptables配置工具,可以用来构建和维护防火墙,加固网络安全。对于与局域网共享唯一公共IP地址的NAT防火墙来说,这是一个不错的选择,并且在防火墙之后,它还有一些公共服务,或者一个分离的DMZ。它拥有打开或关闭防火墙的一些简易命令,可以查看状态视图和当前的活动。

     

    虽然Firestarter需要GTK并设计在GNOME下面运行,但是它同样也能够在KDE下面运行。

     

    主要特点

     

    适用于台式机,服务器和网关

    可共享Internet连接

    允许自定义入站和出站访问策略

    使用向导轻松配置防火墙

    设置和控制DHCP服务器

    实时展示外来入侵和其他防火墙事件,方便用户及时调整ICMP参数以帮助阻止DoS攻击

    查看活动的网络连接,包括任何进站和出站的访问必须经过防火墙

    安装

    # aptitude install firestarter

    当然,你也可以用Synaptic(新立得软件包管理器)来安装。

     

    主界面截图

    运行向导配置

     

     

     

    点击 FireStarter 主界面的菜单 防火墙 → 运行向导 可以进入 FireStarter 的运行向导界面。不要看到英文就担心,这里的关键信息文字已经被翻译成中文,很容易理解。按照向导的指示点击“前进”。

    第一步是选择连接到 Internet 的网络设备,一般来说由软件自动侦测的网络设备不会有错的。但这些网络设备至少需要是已经激活的网络连接(例如 eth0、eth1)等。

    第二步是选择连接到内部局域网的接口设备,一般来说用户可以相信软件的自动侦测功能。这里有个特别的选项用于设置是否实现共享 Internet 上网,即“Enable Internet connection sharing”,如果你要使内部局域网内的其他计算机可以共享这台主机上的 Internet 连接,那么请在这个选项旁边打个勾。

    第三步是选择是否立即启用防火墙。通常这个选项是打勾选择的。

    这时候点击“保存”,一切已经就绪。

     

    使用首选项

     

    和别的 Linux 软件一样,FireStarter 也有“首选项”使用户可以随时对该软件进行各方面的配置。你可以从左边的折叠菜单里选择 防火墙 / 网络配置,然后在右边的配置界面中一步完成。

     

    事实上这个界面囊括了运行向导中的三个步骤,你可以在这里分别选择连接到 Internet 的网络设备(Internet connected network device)和连接到内部局域网的网络设备(Local network connected device)。

    然后在“Enable Internet connection sharing”选项前面打个勾。在配置窗口的右下角点击“接受”按钮,配置就完成了。

     

    在“首选项”的接口(Interface)菜单中,在以下两个选项的前面都打个勾:

     

    启用托盘图标

    Minimize to tray on window close(当窗口关闭时最小化到系统托盘)

     

     

    在“首选项”的防火墙菜单中,在以下选项的前面打个勾:

     

    Start/restart firewall on program startup(启动时运行 FireStarter)

    Start/restart firewall on dial-out(如果你使用拨号网络的话,请开启本项)

    Start/restart firewall on DHCP lease renewal(从 DHCP 获得 IP 时自动运行)

    ICMP过滤,你可以根据自己的需要勾选。

    Tos过滤,也是根据自己的需要勾选。

    设置好了,在配置窗口的右下角点击“接受”按钮。

     

    更多配置功能

     

    FIreStarter 的界面非常直观。你可以很容易了解和上手使用其中的各种功能。

     

    你可以在主界面中见到“状态”“事件”“策略”三个选项卡。分别点击,可以看到 FireStarter 防火墙当前的运行状态、被过滤连接的事件日志(你可以随时清空或者保存这些日志)、在“策略”中随时添加删除自定义的防火墙规则以实现更复杂多样的准入和过滤设置。下图为查看事件,被过滤的连接:

    自定义防火墙规则,点击策略选项:

    新建规则:向局域网内其他计算机开放 https 安全浏览服务的端口

    术语

     

    默认策略:在默认情况下,firestarter实现了用户友好的策略,该策略能够保护防火墙主机和客户端系统。在一般情况下,它允许出站流量,并屏蔽那些并不是用来响应出站流量的入站流量。具体说来,默认的firestarter策略如下。

    屏蔽新的来自因特网、目的地是防火墙主机或客户端系统的入站连接。

    允许那些用来响应由防火墙主机或客户端系统发起的到Internet的连接而发送的入站分组。

    允许防火墙主机建立连接。

    允许客户端系统建立到因特网的连接。

    不允许客户端系统建立到防火墙主机的连接。

    在使用防火墙向导设置firestarter之后,就能够修改默认策略以满足你的需要。

    (防火墙)主机(系统)——运行着防火墙的系统。

    客户端系统——与防火墙主机位于同一个局域网的系统,它们离开局域网的分组以及(特别是从因特网)进入局域网的分组都要经过防火墙主机。

    策略——防火墙应用的规则集。

    规则——一条语句,用来指定当防火墙在它的网络接口中接收到来自指定系统的指定类型的分组时执行什么动作。

    连接——在TCP中,连接指的是两个系统交换的数据所经过的路径。客户端系统通过向服务器系统发送一个SYN(同步)分组打开一条连接。服务器向该客户端发回一个ACK(应答)分组,然后两个系统交换数据。客户端用一个SYN分组将连接关闭。虽然UDP的工作方式有所不同(因为它没有连接的概念),但是就这里的讨论而言,UDP连接这个概念是合适的。

    入站连接——这些连接包括来自因特网的连接以及将防火墙主机作为目的地的客户端系统。

    出站连接——这些连接包括来自防火墙主机的连接以及将因特网作为目的地的客户端系统。

  • FreeBSD防火墙Firewall(ipfw)

    先將kernel複製出來

    mkdir /usr/local/etc/FreeBSD

    cd /usr/src/sys/i386/conf

    cp GENERIC /usr/local/etc/FreeBSD/MYKERNEL

    ln -s /usr/local/etc/FreeBSD/MYKERNEL

    vi /usr/local/etc/FreeBSD/MYKERNEL

    加入

    options IPFIREWALL #firewall

    options IPFIREWALL_VERBOSE #enable logging to syslogd(8)

    options IPFIREWALL_FORWARD #packet destination changes

    options IPFIREWALL_DEFAULT_TO_ACCEPT #allow everything by default

    cd /usr/src;make kernel

    完成後開始設定

    vi /etc/rc.conf

    加入

    #firewall

    firewall_enable=”YES”

    firewall_logging=”YES”

    firewall_script=”/etc/rc.firewall”

    vi /etc/rc.firewall

    將內容全部刪除改為

    #!/bin/sh

    fwcmd=”/sbin/ipfw”

    Trust_IP1=”127.0.0.1″ #這裡要換成server本身的IP

    Trust_IP2=”120.119.1.0/24″ #可通過的網段

    UnTrust_IP1=”192.83.191.0/24″

    Allowed_TCP_In_1=”22,25,53,80,443″

    #you want to open port

    Traceroute=”33433-33499″

    Allowed_UDP_Out=”20,21,53,113″

    Allowed_UDP_In=”20,21,53,113″

    Allowed_UDP_ftp_Out=”65000-65500″

    Allowed_UDP_ftp_In=”65000-65500″

    Allowed_TCP_ftp_Out=”65000-65500″

    Allowed_TCP_ftp_In=”65000-65500″

    #ipfw [add/del/fwd] [serial] [allow/deny] [protocol] [from] [ports] to [destation] [ports]

    $fwcmd -f flush

    #flush ipfw tables

    $fwcmd add 1 allow ipv6 from any to any

    $fwcmd add 00010 allow tcp from me to any setup keep-state

    $fwcmd add 00021 check-state

    $fwcmd add 00030 allow ip from ${Trust_IP1} to any

    $fwcmd add 00031 allow ip from ${Trust_IP2} to any

    $fwcmd add 00060 allow icmp from any to any

    $fwcmd add 00061 allow udp from any to any $Traceroute

    $fwcmd add 00120 deny ip from ${UnTrust_IP1} to me

    $fwcmd add 00121 deny tcp from ${UnTrust_IP1} to me 25

    $fwcmd add 56000 allow tcp from any to any ${Allowed_TCP_In_1}

    $fwcmd add 56003 allow udp from any ${Allowed_UDP_In} to any

    $fwcmd add 56004 allow udp from any to any ${Allowed_UDP_ftp_Out}

    $fwcmd add 56005 allow tcp from any to any ${Allowed_TCP_ftp_Out}

    $fwcmd add 65534 deny log ip from any to any

    #deny all ip

    $fwcmd zero

    #clean counter

    sh /etc/rc.firewall &

    reboot