123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196 |
- #!/bin/sh /etc/rc.common
-
- SERVICE_USE_PID=1
-
- START=50
-
- setup_firewall() {
- local port fw
- config_get port $1 port
- test -z "$port" && return
-
- config_get fwport $1 "fwport"
- test "$fwport" = "$port" && return
-
- #can we remove the old rule?
- uci add firewall rule
- uci set firewall.@rule[-1].src=wan
- uci
- uci
- uci
- uci
- /etc/init.d/firewall restart
-
- uci set ocserv.config.fwport=
- uci commit ocserv
- }
-
- clear_firewall() {
- iptables-save | grep -v ocserv-rule | iptables-restore
- }
-
- setup_config() {
- config_get port $1 port
- config_get max_clients $1 max_clients
- config_get max_same $1 max_same
- config_get dpd $1 dpd
- config_get predictable_ips $1 predictable_ips
- config_get udp $1 udp
- config_get auth $1 auth
- config_get cisco_compat $1 cisco_compat
- config_get ipaddr $1 ipaddr
- config_get netmask $1 netmask
- config_get ip6addr $1 ip6addr
-
- test $predictable_ips = && predictable_ips=
- test $predictable_ips = && predictable_ips=
- test $cisco_compat = && cisco_compat=
- test $cisco_compat = && cisco_compat=
- test $udp = && udp=
- test $udp = && udp=
- test -z $ip6addr && enable_ipv6=
-
- ipv6_addr=`echo $ip6addr|cut -d -f 1`
- ipv6_prefix=`echo $ip6addr|cut -d -f 2`
-
- test $auth = && authsuffix=
-
- mkdir -p /var/etc
- sed -e \
- -e \
- -e \
- -e \
- -e \
- -e \
- -e \
- -e \
- -e \
- -e \
- -e \
- -e \
- -e \
- /etc/ocserv/ocserv.conf.template /var//ocserv.conf
- }
-
- setup_users() {
- local name
- local group
- local password
-
- config_get name $1 name
- config_get group $1 group
- config_get password $1 password
-
- [ -z ] && group=
- [ -z -o -z ] && return
-
- echo >> //etc/
- }
-
- setup_routes()
- local
-
- config_get
- config_get
-
- [ -z
-
- echo /var//ocserv.conf
- }
-
- setup_dns() {
- local routes
-
- config_get ip $1 ip
-
- [ -z ] && return
-
- echo >> //etc/
- }
-
- start()
- local
-
- user_exists || /var//ocserv
- group_exists ocserv 72 || group_add ocserv 72
-
- hostname=`uci get ddns.myddns.domain`
- [ -z ] && hostname=`uci get system.@system[0].hostname`
-
- [ ! -f //ocserv/ /usr//certtool ] && {
- logger -t ocserv
- mkdir -p //ocserv//
- certtool --bits 2048 --generate-privkey --outfile //ocserv//dev/
- echo /etc//pki/
- echo /etc//pki/
- echo /etc//pki/
- echo /etc//pki/
- echo /etc//pki/
-
- certtool /etc//pki/
- --generate-self-signed /etc//ca-key.pem \
- --outfile //ocserv//dev/
- }
-
- #generate /key
- [ ! -f //ocserv/ /usr//certtool ] && {
- logger -t ocserv
- mkdir -p //ocserv//
- certtool --bits 2048 --generate-privkey --outfile //ocserv//dev/
- echo /etc//pki/
- echo /etc//pki/
- echo /etc//pki/
- echo /etc//pki/
- echo /etc//pki/
- certtool /etc//pki/
- --generate-certificate /etc//server-key.pem \
- --load-ca-certificate //ocserv/
- /etc/ocserv/ca-key.pem --outfile /etc/ocserv/server-cert.pem /dev/
- }
-
- [ -f /var//ocserv.pid ] || {
- touch //run/
- chown /var//ocserv.pid
- }
- [ -d //lib/ ||
- mkdir /var//ocserv
- chmod 0700 //lib/
- chown /var//ocserv
- }
-
- config_load
-
- rm -f //etc/
- touch /var//ocserv.conf
- setup_config config
- config_foreach setup_routes routes
- config_foreach setup_dns dns
-
- rm -f //etc/
- touch /var//ocpasswd
- chmod 600 //etc/
- config_foreach
-
- setup_firewall
-
- service_start /usr//ocserv -c //etc/
- }
-
- stop()
- service_stop /usr//ocserv
- clear_firewall
- }
-
- reload() {
- rm -f //etc/
- touch /var//ocpasswd
- chmod 600 //etc/
- config_foreach
-
- /usr/bin/occtl show status >/dev/null 2>&1
- if test $? != 0;then
- start
- else
- /usr/bin/occtl
- fi
- }
|