<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Debian &#8211; Virtually Fun</title>
	<atom:link href="https://virtuallyfun.com/category/debian/feed/" rel="self" type="application/rss+xml" />
	<link>https://virtuallyfun.com</link>
	<description>Fun with Virtualization</description>
	<lastBuildDate>Sun, 28 May 2023 12:54:28 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>
	<item>
		<title>How do I re-install all the deb&#8217;s I had from an existing Debian/Ubuntu install?</title>
		<link>https://virtuallyfun.com/2023/05/28/how-do-i-re-install-all-the-debs-i-had-from-an-existing-debian-ubuntu-install/</link>
					<comments>https://virtuallyfun.com/2023/05/28/how-do-i-re-install-all-the-debs-i-had-from-an-existing-debian-ubuntu-install/#respond</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Sun, 28 May 2023 12:54:25 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">http://virtuallyfun.com/?p=12723</guid>

					<description><![CDATA[Mostly because I&#8217;m an idiot, but at least I had a backup in hand. the debs are kpe tin /var/cache/apt/archives So a simple script like this: Will go ahead and prep a simple script to re-add everything. Obviously I don&#8217;t &#8230; <a href="https://virtuallyfun.com/2023/05/28/how-do-i-re-install-all-the-debs-i-had-from-an-existing-debian-ubuntu-install/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Mostly because I&#8217;m an idiot, but at least I had a backup in hand.</p>



<p class="wp-block-paragraph">the debs are kpe tin /var/cache/apt/archives</p>



<p class="wp-block-paragraph">So a simple script like this:</p>



<pre class="wp-block-code"><code>ls -l *.deb | awk '{print $9}' | sed -e 's/_/\ /g' | awk '{print "apt-get install "$1}' > /tmp/missing</code></pre>



<p class="wp-block-paragraph">Will go ahead and prep a simple script to re-add everything.  Obviously I don&#8217;t pass it into a sudo&#8217;d bash, but heh it works.</p>



<p class="wp-block-paragraph">Probably one of my quicker recoveries, since I had all the data &amp; config&#8217;s just lost the OS.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2023/05/28/how-do-i-re-install-all-the-debs-i-had-from-an-existing-debian-ubuntu-install/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Adding a 32bit runtime to UOS</title>
		<link>https://virtuallyfun.com/2020/09/26/adding-a-32bit-runtime-to-uos/</link>
					<comments>https://virtuallyfun.com/2020/09/26/adding-a-32bit-runtime-to-uos/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Sat, 26 Sep 2020 15:06:02 +0000</pubDate>
				<category><![CDATA[64bit computing]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MIPS]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/wordpress/?p=10513</guid>

					<description><![CDATA[AKA what happens when your OS is from one Debian like distribution and lags behind the rest of the world, but you want to run a parallel infastructure. Obviously for people who have sane setups their stuff is in sync &#8230; <a href="https://virtuallyfun.com/2020/09/26/adding-a-32bit-runtime-to-uos/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">AKA what happens when your OS is from one Debian like distribution and lags behind the rest of the world, but you want to run a parallel infastructure.  Obviously for people who have sane setups their stuff is in sync and this doesn&#8217;t apply.</p>



<p class="wp-block-paragraph">HOWEVER for people who use USO they will find out quickly that it&#8217;s a Debian derived MIPS64EL based distribution, but they don&#8217;t keep any MIPSEL (32bit) binaries.  So I was thinking add in the dpkg arch, and some deb sources and I&#8217;d be good to go, right?  Except the stuff is out of step so what happens is that UOS decides it wants to replace the OS with what is on the mipsel repos.  Even when specfiying the arch&#8217;s directly.</p>



<pre class="wp-block-code"><code>deb &#91;by-hash=force arch=mips64el] https://professional-packages.chinauos.com/desktop-professional eagle main contrib non-free
deb &#91;arch=mipsel] http://deb.debian.org/debian buster main contrib non-free</code></pre>



<p class="wp-block-paragraph">I tried.</p>



<p class="wp-block-paragraph">So the good news is that I asked around and found a solution that I&#8217;d never heard of, &#8220;debootstrap&#8221;.  <a href="https://www.debian.org/releases/stable/mipsel/apds03.en.html">The general page is here</a>:</p>



<p class="wp-block-paragraph">What it boils down to is that it&#8217;s a script set that will download enough DEB&#8217;s and extract them onto a directory and prep it out as a chroot/jail.  And you can specify whatever architecture you want, you can even use qemu to run totally alien stuff!  I&#8217;d never heard of this before, such a shame.</p>



<p class="wp-block-paragraph">From my rough notes I did something like this:</p>



<pre class="wp-block-code"><code>/usr/sbin/debootstrap --arch mipsel buster /usr/local/mipsel http://deb.debian.org/debian</code></pre>



<p class="wp-block-paragraph">This will install the mipsel platform of Buster into /usr/local/mipsel</p>



<p class="wp-block-paragraph">running the following gets me into the chroot/jail/container..</p>



<pre class="wp-block-code"><code>LANG=C.UTF-8 sudo chroot /usr/local/mipsel /bin/bash</code></pre>



<p class="wp-block-paragraph">YES it&#8217;s that simple!  Although there is some house cleaning to be done:</p>



<pre class="wp-block-code"><code>apt install makedev
mount none /proc -t proc
cd /dev
MAKEDEV generic</code></pre>



<p class="wp-block-paragraph">Making the devices sure took long enough, but now I could do the regular update, add in some compilers and stuff, X11, and whatnot and get things going.  Remember to mess around with xauth to get X11 forwarding from chroot working</p>



<p class="wp-block-paragraph">Now for the &#8216;fun&#8217; part of linking the libs&#8230;</p>



<pre class="wp-block-code"><code>ln -fs /usr/local/mipsel/usr/lib/mipsel-linux-gnu /usr/lib32
ln -fs /usr/lib32/ld.so.1 /lib/ld.so.1</code></pre>



<p class="wp-block-paragraph">Then you need to &#8216;config&#8217; ld.config with</p>



<pre class="wp-block-code"><code>cat > /etc/ld.so.conf.d/mipsel-buildroot.conf
/usr/local/mipsel/usr/lib/mipsel-linux-gnu
^D</code></pre>



<p class="wp-block-paragraph">Phew we are almost there!</p>



<pre class="wp-block-code"><code>$ file /usr/local/mipsel/bin/dash
/usr/local/mipsel/bin/dash: ELF 32-bit LSB shared object, MIPS, MIPS32 rel2 version 1 (SYSV), dynamically linked, interpreter /lib/ld.so.1, for GNU/Linux 3.2.0, BuildID&#91;sha1]=22877e3a9a83675b22a121c9d2f8943d7339e7db, stripped
$ sudo ldconfig;/usr/local/mipsel/bin/dash
$</code></pre>



<p class="wp-block-paragraph">And just like that we now can run dynamically linked 32bit MIPSEL binaries on UOS.</p>



<p class="wp-block-paragraph">As a bonus (from <a href="https://unix.stackexchange.com/questions/10743/what-to-do-to-run-gui-java-app-in-chrooted-environment">stackexcahnge</a>) here is how to run Xauth to get forwarding from the chroot.  From the &#8216;base&#8217; physical machine run:</p>



<pre class="wp-block-code"><code>$ xauth list
latitude/unix:0  MIT-MAGIC-COOKIE-1  d4474d13c</code></pre>



<p class="wp-block-paragraph">Now with that cookie run this in the chroot:</p>



<pre class="wp-block-code"><code># xauth add latitude/unix:0 MIT-MAGIC-COOKIE-1 d4474d13c
# xclock</code></pre>



<p class="wp-block-paragraph">and the 32bit Xclock should pop up on your 64bit desktop.</p>



<p class="wp-block-paragraph">Wasn&#8217;t that fun?!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2020/09/26/adding-a-32bit-runtime-to-uos/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>Not having fun with Python/Debian 9.1</title>
		<link>https://virtuallyfun.com/2019/05/17/not-having-fun-with-python-debian-9-1/</link>
					<comments>https://virtuallyfun.com/2019/05/17/not-having-fun-with-python-debian-9-1/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Fri, 17 May 2019 01:53:43 +0000</pubDate>
				<category><![CDATA[crypto]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[python]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/wordpress/?p=9489</guid>

					<description><![CDATA[Well after my last Star Wars Galaxies adventure, where I tried to run MySQL on Linux Subsystem for Windows v1, I got some weird shared memory error, and it wouldn&#8217;t run. Even the old BSDDB engine was bombing out trying &#8230; <a href="https://virtuallyfun.com/2019/05/17/not-having-fun-with-python-debian-9-1/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Well after my last <a href="https://virtuallyfun.com/wordpress/2019/05/15/running-swgemu-core3/">Star Wars Galaxies adventure</a>, where I tried to run MySQL on Linux Subsystem for Windows v1, I got some weird shared memory error, and it wouldn&#8217;t run.  Even the old BSDDB engine was bombing out trying to create files.  So fine, whatever I thought I could move on, and that is when I found out that somehow OpenSSL &amp; Python had utterly collided.</p>



<code>Python 1.13 (default, Sep 26 2018, 18:42:22)
[GCC 6.3.0 20170516] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import ssl
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/ssl.py", line 98, in <module>
    import _ssl             # if we can't import it, let the error propagate
ImportError: /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1: version `OPENSSL_1_1_0' not found (required by /usr/lib/python2.7/lib-dynload/_ssl.x86_64-linux-gnu.so)
>>></code>



<p class="wp-block-paragraph">Well isn&#8217;t that great.  I tried un-installing &amp; re-installing Python over and over, along with trying to force re-install OpenSSL.  No dice.</p>



<p class="wp-block-paragraph">So what finally got it working for me was to purge OpenSSL.</p>



<code>apt-get purge libssl1.1</code>



<p class="wp-block-paragraph">And after that it pulled out everything that was using it, well over 500MB of stuff I&#8217;d installed.  And for good measure I followed up with the autoremove for an additional 384MB of stuff to remove.  And then for the final step, of just installing Python:</p>



<code>root@HUANANZHIX79:~# apt-get install python2.7
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  libpython2.7-stdlib libssl1.1
Suggested packages:
  python2.7-doc
The following NEW packages will be installed:
  libpython2.7-stdlib libssl1.1 python2.7
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 3,537 kB of archives.
After this operation, 12.8 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://deb.debian.org/debian stretch/main amd64 libssl1.1 amd64 1.1.0j-1~deb9u1 [1,354 kB]
Get:2 http://deb.debian.org/debian stretch/main amd64 libpython2.7-stdlib amd64 2.7.13-2+deb9u3 [1,897 kB]
Get:3 http://deb.debian.org/debian stretch/main amd64 python2.7 amd64 2.7.13-2+deb9u3 [285 kB]
Fetched 3,537 kB in 0s (13.2 MB/s)
Preconfiguring packages ...
Selecting previously unselected package libssl1.1:amd64.
(Reading database ... 27441 files and directories currently installed.)
Preparing to unpack .../libssl1.1_1.1.0j-1~deb9u1_amd64.deb ...
Unpacking libssl1.1:amd64 (1.1.0j-1~deb9u1) ...
Selecting previously unselected package libpython2.7-stdlib:amd64.
Preparing to unpack .../libpython2.7-stdlib_2.7.13-2+deb9u3_amd64.deb ...
Unpacking libpython2.7-stdlib:amd64 (2.7.13-2+deb9u3) ...
Selecting previously unselected package python2.7.
Preparing to unpack .../python2.7_2.7.13-2+deb9u3_amd64.deb ...
Unpacking python2.7 (2.7.13-2+deb9u3) ...
Processing triggers for mime-support (3.60) ...
Processing triggers for libc-bin (2.24-11+deb9u4) ...
Setting up libssl1.1:amd64 (1.1.0j-1~deb9u1) ...
Processing triggers for man-db (2.7.6.1-2) ...
Setting up libpython2.7-stdlib:amd64 (2.7.13-2+deb9u3) ...
Setting up python2.7 (2.7.13-2+deb9u3) ...
Processing triggers for libc-bin (2.24-11+deb9u4) ...</code>



<p class="wp-block-paragraph">So now you think its going to be broken right?  It&#8217;s the same libssl package!  I didn&#8217;t even run an &#8216;apt-get update&#8217;.  And guess what?!  You would be <em>wrong</em>.</p>



<code>root@HUANANZHIX79:~# python
Python 2.7.13 (default, Sep 26 2018, 18:42:22)
[GCC 6.3.0 20170516] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import ssl
>>></code>



<p class="wp-block-paragraph">That&#8217;s right, it&#8217;s now working.</p>



<figure class="wp-block-image"><img fetchpriority="high" decoding="async" width="580" height="289" src="https://virtuallyfun.com/wp-content/uploads/2019/05/picard-facepalm.jpg" alt="" class="wp-image-9490" srcset="https://virtuallyfun.com/wp-content/uploads/2019/05/picard-facepalm.jpg 580w, https://virtuallyfun.com/wp-content/uploads/2019/05/picard-facepalm-300x149.jpg 300w" sizes="(max-width: 580px) 100vw, 580px" /></figure>



<p class="wp-block-paragraph">Speaking of Picard, I hear there will be a new series, inspiringly named &#8216;Picard&#8217;.  Apparently it&#8217;s going down the same path as STD, complete with a lack of backers, and merch.  I&#8217;m hoping it&#8217;ll be something watchable, although they certainly cannot afford any of the TNG cast as they apparently have zero budget.  Maybe it&#8217;ll end up as another &#8216;Jake Skywalker&#8217; or &#8216;Not my Picard&#8217;.  But the bad reboot 25% contractual difference could be the difference between something new, or something so divergent that there was no point in even attempting to be a Trek.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2019/05/17/not-having-fun-with-python-debian-9-1/feed/</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
			</item>
		<item>
		<title>Where the heck is rc.local in Debian 9?</title>
		<link>https://virtuallyfun.com/2018/05/29/where-the-heck-is-rc-local-in-debian-9/</link>
					<comments>https://virtuallyfun.com/2018/05/29/where-the-heck-is-rc-local-in-debian-9/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Tue, 29 May 2018 07:00:04 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/wordpress/?p=8459</guid>

					<description><![CDATA[Thanks to a quick search here is how to re-create it: cat &#60;/etc/rc.local #!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" &#8230; <a href="https://virtuallyfun.com/2018/05/29/where-the-heck-is-rc-local-in-debian-9/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>Thanks to <a href="https://stackoverflow.com/questions/44797694/where-is-rc-local-in-debian-9-debian-stretch?utm_medium=organic&amp;utm_source=google_rich_qa&amp;utm_campaign=google_rich_qa">a quick search</a> here is how to re-create it:</p>
<pre>cat &lt;/etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

exit 0
EOF
chmod +x /etc/rc.local
systemctl daemon-reload
systemctl start rc-local
systemctl status rc-local
</pre>
<p>Nice.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2018/05/29/where-the-heck-is-rc-local-in-debian-9/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>Building Synchronet on Debian Stretch</title>
		<link>https://virtuallyfun.com/2017/10/05/building-synchronet-debian-stretch/</link>
					<comments>https://virtuallyfun.com/2017/10/05/building-synchronet-debian-stretch/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Thu, 05 Oct 2017 01:01:24 +0000</pubDate>
				<category><![CDATA[bbs]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[x64]]></category>
		<category><![CDATA[x86_64]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=7527</guid>

					<description><![CDATA[I still run an ancient BBS, using Synchronet on OS/2.Â  The problem being that I not only get port scanned an incredible amount of times, but so many things out there now logon as root/root and they think they are &#8230; <a href="https://virtuallyfun.com/2017/10/05/building-synchronet-debian-stretch/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p><div id="attachment_7532" style="width: 310px" class="wp-caption alignright"><a href="https://virtuallyfun.com/wp-content/uploads/2017/10/QemuOS2-BBS.png"><img decoding="async" aria-describedby="caption-attachment-7532" class="size-medium wp-image-7532" src="https://virtuallyfun.com/wp-content/uploads/2017/10/QemuOS2-BBS-300x224.png" alt="" width="300" height="224" /></a><p id="caption-attachment-7532" class="wp-caption-text">Yay</p></div></p>
<p>I still run an ancient BBS, using <a href="http://www.synchro.net/">Synchronet</a> on OS/2.Â  The problem being that I not only get port scanned an incredible amount of times, but so many things out there now logon as root/root and they think they are on a Linux machine and can then shell script their way into some exploits.Â  Ive tried rate limiting, and other methods, but I end up with so many distributed connections that <a href="https://virtuallyfun.com/2011/05/15/os2-and-virtual-com-ports/">SIO</a> can&#8217;t cope and it&#8217;ll crash.Â  A reboot will fix it, of course, but rebooting 2-3 times a day is a bummer.Â  So I thought I&#8217;d front my BBS with a stub BBS, which means building Synchronet from source.Â  <a href="http://wiki.synchro.net/install:nix">And while there is some guides on how to do this</a>, I naturally hit some weird undocumented error.</p>
<p>So yeah, get ready for this fun error:</p>
<p style="padding-left: 30px;">jsapi.cpp: In function &#8216;JSIdArray* JS_Enumerate(JSContext*, JSObject*)&#8217;:<br />
jsapi.cpp:3988:16: error: cannot convert &#8216;bool&#8217; to &#8216;JSIdArray*&#8217; in return<br />
return false;</p>
<p>So it turns out that GCC 6 and higher won&#8217;t compile the older javascript engine that Synchronet relies on.Â  Ok, so I figured I would just fix the cast and go on my way.Â  But no, as part of the build process once it figures out that I&#8217;ve tampered with a file it&#8217;ll re-unpack the engine and break on the same error again.Â  And this is why I find things that try to be so &#8216;easy&#8217; and holding (I&#8217;m looking at you Cmake!!!!) end up being totally black box, and absolutely useless.</p>
<p>So what I really need is g++ 4.x, and what is the quickest and easiest way to get the old compiler?Â  Ugh, grab the package from the prior version Jessie.Â  Seriously.Â  Add this into your /etc/apt/sources.list</p>
<p style="padding-left: 30px;">deb http://ftp.us.debian.org/debian/ jessie main contrib non-free</p>
<p>and then run:</p>
<p style="padding-left: 30px;">apt-get update &amp;&amp; apt-get install g++-4.9</p>
<p>And take the new line out ofÂ /etc/apt/sources.list or you will have hell to pay.</p>
<p>After that it was a matter of modifying some of the logon code to streamline the logon process, and to gut the &#8216;ham radio&#8217; door into something that&#8217;ll telnet to the OS/2 BBS.Â  After a bit of work it actually works.Â  I even tested Zmodem, and that works too!</p>
<p><div id="attachment_7528" style="width: 652px" class="wp-caption aligncenter"><a href="https://virtuallyfun.com/wp-content/uploads/2017/10/proxy-logon.png"><img decoding="async" aria-describedby="caption-attachment-7528" class="size-full wp-image-7528" src="https://virtuallyfun.com/wp-content/uploads/2017/10/proxy-logon.png" alt="" width="642" height="432" /></a><p id="caption-attachment-7528" class="wp-caption-text">Logging into the proxy</p></div></p>
<p>I need some ASCII art or something.Â  That and probably turn off new user registration.Â  Guest access is all anyone can get on the proxy.</p>
<p><div id="attachment_7529" style="width: 652px" class="wp-caption aligncenter"><a href="https://virtuallyfun.com/wp-content/uploads/2017/10/proxy-menu.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-7529" class="size-full wp-image-7529" src="https://virtuallyfun.com/wp-content/uploads/2017/10/proxy-menu.png" alt="" width="642" height="432" /></a><p id="caption-attachment-7529" class="wp-caption-text">Telnet menu</p></div></p>
<p>I could probably do more here.Â  Years ago I ran some public access Ancient UNIX stuff, but the problems were that it got slammed from the internet.Â  But if Synchronet can keep up with the idiots on the outside, I guess this works as a jump point into something else?Â  I may have to see about adding some 386BSD, and Linux 1.0</p>
<p><div id="attachment_7530" style="width: 652px" class="wp-caption aligncenter"><a href="https://virtuallyfun.com/wp-content/uploads/2017/10/qemuos2-via-proxy.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-7530" class="size-full wp-image-7530" src="https://virtuallyfun.com/wp-content/uploads/2017/10/qemuos2-via-proxy.png" alt="" width="642" height="432" /></a><p id="caption-attachment-7530" class="wp-caption-text">QEMUOS2 via modern Synchronet</p></div></p>
<p>And here we are, at the old BBS.Â  I never got that many people to begin with, and I did like having the only OS/2 BBS on the internet up.Â  The other BBS O-Zone seems to have given up, as their domain expired.Â  So it&#8217;s just me, once more again.</p>
<p>I&#8217;m sure the vast majority of people won&#8217;t care, but I guess I finally hit the tipping point where 1996&#8217;s SIO just can&#8217;t keep up in 2017&#8217;s world of relentless port knocking.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2017/10/05/building-synchronet-debian-stretch/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
		<item>
		<title>Upgrading Debian 8 to version 9</title>
		<link>https://virtuallyfun.com/2017/09/19/upgrading-debian-8-version-9/</link>
					<comments>https://virtuallyfun.com/2017/09/19/upgrading-debian-8-version-9/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Tue, 19 Sep 2017 03:52:35 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=7429</guid>

					<description><![CDATA[More so my own use, but this article on linuxconfig.orgÂ was a LOT of help. Basically and with no explanation the steps are : apt-get update apt-get upgrade apt-get dist-upgrade dpkg -C apt-mark showhold cp /etc/apt/sources.list /etc/apt/sources.jessie sed -i &#8216;s/jessie/stretch/g&#8217; /etc/apt/sources.list &#8230; <a href="https://virtuallyfun.com/2017/09/19/upgrading-debian-8-version-9/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>More so my own use, but this article on <a href="https://linuxconfig.org/how-to-upgrade-debian-8-jessie-to-debian-9-stretch">linuxconfig.org</a>Â was a LOT of help.</p>
<p>Basically and with no explanation the steps are :</p>
<p style="padding-left: 30px;">apt-get update<br />
apt-get upgrade<br />
apt-get dist-upgrade</p>
<p style="padding-left: 30px;">dpkg -C</p>
<p style="padding-left: 30px;">apt-mark showhold</p>
<p style="padding-left: 30px;">cp /etc/apt/sources.list /etc/apt/sources.jessie</p>
<p style="padding-left: 30px;">sed -i &#8216;s/jessie/stretch/g&#8217; /etc/apt/sources.list</p>
<p style="padding-left: 30px;">apt-get update</p>
<p style="padding-left: 30px;">apt list &#8211;upgradable</p>
<p style="padding-left: 30px;">apt-get upgrade<br />
apt-get dist-upgrade</p>
<p style="padding-left: 30px;">aptitude search &#8216;~o&#8217;</p>
<p>And that&#8217;s it!</p>
<p>I also took the BBR congestion update tip from <a href="https://www.tipsforchina.com/how-to-setup-a-fast-shadowsocks-server-on-vultr-vps-the-easy-way.html">tipsforchina.com</a></p>
<p style="padding-left: 30px;">wget &#8211;no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh</p>
<p>And adding the following to /etc/sysctl.conf after the &#8220;net.ipv4.tcp_congestion_control = bbr&#8221;Â line.</p>
<div id="elm_LeHM7HkKR3S7Qu2iwBQ-2w" class="zpelement-wrapper zpElemCont">
<div id="pos_lFVKVbWKTyaRQgi7_OizKg" class="zs-highlight-box">
<div id="elm_9JvUZ36xS2OT1sbdfmna0g" class="zpelement-wrapper text">
<div>
<p style="padding-left: 30px;">fs.file-max = 51200<br />
net.core.rmem_max = 67108864<br />
net.core.wmem_max = 67108864<br />
net.core.netdev_max_backlog = 250000<br />
net.core.somaxconn = 4096<br />
net.ipv4.tcp_syncookies = 1<br />
net.ipv4.tcp_tw_reuse = 1<br />
net.ipv4.tcp_tw_recycle = 0<br />
net.ipv4.tcp_fin_timeout = 30<br />
net.ipv4.tcp_keepalive_time = 1200<br />
net.ipv4.ip_local_port_range = 10000 65000<br />
net.ipv4.tcp_max_syn_backlog = 8192<br />
net.ipv4.tcp_max_tw_buckets = 5000<br />
net.ipv4.tcp_fastopen = 3<br />
net.ipv4.tcp_mem = 25600 51200 102400<br />
net.ipv4.tcp_rmem = 4096 87380 67108864<br />
net.ipv4.tcp_wmem = 4096 65536 67108864<br />
net.ipv4.tcp_mtu_probing = 1</p>
</div>
</div>
</div>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2017/09/19/upgrading-debian-8-version-9/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>Manually adding ncurses &#038; VDE support to the Linux Qemu build</title>
		<link>https://virtuallyfun.com/2017/03/25/manually-adding-ncurses-vde-support-linux-qemu-build/</link>
					<comments>https://virtuallyfun.com/2017/03/25/manually-adding-ncurses-vde-support-linux-qemu-build/#respond</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Sat, 25 Mar 2017 06:13:13 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[QEMU]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=7002</guid>

					<description><![CDATA[For some reason I had issues for this to automatically pick up building Qemu 2.8.0 on Ubuntu 16.10 (Which is really Debian)&#8230; Anyways, be sure to have the needed dev components installed. Â If you have a FRESH system, natrually you&#8217;ll &#8230; <a href="https://virtuallyfun.com/2017/03/25/manually-adding-ncurses-vde-support-linux-qemu-build/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>For some reason I had issues for this to automatically pick up building Qemu 2.8.0 on Ubuntu 16.10 (Which is really Debian)&#8230;</p>
<p>Anyways, be sure to have the needed dev components installed. Â If you have a FRESH system, natrually you&#8217;ll need a lot more.</p>
<p style="padding-left: 30px;">apt-get install libvdeplug-dev<br />
apt-get install libvde-dev<br />
apt-get install ncurses-dev</p>
<p>editing the file config-host.mak, I found I needed to add the following to turn on ncurses &amp; VDE:</p>
<p style="padding-left: 30px;">CONFIG_CURSES=y<br />
CONFIG_VDE=y</p>
<p>And lastly add in the following libs to the libs_softmmu, to ensure it&#8217;ll link</p>
<p style="padding-left: 30px;">-lncurses -lvdeplug</p>
<p>And now I&#8217;m good!</p>
<p>From my notes on flags needed to run Qemu the old fashioned way:</p>
<p style="padding-left: 30px;">-net none -device pcnet,mac=00:0a:21:df:df:01,netdev=qemu-lan -netdev vde,id=qemu-lan,sock=/tmp/local/</p>
<p>This will join it to the VDEÂ listening in /tmp/local</p>
<p>Obviously I have something more interesting and more evil going on&#8230;.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2017/03/25/manually-adding-ncurses-vde-support-linux-qemu-build/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Firefly-Host-6.0-CloudSDK fun in &#8220;modern&#8221; times</title>
		<link>https://virtuallyfun.com/2017/01/14/firefly-host-6-0-cloudsdk-fun-modern-times/</link>
					<comments>https://virtuallyfun.com/2017/01/14/firefly-host-6-0-cloudsdk-fun-modern-times/#comments</comments>
		
		<dc:creator><![CDATA[neozeed]]></dc:creator>
		<pubDate>Sat, 14 Jan 2017 12:00:38 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[python]]></category>
		<guid isPermaLink="false">https://virtuallyfun.com/?p=6733</guid>

					<description><![CDATA[Getting started Ugh. nothing like ancient crypto, major security vulnerabilities, and ancient crap. Â So first I&#8217;m going to use Juniper&#8217;s SDK (get it while you can, if you care). Â Note that the product is long since EOL&#8217;d, and all support &#8230; <a href="https://virtuallyfun.com/2017/01/14/firefly-host-6-0-cloudsdk-fun-modern-times/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<h1>Getting started</h1>
<p>Ugh. nothing like ancient crypto, major security vulnerabilities, and ancient crap. Â So first I&#8217;m going to use <a href="https://webdownload.juniper.net/swdl/dl/secure/site/1/record/54285.html">Juniper&#8217;s SDK</a> (get it while you can, if you care). Â Note that the product is long since EOL&#8217;d, and all support is GONE. Â I&#8217;m using Debian 7 to perform this query, although I probably should be using something like 4 or 5. Â Anyways first off is that the python examples require &#8220;Ft.Xml.Domlette&#8221; which doesn&#8217;t seem to have a 4Suite-XML package. Â SO let&#8217;s build it <a href="http://serverfault.com/questions/645433/pyajam-in-debian-7">the old fashioned way</a>:</p>
<p style="padding-left: 30px;">Â apt-get install build-essential python-dev<br />
wget http://pypi.python.org/packages/source/4/4Suite-XML/4Suite-XML-1.0.2.tar.bz2<br />
tar -xvvf 4Suite-XML-1.0.2.tar.bz2<br />
cd 4Suite-XML-1.0.2<br />
./setup.py install</p>
<p>Well (for now) and in my case I could reconfigure tomcat to be slightly more secure. Otherwise running the examples gives this fun filled error:</p>
<p style="padding-left: 30px;">ssl.SSLError: [Errno 1] _ssl.c:504: error:14082174:SSL routines:SSL3_CHECK_CERT_AND_ALGORITHM:dh key too small</p>
<p>Naturally as time goes on this will not work anymore, and I&#8217;ll need a stale machine to query this stale service. Using <a href="https://www.sslshopper.com/article-how-to-disable-weak-ciphers-and-ssl-2-in-tomcat.html">ssl shopper&#8217;s Tomcat guide</a>, I made changes to the server.xml file on the vGW SD VM. (Don&#8217;t forget to enable SSH in the settings WebUI, and then login as admin/&lt;whatever password you gave&gt; then do a &#8216;sudo bash&#8217; to run as root, screw being nice!</p>
<p style="padding-left: 30px;"><code><br />
# diff -ruN server.xml-old server.xml<br />
--- server.xml-old 2017-01-14 18:20:07.000000000 +0800<br />
+++ server.xml 2017-01-14 19:31:36.000000000 +0800<br />
@@ -98,7 +98,7 @@<br />
enableLookups="false" disableUploadTimeout="true"<br />
acceptCount="100" scheme="https" secure="true"<br />
clientAuth="false" sslProtocol="TLS" URIEncoding="UTF-8"<br />
- ciphers="TLS_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA"<br />
+ ciphers="TLS_RSA_WITH_AES_128_CBC_SHA, ECDH-RSA-AES128-SHA"<br />
keystoreFile="/var/lib/altor/cert/public_keystore" keystorePass="altoraltor"/&gt;</code></p>
<p>Naturally don&#8217;t forget to restart Tomcat, which does take forever:</p>
<p style="padding-left: 30px;">bash-3.2# /etc/init.d/tomcat restart<br />
Stopping tomcat: [ OK ]<br />
Starting tomcat: [ OK ]</p>
<p>And now I&#8217;m FINALLY able to run Â one of the sample scripts</p>
<p style="padding-left: 30px;"># ./policyToXML.py &#8211;grp 1<br />
&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;UTF-8&#8243;?&gt;<br />
&lt;policy xmlns=&#8221;urn:altor:center:policy&#8221;&gt;<br />
&lt;revision&gt;340&lt;/revision&gt;<br />
&lt;name&gt;Global Policy&lt;/name&gt;<br />
&lt;id&gt;1&lt;/id&gt;<br />
&lt;rev&gt;1&lt;/rev&gt;<br />
&lt;type&gt;G&lt;/type&gt;<br />
&lt;groupId&gt;-1&lt;/groupId&gt;<br />
&lt;machineId&gt;-1&lt;/machineId&gt;<br />
&lt;Inbound&gt;</p>
<p>And you get the idea. Â Certainly on the one hand it&#8217;s nice to get some data out of the vGW without using screen captures or anything else equally useless, and it sure beats trying to read stuff like this:</p>
<p><div id="attachment_6734" style="width: 1398px" class="wp-caption aligncenter"><a href="https://virtuallyfun.com/wp-content/uploads/2017/01/VM-Policy-for-NT4-DB.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-6734" class="size-full wp-image-6734" src="https://virtuallyfun.com/wp-content/uploads/2017/01/VM-Policy-for-NT4-DB.png" alt="" width="1388" height="774" /></a><p id="caption-attachment-6734" class="wp-caption-text">vGW VM effective policy for a VM</p></div></p>
<p>What on earth was Altor/Juniper thinking? Â Who thought making the screen damned near impossible to read was a &#8220;good thing&#8221;â„¢</p>
<p>I just wish I&#8217;d known about the <a href="https://www.juniper.net/support/downloads/?p=vgw#sw">SDK download on the now defunct firefly page</a>Â a few years ago as it&#8217;d have saved me a <strong>LOT</strong> of pain, but as they say, not time like the present.</p>
<p>Naturally someone here is going to say, upgrade to the last version it&#8217;ll fix these errors, and sure it may, but are you going to bet a production environment that is already running obsolete software on changing versions? Â Or migrate to a new platform? Sure, the first step I&#8217;d want of course is a machine formatted rule export of the existing rules. Â And here we are.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://virtuallyfun.com/2017/01/14/firefly-host-6-0-cloudsdk-fun-modern-times/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
	</channel>
</rss>
