From 3b71515e074ec02719d0327a02f4317e5318561c Mon Sep 17 00:00:00 2001 From: garywill Date: Sun, 29 Aug 2021 10:24:50 +0800 Subject: [PATCH] hostapd in apparmor complain mode to solve problem that openSUSE users meet --- README.md | 36 ++++++++++++++---------------------- lnxrouter | 20 +++++++++++++++----- 2 files changed, 29 insertions(+), 27 deletions(-) mode change 100755 => 100644 lnxrouter diff --git a/README.md b/README.md index c01ad14..b26d0e1 100644 --- a/README.md +++ b/README.md @@ -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! diff --git a/lnxrouter b/lnxrouter old mode 100755 new mode 100644 index 5e23be0..27de201 --- a/lnxrouter +++ b/lnxrouter @@ -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 @@ -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)