<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>icanhastech?</title>
    <description>icanhastech?
</description>
    <link>https://zi0r.com/</link>
    <atom:link href="https://zi0r.com/feed.xml" rel="self" type="application/rss+xml"/>
    <pubDate>Sun, 22 May 2016 11:16:25 -0400</pubDate>
    <lastBuildDate>Sun, 22 May 2016 11:16:25 -0400</lastBuildDate>
    <generator>Jekyll v3.1.2</generator>
    
      <item>
        <title>Free-form digital lenses for your glasses</title>
        <description>&lt;p&gt;Most people don&amp;#39;t think twice about glasses.  We walk into some eye place, you get a prescription and go pick out new frames.  However, there are a ton of different options out there.  A couple of these have been significant enough for me to warrant trying to share.&lt;/p&gt;

&lt;p&gt;If you are getting new lenses, I highly recommend you ask for free-form digital lenses.  This isn&amp;#39;t the same thing as a digital lens--the free-form piece is key.&lt;/p&gt;

&lt;p&gt;These are the clearest and best pair of glasses that I have ever owned.&lt;/p&gt;

&lt;h1&gt;Traditional Lenses&lt;/h1&gt;

&lt;p&gt;Traditional lenses are surfaced by polishing and you end up with a single point in the center of the lens (where your pupil is) that ends up matching your prescription.  As you move away from this point, the prescription gets farther away from where it is supposed to be.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If you don&amp;#39;t want to read all of this, ask for the Shamir Autograph III (free-form digital lens) in Trivex, but make sure the optical lab won&amp;#39;t give you back a lens with &amp;#39;invisible markings&amp;#39; on the part of the lens that will end up in your frames.  (Lenses without markings are an option for single vision lenses)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;Free-form Digital Lenses&lt;/h1&gt;

&lt;p&gt;With a free-form digital lens, your prescription is re-calculated across the entire surface of the lens.  This means you&amp;#39;re able to use much more of the lens to look through without distortion.  For me, it was a night and day difference and I have no plans of ever going back to traditionally surfaced lenses again.&lt;/p&gt;

&lt;p&gt;The Shamir Autograph III lens is what I currently have experience with and it is fantastic.  However, it has taken a bit of digging/learning to get to where I am now.&lt;/p&gt;

&lt;p&gt;Finding a place that is familiar with free-form digital lenses might be a challenge, especially if you are trying to find one that has the smarts and is in your insurance network.  It&amp;#39;s worth the hunt.&lt;/p&gt;

&lt;h1&gt;Will this work for you?&lt;/h1&gt;

&lt;p&gt;If your prescription is between -14.00 to +7.50 with a cylinder to -6.50, you can get the single vision lenses in Trivex.  If it&amp;#39;s outside of this range, you&amp;#39;ll have to ask/do your own research--the ranges are different for the various lens materials out there.&lt;/p&gt;

&lt;h1&gt;My Adventure&lt;/h1&gt;

&lt;p&gt;These lenses ship from the factory without digital etchings/markings.  However, are later added by the optical lab during their processing.  They are supposed to indicate that it was a free-form lens, made of Trivex, in single vision (more on this later) and has the company logo on it.  You don&amp;#39;t want them.&lt;/p&gt;

&lt;p&gt;An optical lab will surface the lens (making it match your prescription) and then mail the lens blank (~3&amp;quot; round piece of lens) back to your eye care place.  The local optical place will cut the lens to fit in your frame.&lt;/p&gt;

&lt;p&gt;Why these guys would decide to take a precision optical instrument and deface it with this garbage is beyond me.  I asked around and their goal was apparently to &amp;quot;make sure consumers can verify they got what they paid for.&amp;quot;  Which I suppose is great if you are buying your lenses from some shady place.  However, it&amp;#39;s pretty terrible to look through.  When you are wearing the glasses, the &amp;#39;invisible markings&amp;#39; look like smudges/fingerprints that you can&amp;#39;t get rid of.  If you take off the glasses and tilt them at just the right angle, you can see that these smudges are actually symbols/text that do indeed indicate the details of the lens.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;You can&amp;#39;t see these unless you are looking for them.  When you are wearing the glasses, they just look like smudges if you try to look through them.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;img src=&quot;/images/lensblank1.png&quot; alt=&quot;shamir lens blank&quot; title=&quot;Shamir Lens Blank&quot;&gt;&lt;/p&gt;

&lt;p&gt;Most optical labs are figuring out that customers hate this and have no interest in trying to look through a company logo on their glasses.  As a result, after multiple customer complaints, labs started leaving the etching option off by default.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Make sure you ask if the optical lab can do this, otherwise, you might get back a pair of glasses with smudges (digital etchings) in them that you&amp;#39;re going to hate.  This must be done at the lab, the local eye care place cannot simply edge the lens differently--especially if you have astigmatism correction.&lt;/p&gt;

&lt;p&gt;I&amp;#39;ve been told that the markings are required for progressive lenses, but optional for single vision lenses&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;Lens Materials&lt;/h1&gt;

&lt;p&gt;There are a bunch of these out there.  If you have a mild prescription, you probably have polycarbonate lenses.  If you have a slightly worse prescription, you probably have high index lenses.  Each of these materials has different indexes of refraction (a number that describes how light propagates through it), impact resistance (how hard of a hit it can take before breaking/shattering/denting), abbe value (optical clarity of the material--scale maxes out at 100, your eye is somewhere between 45-50) and a bunch of other values that I&amp;#39;m going to ignore.&lt;/p&gt;

