Chinaunix首页 | 论坛 | 博客
  • 博客访问: 77406
  • 博文数量: 32
  • 博客积分: 1440
  • 博客等级: 上尉
  • 技术积分: 375
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-25 16:03
文章分类

全部博文(32)

文章存档

2010年(12)

2008年(20)

我的朋友

分类: LINUX

2008-07-11 18:02:16

 
 
无线网关通过 web 认证上网 计费。

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

目的: 通过无线网络 让我们几个人通过web认证方式 上网。


第一步 安装 linux 安装的时候注意 内核包 和 软件编程包。(如果熟悉可以安装好后自己添加。)

调整好 网卡 使其能正常通讯。
网卡一共两块 连接了两个 网段 一块为 无线,另一块为ethernet 网卡。

make menuconfig 编译内核,添加一些需要的支持。

#
# Networking options
#
CONFIG_PACKET=y
# CONFIG_PACKET_MMAP is not set
# CONFIG_NETLINK is not set
CONFIG_NETFILTER=y
CONFIG_NETFILTER_DEBUG=y
CONFIG_FILTER=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
# CONFIG_IP_ADVANCED_ROUTER is not set
# CONFIG_IP_PNP is not set
# CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE is not set
# CONFIG_IP_MROUTE is not set
# CONFIG_INET_ECN is not set
# CONFIG_SYN_COOKIES is not set


# IP: Netfilter Configuration
#
CONFIG_IP_NF_CONNTRACK=y
CONFIG_IP_NF_FTP=y
CONFIG_IP_NF_IPTABLES=y
CONFIG_IP_NF_MATCH_LIMIT=y
CONFIG_IP_NF_MATCH_MAC=y
CONFIG_IP_NF_MATCH_MARK=y
CONFIG_IP_NF_MATCH_MULTIPORT=y
CONFIG_IP_NF_MATCH_TOS=y
CONFIG_IP_NF_MATCH_TCPMSS=y
CONFIG_IP_NF_MATCH_STATE=y
CONFIG_IP_NF_MATCH_UNCLEAN=y
CONFIG_IP_NF_MATCH_OWNER=y
CONFIG_IP_NF_FILTER=y
CONFIG_IP_NF_TARGET_REJECT=y
CONFIG_IP_NF_TARGET_MIRROR=y
CONFIG_IP_NF_NAT=y
CONFIG_IP_NF_NAT_NEEDED=y
CONFIG_IP_NF_TARGET_MASQUERADE=y
CONFIG_IP_NF_TARGET_REDIRECT=y
CONFIG_IP_NF_NAT_FTP=y
CONFIG_IP_NF_MANGLE=y
CONFIG_IP_NF_TARGET_TOS=y
CONFIG_IP_NF_TARGET_MARK=y
CONFIG_IP_NF_TARGET_LOG=y
CONFIG_IP_NF_TARGET_TCPMSS=y

之后 根据提示 完成内核编译

执行命令 echo 1 > /proc/sys/net/ipv4/ip_forward
添加转发功能。

编辑/etc/sysctl.conf 文件
添加 net.ipv4.ip_forward = 1

配置 iptables 脚本 实现NAT并且丢弃所有的 非法转发包。
运行

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A INPUT -i eth0 -m state --state NEW, INVALID -j DROP
iptables -A FORWARD -i eth0 -m state --state NEW, INVALID -j DROP
iptables -I FORWARD -o eth0 -j DROP
iptables -I FORWARD -s 192.168.0.0/24 -d 192.168.0.1 -j ACCEPT

根据实际需要更改

保存现有iptabies 状态
/etc/init.d/iptables save
/etc/init.d/iptables restart

当然也可以写一个脚本来 每次启动执行。

配置一个PAM 的iptables module

编译 .c 文件
gcc -fPIC -c pam_iptables.c
ld -x --shared -o pam_iptables.so pam_iptables.o

拷贝编译后的文件到/lib/security 里面

cp ./pam_iptables.so /lib/security/pam_iptables.so

安装脚本到 usr/local/auth-gw

mkdir /usr/local/auth-gw
cp insFwall /usr/local/auth-gw

编辑 /etc/pam.d/sshd 添加一行

vi ./ssd
session required /lib/security/pam_iptables.so



nocat 网关编译

nocat
GnuPG

首先编译 GnuPG 这个是比需要安装的。
之后编译 nocat

tar xvzf NocatAuth-0.82.tar.gz
软件默认目录是 /usr/local/nocat 如果要更改安装目录 请更改 Makefile 中的 INST_PATH

cd NoCatAuth-0.82
make 的时候要带参数
make gateway

编译好以后 进行配置编辑。
/usr/local/nocat/nocat.conf
都有详细说明解释 根据需要配置一下就好了。


运行
/usr/local/nocat/bin/gateway


dhcp配置

编辑 dhcp.conf
subnet 192.168.0.0 netmask 255.255.255.0 {
# --- default gateway
option routers 192.168.0.1;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255;

option domain-name-servers 192.168.0.1;
range 10.0.1.3 10.0.1.254;
option time-offset -5; # Eastern Standard Time

default-lease-time 21600;
max-lease-time 43200;

}

启动

/usr/sbin/dhcpd eth1

安装认证模块

认证有好多种,mysql freeradius ldap 文件方式

我选择的是 mysql 方式 只要在 nocatserv.conf 中简单配置就可以了。

首先 编译一个 认证模块 还是在 nocat 目录下 进行

make authserv
之后需要 make pgpkey 产生一个密匙

编辑 nocat.conf文件中的 auth方面
添加 cp 密匙到 指定目录
在 apache 中添加

vi httpd.conf
添加

Include /usr/local/nocat/etc/authserv.conf

启动 apache 一切 ok

进入

注册用户

apache 需要 ssl 模块支持

dns 没有写,自己去论坛中看一下吧。 如果不配置dns 可以dhcp的时候 自动分配一个。
 
原文出处:
阅读(3614) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~