<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://blog.matws.net/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>My not so uninteresting notes</title>
  <link>http://blog.matws.net/</link>
  <atom:link href="http://blog.matws.net/feed/rss2" rel="self" type="application/rss+xml"/>
  <description></description>
  <language>en</language>
  <pubDate>Tue, 07 Sep 2010 12:11:18 +0400</pubDate>
  <copyright></copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Misc notes about truecrypt</title>
    <link>http://blog.matws.net/post/2009/12/07/Misc-notes-about-truecrypt</link>
    <guid isPermaLink="false">urn:md5:27a0bb43a8f161b40842f4f88db2e3ec</guid>
    <pubDate>Mon, 07 Dec 2009 00:54:00 +0300</pubDate>
    <dc:creator>mat</dc:creator>
            
    <description>    &lt;p&gt;Truecrypt is a very handy tool for disk encryption, but it lacks for an
enterprise use the capacity to have a remote rescue mode. It's a kind of second
&lt;strong&gt;very&lt;/strong&gt; complicated password that you will dictate to the user
when he was s****** enough to forgot his boot password.&lt;/p&gt;
&lt;p&gt;Well the good news with free software it's that you can always do something
as you have the source code. And in the case of Truecrypt it turns out that it
seems not so complicated. Here are my notes for someone (maybe me) who wants to
add this option.&lt;/p&gt;
&lt;p&gt;In Boot/Windows/BootMain.cppBoot/Windows/BootMain.cpp (to support dual
password that's all that is needed)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Make OpenVolume read 2 sector instead of 1&lt;/li&gt;
&lt;li&gt;Try to read each sector to see if the entered password correspond to one of
the two sector&lt;/li&gt;
&lt;li&gt;In repair menu define the offset for the second sector holding rescue/admin
encoded key&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In Common/BootEncryption.cpp (so that when creating the volume a second
password can be added)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Make Prepare installation create two volume header (one with the normal
password and one for rescue/admin)&lt;/li&gt;
&lt;li&gt;Make InstallVolumeHeader install the two volume header&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And a few things for password but I didn't investigated much (yet).&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.matws.net/post/2009/12/07/Misc-notes-about-truecrypt#comment-form</comments>
      <wfw:comment>http://blog.matws.net/post/2009/12/07/Misc-notes-about-truecrypt#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.matws.net/feed/atom/comments/465421</wfw:commentRss>
      </item>
    
  <item>
    <title>Openvpn GUI improvments</title>
    <link>http://blog.matws.net/post/2009/09/21/Openvpn-GUI</link>
    <guid isPermaLink="false">urn:md5:b22b5bcb781f0a1399c62550e1bb0372</guid>
    <pubDate>Mon, 21 Sep 2009 22:56:00 +0400</pubDate>
    <dc:creator>mat</dc:creator>
            
    <description>    &lt;p&gt;&lt;a href=&quot;http://www.openvpn.org&quot;&gt;Openvpn&lt;/a&gt; is a great VPN tool and further
more it has client for Linux, Mac OsX and Windows. The latter has also a simple
GUI that allow people less familiar with computer to use a VPN.&lt;/p&gt;
&lt;p&gt;Unfortunately I found the current version 1.0.3 too limited when dealing
with a user with limited right (ie. without administrative rights) so I
produced a version 1.0.4 that provide the following improvements:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;allow unlimited timeout for the pre-connection script (useful when
prompting a user for password)&lt;/li&gt;
&lt;li&gt;provide a better feedback to the user on the real status of the connection
when using service managed connections&lt;/li&gt;
&lt;li&gt;allow to run post connection script per connection when using service
managed connection&lt;/li&gt;
&lt;li&gt;allow to run a post non connection script per connection when using service
managed connection (that is when a connection is though to be
unsuccessful)&lt;/li&gt;
&lt;li&gt;allow service to be terminated on user logoff or on suspend&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I attached to this entry the binary openvpn-gui-1.0.4.exe, the patch from
1.0.3 to 1.0.4 and also a patch to allow to crosscompile openvpn on linux using
mingw32 crosscompile environment.&lt;/p&gt;</description>
    
          <enclosure url="http://blog.matws.net/public/Download/openvpn/openvpn-1.0.4.patch"
      length="37884" type="text/plain" />
          <enclosure url="http://blog.matws.net/public/Download/openvpn/crosscompile"
      length="1748" type="text/plain" />
          <enclosure url="http://blog.matws.net/public/Download/openvpn/openvpn-gui-1.0.4-en.exe"
      length="108032" type="application/octet-stream" />
    
    
          <comments>http://blog.matws.net/post/2009/09/21/Openvpn-GUI#comment-form</comments>
      <wfw:comment>http://blog.matws.net/post/2009/09/21/Openvpn-GUI#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.matws.net/feed/atom/comments/443639</wfw:commentRss>
      </item>
    
  <item>
    <title>Making DHCP interim still work when bind9 only accept signed requests</title>
    <link>http://blog.matws.net/post/2009/09/06/Making-DHCP-interim-still-work-when-bind9-only-accept-signed-requests</link>
    <guid isPermaLink="false">urn:md5:616decf6e3e379109dbc995aeba5559f</guid>
    <pubDate>Sun, 06 Sep 2009 17:34:00 +0400</pubDate>
    <dc:creator>mat</dc:creator>
            
    <description>&lt;p&gt;Having workstations names updated in the DNS is quite cool and very usefull
(the more you use it the more it becomes important to you ...).&lt;/p&gt;
&lt;p&gt;The problem is that once you active DDNS update directly from Windows
workstations like it's describe &lt;a href=&quot;http://blog.matws.net/post/2009/09/06/DDNS%2C-Bind9-and-MS-Active-Directory&quot;&gt;here&lt;/a&gt; or &lt;a href=&quot;http://blog.matws.net/post/2009/09/03/DDNS-with-Windows-and-Samba4&quot;&gt;here&lt;/a&gt; it that it usually
breaks DHCP interim updates (also known as the second way to make DDNS update
works).&lt;/p&gt;
&lt;p&gt;You might wonder, why bother to use DDNS update from the workstation if we
can achieve it from the DHCP server ?&lt;/p&gt;
&lt;p&gt;Well it's simply because sometimes you have resources which IP address is
not defined by DHCP server (ie. fixed IP workstations or servers or most
important: workstations connected through VPN). We can also wonder why use DHCP
interim if DDNS from workstation work, well it's because not all the
workstation are for the moment able to update their DHCP records (ie. Mac OsX,
Linux, printers, ...).&lt;/p&gt;
&lt;p&gt;So you sometimes you want to take the best of the both world, the good news
is that it's possible and it's even not very complicated !&lt;/p&gt;    &lt;p&gt;This small guide suppose that you have already DHCP interim that was working
before you decided to activate signed DDNS (that are used by the Windows
workstations), if not please check on this internet for guides like &lt;a href=&quot;http://www.semicomplete.com/articles/dynamic-dns-with-dhcp/&quot; hreflang=&quot;en&quot;&gt;this one&lt;/a&gt; or &lt;a href=&quot;http://www.debian-administration.org/article/Configuring_Dynamic_DNS__DHCP_on_Debian_Stable&quot; hreflang=&quot;en&quot;&gt;this one&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Why DHCP Interim has to be disactivated when signed DDNS is used
?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;So most of the tutorial about DHCP DDNS use a configuration like this to
authorize updates from the DHCP server:&lt;/p&gt;
&lt;pre&gt;
  allow-update { key dhcpupdate; };
&lt;/pre&gt;
&lt;p&gt;But Bind9 do not accept both &lt;em&gt;allow-update&lt;/em&gt; and
&lt;em&gt;update-policy&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The solution&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The solution is to migrate from allow-update to update-policy to do so you
have to add something like that to the &lt;em&gt;update-policy&lt;/em&gt; for your DNS
zone: grant dhcp.example.org subdomain example.org A AAAA; so that the whole
thing looks like:&lt;/p&gt;
&lt;pre&gt;
   update-policy {
        grant dhcp.example.org  subdomain example.org A AAAA;
        grant EXAMPLE.ORG ms-self * A AAAA;
   };
&lt;/pre&gt;
&lt;p&gt;Once that done you have to search for the definition of the dhcp update key
(here &lt;em&gt;dhcpupdate&lt;/em&gt; in my example) and replace it to dhcp.example.org
(where example.org is your DNS domain). Usually tutorials propose to create a
separate file for storing the key or propose to add a &lt;em&gt;key&lt;/em&gt; stanza in
the named.conf. Anyhow you have to change it to have something like this:&lt;/p&gt;
&lt;pre&gt;
key dhcp.example.org {
  algorithm hmac-md5;
  secret &amp;quot;YOURKEYGOESHERE&amp;quot;;
};
&lt;/pre&gt;
&lt;p&gt;The last step is to modify the &lt;em&gt;dhcpd.conf&lt;/em&gt; to replace all the
occurrence of old key name to the new one (ie dhcpupdate to dhcp.example.org).
Last note: if your dhcp server is on a different server than the DNS server
&lt;strong&gt;and&lt;/strong&gt; that the key is stored in a separate file then you need to
modify the name of the key in this file as well.&lt;/p&gt;
&lt;p&gt;Once every thing is modified you have to restart dhcpd and bind9 and
everything should work (you can verify as your mileage can vary ...)&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.matws.net/post/2009/09/06/Making-DHCP-interim-still-work-when-bind9-only-accept-signed-requests#comment-form</comments>
      <wfw:comment>http://blog.matws.net/post/2009/09/06/Making-DHCP-interim-still-work-when-bind9-only-accept-signed-requests#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.matws.net/feed/atom/comments/437923</wfw:commentRss>
      </item>
    
  <item>
    <title>DDNS, Bind9 and MS Active Directory</title>
    <link>http://blog.matws.net/post/2009/09/06/DDNS%2C-Bind9-and-MS-Active-Directory</link>
    <guid isPermaLink="false">urn:md5:8e8b71b707c374107cf38ff25fe44071</guid>
    <pubDate>Sun, 06 Sep 2009 16:54:00 +0400</pubDate>
    <dc:creator>mat</dc:creator>
            
    <description>    &lt;p&gt;If you are interested to make Bind9 accept DDNS request directly from
Windows workstation (XP, Vista, Seven) or server (2003, 2008, ...) the way
proceed is not much different from &lt;a href=&quot;http://blog.matws.net/post/2009/09/03/DDNS-with-Windows-and-Samba4&quot;&gt;this one&lt;/a&gt;. So reading the
howto of Samba4 about DDNS is a good starting point.&lt;/p&gt;
&lt;p&gt;The only difference is that by default you do not have an access to the DNS
keytab. Hopefully this &lt;a href=&quot;https://lists.isc.org/pipermail/bind-users/2008-December/074311.html&quot; hreflang=&quot;en&quot;&gt;email&lt;/a&gt; give all the needed informations, you need to:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Create a user into your active directory, I suggest bind9 as the login name
and also as first name and make the password not to expire (&lt;em&gt;Password never
expire&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;Modify the &lt;em&gt;/etc/bind/named.conf.option&lt;/em&gt; so that the entry
&lt;em&gt;tkey-gssapi-credential&lt;/em&gt; contains &amp;quot;DNS/bind9.example.org&amp;quot;;&lt;/li&gt;
&lt;li&gt;Use ktpass to extract the credentials as a keytab:&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;
ktpass -out dns.keytab -princ DNS/bind9.example.org@EXAMPLE.ORG -pass * -mapuser bind@example.org
&lt;/pre&gt;
&lt;p&gt;Of course you should adapt example.org and EXAMPLE.ORG to the name of your
AD realm ...&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.matws.net/post/2009/09/06/DDNS%2C-Bind9-and-MS-Active-Directory#comment-form</comments>
      <wfw:comment>http://blog.matws.net/post/2009/09/06/DDNS%2C-Bind9-and-MS-Active-Directory#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.matws.net/feed/atom/comments/437919</wfw:commentRss>
      </item>
    
  <item>
    <title>DDNS with Windows and Samba4</title>
    <link>http://blog.matws.net/post/2009/09/03/DDNS-with-Windows-and-Samba4</link>
    <guid isPermaLink="false">urn:md5:7090c18633de300a4758496167305968</guid>
    <pubDate>Thu, 03 Sep 2009 17:15:00 +0400</pubDate>
    <dc:creator>mat</dc:creator>
        <category>Samba4</category>
            
    <description>    &lt;p&gt;I recently tried Dynamic DNS updates (aka DDNS) with Windows XP (but that's
valid for anything newer) and Samba4. Globaly the explaination that &lt;a href=&quot;http://wiki.samba.org/index.php/Samba4/HOWTO#Step_8_.28Optional.29:_Configure_Server-side_DNS&quot; hreflang=&quot;en&quot;&gt;comes&lt;/a&gt; with Samba4 are good but I noted a few points that need
to be tweaked (or checked at least) to be sure that it works.&lt;/p&gt;
&lt;h2&gt;Activate signed DDNS updates&lt;/h2&gt;
&lt;p&gt;Once you configured the bind server accordingly with the documentation, it
will only accept signed updates. On my test systems it turns out that XP didn't
send signed updates by default.&lt;/p&gt;
&lt;p&gt;To change this you have two choices:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Use GPO&lt;/li&gt;
&lt;li&gt;Use local policy editor, this choice is not recommended as the modification
has to be done on every workstation in the domain but for testing it's just
fine !&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To change the DDNS parameters you have to go in Computer Configuration -&amp;gt;
Administrative templates -&amp;gt; Network -&amp;gt; DNS Client, if the choice is not
present it's mostly likely that you miss the needed adm file (system.adm) they
can be found &lt;a href=&quot;http://www.microsoft.com/downloads/details.aspx?familyid=92759d4b-7112-4b6c-ad4a-bbf3802a5c9b&amp;amp;displaylang=en&quot; hreflang=&quot;en&quot;&gt;here&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Then enable &lt;em&gt;Dynamic Update&lt;/em&gt; and &lt;em&gt;Update Security Level&lt;/em&gt; (set
the latter to &lt;em&gt;Only Secure&lt;/em&gt; or &lt;em&gt;Unsecure followed by Secure&lt;/em&gt;)
select also &lt;em&gt;Register PTR Records&lt;/em&gt; if you want PTR record as well. If
you choose the GPO way you have to wait for the workstation to update its
policy (well you can help it with &lt;strong&gt;gpupdate /force&lt;/strong&gt;).&lt;/p&gt;
&lt;h2&gt;Configure correctly the reverse zone&lt;/h2&gt;
&lt;p&gt;Check the SOA record of your reverse zone, the primary name server
&lt;strong&gt;must&lt;/strong&gt; be valid an point to your DNS server (the DNS server is
the name just after SOA in the record). To check use dig on any ip address of
your zone (here my range is 10.6.1.0/24 with the dns server at 10.6.1.1)
:&lt;strong&gt;dig 1.1.6.10.in-addr.arpa. SOA @10.6.1.1&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;You should get something similar to this&lt;/p&gt;
&lt;pre&gt;
; &amp;lt;&amp;lt;&amp;gt;&amp;gt; DiG 9.5.1-P2 &amp;lt;&amp;lt;&amp;gt;&amp;gt; 1.1.6.10.in-addr.arpa. SOA @10.6.1.1
;; global options:  printcmd
;; Got answer:
;; -&amp;gt;&amp;gt;HEADER&amp;lt;&amp;lt;- opcode: QUERY, status: NOERROR, id: 4956
;; flags: qr aa rd; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;1.1.6.10.in-addr.arpa.         IN      SOA

;; AUTHORITY SECTION:
1.6.10.in-addr.arpa.    604800  IN      SOA     test.smb4.tst. root.localhost. 2009090320 172800 14400 3628800 604800

;; Query time: 2 msec
;; SERVER: 10.6.1.1#53(10.6.1.1)
;; WHEN: Thu Sep  3 19:07:17 2009
;; MSG SIZE  rcvd: 103

&lt;/pre&gt;
&lt;h2&gt;Test, test and test&lt;/h2&gt;
&lt;p&gt;The easiest way to test is to use ipconfig like this &lt;strong&gt;ipconfig
/registerdns&lt;/strong&gt;, it will force a Windows to update its DNS records in the
DNS server.&lt;/p&gt;
&lt;p&gt;Note: &lt;a href=&quot;http://support.microsoft.com/kb/307882&quot; hreflang=&quot;en&quot;&gt;This&lt;/a&gt; KB from Microsoft explains quite well what are the option for the
DNS client in case that you had specials constraints.&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.matws.net/post/2009/09/03/DDNS-with-Windows-and-Samba4#comment-form</comments>
      <wfw:comment>http://blog.matws.net/post/2009/09/03/DDNS-with-Windows-and-Samba4#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.matws.net/feed/atom/comments/437136</wfw:commentRss>
      </item>
    
  <item>
    <title>Updating wireshark dissectors</title>
    <link>http://blog.matws.net/post/2009/08/16/Updating-wireshark-dissectors</link>
    <guid isPermaLink="false">urn:md5:79b012462dad16025315da2520b66856</guid>
    <pubDate>Sun, 16 Aug 2009 11:24:00 +0400</pubDate>
    <dc:creator>mat</dc:creator>
            
    <description>    &lt;p&gt;Last weeks I've been pretty busy on wireshark dissectors.&lt;/p&gt;
&lt;p&gt;Apart from some small modifications in the NTLMSSP dissector, I've been
working hard on DCE/RPC dissector for netlogon.&lt;/p&gt;
&lt;p&gt;Both lastest patches for this are attached to this entry.&lt;/p&gt;</description>
    
          <enclosure url="http://blog.matws.net/public/Download/patchs/patch_netlogon_260709.gz"
      length="22728" type="application/x-gzip" />
          <enclosure url="http://blog.matws.net/public/Download/patchs/patch_ntlm_260709.gz"
      length="16132" type="application/x-gzip" />
    
    
          <comments>http://blog.matws.net/post/2009/08/16/Updating-wireshark-dissectors#comment-form</comments>
      <wfw:comment>http://blog.matws.net/post/2009/08/16/Updating-wireshark-dissectors#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.matws.net/feed/atom/comments/426996</wfw:commentRss>
      </item>
    
  <item>
    <title>me @ twitter</title>
    <link>http://blog.matws.net/post/2009/06/25/me-twitter</link>
    <guid isPermaLink="false">urn:md5:cd10486ac8bc00eca785debb0c9e1af8</guid>
    <pubDate>Thu, 25 Jun 2009 00:15:00 +0400</pubDate>
    <dc:creator>mat</dc:creator>
            
    <description>    &lt;p&gt;As a lot of people I just created an account on &lt;a href=&quot;http://twitter.com/ekacnet&quot;&gt;twitter&lt;/a&gt; ! Let see !&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.matws.net/post/2009/06/25/me-twitter#comment-form</comments>
      <wfw:comment>http://blog.matws.net/post/2009/06/25/me-twitter#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.matws.net/feed/atom/comments/413201</wfw:commentRss>
      </item>
    
  <item>
    <title>NTLMSSP 2</title>
    <link>http://blog.matws.net/post/2009/05/04/NTLMSSP-2</link>
    <guid isPermaLink="false">urn:md5:968e4b811f3227658520257e68b08e4d</guid>
    <pubDate>Mon, 04 May 2009 21:35:00 +0400</pubDate>
    <dc:creator>mat</dc:creator>
            
    <description>    &lt;p&gt;No it's not the sequel of a film, just an updated version of &lt;a href=&quot;http://blog.matws.net/post/2009/05/04/my&quot;&gt;/public/Download/patchs/patch_ntlm_040509&lt;/a&gt; patch for wireshark. This
version add the following updates&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Support for DCE/RPC with direct NTLMSSP auth&lt;/li&gt;
&lt;li&gt;Support for DCE/RPC with SPNEGO with NTLM auth mechanism&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I also started to work on the verfier verification (sic) but it didn't work
for DCE/RPC (I didn't get the right HMAC MD5), and I need also to find a way to
update information into wireshark to reflect the fact that MD5 (and also NT
challenge also in case no good password can be found).&lt;/p&gt;</description>
    
          <enclosure url="http://blog.matws.net/public/Download/patchs/patch_ntlm_040509"
      length="71912" type="text/plain" />
    
    
          <comments>http://blog.matws.net/post/2009/05/04/NTLMSSP-2#comment-form</comments>
      <wfw:comment>http://blog.matws.net/post/2009/05/04/NTLMSSP-2#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.matws.net/feed/atom/comments/399535</wfw:commentRss>
      </item>
    
  <item>
    <title>Xerox 7232 &amp; Samba : Veni Vidi Vici</title>
    <link>http://blog.matws.net/post/2009/05/02/Xerox-7232-Samba-%3A-Veni-Vidi-Vici</link>
    <guid isPermaLink="false">urn:md5:c6b91a29e74e3f492fd273c61914780a</guid>
    <pubDate>Sat, 02 May 2009 00:35:00 +0400</pubDate>
    <dc:creator>mat</dc:creator>
            
    <description>    &lt;p&gt;Well almost ! Last week I've been chasing down problem(s) that prevented
this printer to work with samba, or more exactly to be served through samba
print server. It's reported &lt;a href=&quot;https://bugzilla.samba.org/show_bug.cgi?id=6296&quot;&gt;here&lt;/a&gt;, if you look at the
first comment you'll find some idea for the workaround.&lt;/p&gt;
&lt;p&gt;Basically the idea is to setup a printer locally give it the same shared
name as the one on server, then export the entry into .reg file, then you
define the driver for the printer on the server it will generate some error
messages but you can ignore them. Then open the server registry (through a XP
workstation for instance), load your exported registry entry into server
registry, safely ignore error message.&lt;/p&gt;
&lt;p&gt;Et voilà you can enjoy your shared printer on a samba server !&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.matws.net/post/2009/05/02/Xerox-7232-Samba-%3A-Veni-Vidi-Vici#comment-form</comments>
      <wfw:comment>http://blog.matws.net/post/2009/05/02/Xerox-7232-Samba-%3A-Veni-Vidi-Vici#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.matws.net/feed/atom/comments/398881</wfw:commentRss>
      </item>
    
  <item>
    <title>Patch for NTLMSPP auth mechanism</title>
    <link>http://blog.matws.net/post/2009/04/25/Patch-for-NTLMSPP-auth-mechanism</link>
    <guid isPermaLink="false">urn:md5:c47762f4fe35269d74b4fadf8e267553</guid>
    <pubDate>Sat, 25 Apr 2009 18:00:00 +0400</pubDate>
    <dc:creator>mat</dc:creator>
            
    <description>    &lt;p&gt;I'm quite proud to produce here my first real patch for an opensource
project: Wireshark.&lt;/p&gt;
&lt;p&gt;The attached patch allow to decode LDAP traffic encoded using NTLMSSP
scheme. Even if now kerberos tends to be more and more used for
authentification and encryption (through GSSAPI), NTLM and NTLMSSP mechanism is
still used frequently by Microsoft products (either as a fallback when kerberos
is unavailable, or as the only secure choice like SPA mode in outlook).&lt;/p&gt;
&lt;p&gt;So I think that this patch will definitly be useful to others.&lt;/p&gt;
&lt;p&gt;The patch is attached to this entry ! (see bellow)&lt;/p&gt;</description>
    
          <enclosure url="http://blog.matws.net/public/Download/patchs/patch_ntlm"
      length="60316" type="text/plain" />
    
    
          <comments>http://blog.matws.net/post/2009/04/25/Patch-for-NTLMSPP-auth-mechanism#comment-form</comments>
      <wfw:comment>http://blog.matws.net/post/2009/04/25/Patch-for-NTLMSPP-auth-mechanism#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.matws.net/feed/atom/comments/397095</wfw:commentRss>
      </item>
    
  <item>
    <title>Creating LDAP account in Outlook</title>
    <link>http://blog.matws.net/post/2009/03/15/Creating-LDAP-account-in-Outlook</link>
    <guid isPermaLink="false">urn:md5:42cbc87b213f4ed5badb053e99bfe79c</guid>
    <pubDate>Sun, 15 Mar 2009 19:19:00 +0300</pubDate>
    <dc:creator>mat</dc:creator>
        <category>MSNightmare</category>
            
    <description>    &lt;p&gt;I spent a few hours to improve &lt;a href=&quot;http://www.codeproject.com/KB/vbscript/Add_ldap_addrbook.aspx&quot;&gt;this&lt;/a&gt; script
to allow creation of multiple LDAP entries with login and password. The result
is here: &lt;a href=&quot;http://blog.matws.net/public/Download/outlook/addldap_v1.vbs&quot;&gt;addldap.vbs&lt;/a&gt;.
It fix some flaws of the previous scripts such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;only one ldap account&lt;/li&gt;
&lt;li&gt;user has a popup on next outlook startup&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It works perfectly with anonymous LDAP, but setting a password do not work
very well: you can pass an array representing the password obtained by a manual
setup.&lt;/p&gt;
&lt;p&gt;But It will only work with this account because the password is encoded
using DPAPI which use the user personal key to encrypt the data. Trying to
deploy this to other user will badly fails (as outlook will find the whole ldap
account broken).&lt;/p&gt;
&lt;p&gt;There is a way to mitigate this problem: when using SPA authentication
outlook will firt use the credential of the logged user before those supplied
in the account creation (if they are different). So if you want to have a non
anonymous access to LDAP and what the logged user to provide his credential you
just have to call the script and supply the username, an empty array as
password and set doSPA parameter to 1.&lt;/p&gt;
&lt;p&gt;I also discovered that unlike email accounts, LDAP accounts do not prompt
the user when the password is wrong. Which reduce the number of prompt the user
receive when a password has expired.&lt;/p&gt;
&lt;p&gt;At the end the only two cases where this script is useless are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;accessing an LDAP with a generic account&lt;/li&gt;
&lt;li&gt;accessing an LDAP that do not support SPA (aka NTLM authentication)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I guess those case are pretty rare (well I hope)&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.matws.net/post/2009/03/15/Creating-LDAP-account-in-Outlook#comment-form</comments>
      <wfw:comment>http://blog.matws.net/post/2009/03/15/Creating-LDAP-account-in-Outlook#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.matws.net/feed/atom/comments/337937</wfw:commentRss>
      </item>
    
  <item>
    <title>Putting all together</title>
    <link>http://blog.matws.net/post/2008/10/19/Putting-all-together</link>
    <guid isPermaLink="false">urn:md5:9d434af29907a97068eba755028557f8</guid>
    <pubDate>Sun, 19 Oct 2008 20:07:00 +0400</pubDate>
    <dc:creator>mat</dc:creator>
        <category>l4sus</category>
            
    <description>    &lt;p&gt;I have been busy last weeks making L4SUS more friendly or at least less
complicated !&lt;/p&gt;
&lt;p&gt;I am quite happy of what I acheived so far. As the title says I put
everything together to make a real install guide and some documentation.&lt;/p&gt;
&lt;p&gt;All of this is the 0.1 release you will need the zip and the tar file
because it was easier to package one for windows and the other one for
Unix/Linux/....&lt;/p&gt;
&lt;p&gt;Enjoy !&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blog.matws.net/public/Download/l4sus_0.10.zip&quot;&gt;l4sus_0.10.zip&lt;/a&gt; and &lt;a href=&quot;http://blog.matws.net/public/Download/l4sus_0.10.tar.gz&quot;&gt;l4sus_0.10.tar.gz&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.matws.net/post/2008/10/19/Putting-all-together#comment-form</comments>
      <wfw:comment>http://blog.matws.net/post/2008/10/19/Putting-all-together#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.matws.net/feed/atom/comments/288496</wfw:commentRss>
      </item>
    
  <item>
    <title>Fighting with call progress tones</title>
    <link>http://blog.matws.net/post/2008/10/11/Fighting-with-call-progress-tones</link>
    <guid isPermaLink="false">urn:md5:781255dc3be1993284d6642e9f6f3fa2</guid>
    <pubDate>Sat, 11 Oct 2008 17:08:00 +0400</pubDate>
    <dc:creator>mat</dc:creator>
            
    <description>    &lt;p&gt;If you are like me a happy owner of any sippura (or now linksys spa) ata
device and you are not living in US, then configuring the regional part of the
device can be complicated. Especially the &amp;quot;Call Progress Tones&amp;quot; part.&lt;/p&gt;
&lt;p&gt;First you have to know that the real important part is the following
tones:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dial Tone&lt;/li&gt;
&lt;li&gt;Second Dial Tone&lt;/li&gt;
&lt;li&gt;Outside Dial Tone&lt;/li&gt;
&lt;li&gt;Prompt Tone&lt;/li&gt;
&lt;li&gt;Busy Tone&lt;/li&gt;
&lt;li&gt;Reorder Tone&lt;/li&gt;
&lt;li&gt;Off Hook Warning Tone&lt;/li&gt;
&lt;li&gt;Ring Back Tone&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All this tones use a rule with the following syntax:&lt;/p&gt;
&lt;pre&gt;
 freq1@db_level1,freq2@db_level2,...,freqn@db_leveln;
 num_seconds(frequency_sequence1,frequency_sequence2,...,frequency_sequencen)
&lt;/pre&gt;
&lt;p&gt;With &lt;em&gt;frequency_sequence&lt;/em&gt; with this syntax:
&lt;code&gt;num_seconds_on/num_seconds_off/frequencies&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;With this explainations 480@-19,620@-19;10(.5/.5/1+2) is quite simple to
understand it is a signal of two frequencies :&lt;br /&gt;
480Hz and 620Hz both at -19dB during 10 seconds both frequencies (due to 1+2)
will be played with this rhythm: half of second (.5) on and half of second
off.&lt;/p&gt;
&lt;p&gt;This more complicated one:
985@-16,1371@-16,1777@-16;*(.380/0/1,.274/0/2,.380/0/3,0/4/0) consists of 3
frequencies:&lt;br /&gt;
985Hz, 1371Hz and 1777Hz all at -16dB they will played forever (until status
change for instance ...) with the following rhythm: 985Hz during 0,380 seconds
then 1371Hz during 0,274 seconds then 1777Hz for 0,380 and finally no tone
during 4 seconds.&lt;/p&gt;
&lt;p&gt;If you are searching for the frequency for your country
&lt;em&gt;indications.conf&lt;/em&gt; from asterisk is your friend.&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.matws.net/post/2008/10/11/Fighting-with-call-progress-tones#comment-form</comments>
      <wfw:comment>http://blog.matws.net/post/2008/10/11/Fighting-with-call-progress-tones#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.matws.net/feed/atom/comments/285560</wfw:commentRss>
      </item>
    
  <item>
    <title>Fighting spam part 1: Spamtrap</title>
    <link>http://blog.matws.net/post/2008/09/03/Fighting-spam-part-1%3A-Spamtrap</link>
    <guid isPermaLink="false">urn:md5:cf2156e5316d26926369b988cd7399ea</guid>
    <pubDate>Thu, 04 Sep 2008 19:58:00 +0400</pubDate>
    <dc:creator>mat</dc:creator>
        <category>Spam</category>
            
    <description>&lt;h2&gt;Why do we need to train the filter&lt;/h2&gt;
&lt;p&gt;Bayesian filters use a statistical approach to classify emails, in order to
make it works you need to train the filter at the beginning with both know spam
and not spam (ham) emails so that the filter knows which events are
statistically present in spam emails and which are not. This is often done by
the administrator (otherwise the bayesian part is not activated in most
filters) but the day to day training is not so often done and not so well which
leads to reduced filter efficiently as time goes by.&lt;/p&gt;
&lt;p&gt;But in fact it's very important that the filter stays up to date with new
spam messages so that it can gather new hints of spams and stays at the top. If
the filter is not usually fed continuously with new spam messages it's because
the task is not so easy.&lt;/p&gt;    &lt;p&gt;So far I found 3 way to feed the filter with new spam messages:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Setup ham and spam folder for every users, fetch emails in each folder and
inject them into the filter as new training email&lt;/li&gt;
&lt;li&gt;Setup ham and spam email address, extract initial email from the message
and inject it into the filter as new training email&lt;/li&gt;
&lt;li&gt;Setup a spam trap so that all the email that go in will be injected in the
filter for training.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;The ham/spam folder solution&lt;/h3&gt;
&lt;p&gt;I won't talk much about this solution in this post, but this solution
implies that you can easily read the email into this folder, IMAP server is
then a necessity and emails have to be accessible. &lt;a href=&quot;http://www.pollux.franken.de/mail-server-tools/sa-learn-cyrus/&quot; hreflang=&quot;de&quot;&gt;sa-learn-cyrus&lt;/a&gt; is a good script that helps you to do implement such
kind of training.&lt;/p&gt;
&lt;h3&gt;The ham/spam mailbox&lt;/h3&gt;
&lt;p&gt;This solution shares lot of aspects with the previous one, it can be used
even if you do not access to the raw email on server or if emails do not stay
on server (ie. POP3 access). I will come back later in my series on a script to
help to automate the analysis of emails sent by users. Basically you have to
extract the real email and give it in input to the learning program of your
filter (ie. sa-learn for spamassassin).&lt;/p&gt;
&lt;h3&gt;Problems with first 2 solutions&lt;/h3&gt;
&lt;p&gt;Each solution relies on the fact that users will classify emails, of such
kind of behavior you can never be 100% sure. For misclassified spam (that is a
valid message classified as spam) you can expect that you will get the
information back because the user will be really annoyed that his email was
wrongly classified that he will either put a copy in the dedicated directory or
forward you to the appropriate mailbox.&lt;/p&gt;
&lt;p&gt;But for the spam, people tends to just delete spam emails that are not
classified (instead of forwarding them to the appropriate mailbox or moving it
to the spam folder), and if they do it it won't be their priority so the
training will be done later when it will not be so useful.&lt;/p&gt;
&lt;p&gt;And last but not least problems is that users still continue to receive
spam, most probably &amp;quot;bleeding edge&amp;quot; spams and so the filtering service is
percepted as no so efficient which is sad !&lt;/p&gt;
&lt;h2&gt;The spam trap&lt;/h2&gt;
&lt;p&gt;The idea behind the spam trap is simple: setup a couple of mail address not
used and that will not receive real emails and train the filter with those
emails as new spams. One might ask which addresses should be used and it's a
good question because you must be sure that the address will receive (enough)
spam so that it will be useful.&lt;/p&gt;
&lt;p&gt;At this task, the bad habits of spamers of trying any combination of letters
and numbers might be of a great help to find addresses to trap spam. In deed if
your mail server is well configured, it should have a list of valid recipient
and if an email arrive for an invalid recipient it will (should?) be rejected
by your server (if not I suggest that you start with this because it's a rather
good practice).&lt;/p&gt;
&lt;p&gt;In my case I use postfix and when an email is rejected I have the message :
&lt;em&gt;User unknown in local recipient table&lt;/em&gt;, for instance:&lt;/p&gt;
&lt;pre&gt;
postfix/smtpd[32180]: NOQUEUE: reject: RCPT from unknown[85.102.177.38]:
  550 5.1.1 &amp;lt;64e4cf71d8d4f61c9f34e@matws.net&amp;gt;:
  Recipient address rejected: User unknown in local recipient table;
  from=&amp;lt;udp@neath-porttalbot.gov.uk&amp;gt;
  to=&amp;lt;64e4cf71d8d4f61c9f34e@matws.net&amp;gt;
  proto=ESMTP helo=&amp;lt;dsl85-102-45350.ttnet.net.tr&amp;gt;
&lt;/pre&gt;
&lt;p&gt;So with the following command :&lt;/p&gt;
&lt;pre&gt;
grep &amp;quot;User unknown in local recipient table&amp;quot; mail.log \
 | perl -ane 'm/ to=&amp;lt;([^@]+@[^&amp;gt;]+)&amp;gt; /; print &amp;quot;$1\n&amp;quot;;'\
 | sort  | uniq -c | sort -n
&lt;/pre&gt;
&lt;p&gt;I get a list like this:&lt;/p&gt;
&lt;pre&gt;
     14 knfipen@matws.net
     18 2ec8fcca3ffcbb7cb960e@matws.net
     33 fixeq@matws.net
     45 lxyfxdybbh@matws.net
     48 gzxyvsf@matws.net
     65 kfiptmh@matws.net
&lt;/pre&gt;
&lt;p&gt;So &lt;em&gt;kfiptmh@matws.net&lt;/em&gt; or &lt;em&gt;gzxyvsf@matws.net&lt;/em&gt; seems to be good
target (or not so bad) for trapping spam. As we tend to receive a lot of spam
once that our email is &amp;quot;discovered&amp;quot;, you can expect to receive more spam
shortly after starting accpeting email on a trap address which in our case is a
good thing !&lt;/p&gt;
&lt;p&gt;Now that we have identified potential addresses, you just have to instruct
the mail server to send all the emails for those address to a script that will
chunk them and train the filter. Here is a recipe when using postfix using the
&lt;code&gt;catch_spam&lt;/code&gt; script attached to this post&lt;/p&gt;
&lt;h3&gt;Adapt parameters&lt;/h3&gt;
&lt;p&gt;At the top of the script, adjust the parameters:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$host, host or ip address of the server running the spamd daemon, set to
&lt;code&gt;undef&lt;/code&gt; to desactivate this parameter (will use localhost as
&lt;code&gt;spamd&lt;/code&gt; server)&lt;/li&gt;
&lt;li&gt;$user, Unix account for which the spam will be learned, set to
&lt;code&gt;undef&lt;/code&gt; to desactivate it (will use the &lt;code&gt;.spamassassin&lt;/code&gt;
directory of the user which started the script)&lt;/li&gt;
&lt;li&gt;$dir_base, base directory holding new potential spam when not running in
quiet mode, this directory must be writable by the user that will run the
postfix service (ie. nobody)&lt;/li&gt;
&lt;li&gt;$conf, a YAML configuration file (see example attached to this post) for
filtering out some good email (based on regexp in header)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Create a new postfix service&lt;/h3&gt;
&lt;p&gt;We are about to create a &lt;code&gt;catchspam&lt;/code&gt; service into postfix, this
service will process all the emails caught by the trap, to do so add the
following lines into &lt;code&gt;/etc/postfix/master.cf&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;
catchspam unix  -       n       n       -       -       pipe
  user=nobody argv=/usr/local/script/catch_spam -q
&lt;/pre&gt;
&lt;p&gt;Adapt:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;argv&lt;/code&gt;&lt;/strong&gt; so that it reflect the path where you
installed the catch_spam script&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;user&lt;/code&gt;&lt;/strong&gt; so that it reflect the Unix account with
whom you learn spam (in which home directory bayes token are stored ...)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Add transport maps and tune delivery&lt;/h3&gt;
&lt;p&gt;In the &lt;code&gt;/etc/postfix/main.cf&lt;/code&gt; add the following lines:&lt;/p&gt;
&lt;pre&gt;
catchspam_destination_recipient_limit = 1
transport_maps = hash:/etc/postfix/transport
&lt;/pre&gt;
&lt;p&gt;The latest line can already be in your &lt;code&gt;/etc/postfix/main.cf&lt;/code&gt;, in
this case there is no need to duplicate it.&lt;/p&gt;
&lt;h3&gt;Add the emails to valid recipient list&lt;/h3&gt;
&lt;p&gt;After settling on a list of emails that will be used for trapping spams, you
need to add them to the list of valid recipient. Just add them to
&lt;code&gt;/etc/aliases&lt;/code&gt; with &lt;code&gt;nobody&lt;/code&gt; as pair alias, ie:&lt;/p&gt;
&lt;pre&gt;
# For kfiptmh@matws.net
kfiptmh: nobody
# For gzxyvsf@matws.net
gzxyvsf: nobody
&lt;/pre&gt;
&lt;p&gt;Run newaliases, to make postfix aware of the change. Starting from now you
are accepting emails for those trap addresses (gzxyvsf@matws.net and
kfiptmh@matws.net in my example).&lt;/p&gt;
&lt;h3&gt;Create/Update /etc/postfix/transport&lt;/h3&gt;
&lt;p&gt;The latest step is to instruct postfix to forward emails for trap addresses
via the postfix service created above, instead of trying to resolve the alias.
We create or update &lt;code&gt;/etc/postfix/transport&lt;/code&gt; by adding lines
following the template bellow for each trap address&lt;/p&gt;
&lt;pre&gt;
&amp;lt;trap_address&amp;gt; catchspam
&lt;/pre&gt;
&lt;p&gt;For instance for my two trap addresses:&lt;/p&gt;
&lt;pre&gt;
gzxyvsf@matws.net catchspam
kfiptmh@matws.net catchspam
&lt;/pre&gt;
&lt;p&gt;Run the following command so that postfix can really use this file:&lt;/p&gt;
&lt;pre&gt;
postmap /etc/postfix/transport
&lt;/pre&gt;
&lt;p&gt;And finally restart postfix so that all the modification will be active in
postfix.&lt;/p&gt;
&lt;p&gt;Starting from now, the trap is working and any email send to the trap
address will be automatically sent to spamassassin bayesian filter for spam
training&lt;/p&gt;</description>
    
          <enclosure url="http://blog.matws.net/public/Download/spam/catch_skiplist"
      length="74" type="text/plain" />
          <enclosure url="http://blog.matws.net/public/Download/spam/catch_spam"
      length="3938" type="text/plain" />
    
    
          <comments>http://blog.matws.net/post/2008/09/03/Fighting-spam-part-1%3A-Spamtrap#comment-form</comments>
      <wfw:comment>http://blog.matws.net/post/2008/09/03/Fighting-spam-part-1%3A-Spamtrap#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.matws.net/feed/atom/comments/273295</wfw:commentRss>
      </item>
    
  <item>
    <title>Fighting spam part 0: Introduction</title>
    <link>http://blog.matws.net/post/2008/08/29/Fighting-spam-part-1</link>
    <guid isPermaLink="false">urn:md5:2cbccde93ec580919db3addf35dbefc6</guid>
    <pubDate>Tue, 02 Sep 2008 15:42:00 +0400</pubDate>
    <dc:creator>mat</dc:creator>
        <category>Spam</category>
            
    <description>    &lt;p&gt;I am about to write a few articles about not so bad technics to fight
efficiently spam, along the past years I developped some technics to fight
spam. The latest ones seems to provide a high ratio in term of efficiency it
means high quantity of spam catched and almost no false positive. I started
developping this for my own personnal domain and due to my current job expand
and enhance this for the company where I work for.&lt;/p&gt;
&lt;p&gt;At the beginning it was quite simple because for my personnal use, I work
with &lt;a href=&quot;http://www.mozilla.com/en-US/thunderbird/&quot; hreflang=&quot;en&quot;&gt;thunderbird&lt;/a&gt; and it includes since a long time a very good spam filter
which require not so much trainning before achieving a very good filter quality
and so I didn't worried much about the quality of filtering done right on the
server by the SPAM filter.&lt;/p&gt;
&lt;p&gt;But, alas, thunderbird (as many other opensource project btw) is not
corporate enougth and we are stuck with outlook ... The Junk filter of the
latest is rather complicated and rather unusefull. So if you want to reduce the
cries of the users about SPAM you have to find a good solution on the
server.&lt;/p&gt;
&lt;p&gt;The technics that I'll present are built around &lt;a href=&quot;http://spamassassin.apache.org&quot; hreflang=&quot;en&quot;&gt;spamassassin&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Bayesian_spam_filtering&quot; hreflang=&quot;en&quot;&gt;bayesian
filtering&lt;/a&gt;, that's not revolutionnary technologies but with a fairly good
(and not complicated) and quick tuning you can acheive a very good result.&lt;/p&gt;
&lt;p&gt;It might seems unlogical (and it is a little bit) but I'll start this serie
by an article on how to train automaticaly an already running spam filter based
on bayesian filtering, article about how to setup it will follow but a bit
later. My reason for this is that there is tons of guides on Internet on how to
setup bayes in spamassassin, whereas articles on how to train it (without the
help of the standard users feedback) are rare.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blog.matws.net/post/2008/09/03/Fighting-spam-part-1%3A-Spamtrap&quot; hreflang=&quot;en&quot;&gt;Part 1: setting a spamtrap&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.matws.net/post/2008/08/29/Fighting-spam-part-1#comment-form</comments>
      <wfw:comment>http://blog.matws.net/post/2008/08/29/Fighting-spam-part-1#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.matws.net/feed/atom/comments/272246</wfw:commentRss>
      </item>
    
  <item>
    <title>Microsoft my worst nightmare part 1.</title>
    <link>http://blog.matws.net/post/2008/06/22/Microsoft-my-worst-nightmare-part-1</link>
    <guid isPermaLink="false">urn:md5:81d01d262132cdbd709fb9e8d8517f5c</guid>
    <pubDate>Mon, 23 Jun 2008 20:26:00 +0400</pubDate>
    <dc:creator>mat</dc:creator>
        <category>MSNightmare</category>
            
    <description>    &lt;h2&gt;Intro&lt;/h2&gt;
&lt;p&gt;It is going to be a long story with a high number of sequels it seems.&lt;/p&gt;
&lt;p&gt;I must confess that I do not have a high esteem for Microsoft products in
general but my day work force me to use them or at least support user using it
and more often than not I face real stupidity in the product.&lt;/p&gt;
&lt;p&gt;Right now my key target is Outlook from Office 2003 edition.&lt;/p&gt;
&lt;h2&gt;Using Outlook, so remove Outlook Express ?&lt;/h2&gt;
&lt;p&gt;Well it might seems logical that if you know for sure that you will use
Outlook then you won't need Outlook express. If you were ready like me to
remove this component with image creation tools like &lt;a href=&quot;http://www.nliteos.com&quot; hreflang=&quot;en&quot;&gt;nlite&lt;/a&gt; I should not recommend you to
do so !&lt;/p&gt;
&lt;p&gt;Why ? because if you do so and try to access to a IMAP/POP3 server, it will
not work because you'll need registered DLL that comes with Outlook Express and
could not be provided by Outlook. Sounds good ! I spend a few hours last week
on this and find no way real way to escape ! (copying DLL failed because they
need to be registered, copying + trying to register with regsrv32 failed on
registration, reinstallation of Outlook failed). Don't get me wrong I didn't
say that you can't manage is some situation to manage to register or install
outlook (especially if you do not have installed security fixes but you might
run into troubles.&lt;/p&gt;
&lt;p&gt;There must be a good reason for this, and I can understand that maybe
Microsoft guys wanted to mutualise code between two versions, cool good idea,
but when you install Office if one or more DLL is missing then setup should
install it and do what ever is needed so that thoses DLL will be installed and
registered !&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.matws.net/post/2008/06/22/Microsoft-my-worst-nightmare-part-1#comment-form</comments>
      <wfw:comment>http://blog.matws.net/post/2008/06/22/Microsoft-my-worst-nightmare-part-1#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.matws.net/feed/atom/comments/253191</wfw:commentRss>
      </item>
    
  <item>
    <title>L4SUS update</title>
    <link>http://blog.matws.net/post/2008/06/22/L4SUS-updates</link>
    <guid isPermaLink="false">urn:md5:2c9ea2a1413f86935a5af00fd249397e</guid>
    <pubDate>Sun, 22 Jun 2008 20:50:00 +0400</pubDate>
    <dc:creator>mat</dc:creator>
        <category>l4sus</category>
            
    <description>    &lt;p&gt;My first public release included some bugs.&lt;/p&gt;
&lt;p&gt;I just release right now the version 0.02, it fixes lots of typo in my first
release.&lt;/p&gt;
&lt;p&gt;The whole system is pretty stable now, but it rely on automation both on the
client and the server so now it's time to move on something else:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Create installer for windows using something like nsis so that simple
configuration and scheduled tasks can be created automaticaly&lt;/li&gt;
&lt;li&gt;See with &lt;a href=&quot;http://www.ocsinventory-ng.org/&quot; hreflang=&quot;en&quot;&gt;OCS Ng&lt;/a&gt;
what can be done to go further in the automation&lt;/li&gt;
&lt;li&gt;Use offline database wsusscn2.cab to save bandwith when checking for
updates (at least as an option)&lt;/li&gt;
&lt;li&gt;Dig more deeply in the documentation of WSUS API in order to have more
informations about updates.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The lastest version is &lt;a href=&quot;http://blog.matws.net/public/Download/l4sus_0.02.zip&quot;&gt;here&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;To be continued ...&lt;/p&gt;</description>
    
          <enclosure url="http://blog.matws.net/public/Download/l4sus_0.02.zip"
      length="17196" type="application/zip" />
    
    
          <comments>http://blog.matws.net/post/2008/06/22/L4SUS-updates#comment-form</comments>
      <wfw:comment>http://blog.matws.net/post/2008/06/22/L4SUS-updates#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.matws.net/feed/atom/comments/253170</wfw:commentRss>
      </item>
    
  <item>
    <title>L4SUS</title>
    <link>http://blog.matws.net/post/2008/06/01/L4SUS</link>
    <guid isPermaLink="false">urn:md5:76b1cbe524f00d2493727b929b30907d</guid>
    <pubDate>Sun, 01 Jun 2008 21:04:00 +0400</pubDate>
    <dc:creator>mat</dc:creator>
        <category>l4sus</category>
            
    <description>    &lt;p&gt;From the theory to practice there is a huge gap use to say my teachers.&lt;/p&gt;
&lt;p&gt;Well I faced them well trying for real the script described &lt;a href=&quot;http://blog.matws.net/post/2008/06/01/post/2008/05/18/Listing-Windows-Update-for-fun-and-profit&quot; hreflang=&quot;en&quot;&gt;here&lt;/a&gt; in short every thing was mostly but in order to get something
that is really exploitable more efforts were needed.&lt;/p&gt;
&lt;p&gt;Now it's done and I packaged every thing in the zipfile attached to this
post. This is mostly 3 scripts (and a few subscripts) bundled together, it
require a samba server. I called this L4SUS and it stands for Linux For Server
Update Service.&lt;/p&gt;
&lt;p&gt;Using L4SUS should be quite simple:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Extract all .vbs script in a folder on each computer you want to manage
updates&lt;/li&gt;
&lt;li&gt;Rename updatelist.conf.example to updatelist.conf and adapt configuration
(ie. the name of the samba server and the root path serving update)&lt;/li&gt;
&lt;li&gt;Install perl script in the samba server, make it executable (chmod a+x) and
adapt paths at the top of the script (&lt;em&gt;$dest_base_dir&lt;/em&gt; and
&lt;em&gt;$update_file_dir&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;Verify that Windows update is configurated to search (and only search) from
udpates&lt;/li&gt;
&lt;li&gt;On the samba server create a directory called &lt;em&gt;files&lt;/em&gt; in the
directory pointed by &lt;em&gt;$dest_base_dir&lt;/em&gt;, and for each computer a directory
of the name of the computer also is the directory pointed by
&lt;em&gt;$dest_base_dir&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The most tricky part is that &lt;em&gt;$dest_base_dir&lt;/em&gt; (in download_winupdate)
must be exported as the value of &lt;em&gt;filePath&lt;/em&gt; (in updatelist.conf).&lt;/p&gt;
&lt;p&gt;Main components of this systems are :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;getupdatelist.vbs, this script search for applicable updates on the
computer where it is running, it create a file in its own folder called
&lt;em&gt;yyyymmddproposedupdate.log&lt;/em&gt; which contains a list of all updates, their
id and their file's url.&lt;/li&gt;
&lt;li&gt;download_winupdate, provide a computer name to this script and it will
parse the latest &lt;em&gt;proposedupdate.log&lt;/em&gt; file, then download missing
updates files and create a command list:: &lt;em&gt;upatelist&lt;/em&gt; which indicate to
&lt;em&gt;doupdates.vbs&lt;/em&gt; how to do the updates&lt;/li&gt;
&lt;li&gt;doupdates.vbs, this script execute as most quietly as possible the
different updates listed in &lt;em&gt;updatelist&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can get a nearly automatic systems by scheduling the scripts via cron
and windows scheduler. Of course in this case it does mostly the same as using
directly windows update (well it should use less bandwidth but it seems not as
clever as windows update when it comes to do all the updates quietly ...).&lt;/p&gt;
&lt;p&gt;Expect more updates soon, because it still a bit rough and should need more
polish.&lt;/p&gt;</description>
    
          <enclosure url="http://blog.matws.net/public/Download/l4sus.zip"
      length="17164" type="application/zip" />
    
    
          <comments>http://blog.matws.net/post/2008/06/01/L4SUS#comment-form</comments>
      <wfw:comment>http://blog.matws.net/post/2008/06/01/L4SUS#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.matws.net/feed/atom/comments/246385</wfw:commentRss>
      </item>
    
  <item>
    <title>Listing Windows Updates for fun ... and profit</title>
    <link>http://blog.matws.net/post/2008/05/18/Listing-Windows-Update-for-fun-and-profit</link>
    <guid isPermaLink="false">urn:md5:9e29957ea806ba3fa08332ace2968f8a</guid>
    <pubDate>Sun, 18 May 2008 19:29:00 +0400</pubDate>
    <dc:creator>mat</dc:creator>
            
    <description>    &lt;p&gt;A couple of month ago I was searching for a solution for managing windows
updates (and maybe more).&lt;/p&gt;
&lt;p&gt;Out of the box you've got two solutions :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Standard Windows Update mechanisms&lt;/li&gt;
&lt;li&gt;WSUS (Windows Server Update Service)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Both were not ok for my needs in a small sized company, here are the
reasons:&lt;/p&gt;
&lt;h2&gt;Standard Windows Update&lt;/h2&gt;
&lt;p&gt;When you have non IT users (which is the case of nearly every companies) you
must enable automatic updates.&lt;/p&gt;
&lt;p&gt;Main drawbacks of this methods is that you don't control which updates are
installed and which are not and each computers download a copy from internet
which is inefficient and a pure waste of bandwidth and could even be a big
problems when the size of company grow beyond a few tens of users.&lt;/p&gt;
&lt;h2&gt;WSUS&lt;/h2&gt;
&lt;p&gt;WSUS is a good solution from Microsoft to address the problems of standard
update.&lt;/p&gt;
&lt;p&gt;You setup the service and it will manage to find available updates, then you
select the one you want and they will be downloaded. On the client you just
have to change the address of the update server to point to your own update
server and voilà everything is working !&lt;/p&gt;
&lt;p&gt;But It oblige you to have a Windows 2000 or 2003 server and I really hate
the strategy of lock down done by Microsoft.&lt;/p&gt;
&lt;p&gt;As both solutions didn't suits my needs, I started looking for others. I
found LSUS which is available into &lt;a href=&quot;http://www.tice.ac-versailles.fr/logicielslibres/spip.php?article121&quot; hreflang=&quot;fr&quot;&gt;Samba-edu&lt;/a&gt; as it is an opensource project, I am pretty sure
that it is quite easy to extract the LSUS part but I decided not to investigate
more in this way.&lt;/p&gt;
&lt;p&gt;At this moment I decided to investigate different solution and through
Windows Update API manage to have something even not complete. The script
&lt;a href=&quot;http://blog.matws.net/public/listupdates.vbs&quot; hreflang=&quot;en&quot;&gt;listupdates.vbs&lt;/a&gt; is this
result. This script for the moment just output the name and the url for the
different updates, but it should not be very difficult to add the missing
parts.&lt;/p&gt;</description>
    
          <enclosure url="http://blog.matws.net/public/listupdates.vbs"
      length="2171" type="text/plain" />
    
    
          <comments>http://blog.matws.net/post/2008/05/18/Listing-Windows-Update-for-fun-and-profit#comment-form</comments>
      <wfw:comment>http://blog.matws.net/post/2008/05/18/Listing-Windows-Update-for-fun-and-profit#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.matws.net/feed/atom/comments/241328</wfw:commentRss>
      </item>
    
</channel>
</rss>