&lt;p&gt;You&amp;#39;ve probably seen/heard of the following materials at some point: polycarbonate, glass, cr-39 plastic, mid/high index plastic, Trivex and maybe others.  I&amp;#39;m just going to share information on a couple.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Polycarbonate -- Lightweight, fairly inexpensive, good impact-resistance, abbe value of 30.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Trivex -- Lightweight, slightly more expensive than polycarbonate (less than $40 more), impact-resistance comparable to that of polycarbonate.  Abbe value of 43.  Is lighter, but slightly thicker than polycarbonate.  For me, this equated to the lense being 0.2mm thicker than polycarbonate, which I didn&amp;#39;t really care about.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;High Index Plastic -- More expensive than Trivex (less than $150 more), impact-resistance much lower than polycarbonate/Trivex.  Abbe value between 32-36.  Might be a requirement to ensure you aren&amp;#39;t rocking coke bottle lenses, depending on your prescription.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;Lens Types&lt;/h1&gt;

&lt;p&gt;There are a bunch of these, but I&amp;#39;m just going to focus on these two as these are your only option in a free-form digital lens at the moment:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Single vision (nothing special, standard prescription)&lt;/li&gt;
&lt;li&gt;Progressive (prescription gradually changes across the surface of the lens--can give you distance in the middle and up close if you look through the bottom part of the lens)&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;Lens Manufacturers&lt;/h1&gt;

&lt;p&gt;There are a ton of these as well.  They will take the various lens materials that are out there and make their own version of them.  Most have sales slicks that indicate that they do something special/unique.&lt;/p&gt;

&lt;h1&gt;Optical Lab&lt;/h1&gt;

&lt;p&gt;After you&amp;#39;ve picked out a pair of frames, your local store will likely place an order to an external lab.  The lab will be responsible for obtaining the lens blank, surfacing it (making it match your prescription) and then shipping it back to your local store.  Most of the larger eye care places have a edging machine in the store that will take the surfaced lens and cut it to fit in your frames.&lt;/p&gt;

&lt;h1&gt;What if I&amp;#39;m lazy and don&amp;#39;t want to research this on my own and I do not care about having my insurance cover it?&lt;/h1&gt;

&lt;p&gt;Visit &lt;a href=&quot;http://www.adseyewear.com/ads-prescription-lenses/&quot;&gt;adseyeware&lt;/a&gt; and place your order.  You can mail your frames in after you&amp;#39;ve placed the order, and they&amp;#39;ll take care of the rest.  It will probably cost you about $200 if you have your own frames and want Trivex.  I have no affiliation with them, they just happened to be the place that did mine and will not send you back lenses with etchings on them.&lt;/p&gt;

&lt;p&gt;You will need to know what your current prescription is as well as your PD.  The PD is the distance between your pupils.  If you have had glasses made in the past, you might be able to call the place that made them for you and ask for it.  Some places are silly about giving it to you, so you might need to walk into a eye care place and ask them to measure it for you.&lt;/p&gt;

&lt;p&gt;ADS Eyeware also spent the time to help me figure out the difference between the awesome lenses I received from them and the non-free-form lenses I had made at a local place.&lt;/p&gt;

&lt;h1&gt;Frame Information&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Frames all have measurements/sizes on them: bridge width, lens width and the length of the arms.  These numbers are usually on the back of the bridge or on the inside of the arms.&lt;/li&gt;
&lt;li&gt;Frame manufacturers will sometimes make the same frames in different sizes--a size that fits your face may exist, but might not be in your local store&lt;/li&gt;
&lt;li&gt;If you already have frames that fit you well, you can use these numbers as a reference.&lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Wed, 04 May 2016 21:45:37 -0400</pubDate>
        <link>https://zi0r.com/2016/05/04/free-form-digital-lenses.html</link>
        <guid isPermaLink="true">https://zi0r.com/2016/05/04/free-form-digital-lenses.html</guid>
        
        <category>free-form</category>
        
        <category>shamir</category>
        
        <category>digital lenses</category>
        
        
      </item>
    
      <item>
        <title>Switching to jekyll</title>
        <description>&lt;p&gt;I&amp;#39;ve finally ditched &lt;a href=&quot;https://github.com/TwP/webby&quot;&gt;webby&lt;/a&gt; as it is no longer being maintained and no longer functions with modern ruby bits.  The last commit was 5+ years ago.  Perhaps being able to publish will encourage me to actually publish something.&lt;/p&gt;

&lt;p&gt;The conversion from &lt;a href=&quot;https://github.com/TwP/webby&quot;&gt;webby&lt;/a&gt; to &lt;a href=&quot;https://jekyllrb.com/&quot;&gt;jekyll&lt;/a&gt; was fairly painless and just involved some &lt;a href=&quot;http://technosophos.com/2009/05/21/perl-pie-if-you-only-learn-how-do-one-thing-perl-it.html&quot;&gt;perl pie&lt;/a&gt;.  Fortunately, the URL structure between &lt;a href=&quot;https://github.com/TwP/webby&quot;&gt;webby&lt;/a&gt; and &lt;a href=&quot;https://jekyllrb.com/&quot;&gt;jekyll&lt;/a&gt; are identical, so the old cached links will still continue to function without any redirect hassles.  (As long as I don&amp;#39;t try to assign categories to the old posts)&lt;/p&gt;
</description>
        <pubDate>Sun, 13 Mar 2016 21:50:37 -0400</pubDate>
        <link>https://zi0r.com/site/2016/03/13/hello-jekyll.html</link>
        <guid isPermaLink="true">https://zi0r.com/site/2016/03/13/hello-jekyll.html</guid>
        
        <category>jekyll</category>
        
        <category>webby</category>
        
        
        <category>site</category>
        
      </item>
    
      <item>
        <title>Juniper MX: GRE over IPSec with the MS-MIC or MS-DPC</title>
        <description>&lt;p&gt;Juniper&amp;#39;s MultiServices MIC (MS-MIC-16G) has some fancy features that allow you to do NAT, IPSec termination (~8Gbit/s), etc. on the MX platform.  However, documentation for it sucks and J-Tac don&amp;#39;t appear to be super familiar with it.&lt;/p&gt;

