On 11/14/2017 05:29 AM, Brian J. Murrell wrote: > I'm trying to deploy a remote policy with shorewall[6]-lite to a LEDE > 17.01.4 router running shorewall[-lite] 5.1 from a host running > shorewall 5.0. > > The problem is that on LEDE now, they supply a busy-box "ip" applet > which is not quite featured enough for shorewall: > > Adding Providers... > ip: invalid argument '0x100/0xff00' to 'fwmark' > ERROR: Command "ip -6 rule add fwmark 0x100/0xff00 pref 10000 table > 1" Failed > > The good news is that one can install a fully featured ip tool. > > The problem is that the busybox one lives in /sbin/ip and the fully- > featured one lives in /usr/bin/ip. By default shorewall[6][-lite] is > setting a PATH that puts /sbin/ before /usr/bin. But that's almost > orthogonal because simply switching the PATH search order around could > just trigger another flavour of this problem. > > So I see three solutions any number of which might exist already and I > just don't know about it. One is to be able to tell shorewall[6] on > the host machine the path to the remote ip tool so that it uses a fully > qualified path for $IP. Setting the IP variable in shorewall6.conf on > the host doesn't work as shorewall6 tries to find that path locally > instead of remotely: > > $ shorewall6 remote-reload 10.75.22.253 > WARNING: ./shorewallrc does not exist; using settings from > /usr/share/shorewall > ERROR: The program specified in IP (/usr/bin/ip) does not exist or > is not executable > > Second solution is to be able to tell shorewall[6]-lite on the remote > the fully qualified path where ip is, but give how shorewall builds the > policy on the host, I'm not sure I can see how that would work. And it > doesn't. > > Third solution is that shorewall uses an enhanced version of it's > "mywhich" function to find the right ip tool. > > In the short term though, is there any solution other than fiddling > with the remote $PATH, which I can do by setting it in shorewall6- > lite.conf on the remote, correct?
The attached patch will allow you to specify IP (and SHOREWALL-SHELL) in
the remote firewall's shorewall6.conf file.
patch /usr/share/shorewall/lib.cli-std < IP.patch
-Tom
--
Tom Eastep \ Q: What do you get when you cross a mobster with
Shoreline, \ an international standard?
Washington, USA \ A: Someone who makes you an offer you can't
http://shorewall.org \ understand
\_______________________________________________
diff --git a/Shorewall/lib.cli-std b/Shorewall/lib.cli-std
index f425381ce..f7ab9b8e1 100644
--- a/Shorewall/lib.cli-std
+++ b/Shorewall/lib.cli-std
@@ -211,30 +211,32 @@ get_config() {
LOG_VERBOSITY=-1
fi
- if [ -n "$SHOREWALL_SHELL" -a -z "$g_export" ]; then
- if [ ! -x "$SHOREWALL_SHELL" ]; then
- echo " WARNING: The program specified in SHOREWALL_SHELL does not exist or is not executable; falling back to /bin/sh" >&2
- SHOREWALL_SHELL=/bin/sh
+ if [ -z "$g_export" -a "$(id -u)" = 0 ]; then
+ if [ -n "$SHOREWALL_SHELL" -a -z "$g_export" ]; then
+ if [ ! -x "$SHOREWALL_SHELL" ]; then
+ echo " WARNING: The program specified in SHOREWALL_SHELL does not exist or is not executable; falling back to /bin/sh" >&2
+ SHOREWALL_SHELL=/bin/sh
+ fi
fi
- fi
- if [ -n "$IP" ]; then
- case "$IP" in
- */*)
- if [ ! -x "$IP" ] ; then
- fatal_error "The program specified in IP ($IP) does not exist or is not executable"
- fi
- ;;
- *)
- prog="$(mywhich $IP 2> /dev/null)"
- if [ -z "$prog" ] ; then
- fatal_error "Can't find $IP executable"
- fi
- IP=$prog
- ;;
- esac
- else
- IP='ip'
+ if [ -n "$IP" ]; then
+ case "$IP" in
+ */*)
+ if [ ! -x "$IP" ] ; then
+ fatal_error "The program specified in IP ($IP) does not exist or is not executable"
+ fi
+ ;;
+ *)
+ prog="$(mywhich $IP 2> /dev/null)"
+ if [ -z "$prog" ] ; then
+ fatal_error "Can't find $IP executable"
+ fi
+ IP=$prog
+ ;;
+ esac
+ else
+ IP='ip'
+ fi
fi
case $VERBOSITY in
signature.asc
Description: OpenPGP digital signature
------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________ Shorewall-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/shorewall-users
