This is a minor point, but when pixelserv writes to the syslog it is four hours ahead of the syslog time. I'm -5 hours (East Coast US). Is there a way for the pixelserv entries to be on the same time?
Edit: 87U and .62A1.
Code:Aug 28 10:26:30 rc_service: waitting "start_vpnserver1" via udhcpc ... Aug 28 14:26:30 pixelserv[1025]: pixelserv-tls version: V35.HZ12.Kh compiled: Jul 20 2016 22:57:01 options: 192.168.0.3 Aug 28 14:26:30 pixelserv[1025]: Listening on :192.168.0.3:80 Aug 28 14:26:30 pixelserv[1025]: Listening on :192.168.0.3:443 Aug 28 10:26:31 elorimer: Started pixelserv-tls from . Aug 28 10:26:31 rc_service: hotplug 822:notify_rc restart_nasapps
Thanks for making this, nice to get a lighter browsing experience.
Took me some hours but I was able to get it running on a tiny core linux VM.
By the way, I'm experiencing a problem with the certificates : while they are correctly generated, they are missing the certificate chain information, while the CA issuer information is present and valid.
As I'm using a CA cert for internal use, I was hoping to be able to reuse it, but in fact even with a generated one, this anomaly is present :
pixelserv generated cert
The issuer should appear at the first level in the hierarchy, then only after, the blocked site should be printed one level under. When manually made, they show this correctly, but not those from pixelserv.
As comparison, a valid google cert
note : the intermediate level isn't required.
This is problematic, as the certs are in fact not fully valids. And all browsers hide this most of the time because the RFC requires to silently close the connection on an invalid cert when it's an external ressource and not the main page. On the other hand, accessing the url directly will have both Fox and IE complain about it, even after adding an exclusion.
Seems something is missing or isn't applied when pixelserv-tls is creating the certs.
For reference, currently running on the Kh version, didn't check with a previous one.
Awesome! Works fine.Pixelserv-tls is innocent on this issue
Wrong timestamps are caused by mis-use of timezone in AsusWRT. Asus got it inverted for unknown reason. Perhaps too costly to correct the mistake afterward.
To workaround, try adding "export TZ=$(cat /etc/TZ) at the front in your copy of pixelserv-tls init script in /opt/etc/init.d and with name SxxSomething.
See if this solves your observed wrong timestamp. You can apply the same workaround to other daemons with wrong timestamps.
By the way, I'm experiencing a problem with the certificates : while they are correctly generated, they are missing the certificate chain information, while the CA issuer information is present and valid.
As I'm using a CA cert for internal use, I was hoping to be able to reuse it, but in fact even with a generated one, this anomaly is present :
pixelserv generated cert
The issuer should appear at the first level in the hierarchy, then only after, the blocked site should be printed one level under. When manually made, they show this correctly, but not those from pixelserv.
This is problematic, as the certs are in fact not fully valids. And all browsers hide this most of the time because the RFC requires to silently close the connection on an invalid cert when it's an external ressource and not the main page. On the other hand, accessing the url directly will have both Fox and IE complain about it, even after adding an exclusion.
Seems something is missing or isn't applied when pixelserv-tls is creating the certs.
Does anyone have thoughts on the max timeout setting? I noticed that something was taking the default setting of 10 seconds, so I have been toying with lowering it. But I realized that I wasn't sure what the pros and cons of changing the value might be.
The issue is my tls code that doesn't build a certificate chain. It isn't there at all because I didn't anticipate such usage scenario. In hindsight, it's very good use and perhaps useful in SME environment. Quite easy to fix once I understand the problem. Below is a screenshot of an enhanced version. I wan to shuffle the code a bit for speed. Will push the change after that. If you're interested in early test, I can make arm, amd64 or mips available for you.
View attachment 7199
PID PPID USER COMMAND COMMAND
2291 1 pixelser /mnt/sda1/server/pixelserv/pixelserv/pixelserv.x86.performance.static -u pixelserv -z /mnt/sda1/server/pixelserv/conf
2292 2291 root /mnt/sda1/server/pixelserv/pixelserv/pixelserv.x86.performance.static -u pixelserv -z /mnt/sda1/server/pixelserv/conf
By the way, while you're on it, the x86 section in the makefile is incomplete : each $(CC32) line is missing the $(SHAREDLIB) variable
Also, the pixelserv-tls-XXXX/openssl/ directory requires the i386/ subdir for the libraries
With this fixed, I could compile pixelserv-tls without error on an Ubuntu VM with gcc-multilib toolset (both x86/x64 )
I also found a little behavior difference between x86 and x64, dunno if it is intended :
on the x64 version, started as root, with -u pixelserv param, there's a single process, handling both http(s) response and cert creation
on the x86 version, same settings, there are 2 permanents processes, parent is under the pixelserv user, the child as the root user, like this :
openssl s_client -connect doubleclick.net:443 -showcerts -servername doubleclick.net -CAfile ./ca.crt
CONNECTED(00000003)
depth=0 CN = doubleclick.net
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 CN = doubleclick.net
verify error:num=21:unable to verify the first certificate
verify return:1
---
Certificate chain
0 s:/CN=doubleclick.net
i:/CN=Elysium
1 s:/CN=Elysium
i:/CN= (...)
Certificate chain
0 s:/CN=...
i:/C=../ST=.../L=.../O=.../CN=Elysium
1 s:/C=../ST=.../L=.../O=.../CN=Elysium
i: ...
sudo apt-get install lib32ncurses5 lib32z1 g++-multilib
sudo apt-get install libc6:i386 libc6-dev:i386 libgcc1:i386 linux-libc-dev:i386
sudo apt-get install openssl libssl-dev libssl-dev:i386 zip upx
mkdir openssl/i386
ln -s /usr/lib/i386-linux-gnu/libcrypto.a openssl/i386/
ln -s /usr/lib/i386-linux-gnu/libssl.a openssl/i386/
ln -s /usr/include/openssl openssl/include/
--- Makefile 2016-09-05 21:11:04.843274410 +0200
+++ Makefile.x86 2016-09-05 21:22:38.501851091 +0200
@@ -27,7 +27,7 @@
UPX := upx -9
# packaging macros
-PFILES = LICENSE README.md dist/$(DISTNAME).$(ARCH).performance.*
+PFILES = LICENSE README.md dist/$(DISTNAME).$@.performance.*
PVERSION := $(shell grep VERSION util.h | awk '{print $$NF}' | sed 's|\"||g')
PCMD := zip
@@ -88,14 +88,17 @@
printver:
@echo "=== Building $(DISTNAME) version $(PVERSION) ==="
+x86: ARCH = i386
+x86: LDFLAGS += -lpthread
+x86: CFLAGS += -DUSE_PTHREAD
x86: printver dist
@echo "=== Building x86 ==="
- $(CC32) $(CFLAGS_D) $(LDFLAGS_D) $(OPTS) $(SRCS) -o dist/$(DISTNAME).$@.debug.dynamic
- $(CC32) $(CFLAGS_P) $(LDFLAGS_P) $(OPTS) $(SRCS) -o dist/$(DISTNAME).$@.performance.dynamic
- $(CC32) $(CFLAGS_D) -static $(LDFLAGS_D) $(OPTS) $(SRCS) -o dist/$(DISTNAME).$@.debug.static
- $(CC32) $(CFLAGS_P) -static $(LDFLAGS_P) $(OPTS) $(SRCS) -o dist/$(DISTNAME).$@.performance.static
+ $(CC32) $(CFLAGS_D) $(LDFLAGS_D) $(OPTS) $(SRCS) -o dist/$(DISTNAME).$@.debug.dynamic $(SHAREDLIB)
+ $(CC32) $(CFLAGS_P) $(LDFLAGS_P) $(OPTS) $(SRCS) -o dist/$(DISTNAME).$@.performance.dynamic $(SHAREDLIB)
+ $(CC32) $(CFLAGS_D) -static $(LDFLAGS_D) $(OPTS) $(SRCS) -o dist/$(DISTNAME).$@.debug.static $(STATICLIB) $(SHAREDLIB)
+ $(CC32) $(CFLAGS_P) -static $(LDFLAGS_P) $(OPTS) $(SRCS) -o dist/$(DISTNAME).$@.performance.static $(STATICLIB) $(SHAREDLIB)
$(STRIP) dist/$(DISTNAME).$@.performance.*
- $(UPX) dist/$(DISTNAME).$@.performance.*
+# $(UPX) dist/$(DISTNAME).$@.performance.*
rm -f dist/$(DISTNAME).$(PVERSION).$@.zip
$(PCMD) dist/$(DISTNAME).$(PVERSION).$@.zip $(PFILES)
make distclean
make x86
Well, openssl is a bi* , no surprise here. It wants the full cert subject in the name, and not only the CN :
/C= Country (example : GB)
/ST= State (London)
/L= Location (London)
/O= Organization (Headquarters)
/OU= Organizational Unit (Department )
/CN= Common Name (example.com)
With any of them, if not all, allowed to be missing
Sorry for the extra work
The certificate will not be valid until tuesday 6 september 2016 18:42.
The current time is tuesday 6 september 2016 18:41.
Error code: MOZILLA_PKIX_ERROR_NOT_YET_VALID_CERTIFICATE
Tried the new build, and ... whoops :
Code:The certificate will not be valid until tuesday 6 september 2016 18:42. The current time is tuesday 6 september 2016 18:41. Error code: MOZILLA_PKIX_ERROR_NOT_YET_VALID_CERTIFICATE
Kidding, I have just a slight delay with the workstation, always being 2 mins behind despite the ntp client.
The last version is working perfectly, all certs are regenerated with the full CA information, and are finally considerated as valid by each browsers (IE/Chrome/fox)
Thanks
On a different note, maybe I'm nitpicking, but the git repo is missing the i386 subdir under openssl
Also, I think you can remove this line in the makefile :
line 67 : # - static is not built for x86* targets because it causes glibc-related complaints
Especially as I'm running the static version since the first build
Well, there are some complains when compiling, but it's only syntax check warning, nothing preventing the build, and it happens on both x64 and x86 versions
For the x86 build :
From my test so far the average processing time increased 5 times (from ~50ms to ~250ms) which I would hope to reduce a bit in the final change.
If it's a Windows system, yeah, since Vista, Microsoft borked the NTP client : it doesn't play nice with a non-Windows computer as NTP source, as it still expects it to work like a Windows server would.I've seen this first hand on one of my VPS. Two minutes ahead..I blamed the admin but seems might not be his fault. Do you happen to know the cause?
w32tm /config /manualpeerlist:TARGET.NTP.SERVER,0x8 /syncfromflags:MANUAL /reliable:yes /update
Thread starter | Title | Forum | Replies | Date |
---|---|---|---|---|
C | Diversion Pixelserv replacement | Asuswrt-Merlin AddOns | 2 | |
L | Is Diversion better than NextDNS, PiHole or AdGuard Home? | Asuswrt-Merlin AddOns | 10 |
Welcome To SNBForums
SNBForums is a community for anyone who wants to learn about or discuss the latest in wireless routers, network storage and the ins and outs of building and maintaining a small network.
If you'd like to post a question, simply register and have at it!
While you're at it, please check out SmallNetBuilder for product reviews and our famous Router Charts, Ranker and plenty more!