&lt;p&gt;In order to create an IPSec-protected GRE tunnel between two MXs, you need:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A pair of IPs to use for IPSec termination (10.0.0.1/32 and 10.0.0.2/32).  These could be your half of the /30 an ISP allocates to you for peering.&lt;/li&gt;
&lt;li&gt;A pair of /32s to use for routing traffic to the MS-MIC (10.0.204.50/32 and 10.0.79.50/32).  These can be RFC1918 space if you&amp;#39;d like, however, should be separate from your routers primary loopback IP.&lt;/li&gt;
&lt;li&gt;A /30 to use for the GRE tunnel itself (10.10.10.0/30).  Should be publically routeable if you plan to use the GRE tunnel for moving Internet-facing traffic around.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;Add our magic IP to lo0 and route traffic destined to our peers lo0 (10.0.204.50/32) to the MS-MIC (we&amp;#39;ll use this as the GRE tunnel destination)&lt;/h1&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-&quot; data-lang=&quot;&quot;&gt;set interfaces lo0 unit 0 family inet address 10.0.79.50/32
set routing-options static route 10.0.204.50/32 next-hop ms-2/2/0.1
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h1&gt;Configure interfaces on the MS-MIC:&lt;/h1&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-&quot; data-lang=&quot;&quot;&gt;set interfaces ms-2/2/0 unit 0 family inet
set interfaces ms-2/2/0 unit 1 family inet
set interfaces ms-2/2/0 unit 1 service-domain inside
set interfaces ms-2/2/0 unit 2 family inet
set interfaces ms-2/2/0 unit 2 service-domain outside
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h1&gt;Configure the IPSec rules to encrypt traffic from our lo0 destined to our peers lo0:&lt;/h1&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-&quot; data-lang=&quot;&quot;&gt;set services ipsec-vpn rule IPSec term 1 from source-address 10.0.79.50/32
set services ipsec-vpn rule IPSec term 1 from destination-address 10.0.204.50/32
set services ipsec-vpn rule IPSec term 1 then remote-gateway 10.0.0.2
set services ipsec-vpn rule IPSec term 1 then dynamic ike-policy IKE-Policy
set services ipsec-vpn rule IPSec term 1 then dynamic ipsec-policy IPSec_policy
set services ipsec-vpn rule IPSec term 1 then initiate-dead-peer-detection
set services ipsec-vpn rule IPSec match-direction input
set services ipsec-vpn ipsec proposal IPSec-proposal protocol esp
set services ipsec-vpn ipsec proposal IPSec-proposal authentication-algorithm hmac-sha1-96
set services ipsec-vpn ipsec proposal IPSec-proposal encryption-algorithm aes-128-cbc
set services ipsec-vpn ipsec policy IPSec_policy proposals IPSec-proposal
set services ipsec-vpn ipsec policy IPSec_policy perfect-forward-secrecy keys group19
set services ipsec-vpn ike proposal IKE-Proposal authentication-method pre-shared-keys
set services ipsec-vpn ike proposal IKE-Proposal dh-group group19
set services ipsec-vpn ike proposal IKE-Proposal authentication-algorithm sha-256
set services ipsec-vpn ike proposal IKE-Proposal encryption-algorithm aes-128-cbc
set services ipsec-vpn ike proposal IKE-Proposal lifetime-seconds 14400
set services ipsec-vpn ike policy IKE-Policy proposals IKE-Proposal
set services ipsec-vpn ike policy IKE-Policy pre-shared-key ascii-text supersecretkey
set services ipsec-vpn establish-tunnels immediately
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;You might want to use certificates here for extra security.  Shared secrets aren&amp;#39;t awesome.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;Bind the service sets to the interfaces we previously created&lt;/h1&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-&quot; data-lang=&quot;&quot;&gt;set services service-set IPSec_SS next-hop-service inside-service-interface ms-1/2/0.1
set services service-set IPSec_SS next-hop-service outside-service-interface ms-1/2/0.2
set services service-set IPSec_SS ipsec-vpn-options local-gateway 10.0.0.1
set services service-set IPSec_SS ipsec-vpn-rules IPSec
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h1&gt;Configure the MS-MIC to intercept and rewrite the max segment size on TCP packets with the syn flag set to avoid fragmentation issues:&lt;/h1&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-&quot; data-lang=&quot;&quot;&gt;set interfaces ms-2/2/0 unit 3 family inet
set interfaces ms-2/2/0 unit 3 family inet6
set interfaces ms-2/2/0 unit 3 description &quot;TCP MSS Modification&quot;

set services service-set tcp-mss tcp-mss 1360 stateful-firewall-rules permit-all
set services service-set tcp-mss interface-service service-interface ms-2/2/0.3
set services service-set tcp-mss service-set-options enable-asymmetric-traffic-processing

set services stateful-firewall rule permit-all match-direction input-output term accept then accept

set firewall family inet service-filter mss-filter term tcp from protocol tcp tcp-flags syn
set firewall family inet service-filter mss-filter term tcp then service
set firewall family inet service-filter mss-filter term default then skip
set firewall family inet6 service-filter mss-filter_v6 term tcp from next-header tcp tcp-flags syn
set firewall family inet6 service-filter mss-filter_v6 term tcp then service
set firewall family inet6 service-filter mss-filter_v6 term default then skip
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;enable-asymmetric-traffic-processing is essential if you have the possibility for asymmetric routing in your environment.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;Finally, configure our GRE tunnel and assign the TCP MSS modification service set to it:&lt;/h1&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-&quot; data-lang=&quot;&quot;&gt;set interfaces gr-1/3/0 unit 0 tunnel source 10.0.79.50
set interfaces gr-1/3/0 unit 0 tunnel destination 10.0.204.50
set interfaces gr-1/3/0 unit 0 family inet service input service-set tcp-mss service-filter mss-filter
set interfaces gr-1/3/0 unit 0 family inet service output service-set tcp-mss service-filter mss-filter
set interfaces gr-1/3/0 unit 0 family inet address 10.10.10.1/30
set interfaces gr-1/3/0 unit 0 family inet6 service input service-set tcp-mss service-filter mss-filter_v6
set interfaces gr-1/3/0 unit 0 family inet6 service output service-set tcp-mss service-filter mss-filter_v6
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;You can configure an IPv6 IP here as well if it is in use in your environment.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;On your peer router, simply reverse the various IPs.&lt;/h1&gt;

&lt;h1&gt;Verify everything works:&lt;/h1&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-&quot; data-lang=&quot;&quot;&gt;ping 10.0.204.50 source 10.0.79.50

show services ipsec-vpn ipsec security-associations
show services ipsec-vpn ipsec statistics
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;Ensure that the GRE tunnel IP addresses do not end up in your routing table as this could cause a recursive routing loop.  In the above example, we&amp;#39;re using the static routes to ensure we don&amp;#39;t do this, but, having an export filter for your IGP that rejects the GRE tunel source/destination IPs might be a good thing to add.&lt;/p&gt;

&lt;p&gt;You could also build this using interface service-sets instead of the static routes, however, the static routes involve a little less &amp;#39;magic&amp;#39; and should be a little safer.&lt;/p&gt;
&lt;/blockquote&gt;
</description>
        <pubDate>Fri, 11 Mar 2016 10:42:37 -0500</pubDate>
        <link>https://zi0r.com/juniper/2016/03/11/juniper-mx-gre-ipsec.html</link>
        <guid isPermaLink="true">https://zi0r.com/juniper/2016/03/11/juniper-mx-gre-ipsec.html</guid>
        
        <category>juniper</category>
        
        <category>junos</category>
        
        
        <category>juniper</category>
        
      </item>
    
      <item>
        <title>chroot()ing OpenLDAP with Heimdal kerberos</title>
        <description>&lt;p&gt;For FreeBSD/Heimdal users who wish to use Kerberos to authenticate users with OpenLDAP, you&amp;#39;ve likely run into a big of a snag when using more recent (v1.0 or higher) version of Heimdal.  This all stems from a security-related change that exists in lib/roken/issuid.c.  The test is quite simple and basically detects whether or not the current process has been &amp;#39;tainted&amp;#39; via uid/gid changes.  According to the FreeBSD man page for issetugid(2), this specifically means:&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-&quot; data-lang=&quot;&quot;&gt;A process is tainted if it was created as a result of an execve(2) system call which had either of the setuid or setgid bits set (and extra privileges were given as a result) or if it has changed any of its real, effective or saved user or group ID&#39;s since it began execution.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;or, in other words, anything that was executed as root and later drops privs, like slapd.  The reason this is problematic for us is that OpenLDAP relies on the environment variable KRB5_KTNAME to set which keytab to open.  If a process was considered tainted, Heimdal will ignore this variable and use the system default.&lt;/p&gt;

&lt;p&gt;I&amp;#39;ve seen various patches to the Heimdal libraries/OpenLDAP code that all workaround this issue, but I was interested in a more elegant solution and something that did not require me to maintain my own set of patches to deal with each time I went to upgrade code.&lt;/p&gt;

&lt;p&gt;My solution was to simply utilize the chroot option with OpenLDAP.  For FreeBSD users, you can simply do the following:&lt;/p&gt;

&lt;h1&gt;Change the default location of saslauthd&amp;#39;s socket, build OpenLDAP with SASL support:&lt;/h1&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;nb&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;SASLAUTHD_RUNPATH=/usr/home/ldap/var/run/saslauthd&quot;&lt;/span&gt;&amp;gt;&amp;gt;/etc/make.conf
&lt;span class=&quot;nb&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;WANT_OPENLDAP_SASL=yes&quot;&lt;/span&gt;&amp;gt;&amp;gt;/etc/make.conf&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;blockquote&gt;
&lt;p&gt;You will need to rebuild openldap and/or saslauthd if the ports for these were already installed.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;Create the required directory structure and copy some required files:&lt;/h1&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;mkdir -p /usr/home/ldap/usr/local/etc/openldap /usr/home/ldap/dev /usr/home/ldap/lib /usr/home/ldap/usr/lib /usr/home/ldap/etc/gss /usr/home/ldap/var/run/openldap /usr/home/ldap/var/db/openldap-data /usr/home/ldap/usr/local/lib/sasl2 /usr/home/ldap/usr/local/libexec/openldap /usr/home/ldap/var/run/saslauthd
cp /etc/localtime /usr/home/ldap/etc;cp /etc/group /usr/home/ldap/etc&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h1&gt;Update /etc/fstab by appending &lt;a href=&quot;/files/fstab-ldap&quot;&gt;the required entries&lt;/a&gt; to /etc/fstab and mounting the new mounts:&lt;/h1&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;cat /path/to/fstab-ldap &amp;gt;&amp;gt; /etc/fstab
mount -a
    &lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h1&gt;Create empty files in key locations to ensure that the ports framework does not delete these directories during upgrades.  This is important as we will break our nullfs mounts if the original directories are removed:&lt;/h1&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;touch /usr/local/lib/sasl2/.do_not_delete /usr/local/libexec/openldap/.do_not_delete /var/run/openldap/.do_not_delete&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h1&gt;Copy over /etc/passwd and /etc/master.passwd to /usr/home/ldap/etc and update:&lt;/h1&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;cp /etc/master.passwd /usr/home/ldap/etc; cp /etc/passwd /usr/home/ldap/etc; pwd_mkdb -d /usr/home/ldap/etc /usr/home/ldap/etc/passwd; vipw -d /usr/home/ldap/etc&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;blockquote&gt;
&lt;p&gt;$EDITOR will open and you should then delete any non-default users that aren&amp;#39;t essential to OpenLDAP.  (Make sure you leave the ldap user).  The -d argument to vipw instructs vipw to work on the files in /usr/home/ldap/etc instead of the default (/etc)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;Create a new krb5.conf inside the root with the required contents:&lt;/h1&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;nb&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;[libdefaults]&quot;&lt;/span&gt;&amp;gt;/usr/home/ldap/etc/krb5.conf
&lt;span class=&quot;nb&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;  default_keytab_name = FILE:/usr/local/etc/openldap/ldap.keytab&quot;&lt;/span&gt;&amp;gt;&amp;gt;/usr/home/ldap/etc/krb5.conf&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;blockquote&gt;
&lt;p&gt;You will likely want other customizations to this file.  For example, specifying the default_realm option.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;Copy your keytab for OpenLDAP to /usr/local/etc/openldap/ldap.keytab&lt;/h1&gt;

&lt;h1&gt;Add the following to /etc/rc.conf:&lt;/h1&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-&quot; data-lang=&quot;&quot;&gt;syslogd_flags=&quot;-l /usr/home/ldap/var/run/log&quot;
slapd_flags=&quot;-r /usr/home/ldap&quot;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h1&gt;Start saslauthd/slapd and do some testing.&lt;/h1&gt;
</description>
        <pubDate>Wed, 09 May 2012 07:00:53 -0400</pubDate>
        <link>https://zi0r.com/2012/05/09/freebsd-chroot-ing-openldap-with-heimdal-kerberos.html</link>
        <guid isPermaLink="true">https://zi0r.com/2012/05/09/freebsd-chroot-ing-openldap-with-heimdal-kerberos.html</guid>
        
        <category>freebsd</category>
        
        <category>openldap</category>
        
        <category>kerberos</category>
        
        
      </item>
    
      <item>
        <title>Monitoring vSphere (ESXi) with nagios</title>
        <description>&lt;p&gt;Monitoring vSphere/ESX(i) in nagios is fairly easy.  For FreeBSD users, you&amp;#39;ll need to do the following:&lt;/p&gt;

&lt;h1&gt;Install nagios:&lt;/h1&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-&quot; data-lang=&quot;&quot;&gt;cd /usr/ports/net-mgmt/nagios-devel &amp;amp;&amp;amp; make install clean
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;nagios-devel is only required until 3.2.4 is released as there is a servicedependency fix that will be incorporated into 3.2.4 that makes it easy to do the type of servicedependency that is used in &lt;a href=&quot;/files/vsphere.cfg&quot;&gt;vsphere.cfg&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;Install the vmware-vsphere-cli port:&lt;/h1&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-&quot; data-lang=&quot;&quot;&gt;cd /usr/ports/net/vmware-vsphere-cli &amp;amp;&amp;amp; make install clean
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h1&gt;Download the &lt;a href=&quot;http://www.op5.org/community/plugin-inventory/op5-projects/check-esx-plugin#download_check_esx_code&quot;&gt;check_esx3.pl plugin&lt;/a&gt; from op5 and place it in /usr/local/libexec/nagios&lt;/h1&gt;

&lt;h1&gt;Configure any remaining components of nagios for your environment.&lt;/h1&gt;

&lt;h1&gt;Use vicfg-user from the vmware-vsphere-cli port to add a nagios user to each of your ESXi hosts:&lt;/h1&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-&quot; data-lang=&quot;&quot;&gt;vicfg-user -server esxihost -username root -e user -o add -l nagios -p securepassword -r read-only
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h1&gt;Create a file called vmware_authfile in /usr/local/libexec/nagios (and make sure it&amp;#39;s only readable by the nagios user) with the following contents:&lt;/h1&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-&quot; data-lang=&quot;&quot;&gt;username=nagios
password=securepassword
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h1&gt;Add the &lt;a href=&quot;/files/vsphere.cfg&quot;&gt;vSphere configuration/dependency config file&lt;/a&gt; into your nagios config files and edit as needed.&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;You&amp;#39;ll want to add your own hosts, just follow the existing format.  The magic will automatically add the required tests/dependencies as long as the additional hosts follow the same format as the sample esxihost.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;Add the &lt;a href=&quot;/files/vsphere-checkcommands.cfg&quot;&gt;vSphere checkcommands for nagios&lt;/a&gt; to your config as well.&lt;/h1&gt;

&lt;h1&gt;Reload nagios and you should end up with vSphere monitoring!&lt;/h1&gt;

&lt;p&gt;&lt;a href=&quot;/images/nagios.png&quot;&gt;Sample Output&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;check_esx3.pl also includes additional ability to monitor VMs and other information by having it connect to vCenter.  You should easily be able to add in these additional tests if you want them by following the existing samples.&lt;/p&gt;
&lt;/blockquote&gt;
</description>
        <pubDate>Sun, 10 Jul 2011 10:32:21 -0400</pubDate>
        <link>https://zi0r.com/2011/07/10/monitoring-vsphere-esxi-with-nagios.html</link>
        <guid isPermaLink="true">https://zi0r.com/2011/07/10/monitoring-vsphere-esxi-with-nagios.html</guid>
        
        <category>freebsd</category>
        
        <category>nagios</category>
        
        <category>vmware</category>
        
        
      </item>
    
      <item>
        <title>snort: Connecting to MySQL with SSL</title>
        <description>&lt;p&gt;Tried to configure snort to log to a remote MySQL box and came to the rapid realization that snort did not support doing so via SSL.&lt;/p&gt;

&lt;p&gt;The attached diff(1) will force snort to require SSL for MySQL connections.  You may find it &lt;a href=&quot;/files/snort-mysql_ssl.diff&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If you&amp;#39;re chrooting snort, you&amp;#39;ll need to have devfs mounted therein for /dev/urandom.  Under FreeBSD, you would simply edit /etc/fstab and add a line similar to the following:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-&quot; data-lang=&quot;&quot;&gt;none                    /path/to/snort/chroot/dev     devfs   rw      0       0
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Then run &amp;#39;mount -a&amp;#39; to mount it.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;You&amp;#39;ll need to copy your certificates into the root.
If you wish to make a non-SSL connection, you&amp;#39;ll need to undo the patch.
Make sure you did not leave the private key world readable.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;UPDATE:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Database output functionality is being deprecated in snort in favor of utilizing unified2 with barnyard2.&lt;/p&gt;
&lt;/blockquote&gt;
</description>
        <pubDate>Sun, 19 Jun 2011 15:45:42 -0400</pubDate>
        <link>https://zi0r.com/2011/06/19/snort-connecting-to-mysql-with-ssl.html</link>
        <guid isPermaLink="true">https://zi0r.com/2011/06/19/snort-connecting-to-mysql-with-ssl.html</guid>
        
        <category>freebsd</category>
        
        <category>snort</category>
        
        <category>mysql</category>
        
        
      </item>
    
      <item>
        <title>FreeBSD: TrueCrypt 7.0a in the ports tree!</title>
        <description>&lt;p&gt;An experimental port of TrueCrypt has been added to the FreeBSD ports tree.  Additional details can be found &lt;a href=&quot;http://www.freshports.org/security/truecrypt&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Sat, 11 Jun 2011 13:20:37 -0400</pubDate>
        <link>https://zi0r.com/2011/06/11/freebsd-truecrypt-7-dot-0a-in-the-ports-tree.html</link>
        <guid isPermaLink="true">https://zi0r.com/2011/06/11/freebsd-truecrypt-7-dot-0a-in-the-ports-tree.html</guid>
        
        <category>freebsd</category>
        
        
      </item>
    
      <item>
        <title>FreeBSD: Redundant DNS with CARP</title>
        <description>&lt;p&gt;Improve reliability with CARP and redundant DNS on two boxes.  Almost everyone already has (at least) two nameservers, so why not add CARP into the mix to make it appear as if they&amp;#39;re always available?&lt;/p&gt;

&lt;p&gt;This setup assumes two nameservers.  Both nameservers will have a total of 3 IPs assigned to them, two of which are the floating CARP IPs and one of which is a unique management IP for each box.  Each nameserver will be the CARP backup for the other nameservers primary nameserver IP.  If one goes down, the other will assume responsibility for the IP.&lt;/p&gt;

&lt;p&gt;You&amp;#39;ll need to assign your nameservers two new IPs (to be used for management) and take the original pair of IPs and we&amp;#39;ll use those for the carp interfaces.&lt;/p&gt;

&lt;h1&gt;Rebuild/install your kernel with (or load the carp module via /boot/loader.conf):&lt;/h1&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-&quot; data-lang=&quot;&quot;&gt;device      carp
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h1&gt;Edit /etc/rc.conf to add:&lt;/h1&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-&quot; data-lang=&quot;&quot;&gt;cloned_interfaces=&quot;carp0 carp1&quot;
ifconfig_carp0=&quot;create&quot;
ifconfig_carp1=&quot;create&quot;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h1&gt;Setup the CARP interfaces:&lt;/h1&gt;

&lt;p&gt;I set the vhid&amp;#39;s to be the last octet of the floaty IP, however, you can set them to be whatever you want as long as they match on both boxes.&lt;/p&gt;

&lt;p&gt;On ns1:
Create /etc/start_if.carp0 with the following:&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-&quot; data-lang=&quot;&quot;&gt;&lt;span class=&quot;c&quot;&gt;#!/bin/sh&lt;/span&gt;
ifconfig carp0 vhid XX advbase 1 advskew 10 pass supersecretpasswordhere &amp;lt;ns1.ip&amp;gt; netmask &amp;lt;ns1.netmask&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Create /etc/start_if.carp1 with the following:&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-&quot; data-lang=&quot;&quot;&gt;&lt;span class=&quot;c&quot;&gt;#!/bin/sh&lt;/span&gt;
ifconfig carp1 vhid YY advbase 2 advskew 10 pass othersupersecretpasswordhere &amp;lt;ns2.ip&amp;gt; netmask &amp;lt;ns2.netmask&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Then run:&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-&quot; data-lang=&quot;&quot;&gt;chmod go-rwx /etc/start_if.carp*;chmod +x /etc/start_if.carp*
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;On ns2:
Create /etc/start_if.carp0 with the following:&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-&quot; data-lang=&quot;&quot;&gt;&lt;span class=&quot;c&quot;&gt;#!/bin/sh&lt;/span&gt;
ifconfig carp0 vhid YY advbase 1 advskew 10 pass supersecretpasswordhere &amp;lt;ns2.ip&amp;gt; netmask &amp;lt;ns2.netmask&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Create /etc/start_if.carp1 with the following:&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-&quot; data-lang=&quot;&quot;&gt;&lt;span class=&quot;c&quot;&gt;#!/bin/sh&lt;/span&gt;
ifconfig carp1 vhid XX advbase 2 advskew 10 pass othersupersecretpasswordhere &amp;lt;ns1.ip&amp;gt; netmask &amp;lt;ns1.netmask&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Then run:&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-&quot; data-lang=&quot;&quot;&gt;chmod go-rwx /etc/start_if.carp*;chmod +x /etc/start_if.carp*
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;carp0 on both boxes will be its PRIMARY IP whereas carp1 will be the SECONDARY IP on both.  In a non-failover scenario, this means that carp0 on both boxes should show up as MASTER and carp1 should show up as BACKUP.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;Ensure named is configured to bind to the management IP (for zone transfers, etc.), ns1.ip and ns2.ip (on both boxes!) or ensure that it listens on *.&lt;/h1&gt;

&lt;h1&gt;Add this to /etc/sysctl.conf for some extra logging info.&lt;/h1&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-&quot; data-lang=&quot;&quot;&gt;net.inet.carp.log=2
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h1&gt;Reboot.  Your primary box should come up with ns1.ip as MASTER and ns2.ip as BACKUP.  Your secondary box should come up with ns2.ip as MASTER and ns1.ip as BACKUP.  Check ifconfig and dmesg to confirm.&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;CARP traffic is multicast and you may need to alter firewalls as appropriate to allow it.  The destination is VRRP.MCAST.NET/224.0.0.18.
        For defining masters/slaves, etc. in bind you will want to reference the management IPs of the boxes, not the floating CARP addresses.&lt;/p&gt;

&lt;p&gt;You can actually skip using the start_if.* files if you elect to put the ifconfig statements into rc.conf.  In order to limit access to your CARP authentication key, you would need to change the permissions on rc.conf which could be bad in certain situations.&lt;/p&gt;

&lt;p&gt;ESX Note: If you&amp;#39;re trying to do this with a box in VMware, you&amp;#39;ll need to disable the vSwitch security features (accept: promisc, forged transmits, mac changes).  This is not advisable in production as any VM on that switch can sniff traffic from any other VM.  For my setup at home, I simply allocated a second NIC and a second vSwitch and made the security changes on the dedicated vSwitch.  No other VMs should share this other vSwitch where the security features have been disabled.&lt;/p&gt;
&lt;/blockquote&gt;
</description>
        <pubDate>Sun, 28 Feb 2010 10:45:48 -0500</pubDate>
        <link>https://zi0r.com/2010/02/28/freebsd-redundant-dns-with-carp.html</link>
        <guid isPermaLink="true">https://zi0r.com/2010/02/28/freebsd-redundant-dns-with-carp.html</guid>
        
        <category>freebsd</category>
        
        
      </item>
    
      <item>
        <title>FreeBSD: authenticated smart relay client with sendmail</title>
        <description>&lt;p&gt;One may find it necessary to configure sendmail to authenticate and relay via another SMTP server, such as one provided by your ISP.  In order to do this under FreeBSD, sendmail needs to be rebuilt with support for SASL and a few config changes are required.&lt;/p&gt;

&lt;h1&gt;cd /usr/ports/security/cyrus-sasl2 &amp;amp;&amp;amp; make install clean&lt;/h1&gt;

&lt;p&gt;Untick AUTHDAEMOND, OTP and NTLM.&lt;/p&gt;

&lt;h1&gt;Edit /etc/make.conf and add:&lt;/h1&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-&quot; data-lang=&quot;&quot;&gt;SENDMAIL_CFLAGS=-I/usr/local/include -DSASL=2
SENDMAIL_LDFLAGS=-L/usr/local/lib
SENDMAIL_LDADD=-lsasl2
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h1&gt;Rebuild/reinstall sendmail:&lt;/h1&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-&quot; data-lang=&quot;&quot;&gt;cd /usr/src/lib/libsmutil;make cleandir &amp;amp;&amp;amp; make obj &amp;amp;&amp;amp; make
cd /usr/src/lib/libsm;make cleandir &amp;amp;&amp;amp; make obj &amp;amp;&amp;amp; make
cd /usr/src/usr.sbin/sendmail;make cleandir &amp;amp;&amp;amp; make obj &amp;amp;&amp;amp; make &amp;amp;&amp;amp; make install
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h1&gt;Create /etc/mail/authinfo with the following content (assuming your SMTP server supports PLAIN auth within TLS):&lt;/h1&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-&quot; data-lang=&quot;&quot;&gt;AuthInfo:smtp.server.host &quot;I:username&quot; &quot;P:password&quot; &quot;M:PLAIN&quot;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-&quot; data-lang=&quot;&quot;&gt;cd /etc/mail &amp;amp;&amp;amp; makemap hash authinfo&amp;lt;authinfo;chgrp smmsp authinfo*;chmod o-rwx authinfo*
cp freebsd.submit.mc `hostname`.submit.mc;cp freebsd.mc `hostname`.mc
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h1&gt;Edit /etc/mail/&lt;code&gt;hostname&lt;/code&gt;.submit.mc and /etc/mail/&lt;code&gt;hostname&lt;/code&gt;.mc and add the following before the &lt;em&gt;msp&lt;/em&gt; line:&lt;/h1&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-&quot; data-lang=&quot;&quot;&gt;FEATURE (`authinfo&#39;)
define(`SMART_HOST&#39;, `smtp.server.host&#39;)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-&quot; data-lang=&quot;&quot;&gt;/etc/rc.d/sendmail stop &amp;amp;&amp;amp; /etc/rc.d/sendmail start
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h1&gt;Profit!&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;If you upgrade the cyrus-sasl port, you may need to rebuild/reinstall/restart sendmail as indicated in step 3.
        src-all is required from svn.&lt;/p&gt;
&lt;/blockquote&gt;
</description>
        <pubDate>Mon, 01 Feb 2010 20:01:38 -0500</pubDate>
        <link>https://zi0r.com/2010/02/01/freebsd-authenticated-smart-relay-client-with-sendmail.html</link>
        <guid isPermaLink="true">https://zi0r.com/2010/02/01/freebsd-authenticated-smart-relay-client-with-sendmail.html</guid>
        
        <category>freebsd</category>
        
        
      </item>
    
      <item>
        <title>ESXi saga continues: Dell OMSA sillyness</title>
        <description>&lt;p&gt;When attempting to install the Dell OMSA extensions on ESXi, I ended up with an error indicating that the SMBIOS values reported by the host didn&amp;#39;t match the metadata stored in the cross&lt;em&gt;oem-dell-openmanage-esxi&lt;/em&gt;6.1-0000.zip file.&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-&quot; data-lang=&quot;&quot;&gt;Encountered error NoMatchError:
The error data is:
   Id          -
   Message     - No bulletins for this platform could be found.  Nothing to do.
                 Detailed reasons why no bulletins match: This Vib supports
                 hardware vendor &#39;Dell&#39; but BIOS reports vendor as &#39;Dell Inc.
                 &#39; This Vib supports hardware vendor &#39;Dell Computer Corporation&#39;
                 but BIOS reports vendor as &#39;Dell Inc.                &#39; This Vib
                 supports hardware vendor &#39;Dell Inc.&#39; but BIOS reports vendor as
                 &#39;Dell Inc.                &#39;
   Errno       - 13
   Description - No matching bulletin or VIB was found in the metadata.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Apparently, esxupdate thinks the manufacturer is &amp;quot;Dell Inc.             &amp;quot; instead of &amp;quot;Dell Inc.&amp;quot;  Seems sort of silly.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;unzip cross&lt;em&gt;oem-dell-openmanage-esxi&lt;/em&gt;6.1-0000.zip&lt;/li&gt;
&lt;li&gt;unzip metadata.zip&lt;/li&gt;
&lt;li&gt;Edit platforms.xml and remove the hwPlatform lines, save the file and add/overwrite platforms.xml in metadata.zip&lt;/li&gt;
&lt;li&gt;untar cross&lt;em&gt;oem-dell-openmanage-esxi&lt;/em&gt;6.1-0000.vib  (which is actually a debian dpkg)&lt;/li&gt;
&lt;li&gt;Edit descriptor.xml and remove the hwPlatform lines&lt;/li&gt;
&lt;li&gt;Recreate the vib (without the pkcs7 sig file and the newly edited descriptor.xml) with: ar -r cross&lt;em&gt;oem-dell-openmanage-esxi&lt;/em&gt;6.1-0000.vib debian-binary control.tar.gz data.tar.gz short.rpm descriptor.xml&lt;/li&gt;
&lt;li&gt;Recreate cross&lt;em&gt;oem-dell-openmanage-esxi&lt;/em&gt;6.1-0000.zip, which should contain the .vib and metadata.zip.&lt;/li&gt;
&lt;li&gt;Login to your host and run: esxupdate --nocache --nosigcheck --bundle cross&lt;em&gt;oem-dell-openmanage-esxi&lt;/em&gt;6.1-0000.zip update&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-&quot; data-lang=&quot;&quot;&gt;/tmp # esxupdate --nocache --nosigcheck --bundle cross_oem-dell-openmanage-esxi_6.1-0000.zip update
cross_oem-dell-openmanage-esxi_6.1-0000.zip                      ########################################################################################## [100%]

Unpacking cross_oem-dell-openmanage-esxi_6.1-0000.vib            ########################################################################################## [100%]

Installing packages :cross_oem-dell-openmanage-esxi_6.1-0000     ########################################################################################## [100%]

Running [/usr/sbin/cim-install.sh]...
ok.
Running [/usr/sbin/vmkmod-install.sh]...
ok.
/tmp # 
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
        <pubDate>Sun, 06 Dec 2009 12:24:45 -0500</pubDate>
        <link>https://zi0r.com/2009/12/06/esxi-saga-continues-dell-omsa-sillyness.html</link>
        <guid isPermaLink="true">https://zi0r.com/2009/12/06/esxi-saga-continues-dell-omsa-sillyness.html</guid>
        
        <category>vmware</category>
        
        <category>dell</category>
        
        
      </item>
    
  </channel>
</rss>
