Snap! Websites Journal

Tunneling with SSH

Today I had a need to connect my local VPS at my office to a VPS at DigitalOcean. Not only that, the DigitalOcean runs the service I wanted to connect to on a separate network. Here is an example of the network (the IPs are fake, of course):

Creating an SSH Tunnel between a VPS and Local Service on a Remote Computer

Today I created a new release, version 1.8. You can find it on github.

This includes a ton of bug fixes that 1.7 was plagued with. It also includes new code (thread pool/thread worker) and especially, a break up of several objects from the libsnapwebsites to their own contrib projects.

This includes:

  • snapdev (18 header only functions from the libsnapwebsites)
  • addgetopt (snap_config.cpp/.h)
  • cppthread (snap_thread.cpp/h)
  • snaplogger (log.cpp/h)
  • eventdispatcher (snap_communicator.cpp/h)
  • snapcatch2 (our own catch project compatible with our projects)
  • ...

Shredded leaves — we can also shred your files!

Introduction to Shred

In the last two days, I worked on a Jira task I had assigned to me in link with shredding files. Whenever you purge our project, it deletes a lot of files, including all the logs, configuration files, etc. By default, though, the purge command will just do:

rm -rf <path> ...

This generally works, only it is much better if you can also make sure that the content of the file is not recoverable. Under Unix systems, it often has been close to impossible to recover files because the OS was very quick at over reusing the just released blocks for new data. Not ...

When I first start of Snap!, I had one project, the snapwebsites folder.

As I started growing the project, I wanted to have some features that required other modules such as the log4cplus library to handle logging.

The fact is that as a result the library (read: common code to all the Snap! Website services) as grown to be a really large one! Difficult to manage and each time a small change is made, we incur a long wait for rebuilding everything.

So we started working on breaking up the library in smaller parts. We already have some functional projects which now encompass some of the low ...

I updated the old version of zipios to version 0.1.7 as a DoS bug was found in the older version (0.1.5).

The bug was found and fixed by Mike Salvatore of Salvator Security.

I noticed another potential problem with a second loop, so I enhanced the patch a bit.

Mike got CVE-2019-13453 registered. He also made a post about how the bug was discovered and fixed.

If you are using any version of Zipios++ version 0.1.5 (or the CVS source code) or any of the older versions, you want to upgrade to version 0.1.7 as soon as possible. The interface is exactly the same so the upgrade should be ...

Today I noticed hundreds of logs in the snapwatchdog services. These appear because the daemon checks whether clamav-freshclam is enabled. This is a daemon used to make sure fresh virus signatures are uploaded at least once a day.

Aug 23 18:14:42 hostname snapwatchdogserver[10305]: Failed to get unit file state for clamav-freshclam.service: No such file or directory

The snapwatchdog service runs its tests about once a minute. This means we check whether the clamav-freshclam service is enabled once a minute. That's 1,440 times a day, assuming we don't lose even one minute. ...

Today I was checking my logs and noticed this entry. As we can see, within about 600ms, an attacker was trying to connect to many different ports (20480, 20736, 36895, 37151, 22528, 16671, 14340, 20992, 4135, 64288, 45090, 21248, 21504, 31775, 39455, 42254, 47115.)

Note: I hid the destination URL (x.x.x.x) on purpose. However, I did not hide the source!

Jul 23 11:20:34 finball1 kernel: [1661019.650298] [iptables] unknown: IN=eth0 OUT= SRC=87.62.140.210 DST=x.x.x.x LEN=44 TOS=0x00 PREC=0x00 TTL=57 ID=52074 PROTO=TCP SPT=26091 DPT=20480 WINDOW=131 RES=0x00 SYN URGP=0
Jul 23 11:20:34 ...

Today I wanted to get a plugin to work against the snapmanager.cgi executable's server.

The idea is pretty simple, the process loads the plugins and one of them (so far) wants to connect against the generate_content() signal, only that signal is part of the manager_cgi class which is not part of a .so library. Because of that, it doesn't expose its functions by default.

This is a quite interesting problem because it makes sense that the executable functions would not be visible to the dynamic linker. It should not be required. Actually, this is the first time I need such a feature, ...

I finally went back to libtld to make the tests work with the newest version so that way I could make a new upload on Sourceforget.net.

This newer version includes all the newer (and removed!) TLDs as of Jan 2018.

The TLDs are a fast moving target since those many additions accepted by ICANN, although most of the newest additions were in link with three or four countries and mainly commercial endeavors (i.e. a domain that offers sub-domains for sale.)

The new version also includes a PPA package as we have updated that part of our code so it compiles like a charm on launchpad.net. If you are ...

I pusblished a new version of CSS Preprocessor (csspp) because 1.0.9 and older had a bug in the output process which would not write the commas between lists of arguments in a declaration. For example, a box-shadow can be defined as follow:

box-shadow: 3px 2px 7px #888888, 0 0 4px #008800;

Versions before 1.0.10 would skip the comma after the first color, as shown below, rendering the whole declaration useless.

box-shadow:3px 2px 7px #8880 0 4px #080;

Download right here: https://sourceforge.net/projects/csspp/files/

Project here: CSS Preprocessor tool and library

Syndicate content

Snap! Websites
An Open Source CMS System in C++

Contact Us Directly