hostapd in apparmor complain mode

to solve problem that openSUSE users meet
This commit is contained in:
garywill 2021-08-29 10:24:50 +08:00
parent c2b21bb391
commit 3b71515e07
2 changed files with 29 additions and 27 deletions

View File

@ -4,8 +4,7 @@ Set Linux as router in one command. Able to Provide Internet, or create Wifi hot
It wraps `iptables`, `dnsmasq` etc. stuff. Use in one command, restore in one command or by `control-c` (or even by closing terminal window).
[Buy me a coffee](https://github.com/garywill/receiving/blob/master/receiving_methods.md)
[More tools and projects](https://garywill.github.io) | [Buy me a coffee](https://github.com/garywill/receiving/blob/master/receiving_methods.md)
## Features
@ -325,12 +324,13 @@ Options:
```
> These changes to system will not be restored by script's cleanup:
>
> 1. `/proc/sys/net/ipv4/ip_forward = 1` and `/proc/sys/net/ipv6/conf/all/forwarding = 1`
> 1. dnsmasq in Apparmor complain mode
> 1. Kernel module `nf_nat_pptp` loaded
> 1. The wifi device which is used to create hotspot is `rfkill unblock`ed
> 1. Wifi country code, if user specified
> 2. dnsmasq (if used) in Apparmor complain mode
> 3. hostapd (if used) in Apparmor complain mode
> 4. Kernel module `nf_nat_pptp` loaded
> 5. The wifi device which is used to create hotspot is `rfkill unblock`ed
> 6. Wifi country code, if user specified
## Dependencies
@ -353,22 +353,14 @@ Options:
- Explictly ban forwarding if not needed
- Bring bridging method back
## Donate
## Meet author(s) and maintainer(s) and become one of them
[Buy me a coffee](https://github.com/garywill/receiving/blob/master/receiving_methods.md) , this project took me lots of time!
Visit [**my homepage**](https://garywill.github.io) to see **more tools and projects**.
> [Buy me a coffee](https://github.com/garywill/receiving/blob/master/receiving_methods.md) , this project took me lots of time! ([打赏一个!](https://github.com/garywill/receiving/blob/master/receiving_methods.md))
>
> ( ^\_^) o自自o (^_^ )
[打赏一个](https://github.com/garywill/receiving/blob/master/receiving_methods.md)
## For developers
**Many thanks to project [create_ap](https://github.com/oblique/create_ap)**.
This script was forked from create\_ap. Now it's quite different from it. (See `history` branch for how I modified create_ap)
There're some TO-DOs listed, at both above and in the code file. We'll appreciate your help.
------------------
More of my projects: https://garywill.github.io
Bisides, thank [create_ap](/create_ap) by [oblique](https://github.com/oblique). This script was forked from create\_ap. Now they are quite different. (See `history` branch for how I modified create_ap). Also thank those who contributed to that project.
You can be contributor, too! There're some TO-DOs listed, at both above and in the code file. Your name ban be here!

20
lnxrouter Executable file → Normal file
View File

@ -1,6 +1,5 @@
#!/bin/bash
# TODO: showing version (or git commit) on running
VERSION=0.6.2
PROGNAME="$(basename $0)"
@ -9,9 +8,12 @@ export LC_ALL=C
SCRIPT_UMASK=0122
umask $SCRIPT_UMASK
phead() {
echo "linux-router $VERSION (https://github.com/garywill/linux-router)"
}
usage() {
phead
cat << EOF
linux-router $VERSION (https://github.com/garywill/linux-router)
Released under LGPL, with no warranty. Use on your own risk.
Usage: $PROGNAME <options>
@ -1848,6 +1850,7 @@ run_wifi_ap_processes() {
haveged_watchdog &
HAVEGED_WATCHDOG_PID=$!
echo "$HAVEGED_WATCHDOG_PID" > "$CONFDIR/haveged_watchdog.pid"
echo
echo "haveged_watchdog PID: $HAVEGED_WATCHDOG_PID"
fi
@ -1860,6 +1863,11 @@ run_wifi_ap_processes() {
fi
echo
echo "Starting hostapd"
if which complain > /dev/null 2>&1; then
complain hostapd
fi
# hostapd '-P' works only when use '-B' (run in background)
$STDBUF_PATH hostapd $HOSTAPD_DEBUG_ARGS -P "$CONFDIR/hostapd.pid" "$CONFDIR/hostapd.conf" &
HOSTAPD_PID=$!
@ -1874,14 +1882,15 @@ run_wifi_ap_processes() {
}
start_dnsmasq() {
echo
echo "Starting dnsmasq"
if which complain > /dev/null 2>&1; then
# openSUSE's apparmor does not allow dnsmasq to read files.
# remove restriction.
complain dnsmasq
fi
echo
echo "Starting dnsmasq"
# Using '-d'(no daemon) dnsmasq will not turn into 'nobody'
# '-x' works only when no '-d'
dnsmasq -k -C "$CONFDIR/dnsmasq.conf" -x "$CONFDIR/dnsmasq.pid" -l "$CONFDIR/dnsmasq.leases" &
@ -1943,6 +1952,7 @@ daemonizing_check
## ===== Above don't echo anything if no warning or error====================
## ========================================================
phead
echo "PID: $$"
TARGET_IFACE="$(decide_target_interface)" || exit 1 # judge wired (-i CONN_IFACE) or wireless hotspot (--ap $WIFI_IFACE)