CoovaChilli is an access controller
It provides a captive portal / walled garden environment. Coova builds on the popular features of the now defunct Chillispot. WWW: http://www.coova.org/ PR: 130357 Submitted by: Sevan Janiyan <venture37 at geeklan dot co dot uk>
This commit is contained in:
parent
7ae323c5c5
commit
eec0520a03
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=226517
@ -47,6 +47,7 @@
|
||||
SUBDIR += ciscoconf
|
||||
SUBDIR += clog
|
||||
SUBDIR += collectd
|
||||
SUBDIR += coovachilli
|
||||
SUBDIR += confregdecode
|
||||
SUBDIR += cowpatty
|
||||
SUBDIR += cricket
|
||||
|
40
net-mgmt/coovachilli/Makefile
Normal file
40
net-mgmt/coovachilli/Makefile
Normal file
@ -0,0 +1,40 @@
|
||||
# New ports collection makefile for: CoovaChilli
|
||||
# Date created: 24 December 2006
|
||||
# Whom: Sevan Janiyan <venture37@geeklan.co.uk>
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
|
||||
PORTNAME= coovachilli
|
||||
PORTVERSION= 1.0.12
|
||||
CATEGORIES= net-mgmt
|
||||
MASTER_SITES= http://ap.coova.org/chilli/ \
|
||||
http://www.geeklan.co.uk/files/ \
|
||||
http://www.venture37.com/files/
|
||||
DISTNAME= coova-chilli-${PORTVERSION}
|
||||
|
||||
MAINTAINER= venture37@geeklan.co.uk
|
||||
COMMENT= An access controller for wired & wireless clients
|
||||
|
||||
CONFLICTS= chillispot-[0-9]*
|
||||
|
||||
MAN1= chilli_query.1 chilli_radconfig.1 chilli_response.1
|
||||
MAN5= chilli.conf.5 chilli-radius.5
|
||||
MAN8= chilli.8
|
||||
|
||||
CONFIGURE_ARGS=-localstatedir=/var
|
||||
GNU_CONFIGURE= yes
|
||||
USE_LDCONFIG= yes
|
||||
USE_RC_SUBR= coovachilli
|
||||
USE_AUTOTOOLS= automake:19
|
||||
|
||||
post-install:
|
||||
.if !defined(NOPORTEXAMPLES)
|
||||
${MKDIR} ${EXAMPLESDIR}
|
||||
${INSTALL_MAN} ${FILESDIR}/main.conf.sample ${EXAMPLESDIR}
|
||||
${INSTALL_MAN} ${FILESDIR}/pf.conf.sample ${EXAMPLESDIR}
|
||||
${INSTALL_MAN} ${FILESDIR}/ipfw-config.sample ${EXAMPLESDIR}
|
||||
.endif
|
||||
@${CAT} ${PKGMESSAGE}
|
||||
|
||||
.include <bsd.port.mk>
|
3
net-mgmt/coovachilli/distinfo
Normal file
3
net-mgmt/coovachilli/distinfo
Normal file
@ -0,0 +1,3 @@
|
||||
MD5 (coova-chilli-1.0.12.tar.gz) = 365f46fe79b3d76432544d6bc5f37939
|
||||
SHA256 (coova-chilli-1.0.12.tar.gz) = fcd16fc043351e39ef9fc929f3ae83a838305ee14c173c444b8655d415baca68
|
||||
SIZE (coova-chilli-1.0.12.tar.gz) = 552537
|
25
net-mgmt/coovachilli/files/coovachilli.in
Normal file
25
net-mgmt/coovachilli/files/coovachilli.in
Normal file
@ -0,0 +1,25 @@
|
||||
#!/bin/sh
|
||||
|
||||
# PROVIDE: coovachilli
|
||||
# REQUIRE: netif
|
||||
# BEFORE: pf ipfw
|
||||
# KEYWORD: nojail
|
||||
#
|
||||
# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
|
||||
# to enable this service:
|
||||
#
|
||||
# coovachilli_enable (bool): Set to NO by default.
|
||||
# Set it to YES to enable coova-chilli.
|
||||
|
||||
|
||||
. %%RC_SUBR%%
|
||||
|
||||
name=coovachilli
|
||||
rcvar=coovachilli_enable
|
||||
|
||||
command=%%PREFIX%%/sbin/chilli
|
||||
pidfile=/var/run/chilli.pid
|
||||
|
||||
load_rc_config $name
|
||||
|
||||
run_rc_command "$1"
|
71
net-mgmt/coovachilli/files/ipfw-config.sample
Normal file
71
net-mgmt/coovachilli/files/ipfw-config.sample
Normal file
@ -0,0 +1,71 @@
|
||||
network inetrface
|
||||
|
||||
fxp0 : 11.11.11.1
|
||||
fxp1 : 10.14.1.254
|
||||
|
||||
/etc/ipnat.rules
|
||||
|
||||
# NAT
|
||||
#
|
||||
map fxp0 192.168.182.0/24 -> 11.11.11.1/32 portmap tcp/udp auto
|
||||
|
||||
--------------------------------------------------------
|
||||
|
||||
/usr/local/etc/rc.d/ipfw.sh
|
||||
|
||||
#!/bin/sh
|
||||
|
||||
RULENO="1500"
|
||||
|
||||
EXT_IF="fxp0"
|
||||
INT_IF="fxp1"
|
||||
|
||||
EXT_IP="11.11.11.1"
|
||||
#INT_IP="10.14.1.0/24"
|
||||
|
||||
# flush rules
|
||||
#
|
||||
ipfw -f flush
|
||||
|
||||
## setup loopback
|
||||
##
|
||||
ipfw $RULENO add pass all from any to any via lo0
|
||||
ipfw add deny all from any to 127.0.0.0/8
|
||||
ipfw add deny ip from 127.0.0.0/8 to any
|
||||
|
||||
# allow related and established on all interfaces
|
||||
#
|
||||
ipfw add pass ip from any to any established
|
||||
|
||||
# allow SA connect to me , deny any others use ssh
|
||||
#
|
||||
ipfw add pass tcp from 11.11.11.5 to any setup
|
||||
ipfw add deny tcp from any to ${EXT_IP} 22
|
||||
|
||||
## allow me (firewall) to access anywhere
|
||||
##
|
||||
ipfw add pass tcp from ${EXT_IP} to any setup
|
||||
ipfw add pass udp from ${EXT_IP} to any keep-state
|
||||
|
||||
## allow tun0 device to connect to anywhere
|
||||
##
|
||||
ipfw add pass tcp from any to any via tun0 setup
|
||||
ipfw add pass udp from any to any via tun0 keep-state
|
||||
|
||||
# allow icmp
|
||||
#
|
||||
ipfw add pass icmp from any to any icmptypes 0,3,8,11
|
||||
|
||||
# allow http , https and dns on internal interface
|
||||
#
|
||||
ipfw add pass tcp from any to any 80 via ${INT_IF} setup
|
||||
ipfw add pass tcp from any to any 443 via ${INT_IF} setup
|
||||
ipfw add pass udp from any to any 53 via ${INT_IF} keep-state
|
||||
|
||||
# allow tcp port 3990 on internal interface for chillispot redirection
|
||||
#
|
||||
ipfw add pass tcp from any to any 3990 via ${INT_IF} setup
|
||||
|
||||
# except for any condition above , reject everything on all interfaces
|
||||
#
|
||||
ipfw add deny all from any to any
|
29
net-mgmt/coovachilli/files/main.conf.sample
Normal file
29
net-mgmt/coovachilli/files/main.conf.sample
Normal file
@ -0,0 +1,29 @@
|
||||
cmdsocket /var/run/chilli.sock
|
||||
pidfile /var/run/chilli.pid
|
||||
net 10.1.0.0/255.255.255.0
|
||||
uamlisten 10.1.0.1
|
||||
uamport 3990
|
||||
dhcpif em1
|
||||
adminuser chillispot
|
||||
adminpasswd chillispot
|
||||
uamallowed coova.org,coova.org,rad01.coova.org,coova.org
|
||||
uamanydns
|
||||
|
||||
domain lan
|
||||
dns1 208.67.222.222
|
||||
uamhomepage http://10.1.0.1:3990/www/coova.html
|
||||
wisprlogin https://coova.org/app/uam/auth
|
||||
wwwdir /usr/local/www/chilli
|
||||
wwwbin /etc/chilli/wwwsh
|
||||
locationname "My HotSpot"
|
||||
radiuslocationname My_HotSpot
|
||||
radiuslocationid isocc=,cc=,ac=,network=Coova,
|
||||
radiusserver1 rad01.coova.org
|
||||
radiusserver2 rad01.coova.org
|
||||
radiussecret coova-anonymous
|
||||
radiusauthport 1812
|
||||
radiusacctport 1813
|
||||
uamserver https://coova.org/app/uam/chilli
|
||||
radiusnasid nas01
|
||||
|
||||
papalwaysok
|
32
net-mgmt/coovachilli/files/patch-conf_Makefile.am
Normal file
32
net-mgmt/coovachilli/files/patch-conf_Makefile.am
Normal file
@ -0,0 +1,32 @@
|
||||
--- conf/Makefile.am.orig 2007-08-20 15:05:54.000000000 +0100
|
||||
+++ conf/Makefile.am 2008-06-18 01:17:58.000000000 +0100
|
||||
@@ -6,15 +6,11 @@
|
||||
chilli_SCRIPTS = functions up.sh down.sh
|
||||
chilli_DATA = defaults
|
||||
|
||||
-initdir = $(sysconfdir)/init.d
|
||||
-init_SCRIPTS = chilli
|
||||
-
|
||||
-EXTRA_DIST = $(init_SCRIPTS:=.in) \
|
||||
+EXTRA_DIST = \
|
||||
$(chilli_SCRIPTS:=.in) chilli.conf.in defaults.in
|
||||
|
||||
edit = sed \
|
||||
-e 's,@SBINDIR\@,$(sbindir),g' \
|
||||
- -e 's,@INITDIR\@,$(initrddir),g' \
|
||||
-e 's,@VARRUN\@,$(localstatedir)/run,g' \
|
||||
-e 's,@ETCCHILLI\@,$(sysconfdir)/chilli,g' \
|
||||
-e 's,@SYSCONFDIR\@,$(sysconfdir),g' \
|
||||
@@ -35,12 +31,6 @@
|
||||
$(edit) down.sh.in >down.sh.tmp
|
||||
mv down.sh.tmp down.sh
|
||||
|
||||
-chilli: Makefile chilli.in
|
||||
- rm -f chilli chilli.tmp
|
||||
- $(edit) chilli.in >chilli.tmp
|
||||
- chmod +x chilli.tmp
|
||||
- mv chilli.tmp chilli
|
||||
-
|
||||
chilli.conf: Makefile chilli.conf.in
|
||||
rm -f chilli.conf chilli.conf.tmp
|
||||
$(edit) chilli.conf.in >chilli.conf.tmp
|
102
net-mgmt/coovachilli/files/patch-conf_Makefile.in
Normal file
102
net-mgmt/coovachilli/files/patch-conf_Makefile.in
Normal file
@ -0,0 +1,102 @@
|
||||
--- conf/Makefile.in.orig 2008-06-08 05:49:09.000000000 +0100
|
||||
+++ conf/Makefile.in 2008-06-18 01:17:58.000000000 +0100
|
||||
@@ -46,11 +46,10 @@
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
-am__installdirs = "$(DESTDIR)$(chillidir)" "$(DESTDIR)$(initdir)" \
|
||||
- "$(DESTDIR)$(chillidir)" "$(DESTDIR)$(sysconfdir)"
|
||||
+am__installdirs = "$(DESTDIR)$(chillidir)" "$(DESTDIR)$(chillidir)" \
|
||||
+ "$(DESTDIR)$(sysconfdir)"
|
||||
chilliSCRIPT_INSTALL = $(INSTALL_SCRIPT)
|
||||
-initSCRIPT_INSTALL = $(INSTALL_SCRIPT)
|
||||
-SCRIPTS = $(chilli_SCRIPTS) $(init_SCRIPTS)
|
||||
+SCRIPTS = $(chilli_SCRIPTS)
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||
@@ -163,14 +162,11 @@
|
||||
chillidir = $(sysconfdir)/chilli
|
||||
chilli_SCRIPTS = functions up.sh down.sh
|
||||
chilli_DATA = defaults
|
||||
-initdir = $(sysconfdir)/init.d
|
||||
-init_SCRIPTS = chilli
|
||||
-EXTRA_DIST = $(init_SCRIPTS:=.in) \
|
||||
+EXTRA_DIST = \
|
||||
$(chilli_SCRIPTS:=.in) chilli.conf.in defaults.in
|
||||
|
||||
edit = sed \
|
||||
-e 's,@SBINDIR\@,$(sbindir),g' \
|
||||
- -e 's,@INITDIR\@,$(initrddir),g' \
|
||||
-e 's,@VARRUN\@,$(localstatedir)/run,g' \
|
||||
-e 's,@ETCCHILLI\@,$(sysconfdir)/chilli,g' \
|
||||
-e 's,@SYSCONFDIR\@,$(sysconfdir),g' \
|
||||
@@ -227,25 +223,6 @@
|
||||
echo " rm -f '$(DESTDIR)$(chillidir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(chillidir)/$$f"; \
|
||||
done
|
||||
-install-initSCRIPTS: $(init_SCRIPTS)
|
||||
- @$(NORMAL_INSTALL)
|
||||
- test -z "$(initdir)" || $(mkdir_p) "$(DESTDIR)$(initdir)"
|
||||
- @list='$(init_SCRIPTS)'; for p in $$list; do \
|
||||
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
- if test -f $$d$$p; then \
|
||||
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
|
||||
- echo " $(initSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(initdir)/$$f'"; \
|
||||
- $(initSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(initdir)/$$f"; \
|
||||
- else :; fi; \
|
||||
- done
|
||||
-
|
||||
-uninstall-initSCRIPTS:
|
||||
- @$(NORMAL_UNINSTALL)
|
||||
- @list='$(init_SCRIPTS)'; for p in $$list; do \
|
||||
- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
|
||||
- echo " rm -f '$(DESTDIR)$(initdir)/$$f'"; \
|
||||
- rm -f "$(DESTDIR)$(initdir)/$$f"; \
|
||||
- done
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
@@ -328,7 +305,7 @@
|
||||
check: check-am
|
||||
all-am: Makefile $(SCRIPTS) $(DATA)
|
||||
installdirs:
|
||||
- for dir in "$(DESTDIR)$(chillidir)" "$(DESTDIR)$(initdir)" "$(DESTDIR)$(chillidir)" "$(DESTDIR)$(sysconfdir)"; do \
|
||||
+ for dir in "$(DESTDIR)$(chillidir)" "$(DESTDIR)$(chillidir)" "$(DESTDIR)$(sysconfdir)"; do \
|
||||
test -z "$$dir" || $(mkdir_p) "$$dir"; \
|
||||
done
|
||||
install: install-am
|
||||
@@ -373,8 +350,7 @@
|
||||
|
||||
info-am:
|
||||
|
||||
-install-data-am: install-chilliDATA install-chilliSCRIPTS \
|
||||
- install-initSCRIPTS
|
||||
+install-data-am: install-chilliDATA install-chilliSCRIPTS
|
||||
|
||||
install-exec-am: install-sysconfDATA
|
||||
|
||||
@@ -401,20 +377,20 @@
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-chilliDATA uninstall-chilliSCRIPTS \
|
||||
- uninstall-info-am uninstall-initSCRIPTS uninstall-sysconfDATA
|
||||
+ uninstall-info-am uninstall-sysconfDATA
|
||||
|
||||
.PHONY: all all-am check check-am clean clean-generic clean-libtool \
|
||||
distclean distclean-generic distclean-libtool distdir dvi \
|
||||
dvi-am html html-am info info-am install install-am \
|
||||
install-chilliDATA install-chilliSCRIPTS install-data \
|
||||
install-data-am install-exec install-exec-am install-info \
|
||||
- install-info-am install-initSCRIPTS install-man install-strip \
|
||||
+ install-info-am install-man install-strip \
|
||||
install-sysconfDATA installcheck installcheck-am installdirs \
|
||||
maintainer-clean maintainer-clean-generic mostlyclean \
|
||||
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
|
||||
uninstall uninstall-am uninstall-chilliDATA \
|
||||
uninstall-chilliSCRIPTS uninstall-info-am \
|
||||
- uninstall-initSCRIPTS uninstall-sysconfDATA
|
||||
+ uninstall-sysconfDATA
|
||||
|
||||
|
||||
functions: Makefile functions.in
|
11
net-mgmt/coovachilli/files/patch-conf_down.sh.in
Normal file
11
net-mgmt/coovachilli/files/patch-conf_down.sh.in
Normal file
@ -0,0 +1,11 @@
|
||||
--- conf/down.sh.in.orig 2009-01-10 18:04:37.000000000 +0000
|
||||
+++ conf/down.sh.in 2009-01-10 18:04:52.000000000 +0000
|
||||
@@ -5,8 +5,5 @@
|
||||
|
||||
. @ETCCHILLI@/functions
|
||||
|
||||
-[ -e "@VARRUN@/chilli.iptables" ] && sh @VARRUN@/chilli.iptables 2>/dev/null
|
||||
-rm -f @VARRUN@/chilli.iptables 2>/dev/null
|
||||
-
|
||||
# site specific stuff optional
|
||||
[ -e @ETCCHILLI@/ipdown.sh ] && . @ETCCHILLI@/ipdown.sh
|
19
net-mgmt/coovachilli/files/patch-conf_functions.in
Normal file
19
net-mgmt/coovachilli/files/patch-conf_functions.in
Normal file
@ -0,0 +1,19 @@
|
||||
--- conf/functions.in.orig 2009-01-10 17:55:30.000000000 +0000
|
||||
+++ conf/functions.in 2009-01-10 17:56:42.000000000 +0000
|
||||
@@ -4,7 +4,6 @@
|
||||
# Licensed under GPL. See http://coova.org/
|
||||
#
|
||||
|
||||
-IPTABLES=/sbin/iptables
|
||||
IFCONFIG=/sbin/ifconfig
|
||||
|
||||
CHILLI=@ETCCHILLI@
|
||||
@@ -22,8 +21,6 @@
|
||||
[ -f $CHILLI/defaults ] && . $CHILLI/defaults
|
||||
[ -f $CHILLI/config ] && . $CHILLI/config
|
||||
|
||||
-[ -f /etc/sysconfig/chilli ] && . /etc/sysconfig/chilli
|
||||
-
|
||||
HS_UAMPORT=${HS_UAMPORT:-3990}
|
||||
HS_RADIUS=${HS_RADIUS:-$HS_UAMSERVER}
|
||||
HS_RADSECRET=${HS_RADSECRET:-$HS_UAMSECRET}
|
55
net-mgmt/coovachilli/files/patch-conf_up.sh.in
Normal file
55
net-mgmt/coovachilli/files/patch-conf_up.sh.in
Normal file
@ -0,0 +1,55 @@
|
||||
--- conf/up.sh.in.orig 2009-01-10 17:54:55.000000000 +0000
|
||||
+++ conf/up.sh.in 2009-01-10 18:03:23.000000000 +0000
|
||||
@@ -5,52 +5,5 @@
|
||||
|
||||
. @ETCCHILLI@/functions
|
||||
|
||||
-[ -e "@VARRUN@/chilli.iptables" ] && sh @VARRUN@/chilli.iptables 2>/dev/null
|
||||
-rm -f @VARRUN@/chilli.iptables 2>/dev/null
|
||||
-
|
||||
-IF=$(basename $DEV)
|
||||
-
|
||||
-ipt() {
|
||||
- opt=$1; shift
|
||||
- echo "iptables -D $*" >> @VARRUN@/chilli.iptables
|
||||
- iptables $opt $*
|
||||
-}
|
||||
-
|
||||
-ipt_in() {
|
||||
- ipt -A INPUT -i $IF $*
|
||||
-}
|
||||
-
|
||||
-[ -n "$DHCPIF" ] && {
|
||||
-
|
||||
- [ -n "$UAMPORT" -a "$UAMPORT" != "0" ] && \
|
||||
- ipt_in -p tcp -m tcp --dport $UAMPORT --dst $ADDR -j ACCEPT
|
||||
-
|
||||
- [ -n "$UAMUIPORT" -a "$UAMUIPORT" != "0" ] && \
|
||||
- ipt_in -p tcp -m tcp --dport $UAMUIPORT --dst $ADDR -j ACCEPT
|
||||
-
|
||||
- [ -n "HS_TCP_PORTS" ] && {
|
||||
- for port in $HS_TCP_PORTS; do
|
||||
- ipt_in -p tcp -m tcp --dport $port --dst $ADDR -j ACCEPT
|
||||
- done
|
||||
- }
|
||||
-
|
||||
- ipt_in -p udp -d 255.255.255.255 --destination-port 67:68 -j ACCEPT
|
||||
- ipt_in -p udp --dst $ADDR --dport 53 -j ACCEPT
|
||||
-
|
||||
- ipt -A INPUT -i $IF --dst $ADDR -j DROP
|
||||
- ipt -A INPUT -i $IF -j DROP
|
||||
-
|
||||
- ipt -I FORWARD -i $DHCPIF -j DROP
|
||||
- ipt -I FORWARD -o $DHCPIF -j DROP
|
||||
- ipt -I FORWARD -i $IF -j ACCEPT
|
||||
- ipt -I FORWARD -o $IF -j ACCEPT
|
||||
-
|
||||
- [ "$HS_LAN_ACCESS" != "on" -a "$HS_LAN_ACCESS" != "allow" ] && \
|
||||
- ipt -I FORWARD -i $IF -o \! $HS_WANIF -j DROP
|
||||
-
|
||||
- [ "$HS_LOCAL_DNS" = "on" ] && \
|
||||
- ipt -I PREROUTING -t nat -i $IF -p udp --dport 53 -j DNAT --to-destination $ADDR
|
||||
-}
|
||||
-
|
||||
# site specific stuff optional
|
||||
[ -e @ETCCHILLI@/ipup.sh ] && . @ETCCHILLI@/ipup.sh
|
10
net-mgmt/coovachilli/files/patch-coova-chilli.spec.in
Normal file
10
net-mgmt/coovachilli/files/patch-coova-chilli.spec.in
Normal file
@ -0,0 +1,10 @@
|
||||
--- coova-chilli.spec.in.orig 2008-06-18 01:17:20.000000000 +0100
|
||||
+++ coova-chilli.spec.in 2008-06-18 01:17:28.000000000 +0100
|
||||
@@ -51,7 +51,6 @@
|
||||
%defattr(-,root,root)
|
||||
%{_sbindir}/*
|
||||
%{_libdir}/*.so*
|
||||
-%{_sysconfdir}/init.d/chilli
|
||||
%doc AUTHORS COPYING ChangeLog INSTALL README doc/dictionary.chillispot doc/hotspotlogin.cgi
|
||||
%config %{_sysconfdir}/chilli.conf
|
||||
%config(noreplace) %{_sysconfdir}/chilli/defaults
|
31
net-mgmt/coovachilli/files/patch-src_chilli.c
Normal file
31
net-mgmt/coovachilli/files/patch-src_chilli.c
Normal file
@ -0,0 +1,31 @@
|
||||
diff -urN src/chilli.c.orig src/chilli.c
|
||||
--- src/chilli.c.orig 2008-06-28 17:38:35.000000000 +0100
|
||||
+++ src/chilli.c 2008-06-29 16:17:48.000000000 +0100
|
||||
@@ -3422,7 +3422,6 @@
|
||||
exit(1);
|
||||
}
|
||||
|
||||
- /*tun_setaddr(tun, &options.dhcplisten, &options.net, &options.mask);*/
|
||||
tun_setaddr(tun, &options.dhcplisten, &options.dhcplisten, &options.mask);
|
||||
tun_set_cb_ind(tun, cb_tun_ind);
|
||||
|
||||
@@ -3638,8 +3637,7 @@
|
||||
mainclock = time(0);
|
||||
|
||||
if ((msgresult =
|
||||
- TEMP_FAILURE_RETRY(msgrcv(redir->msgid, (struct msgbuf *)&msg,
|
||||
- sizeof(msg.mdata), 0, IPC_NOWAIT))) == -1) {
|
||||
+ TEMP_FAILURE_RETRY(msgrcv(redir->msgid, (void *)&msg, sizeof(msg.mdata), 0, IPC_NOWAIT))) == -1) {
|
||||
if ((errno != EAGAIN) && (errno != ENOMSG))
|
||||
log_err(errno, "msgrcv() failed!");
|
||||
}
|
||||
@@ -3669,7 +3667,7 @@
|
||||
|
||||
#elif defined (__FreeBSD__) || defined (__APPLE__) || defined (__OpenBSD__)
|
||||
|
||||
- if (net_isset(&dhcp->ipif, &fds) && dhcp_decaps(dhcp) < 0)
|
||||
+ if (net_isset(&dhcp->ipif, &fds) && dhcp_receive(dhcp) < 0)
|
||||
log_err(0, "dhcp_decaps() failed!");
|
||||
|
||||
#endif
|
||||
|
40
net-mgmt/coovachilli/files/patch-src_dhcp.c
Normal file
40
net-mgmt/coovachilli/files/patch-src_dhcp.c
Normal file
@ -0,0 +1,40 @@
|
||||
diff -urN src/dhcp.c.orig src/dhcp.c
|
||||
--- src/dhcp.c.orig 2008-06-28 17:38:35.000000000 +0100
|
||||
+++ src/dhcp.c 2008-06-29 16:17:48.000000000 +0100
|
||||
@@ -625,7 +625,7 @@
|
||||
}
|
||||
|
||||
/**
|
||||
- * dhcp_se()
|
||||
+ * dhcp_set()
|
||||
* Set dhcp parameters which can be altered at runtime.
|
||||
**/
|
||||
int
|
||||
@@ -713,7 +713,7 @@
|
||||
int dhcp_nakDNS(struct dhcp_conn_t *conn, struct pkt_ippacket_t *pack, size_t len) {
|
||||
struct dhcp_t *this = conn->parent;
|
||||
struct pkt_udphdr_t *udph = (struct pkt_udphdr_t *)pack->payload;
|
||||
- struct dns_packet_t *dnsp = (struct dns_packet_t *)((char*)pack->payload + sizeof(struct pkt_udphdr_t));
|
||||
+ /*struct dns_packet_t *dnsp = (struct dns_packet_t *)((char*)pack->payload + sizeof(struct pkt_udphdr_t));*/
|
||||
struct dns_fullpacket_t answer;
|
||||
|
||||
memcpy(&answer, pack, len);
|
||||
@@ -1023,7 +1023,7 @@
|
||||
struct dhcp_t *this = conn->parent;
|
||||
struct pkt_tcphdr_t *tcph = (struct pkt_tcphdr_t *)pack->payload;
|
||||
struct pkt_udphdr_t *udph = (struct pkt_udphdr_t *)pack->payload;
|
||||
- size_t len = *plen;
|
||||
+ /*size_t len = *plen;*/
|
||||
int i;
|
||||
|
||||
/* Allow localhost through network... */
|
||||
@@ -2592,7 +2592,7 @@
|
||||
struct pkt_ethhdr_t *ethhdr;
|
||||
|
||||
if (this->rbuf_offset == this->rbuf_len) {
|
||||
- length = read(this->ipif.fd, this->rbuf, this->rbuf_max);
|
||||
+ length = net_read(&this->ipif, this->rbuf, this->rbuf_max);
|
||||
|
||||
if (length <= 0)
|
||||
return length;
|
||||
|
19
net-mgmt/coovachilli/files/patch-src_main-query.c
Normal file
19
net-mgmt/coovachilli/files/patch-src_main-query.c
Normal file
@ -0,0 +1,19 @@
|
||||
diff -urN src/main-query.c.orig src/main-query.c
|
||||
--- src/main-query.c.orig 2008-06-28 17:38:35.000000000 +0100
|
||||
+++ src/main-query.c 2008-06-29 16:17:48.000000000 +0100
|
||||
@@ -304,7 +304,13 @@
|
||||
|
||||
remote.sun_family = AF_UNIX;
|
||||
strcpy(remote.sun_path, cmdsock);
|
||||
- len = strlen(remote.sun_path) + sizeof(remote.sun_family);
|
||||
+
|
||||
+#if defined (__FreeBSD__) || defined (__APPLE__) || defined (__OpenBSD__)
|
||||
+ remote.sun_len = strlen(remote.sun_path) + 1;
|
||||
+#endif
|
||||
+
|
||||
+ len = offsetof(struct sockaddr_un, sun_path) + strlen(remote.sun_path);
|
||||
+
|
||||
if (connect(s, (struct sockaddr *)&remote, len) == -1) {
|
||||
perror("connect");
|
||||
exit(1);
|
||||
|
88
net-mgmt/coovachilli/files/patch-src_msgstat.c
Normal file
88
net-mgmt/coovachilli/files/patch-src_msgstat.c
Normal file
@ -0,0 +1,88 @@
|
||||
diff -urN src/msgstat.c.orig src/msgstat.c
|
||||
--- src/msgstat.c.orig 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ src/msgstat.c 2008-06-29 16:17:48.000000000 +0100
|
||||
@@ -0,0 +1,83 @@
|
||||
+#include <stdio.h>
|
||||
+#include <sys/types.h>
|
||||
+#include <sys/ipc.h>
|
||||
+#include <sys/msg.h>
|
||||
+#include <errno.h>
|
||||
+
|
||||
+
|
||||
+main()
|
||||
+{
|
||||
+ int uid, gid, mode, bytes;
|
||||
+ int rtrn, msqid, command, choice;
|
||||
+ struct msqid_ds msqid_ds, *buf;
|
||||
+
|
||||
+ buf = &msqid_ds;
|
||||
+
|
||||
+ printf("Enter the msqid: ");
|
||||
+ scanf("%i", &msqid);
|
||||
+
|
||||
+ printf("\n1 = IPC_STAT\n2 = IPC_SET\n3 = IPC_RMID\n");
|
||||
+ printf("Enter command number: ");
|
||||
+ scanf("%i", &command);
|
||||
+
|
||||
+ printf("\n\nmsqid = %d, command = %d\n", msqid, command);
|
||||
+
|
||||
+ switch (command) {
|
||||
+ case 1:
|
||||
+ rtrn = msgctl(msqid, IPC_STAT, buf);
|
||||
+ if (rtrn != -1) {
|
||||
+ printf("User %d, group %d, perms 0%o\n",
|
||||
+ buf->msg_perm.uid, buf->msg_perm.gid,
|
||||
+ buf->msg_perm.mode);
|
||||
+ printf("cbytes: %d, qnum: %d, qbytes %d\n",
|
||||
+ buf->msg_cbytes, buf->msg_qnum,
|
||||
+ buf->msg_qbytes);
|
||||
+ }
|
||||
+ break;
|
||||
+
|
||||
+ case 2:
|
||||
+ rtrn = msgctl(msqid, IPC_STAT, buf);
|
||||
+ if (rtrn == -1)
|
||||
+ break;
|
||||
+ printf("\n1 = uid, 2 = gid, 3 = mode, 4 = qbytes\n");
|
||||
+ printf("Number of field to change: ");
|
||||
+ scanf("%i", &choice);
|
||||
+ switch (choice) {
|
||||
+ case 1:
|
||||
+ printf("\nUser id: ");
|
||||
+ scanf("%i", &uid);
|
||||
+ buf->msg_perm.uid = uid;
|
||||
+ printf("User = %d\n", buf->msg_perm.uid);
|
||||
+ break;
|
||||
+ case 2:
|
||||
+ printf("\nGroup id: ");
|
||||
+ scanf("%i", &gid);
|
||||
+ buf->msg_perm.gid = gid;
|
||||
+ printf("Group = %d\n", buf->msg_perm.gid);
|
||||
+ break;
|
||||
+ case 3:
|
||||
+ printf("\nMode: ");
|
||||
+ scanf("%i", &mode);
|
||||
+ buf->msg_perm.mode = mode;
|
||||
+ printf("Mode = 0%o\n", buf->msg_perm.mode);
|
||||
+ break;
|
||||
+ case 4:
|
||||
+ printf("\nQbytes: ");
|
||||
+ scanf("%i", &bytes);
|
||||
+ buf->msg_qbytes = bytes;
|
||||
+ printf("Qbytes = %d\n", buf->msg_qbytes);
|
||||
+ break;
|
||||
+ }
|
||||
+ rtrn = msgctl(msqid, IPC_SET, buf);
|
||||
+ break;
|
||||
+
|
||||
+ case 3:
|
||||
+ rtrn = msgctl(msqid, IPC_RMID, NULL);
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ if (rtrn == -1)
|
||||
+ perror("msgctl");
|
||||
+
|
||||
+ exit(0);
|
||||
+}
|
||||
|
24
net-mgmt/coovachilli/files/patch-src_redir.c
Normal file
24
net-mgmt/coovachilli/files/patch-src_redir.c
Normal file
@ -0,0 +1,24 @@
|
||||
diff -urN src/redir.c.orig src/redir.c
|
||||
--- src/redir.c.orig 2008-06-28 17:38:35.000000000 +0100
|
||||
+++ src/redir.c 2008-06-29 16:17:48.000000000 +0100
|
||||
@@ -479,7 +479,7 @@
|
||||
|
||||
if ((conn->s_params.flags & REQUIRE_UAM_SPLASH) &&
|
||||
conn->s_params.url[0]) {
|
||||
- redir_url = conn->s_params.url;
|
||||
+ redir_url = (char *)conn->s_params.url;
|
||||
}
|
||||
|
||||
bassignformat(str, "%s%cres=%s&uamip=%s&uamport=%d",
|
||||
@@ -1939,8 +1939,8 @@
|
||||
msg.mdata.addr = address->sin_addr; \
|
||||
memcpy(&msg.mdata.params, &conn.s_params, sizeof(msg.mdata.params)); \
|
||||
memcpy(&msg.mdata.redir, &conn.s_state.redir, sizeof(msg.mdata.redir)); \
|
||||
- if (msgsnd(redir->msgid, (struct msgbuf *)&msg, sizeof(msg.mdata), 0) < 0) { \
|
||||
- log_err(errno, "msgsnd() failed!"); \
|
||||
+ if (msgsnd(redir->msgid, (void *)&msg, sizeof(msg.mdata), 0) < 0) { \
|
||||
+ log_err(errno, "msgsnd() failed! msgid=%d type=%d len=%d", redir->msgid, msg.mtype, sizeof(msg.mdata)); \
|
||||
redir_close(infd, outfd); \
|
||||
}
|
||||
|
||||
|
29
net-mgmt/coovachilli/files/patch-src_redir.h
Normal file
29
net-mgmt/coovachilli/files/patch-src_redir.h
Normal file
@ -0,0 +1,29 @@
|
||||
diff -urN src/redir.h src/redir.h
|
||||
--- src/redir.h.orig 2008-06-28 17:38:35.000000000 +0100
|
||||
+++ src/redir.h 2008-06-29 16:17:48.000000000 +0100
|
||||
@@ -124,17 +124,18 @@
|
||||
struct redir_conn_t *conn);
|
||||
};
|
||||
|
||||
+struct redir_msg_data {
|
||||
+ uint16_t opt;
|
||||
+ struct in_addr addr;
|
||||
+ struct redir_state redir;
|
||||
+ struct session_params params;
|
||||
+} __attribute__((packed));
|
||||
+
|
||||
struct redir_msg_t {
|
||||
long mtype;
|
||||
- struct redir_msg_data {
|
||||
- uint16_t opt;
|
||||
- struct in_addr addr;
|
||||
- struct redir_state redir;
|
||||
- struct session_params params;
|
||||
- } mdata;
|
||||
+ struct redir_msg_data mdata;
|
||||
};
|
||||
|
||||
-
|
||||
int redir_new(struct redir_t **redir, struct in_addr *addr, int port, int uiport);
|
||||
|
||||
|
13
net-mgmt/coovachilli/files/patch-src_system.h
Normal file
13
net-mgmt/coovachilli/files/patch-src_system.h
Normal file
@ -0,0 +1,13 @@
|
||||
diff -urN src/system.h.orig src/system.h
|
||||
--- src/system.h.orig 2008-06-28 17:38:35.000000000 +0100
|
||||
+++ src/system.h 2008-06-29 16:17:48.000000000 +0100
|
||||
@@ -191,6 +191,8 @@
|
||||
})
|
||||
#endif
|
||||
|
||||
+#define offsetof(TYPE, MEMBER) ((int)&((TYPE *)0)->MEMBER)
|
||||
+
|
||||
#include "bstrlib.h"
|
||||
|
||||
#endif
|
||||
|
88
net-mgmt/coovachilli/files/patch-src_tun.c
Normal file
88
net-mgmt/coovachilli/files/patch-src_tun.c
Normal file
@ -0,0 +1,88 @@
|
||||
diff -urN src/tun.c.orig src/tun.c
|
||||
--- src/tun.c.orig 2008-06-28 17:38:35.000000000 +0100
|
||||
+++ src/tun.c 2008-06-29 16:17:48.000000000 +0100
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* Tunnel Interface Functions.
|
||||
* Copyright (C) 2002, 2003, 2004 Mondru AB.
|
||||
- * Copyright (c) 2006-2007 David Bird <david@coova.com>
|
||||
+ * Copyright (c) 2006-2008 David Bird <david@coova.com>
|
||||
*
|
||||
* The contents of this file may be used under the terms of the GNU
|
||||
* General Public License Version 2, provided that the above copyright
|
||||
@@ -226,7 +226,7 @@
|
||||
return 0;
|
||||
}
|
||||
|
||||
-int tun_gifindex(struct tun_t *this, int *index) {
|
||||
+int tun_gifindex(struct tun_t *this, uint32_t *index) {
|
||||
struct ifreq ifr;
|
||||
int fd;
|
||||
|
||||
@@ -423,7 +423,7 @@
|
||||
return 0;
|
||||
}
|
||||
|
||||
-static int tuntap_interface(struct _net_interface *netif) {
|
||||
+int tuntap_interface(struct _net_interface *netif) {
|
||||
#if defined(__linux__)
|
||||
struct ifreq ifr;
|
||||
|
||||
@@ -443,7 +443,6 @@
|
||||
#error "Unknown platform!"
|
||||
#endif
|
||||
|
||||
-
|
||||
#if defined(__linux__)
|
||||
/* Open the actual tun device */
|
||||
if ((netif->fd = open("/dev/net/tun", O_RDWR)) < 0) {
|
||||
@@ -520,7 +519,6 @@
|
||||
/* Find suitable device */
|
||||
for (devnum = 0; devnum < 255; devnum++) { /* TODO 255 */
|
||||
snprintf(devname, sizeof(devname), "/dev/tun%d", devnum);
|
||||
- devname[sizeof(devname)] = 0;
|
||||
if ((netif->fd = open(devname, O_RDWR)) >= 0) break;
|
||||
if (errno != EBUSY) break;
|
||||
}
|
||||
@@ -530,7 +528,6 @@
|
||||
}
|
||||
|
||||
snprintf(netif->devname, sizeof(netif->devname), "tun%d", devnum);
|
||||
- netif->devname[sizeof(netif->devname)-1] = 0;
|
||||
|
||||
/* The tun device we found might have "old" IP addresses allocated */
|
||||
/* We need to delete those. This problem is not present on Linux */
|
||||
@@ -538,13 +535,11 @@
|
||||
memset(&areq, 0, sizeof(areq));
|
||||
|
||||
/* Set up interface name */
|
||||
- strncpy(areq.ifra_name, netif->devname, IFNAMSIZ);
|
||||
- areq.ifra_name[IFNAMSIZ-1] = 0; /* Make sure to terminate */
|
||||
+ strncpy(areq.ifra_name, netif->devname, sizeof(areq.ifra_name));
|
||||
|
||||
/* Create a channel to the NET kernel. */
|
||||
if ((fd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
|
||||
- log_err(errno,
|
||||
- "socket() failed");
|
||||
+ log_err(errno,"socket() failed");
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -703,14 +698,15 @@
|
||||
|
||||
if (this->cb_ind)
|
||||
return this->cb_ind(this, &packet, sbuf.len);
|
||||
-
|
||||
return 0;
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
+/*
|
||||
static uint32_t dnatip[1024];
|
||||
static uint16_t dnatport[1024];
|
||||
+*/
|
||||
|
||||
int tun_encaps(struct tun_t *tun, void *pack, size_t len, int idx) {
|
||||
|
||||
|
11
net-mgmt/coovachilli/files/patch-www_Makefile.am
Normal file
11
net-mgmt/coovachilli/files/patch-www_Makefile.am
Normal file
@ -0,0 +1,11 @@
|
||||
--- www/Makefile.am.orig 2008-06-29 17:44:26.000000000 +0000
|
||||
+++ www/Makefile.am 2008-06-29 17:44:48.000000000 +0000
|
||||
@@ -3,7 +3,7 @@
|
||||
chillidir = $(sysconfdir)/chilli
|
||||
chilli_SCRIPTS = wwwsh
|
||||
|
||||
-wwwdir = $(chillidir)/www
|
||||
+wwwdir = $(prefix)/www/chilli
|
||||
|
||||
wwwDATAFILES = \
|
||||
chillijs.chi chillijs.chi.sh chilliform.chi chilliform.chi.sh \
|
47
net-mgmt/coovachilli/files/pf.conf.sample
Normal file
47
net-mgmt/coovachilli/files/pf.conf.sample
Normal file
@ -0,0 +1,47 @@
|
||||
#
|
||||
# Basic Chillispot PF Config
|
||||
# A tweak of Example 1 from the PF FAQ
|
||||
# http://www.openbsd.org/faq/pf/example1.html
|
||||
# By Venture37
|
||||
# venture37@geeklan.co.uk
|
||||
# http://www.geeklan.co.uk
|
||||
|
||||
# macros
|
||||
int_if = "ral0"
|
||||
ext_if = "fxp0"
|
||||
chilli_if = "tun0"
|
||||
|
||||
tcp_services = "{ 22, 113 }"
|
||||
icmp_types = "echoreq"
|
||||
|
||||
priv_nets = "{ 127.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8 }"
|
||||
|
||||
# options
|
||||
set block-policy return
|
||||
set loginterface $ext_if
|
||||
|
||||
# scrub
|
||||
scrub in all
|
||||
|
||||
# nat/rdr
|
||||
nat on $ext_if from $chilli_if:network to any -> ($ext_if)
|
||||
|
||||
# filter rules
|
||||
block all
|
||||
|
||||
pass quick on lo0 all
|
||||
|
||||
block drop in quick on $ext_if from $priv_nets to any
|
||||
block drop out quick on $ext_if from any to $priv_nets
|
||||
block drop on $int_if all
|
||||
|
||||
pass in on $ext_if inet proto tcp from any to ($ext_if) \
|
||||
port $tcp_services flags S/SA keep state
|
||||
|
||||
pass in inet proto icmp all icmp-type $icmp_types keep state
|
||||
|
||||
pass in on $chilli_if from $chilli_if:network to any keep state
|
||||
pass out on $chilli_if from any to $chilli_if:network keep state
|
||||
|
||||
pass out on $ext_if proto tcp all modulate state flags S/SA
|
||||
pass out on $ext_if proto { udp, icmp } all keep state
|
5
net-mgmt/coovachilli/pkg-descr
Normal file
5
net-mgmt/coovachilli/pkg-descr
Normal file
@ -0,0 +1,5 @@
|
||||
CoovaChilli is an access controller
|
||||
It provides a captive portal / walled garden environment.
|
||||
Coova builds on the popular features of the now defunct Chillispot.
|
||||
|
||||
WWW: http://www.coova.org/
|
11
net-mgmt/coovachilli/pkg-message
Normal file
11
net-mgmt/coovachilli/pkg-message
Normal file
@ -0,0 +1,11 @@
|
||||
| Add coovachilli_enable="YES" to /etc/rc.conf
|
||||
|
|
||||
| You'll need to tweak your kernel settings
|
||||
| add the following to /boot/loader.conf
|
||||
| kern.ipc.msgseg=16000
|
||||
| kern.ipc.msgmnb=16000
|
||||
|
|
||||
| Sample config files located in %%EXAMPLESDIR%%
|
||||
| copy the sample main.conf file to your
|
||||
| chilli directory & create an empty
|
||||
| hs.conf & local.conf to get going.
|
39
net-mgmt/coovachilli/pkg-plist
Normal file
39
net-mgmt/coovachilli/pkg-plist
Normal file
@ -0,0 +1,39 @@
|
||||
@stopdaemon coovachilli
|
||||
etc/chilli.conf
|
||||
etc/chilli/defaults
|
||||
etc/chilli/down.sh
|
||||
etc/chilli/functions
|
||||
etc/chilli/up.sh
|
||||
www/chilli/ChilliLibrary.js
|
||||
www/chilli/chilliController.js
|
||||
www/chilli/chilliform.chi
|
||||
www/chilli/chilliform.chi.sh
|
||||
www/chilli/chillijs.chi
|
||||
www/chilli/chillijs.chi.sh
|
||||
www/chilli/config.sh
|
||||
www/chilli/coova.html
|
||||
www/chilli/coova.jpg
|
||||
www/chilli/coova.png
|
||||
www/chilli/json_html.tmpl
|
||||
www/chilli/openid.gif
|
||||
www/chilli/wait.gif
|
||||
etc/chilli/wwwsh
|
||||
lib/libbstring.a
|
||||
lib/libbstring.la
|
||||
lib/libbstring.so
|
||||
lib/libbstring.so.0
|
||||
lib/libchilli.a
|
||||
lib/libchilli.la
|
||||
lib/libchilli.so
|
||||
lib/libchilli.so.0
|
||||
sbin/chilli
|
||||
sbin/chilli_query
|
||||
sbin/chilli_radconfig
|
||||
sbin/chilli_response
|
||||
sbin/test_radius
|
||||
@dirrm www/chilli
|
||||
@dirrm etc/chilli
|
||||
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/pf.conf.sample
|
||||
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/ipfw-config.sample
|
||||
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/main.conf.sample
|
||||
%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%
|
Loading…
Reference in New Issue
Block a user