发新话题
 搜藏 打印 该页面添加到 Mister Wong

使用 Linux 做无线AP(三)

本帖已经被作者加入个人空间

使用 Linux 做无线AP(三)

2.对于小型的办公环境,较之家用的AP(接入点),我们不仅需要基本的无线接入,更需要 安全,稳定,自动 化的网络环境 .所以无线AP 应该要集成以下3种服务:

                        (1)    DHCP服务,为无线客户端自动分配ip,

                        (2)   防火墙, 为无线网络提供保护

                     3)代理服务,无线客户端(可控制地)接入internet

基于以上的考虑,决定使用netfilter/iptablesNAT 来实现数据转发,同时对数据包在网络层进行过滤。



(1).首先配制DHCP服务器,DHCP软件安装可以用CentOS4.2安装盘自带的rpm包,也可以到 www.irc.org 下载源码包编译,安装。这里不再重复。



安装完毕后,要在 /etc目录下编写配制文件 dhcpd.conf

[root@Jack ~]# vi /etc/dhcpd.conf

DHCPDARGS=ath0;                                  //dhcpd进程监听 ath0端口

option routers 192.168.0.1;                         //默认网关

option broadcast-address 192.168.0.255;     //对客户端的广播地址范围

option subnet-mask 255.255.255.0;             //客户端的子网掩玛



option domain-name "Jack.org";                 // 客户端所在域的名称

option domain-name-servers 211.167.97.67, 211.167.97.68;     //域名服务器地址

ddns-update-style ad-hoc;                       //配制DHCP-DNS 互动更新模式





default-lease-time 21600;                      //默认地址租期时间

max-lease-time 43200;                          //最长地址租期时间



subnet 192.168.0.0 netmask 255.255.255.0 {                    //可分配的地址池

range 192.168.0.60 192.168.0.90;

}



配制完毕后, shitf : wq存盘退出

启动 DHCP

[root@Jack ~]# /etc/init.d/dhcpd start

Starting dhcpd:                                            [  OK  ]





查看客户机 ibookG4 TCP/IP信息,看到已经得到 IP 地址:192.168.0.90/24

DHCP配制成功。客户端已经可以自动接入无线网络。

( 屏幕截图:显示airport的当前状态)









  2)然后开始使用netfilter/iptables做数据包转发及过滤



   2.42 .6内核的 linux ,采用netfilter 模块做过滤引擎,其命令行工具为iptables , 较之2.2内核的ipchains,功能上有很大的提升。由过去的3条链(input, output, forward), 变成3张表(filter, nat, mangel), 尤其是正确地实现了NAT (网络地址转换)---这正也是做 Linux AP的核心所在。

                                       

                                               Linux AP数据包转发原理示意图

                                                            

  Incoming                                                                                  Outgoing

                    ----->  [Routing] ---- >        FORWARD      ----- >  

                               [Decision]               

                                     |                                                                 ^

                                     |                                                                  |

                                    V                                                                 |

                                 

                                INPUT                                                      OUTPUT

                                     |                                                                 |

                                      ----------- > Local Process -----------------



数据包到达 Linux APNIC时,先做路由决策(由nat表完成):需要转发的数据 ,做 IP地址翻译 , SNAT(从无线局域网络到公网),或 DANT(从公网到无线局域网 ),然后由filter表的FORWARD 完成包的转发和过滤。而流入/流出Linux AP本地的数据包由filter表的INPUTOUTPUT 链完成。



以下是我的iptables的编写过程:

vi  /usr/local/bin/fwsh



CODE:

echo " Starting firewall now ......"

echo '1'>/proc/sys/net/ipv4/ip_forward       //打开内核的数据包转发功能



modprobe ip_nat_ftp                //加载内核模块,支持ftp服务的nat和状态检测功能

modprobe  ip_conntrack

modprobe  ip_conntrack_ftp



iptables -t filter -F                  //清空filter nat表的规则

iptables -t nat –F

iptables -t filter -P FORWARD  DROP     //设置FORWARD链的默认策略为DROP     



iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

// eth0接口做SNATeth0 是动态ip,静态ip均可)

Iptables -t nat -A PREROUTING  -i ath0 -p tcp -s 192.168.0.0/24 --dport 80 -j REDIRECT  --to-ports 3128  //80端口的web数据走代理服务器squid





// Linux AP本地的SSH,PROXY, XWINDOW服务对公网阻断

iptables -A INPUT -p tcp  --destination-port 22 -i eth0  -j DROP     

iptables -A INPUT -p tcp  --destination-port 3128 -i eth0 –j DROP

iptables -A INPUT -p tcp  --destination-port 6000:6010 -i eth0  -j DROP

iptables -A INPUT -p icmp -f -j DROP   //过滤icmp碎片





// 允许公网的 ftp,mail,DNS进入无线局域网

iptables -A FORWARD –s 0/0 –d 192.168.0.0/24  -p tcp –m multiport  --sport  20,21,25  –j ACCEPT

iptables -A FORWARD –s 0/0 –d 192.168.0.0/24 –p udp –sport 53  -j ACCEPT

iptables –A FORWARD –s 0/0 –d 192.168.0.0/24 –p icmp  !  -f  -j ACCEPT  //过滤icmp碎片

//使用状态检测功能,允许无线局域网相关和建立的数据包转发

iptables -A FORWARD -s 0/0 -d 192.168.0.0/24  -m state --state RELATED,ESTABLISHED -j ACCEPT



shitf  :wq存盘退出

chmod 0755 /usr/local/bin/fwsh,成为可执行程序。

执行防火墙

[root@Jack ~]#fwsh

    Starting firewall now ......

防火墙配制完毕
附件:

本文由hew 发布于Linuxsky 论坛,网址:http://bbs.linuxsky.org/thread-3160-1-1.html

相关主题
你的鼓励,我的动力.
做人厚道,看贴回贴.
my linux blog

TOP

发新话题