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

<channel>
	<title>Marcos Orfila</title>
	<atom:link href="http://www.marcosorfila.com/site/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.marcosorfila.com/site</link>
	<description>yet another undercover geek</description>
	<lastBuildDate>Fri, 22 Feb 2013 13:47:57 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Request Tracker email auto completion</title>
		<link>http://www.marcosorfila.com/site/request-tracker-email-auto-completion-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=request-tracker-email-auto-completion-2</link>
		<comments>http://www.marcosorfila.com/site/request-tracker-email-auto-completion-2/#comments</comments>
		<pubDate>Tue, 03 Apr 2012 21:28:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[RT]]></category>

		<guid isPermaLink="false">http://www.marcosorfila.com/site/?p=747</guid>
		<description><![CDATA[<p>This is a very cool plugin for Request Tracker (RT) that will help your users write the right e-mail address and will avoid the administrators those annoying bounces when e-mails are sent from RT to wrong e-mail addresses.</p> <p>I used RT 3.8.8 and RTx::EmailCompletion 0.06.</p> Installation perl -MCPAN -e shell cpan&#62; install RTx::EmailCompletion cpan&#62; <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.marcosorfila.com/site/request-tracker-email-auto-completion-2/">Request Tracker email auto completion</a></span><div class='yarpp-related-rss yarpp-related-none'>

No related posts.
</div>
]]></description>
				<content:encoded><![CDATA[<p>This is a very cool plugin for <a title="RT: Request Tracker - Best Practical" href="http://bestpractical.com/rt/" target="_blank">Request Tracker</a> (RT) that will help your users write the right e-mail address and will avoid the administrators those annoying bounces when e-mails are sent from RT to wrong e-mail addresses.</p>
<p>I used RT <a title="RT version 3.8.8" href="http://download.bestpractical.com/pub/rt/release/rt-3.8.8.tar.gz" target="_blank">3.8.8</a> and RTx::EmailCompletion <a title="EmailCompletion 0.06" href="http://search.cpan.org/~nchuche/RTx-EmailCompletion-0.06/lib/RTx/EmailCompletion.pm" target="_blank">0.06</a>.</p>
<h2>Installation</h2>
<pre>perl -MCPAN -e shell
 cpan&gt; install RTx::EmailCompletion
 cpan&gt; exit</pre>
<p>When asked for the RT module location, write the path:</p>
<pre>/opt/rt-3.8.8/lib</pre>
<h2>Add the plugin to the RT configuration</h2>
<p>In the file &#8220;RT_SiteConfig.pm&#8221;, add the plugin to the &#8220;@Plugins&#8221; definition:</p>
<pre>Set(@Plugins,(qw(RTx::EmailCompletion)));</pre>
<h2>Add the plugin configuration</h2>
<p>Add the following text to the &#8220;RT_SiteConfig.pm&#8221;:</p>
<pre> # RTx::EmailCompletion
 #
 # Referencia:
 # http://search.cpan.org/~nchuche/RTx-EmailCompletion-0.06/lib/RTx/EmailCompletion.pm
 #
 # Para que busque los e-mails que comienzan con el texto ingresado:
 Set($EmailCompletionSearch, "STARTSWITH");
 # Campos de la tabla "Users" donde buscará el plugin:
 Set($EmailCompletionSearchFields, [qw(RealName Name)]);
 #
 # LDAP
 #
 Set($EmailCompletionLdapServer, "ldap.ces.edu.uy");
 Set($EmailCompletionLdapBase, "ou=hosting,o=ces");
 Set($EmailCompletionLdapFilter, "(&amp;(objectClass=JammMailAccount)(accountActive=TRUE)(delete=FALSE))");
 # Atributos del LDAP en los que se hace la busqueda
 Set($EmailCompletionLdapAttrSearch, [qw/mail cn/]);
 Set($EmailCompletionLdapAttrShow, "mail");
 # Largo mínimo del texto para que se mande una consulta al LDAP
 Set($EmailCompletionLdapMinLength, 4);
 # Para mostrar los usuarios del LDAP:
 Set($EmailCompletionUnprivileged,"everybody");
 #
 # Deshabilito la busqueda en los usuario del RT. Solo buscara en el LDAP.
 # Esto es porque el RT tiene muchos Requestors mal escritos.
 Set($EmailCompletionRdbmsDisabled, 1);</pre>
<h2>Restart the web server</h2>
<pre>service httpd restart</pre>
<p>Enjoy this plugin!</p>
<div class='yarpp-related-rss yarpp-related-none'>
<p>No related posts.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.marcosorfila.com/site/request-tracker-email-auto-completion-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Disk space usage tools for Windows</title>
		<link>http://www.marcosorfila.com/site/disk-space-usage-tools-for-windows/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=disk-space-usage-tools-for-windows</link>
		<comments>http://www.marcosorfila.com/site/disk-space-usage-tools-for-windows/#comments</comments>
		<pubDate>Tue, 03 Apr 2012 15:37:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Disk]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.marcosorfila.com/site/?p=738</guid>
		<description><![CDATA[<p>When disk C: is almost out of space and your Windows system gets painfully slow, how do you choose what to delete to free space? Manually checking file and folder sizes is too slow and may not free as much space as needed.</p> <p>I recommend two simple but powerful tools to find out what&#8217;s <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.marcosorfila.com/site/disk-space-usage-tools-for-windows/">Disk space usage tools for Windows</a></span><div class='yarpp-related-rss'>

Related posts:<ol>
<li><a href='http://www.marcosorfila.com/site/how-to-search-in-all-fields-of-windows-7-contacts-windows-address-book-replacement/' rel='bookmark' title='How to search in all fields of Windows 7 Contacts (Windows Address Book replacement)'>How to search in all fields of Windows 7 Contacts (Windows Address Book replacement)</a></li>
<li><a href='http://www.marcosorfila.com/site/ms-windows-2008-password-recovery/' rel='bookmark' title='MS Windows 2008 password recovery'>MS Windows 2008 password recovery</a></li>
</ol>
</div>
]]></description>
				<content:encoded><![CDATA[<p>When disk C: is almost out of space and your Windows system gets painfully slow, how do you choose what to delete to free space? Manually checking file and folder sizes is too slow and may not free as much space as needed.</p>
<p>I recommend two simple but powerful tools to find out what&#8217;s best to delete/move from your disk when you urgently need more space:</p>
<h2><a title="Windows Freeware by Steffen Gerlach" href="http://www.steffengerlach.de/freeware/" target="_blank">Scanner</a></h2>
<p>Written by <a title="Steffen Gerlach" href="http://www.steffengerlach.de/" target="_blank">Steffen Gerlach</a>, freely distributable. It&#8217;s my favorite because its sunburst chart helps you get right away to that big file (log, installation ,etc.) that you don&#8217;t really need in the C: drive.</p>
<h2><a title="WinDirStat" href="http://windirstat.sourceforge.net/" target="_blank">WinDirStat</a></h2>
<p>It&#8217;s a little more complex, but has more features than Scanner. It allows to easily relate the graphical representation of disk space usage with the file and folder. Better suited for an in-depth analysis.</p>
<div class='yarpp-related-rss'>
<p>Related posts:<ol>
<li><a href='http://www.marcosorfila.com/site/how-to-search-in-all-fields-of-windows-7-contacts-windows-address-book-replacement/' rel='bookmark' title='How to search in all fields of Windows 7 Contacts (Windows Address Book replacement)'>How to search in all fields of Windows 7 Contacts (Windows Address Book replacement)</a></li>
<li><a href='http://www.marcosorfila.com/site/ms-windows-2008-password-recovery/' rel='bookmark' title='MS Windows 2008 password recovery'>MS Windows 2008 password recovery</a></li>
</ol></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.marcosorfila.com/site/disk-space-usage-tools-for-windows/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Exploit Scanner for WordPress</title>
		<link>http://www.marcosorfila.com/site/exploit-scanner-for-wordpress/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=exploit-scanner-for-wordpress</link>
		<comments>http://www.marcosorfila.com/site/exploit-scanner-for-wordpress/#comments</comments>
		<pubDate>Fri, 11 Feb 2011 14:20:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Virus]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.marcosorfila.com/site/?p=708</guid>
		<description><![CDATA[<p>The Exploit Scanner plug-in for WordPress is an excellent tool that helps discovering vulnerabilities in your WordPress deployment.</p> <p>The plug-in installs as usual. It creates a new menu item: &#8220;Tools &#62; Exploit Scanner&#8221;.</p> <p>At the time of this writing, it has two features:</p> Run a manual scan for potential exploits. Show the list of <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.marcosorfila.com/site/exploit-scanner-for-wordpress/">Exploit Scanner for WordPress</a></span><div class='yarpp-related-rss'>

Related posts:<ol>
<li><a href='http://www.marcosorfila.com/site/como-eliminar-el-troyano-jswonka-de-wordpress/' rel='bookmark' title='Howto remove JS/Wonka trojan from WordPress'>Howto remove JS/Wonka trojan from WordPress</a></li>
<li><a href='http://www.marcosorfila.com/site/paypal-donations-in-wordpress/' rel='bookmark' title='PayPal donations in WordPress'>PayPal donations in WordPress</a></li>
<li><a href='http://www.marcosorfila.com/site/configuracion-de-wordpress/' rel='bookmark' title='Initial WordPress configuration'>Initial WordPress configuration</a></li>
</ol>
</div>
]]></description>
				<content:encoded><![CDATA[<p>The <a title="WordPress › Exploit Scanner « WordPress Plugins" href="http://wordpress.org/extend/plugins/exploit-scanner/" target="_blank">Exploit Scanner</a> plug-in for <a title="WordPress › Blog Tool and Publishing Platform" href="http://wordpress.org/" target="_blank">WordPress</a> is an excellent tool that helps discovering vulnerabilities in your WordPress deployment.</p>
<p>The plug-in installs as usual. It creates a new menu item: &#8220;Tools &gt; Exploit Scanner&#8221;.</p>
<p>At the time of this writing, it has two features:</p>
<ul>
<li>Run a manual scan for potential exploits.</li>
<li>Show the list of admin users.</li>
</ul>
<p>In my blog, there should be only one admin user. Surprinsingly, there was also another one which was definitely not created by me.</p>
<p>In the &#8220;First Name&#8221; field of that user, there was a piece of malicious code. Here you have the head and tail (I placed dots to replace a really long line of code):</p>
<p><code>&lt;script LANGUAGE="JavaScript"&gt;function Decode(){var temp="",i,c=0,out="";var str="46!46!46!32!60!98!...............!99!114!105!112!116!62!";l=str.length;while(c&lt;=str.length-1){while(str.charAt(c)!='!')temp=temp+str.charAt(c++);c++;out=out+String.fromCharCode(temp);temp="";}document.write(out);} &lt;/script&gt;&lt;script LANGUAGE="JavaScript"&gt; Decode(); &lt;/SCRIPT&gt;</code></p>
<p>I really recommend this tool. Bringing my attention the admin users list was worth installing and trying. You may find other pieces of suspicious code in the scan, but you need some programming skills because most warnings are false positives.</p>
<div class='yarpp-related-rss'>
<p>Related posts:<ol>
<li><a href='http://www.marcosorfila.com/site/como-eliminar-el-troyano-jswonka-de-wordpress/' rel='bookmark' title='Howto remove JS/Wonka trojan from WordPress'>Howto remove JS/Wonka trojan from WordPress</a></li>
<li><a href='http://www.marcosorfila.com/site/paypal-donations-in-wordpress/' rel='bookmark' title='PayPal donations in WordPress'>PayPal donations in WordPress</a></li>
<li><a href='http://www.marcosorfila.com/site/configuracion-de-wordpress/' rel='bookmark' title='Initial WordPress configuration'>Initial WordPress configuration</a></li>
</ol></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.marcosorfila.com/site/exploit-scanner-for-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to search in all fields of Windows 7 Contacts (Windows Address Book replacement)</title>
		<link>http://www.marcosorfila.com/site/how-to-search-in-all-fields-of-windows-7-contacts-windows-address-book-replacement/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=how-to-search-in-all-fields-of-windows-7-contacts-windows-address-book-replacement</link>
		<comments>http://www.marcosorfila.com/site/how-to-search-in-all-fields-of-windows-7-contacts-windows-address-book-replacement/#comments</comments>
		<pubDate>Sun, 12 Dec 2010 23:28:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.marcosorfila.com/site/?p=692</guid>
		<description><![CDATA[<p>I&#8217;ve been using the Windows Address Book (WAB) for years, since Windows 95. As anything that has been used for years, it has a lot of information about people I really care. Not only I keep the basic stuff, like names, e-mails and addresses, but also birthdays, the place I first met people, etc. <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.marcosorfila.com/site/how-to-search-in-all-fields-of-windows-7-contacts-windows-address-book-replacement/">How to search in all fields of Windows 7 Contacts (Windows Address Book replacement)</a></span><div class='yarpp-related-rss'>

Related posts:<ol>
<li><a href='http://www.marcosorfila.com/site/ms-windows-2008-password-recovery/' rel='bookmark' title='MS Windows 2008 password recovery'>MS Windows 2008 password recovery</a></li>
<li><a href='http://www.marcosorfila.com/site/tematres-instalacion-en-windows/' rel='bookmark' title='TemaTres: Windows installation'>TemaTres: Windows installation</a></li>
</ol>
</div>
]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve been using the Windows Address Book (WAB) for years, since Windows 95. As anything that has been used for years, it has a lot of information about people I really care. Not only I keep the basic stuff, like names, e-mails and addresses, but also birthdays, the place I first met people, etc. All that extra information is saved into the &#8220;Notes&#8221; field of the WAB.</p>
<p>After migrating to Windows 7, I realized that there&#8217;s no WAB! After recovering from the first shock, I thought there should be a replacement for such a simple, basic functionality. After googling a little, <a title="Manage your contacts" href="http://windows.microsoft.com/en-US/windows-vista/Managing-your-contacts" target="_blank"><em>Windows Contacts</em></a> looked like the replacement for WAB, but it was so simple that I just could search for names. No search capabilities for addresses, phones or notes. That&#8217;s not enough.</p>
<p>Here I&#8217;ll show you how to improve searches on Windows Contacts information.</p>
<h2>Windows Contacts</h2>
<p>Windows Contacts is nothing but a folder with text files containing contact information shown in a fancy way. You can see every contact as a single file and open every file to see your contacts information, but you can only search on the first and last name. This is too simple and is far from the functionality I had with WAB.</p>
<p>The Windows Contacts folder is in:</p>
<pre>C:\Users\YourUserName\Contacts</pre>
<p>I suggest you to create a shortcut to this folder and place it in your Desktop.</p>
<p>To import WAB information into Windows Contacts, just double-click on the &#8220;.wab&#8221; file and Windows 7 will offer to import the information.</p>
<h2>First alternative for basic search: Windows Live Mail</h2>
<p><a title="Windows Live Mail" href="http://explore.live.com/windows-live-mail" target="_blank">Windows Live Mail</a> is (kind of) a replacement for good &#8216;n&#8217; old <a title="Outlook Express - Wikipedia, the free encyclopedia" href="http://en.wikipedia.org/wiki/Outlook_Express" target="_blank">Outlook Express</a>. It&#8217;s not shipped with Windows 7. You may download the installer from the <a title="Windows Live Mail" href="http://explore.live.com/windows-live-mail" target="_blank">Windows Live Mail home page</a>.</p>
<p>When Windows Live Mail opens, you&#8217;ll see a menu on the bottom left with several tools, including &#8220;Contacts&#8221;. Click on the Contacts menu item. On the Windows Live Contacts, you&#8217;ll find a search box that helps you find contacts by name, phone number and e-mail address. Nice, but no capabilities to search for information on other informations fields, like &#8220;Notes&#8221;.</p>
<h2>Search for any contact information: configure Windows 7 advanced search options</h2>
<p>Follow these simple steps:</p>
<ol>
<li>Click the Start button and in the search box at the very bottom type &#8220;how windows searches&#8221; and choose the result</li>
<li>Click on &#8220;Advanced&#8221;</li>
<li>Click on the &#8220;File Types&#8221; tab</li>
<li>Look for the &#8220;contact&#8221; extension and highlight it by clicking on the row</li>
<li>Change the indexing property to  &#8220;Index Properties and File Contents&#8221;. The value of  &#8220;Filter Description&#8221; column for the &#8220;contacts&#8221; extension will change to &#8220;Plain text Filter&#8221;.</li>
<li>Click OK. Windows will rebuild some indexes.</li>
</ol>
<p>When the index rebuild process finishes, open the Contacts folder.  In the search box, write the text you are looking for between quotation  marks and Windows will look on every text inside the contacts file.</p>
<p>As an example, I have my contacts birthday as part of the &#8220;Notes&#8221; field, always with the same format (mm/dd). Then, if I want to look for someone whose birthday is on April 25, I&#8217;ll wirte the following text in the Contacts search box:</p>
<pre>"04/25"</pre>
<p>If you don&#8217;t use quotation marks, some characters, like slashes,  may not be correctly interpreted.</p>
<div class='yarpp-related-rss'>
<p>Related posts:<ol>
<li><a href='http://www.marcosorfila.com/site/ms-windows-2008-password-recovery/' rel='bookmark' title='MS Windows 2008 password recovery'>MS Windows 2008 password recovery</a></li>
<li><a href='http://www.marcosorfila.com/site/tematres-instalacion-en-windows/' rel='bookmark' title='TemaTres: Windows installation'>TemaTres: Windows installation</a></li>
</ol></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.marcosorfila.com/site/how-to-search-in-all-fields-of-windows-7-contacts-windows-address-book-replacement/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>VMware ESXi: howto remove the last snapshot</title>
		<link>http://www.marcosorfila.com/site/vmware-esxi-howto-remove-the-last-snapshot/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=vmware-esxi-howto-remove-the-last-snapshot</link>
		<comments>http://www.marcosorfila.com/site/vmware-esxi-howto-remove-the-last-snapshot/#comments</comments>
		<pubDate>Sat, 23 Oct 2010 23:35:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[VMware]]></category>

		<guid isPermaLink="false">http://www.marcosorfila.com/site/?p=684</guid>
		<description><![CDATA[<p>Sometimes we need to create a snapshot in VMware ESXi (e.g. for backup purposes) and delete it right afterwards. This kind of operations are usually performed with shell scripts. In this post, I will explain how to remove the last snapshot using the command line.</p> <p>You can specify the snapshot you want to delete <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.marcosorfila.com/site/vmware-esxi-howto-remove-the-last-snapshot/">VMware ESXi: howto remove the last snapshot</a></span><div class='yarpp-related-rss'>

Related posts:<ol>
<li><a href='http://www.marcosorfila.com/site/vmware-esxi-howto-wait-for-commands-to-complete-e-g-create-snapshot/' rel='bookmark' title='VMware ESXi: howto wait for commands to complete (e.g. create snapshot)'>VMware ESXi: howto wait for commands to complete (e.g. create snapshot)</a></li>
<li><a href='http://www.marcosorfila.com/site/vmware-esxi-always-keep-another-administrator-user-other-than-root/' rel='bookmark' title='VMware ESXi: always keep another Administrator user other than root'>VMware ESXi: always keep another Administrator user other than root</a></li>
<li><a href='http://www.marcosorfila.com/site/vmktree-disable-root-ssh-password-logins-in-vmware-esxi-4-1/' rel='bookmark' title='vmktree: disable root ssh password logins in VMware ESXi 4.1'>vmktree: disable root ssh password logins in VMware ESXi 4.1</a></li>
</ol>
</div>
]]></description>
				<content:encoded><![CDATA[<p>Sometimes we need to create a snapshot in VMware ESXi (e.g. for backup purposes) and delete it right afterwards. This kind of operations are usually performed with shell scripts. In this post, I will explain how to remove the last snapshot using the command line.</p>
<p>You can specify the snapshot you want to delete by using the &#8220;snapshotLevel&#8221; parameter. Snapshots are ordered from oldest to newest. The oldest snapshot has snapshotLevel=0.</p>
<p>First of all, you need to know your virtual machine ID. You can get the ID&#8217;s of all VM&#8217;s with the following command:</p>
<pre>vim-cmd vmsvc/getallvms</pre>
<p>In the next commands, I will use the variable &#8220;$VM_ID&#8221; to represent the Virtual machine ID.</p>
<p>To find out the number of snapshots for your VM, you can use the following commands:</p>
<pre>VM_ID=YOUR_VIRTUAL_MACHINE_ID
vim-cmd vmsvc/snapshot.get $VM_ID | egrep -- '--\|-CHILD|^\|-ROOT' | wc -l</pre>
<p>To remove only the last snapshot for a given VM, use the following commands:</p>
<pre>SNAPSHOT_COUNT=`vim-cmd vmsvc/snapshot.get $VM_ID | egrep -- '--\|-CHILD|^\|-ROOT' | wc -l`
vim-cmd vmsvc/snapshot.remove $VM_ID false $(($SNAPSHOT_COUNT-1)) 0</pre>
<p>That&#8217;s it. I suggest you to test your scripts with a dummy virtual machine. Use at your own risk! <img src='http://www.marcosorfila.com/site/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<div class='yarpp-related-rss'>
<p>Related posts:<ol>
<li><a href='http://www.marcosorfila.com/site/vmware-esxi-howto-wait-for-commands-to-complete-e-g-create-snapshot/' rel='bookmark' title='VMware ESXi: howto wait for commands to complete (e.g. create snapshot)'>VMware ESXi: howto wait for commands to complete (e.g. create snapshot)</a></li>
<li><a href='http://www.marcosorfila.com/site/vmware-esxi-always-keep-another-administrator-user-other-than-root/' rel='bookmark' title='VMware ESXi: always keep another Administrator user other than root'>VMware ESXi: always keep another Administrator user other than root</a></li>
<li><a href='http://www.marcosorfila.com/site/vmktree-disable-root-ssh-password-logins-in-vmware-esxi-4-1/' rel='bookmark' title='vmktree: disable root ssh password logins in VMware ESXi 4.1'>vmktree: disable root ssh password logins in VMware ESXi 4.1</a></li>
</ol></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.marcosorfila.com/site/vmware-esxi-howto-remove-the-last-snapshot/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>VMware ESXi: howto wait for commands to complete (e.g. create snapshot)</title>
		<link>http://www.marcosorfila.com/site/vmware-esxi-howto-wait-for-commands-to-complete-e-g-create-snapshot/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=vmware-esxi-howto-wait-for-commands-to-complete-e-g-create-snapshot</link>
		<comments>http://www.marcosorfila.com/site/vmware-esxi-howto-wait-for-commands-to-complete-e-g-create-snapshot/#comments</comments>
		<pubDate>Sat, 23 Oct 2010 22:03:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[VMware]]></category>

		<guid isPermaLink="false">http://www.marcosorfila.com/site/?p=674</guid>
		<description><![CDATA[<p>In VMware ESXi, you have blocking and non-blocking tasks. When creating scripts to execute non-blocking tasks, it may be useful to wait for non-blocking commands to complete. This can be done by looking to the task list in the command line.</p> <p>As an example, I used one of the harmless tasks in VMware: creating <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.marcosorfila.com/site/vmware-esxi-howto-wait-for-commands-to-complete-e-g-create-snapshot/">VMware ESXi: howto wait for commands to complete (e.g. create snapshot)</a></span><div class='yarpp-related-rss'>

Related posts:<ol>
<li><a href='http://www.marcosorfila.com/site/vmware-esxi-howto-remove-the-last-snapshot/' rel='bookmark' title='VMware ESXi: howto remove the last snapshot'>VMware ESXi: howto remove the last snapshot</a></li>
<li><a href='http://www.marcosorfila.com/site/vmware-esxi-always-keep-another-administrator-user-other-than-root/' rel='bookmark' title='VMware ESXi: always keep another Administrator user other than root'>VMware ESXi: always keep another Administrator user other than root</a></li>
<li><a href='http://www.marcosorfila.com/site/vmktree-disable-root-ssh-password-logins-in-vmware-esxi-4-1/' rel='bookmark' title='vmktree: disable root ssh password logins in VMware ESXi 4.1'>vmktree: disable root ssh password logins in VMware ESXi 4.1</a></li>
</ol>
</div>
]]></description>
				<content:encoded><![CDATA[<p>In <a title="Free VMware vSphere Hypervisor: Bare Metal Hypervisor (Based on VMware ESXi)" href="http://www.vmware.com/products/vsphere-hypervisor" target="_blank">VMware ESXi</a>, you have blocking and non-blocking tasks. When creating scripts to execute non-blocking tasks, it may be useful to wait for non-blocking commands to complete. This can be done by looking to the task list in the command line.</p>
<p>As an example, I used one of the harmless tasks in VMware: creating a snapshot. Here&#8217;s a script that will wait for a createSnapshot task until it finishes, showing the final state:</p>
<pre>#/bin/ash
#######################################################################################
#
#   Check snapshot completion
#
#   Author:    Marcos Orfila &lt;www.marcosorfila.com&gt;
#   Last modified:
#              2010-10-23   (Marcos Orfila)
#
#######################################################################################

# Delay for the check loop, in seconds
DELAY=5

#######################################################################################

# Check parameters
VM_NAME=$1
if [ -z "$VM_NAME" ]
then
 echo "ERROR: not enough parameters"
 echo
 echo "   Usage:   $0 vmname"
 echo
 exit 1
fi

VM_ID=`vim-cmd vmsvc/getallvms | grep "$VM_NAME/" | awk '{print $1}'`
if [ -z "$VM_ID" ]; then
 echo "ERROR: unknown virtual machine ($VM_NAME)"
 exit 1
fi

TASK_ID=`vim-cmd vimsvc/task_list | grep "$VM_ID-vim.VirtualMachine.createSnapshot" | cut -d':' -f2 | cut -d"'" -f1`
if [ -z "$TASK_ID" ]; then
 echo "ERROR: no createSnapshot tasks found for $VM_NAME"
 exit 1
fi

echo -n "Snapshot for $VM_NAME is being created."
while true; do
 STATE=`vim-cmd vimsvc/task_info $TASK_ID | grep 'state = ' | cut -d'"' -f2`
 case "$STATE" in
 "running")
 echo -n '.'
 sleep $DELAY
 ;;
 "success")
 echo " OK"
 break
 ;;
 *)
 echo " ERROR"
 echo "The snapshot task ended with state $STATE (it should be 'success')"
 exit 1
 ;;
 esac    
done</pre>
<p>To adapt this script to other kind of tasks, you might change the line for the &#8220;TASK_ID&#8221; variable and maybe the values for the acceptable state values in the &#8220;case&#8221; sentence.</p>
<div class='yarpp-related-rss'>
<p>Related posts:<ol>
<li><a href='http://www.marcosorfila.com/site/vmware-esxi-howto-remove-the-last-snapshot/' rel='bookmark' title='VMware ESXi: howto remove the last snapshot'>VMware ESXi: howto remove the last snapshot</a></li>
<li><a href='http://www.marcosorfila.com/site/vmware-esxi-always-keep-another-administrator-user-other-than-root/' rel='bookmark' title='VMware ESXi: always keep another Administrator user other than root'>VMware ESXi: always keep another Administrator user other than root</a></li>
<li><a href='http://www.marcosorfila.com/site/vmktree-disable-root-ssh-password-logins-in-vmware-esxi-4-1/' rel='bookmark' title='vmktree: disable root ssh password logins in VMware ESXi 4.1'>vmktree: disable root ssh password logins in VMware ESXi 4.1</a></li>
</ol></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.marcosorfila.com/site/vmware-esxi-howto-wait-for-commands-to-complete-e-g-create-snapshot/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PPPoE in a multiple-connection Linux firewall</title>
		<link>http://www.marcosorfila.com/site/pppoe-in-a-multiple-connection-linux-firewall/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=pppoe-in-a-multiple-connection-linux-firewall</link>
		<comments>http://www.marcosorfila.com/site/pppoe-in-a-multiple-connection-linux-firewall/#comments</comments>
		<pubDate>Mon, 18 Oct 2010 01:21:33 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Firewall]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Networking]]></category>

		<guid isPermaLink="false">http://www.marcosorfila.com/site/?p=632</guid>
		<description><![CDATA[<p>I had to configure a PPPoE interface as a secondary Internet connection in a Linux firewall, using the CentOS Linux distribution. The idea was to route HTTP and HTTPS traffic through the PPPoE connection to leverage the bandwidth usage of the primary static-IP connection.</p> <p>There are some things to consider when the PPPoE connection <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.marcosorfila.com/site/pppoe-in-a-multiple-connection-linux-firewall/">PPPoE in a multiple-connection Linux firewall</a></span><div class='yarpp-related-rss'>

Related posts:<ol>
<li><a href='http://www.marcosorfila.com/site/firewall-builder-with-multiple-isp-connections/' rel='bookmark' title='Firewall Builder with multiple ISP connections howto'>Firewall Builder with multiple ISP connections howto</a></li>
</ol>
</div>
]]></description>
				<content:encoded><![CDATA[<p>I had to configure a <a title="Point-to-Point Protocol over Ethernet" href="http://en.wikipedia.org/wiki/PPPoE" target="_blank">PPPoE</a> interface as a secondary Internet connection in a Linux firewall, using the <a title="www.centos.org - The Community ENTerprise Operating System" href="http://www.centos.org" target="_blank">CentOS</a> Linux distribution. The idea was to route HTTP and HTTPS traffic through the PPPoE connection to leverage the bandwidth usage of the primary static-IP connection.</p>
<p>There are some things to consider when the PPPoE connection is setup in this scenario.</p>
<h2>The Basics</h2>
<p>In this section, I&#8217;ll explain how to configure a PPPoE interface in CentOS.</p>
<h3>1) Install required software</h3>
<pre># yum install rp-pppoe</pre>
<h3>2) Configure the PPPoE connection</h3>
<p>The following is the output of the <strong>adsl-setup</strong> command. The answers are in bold text:</p>
<pre>[root@fw ~]# adsl-setup
Welcome to the ADSL client setup.  First, I will run some checks on
your system to make sure the PPPoE client is installed properly...

LOGIN NAME

Enter your Login Name (default root): <strong>adsl-user-name</strong>

INTERFACE

Enter the Ethernet interface connected to the ADSL modem
For Solaris, this is likely to be something like /dev/hme0.
For Linux, it will be ethX, where 'X' is a number.
(default eth0): <strong>eth2</strong>

Do you want the link to come up on demand, or stay up continuously?
If you want it to come up on demand, enter the idle time in seconds
after which the link should be dropped.  If you want the link to
stay up permanently, enter 'no' (two letters, lower-case.)
NOTE: Demand-activated links do not interact well with dynamic IP
addresses.  You may have some problems with demand-activated links.
Enter the demand value (default no): <strong>no</strong>

DNS

Please enter the IP address of your ISP's primary DNS server.
If your ISP claims that 'the server will provide dynamic DNS addresses',
enter 'server' (all lower-case) here.
If you just press enter, I will assume you know what you are
doing and not modify your DNS setup.
Enter the DNS information here: <strong>(Press ENTER)
</strong>
PASSWORD

Please enter your Password: <strong>***********</strong>
Please re-enter your Password: <strong>***********</strong>

USERCTRL

Please enter 'yes' (three letters, lower-case.) if you want to allow
normal user to start or stop DSL connection (default yes): <strong>no</strong>

FIREWALLING

Please choose the firewall rules to use.  Note that these rules are
very basic.  You are strongly encouraged to use a more sophisticated
firewall setup; however, these will provide basic security.  If you
are running any servers on your machine, you must choose 'NONE' and
set up firewalling yourself.  Otherwise, the firewall rules will deny
access to all standard servers like Web, e-mail, ftp, etc.  If you
are using SSH, the rules will block outgoing SSH connections which
allocate a privileged source port.

The firewall choices are:
0 - NONE: This script will not set any firewall rules.  You are responsible
 for ensuring the security of your machine.  You are STRONGLY
 recommended to use some kind of firewall rules.
1 - STANDALONE: Appropriate for a basic stand-alone web-surfing workstation
2 - MASQUERADE: Appropriate for a machine acting as an Internet gateway
 for a LAN
Choose a type of firewall (0-2): <strong>0</strong>

Start this connection at boot time

Do you want to start this connection at boot time?
Please enter no or yes (default no):<strong>yes</strong>

** Summary of what you entered **

Ethernet Interface: eth2
User name:          adsl-user-name
Activate-on-demand: No
DNS:                Do not adjust
Firewalling:        NONE
User Control:       no
Accept these settings and adjust configuration files (y/n)? <strong>y</strong>
Adjusting /etc/sysconfig/network-scripts/ifcfg-ppp0
Adjusting /etc/ppp/chap-secrets and /etc/ppp/pap-secrets
 (But first backing it up to /etc/ppp/chap-secrets.bak)
 (But first backing it up to /etc/ppp/pap-secrets.bak)

Congratulations, it should be all set up!

Type '/sbin/ifup ppp0' to bring up your xDSL link and '/sbin/ifdown ppp0'
to bring it down.
Type '/sbin/adsl-status /etc/sysconfig/network-scripts/ifcfg-ppp0'
to see the link status.

[root@fw ~]#</pre>
<h2>Define the Ethernet Interface!</h2>
<p>Even though it&#8217;s not mandatory to configure the Ethernet interface (e.g. eth2) connected to the PPPoE device, it is highly recommended that you do it. This will avoid the OS to recognize the Ethernet interface with a different name. If this happens, the PPPoE setup scripts will not find the Ethernet interface and the PPPoE interface (e.g. ppp0) will not be setup.</p>
<p>In the following example, the Ethernet interface <em>eth2</em> is erroneously recognized as &#8220;<em>__tmp1109941636</em>&#8220;:</p>
<pre>[root@fw ~]# ifconfig -a
__tmp1109941636 Link encap:Ethernet  HWaddr 00:E0:4C:55:5E:37
 BROADCAST MULTICAST  MTU:1500  Metric:1
 RX packets:4940 errors:0 dropped:0 overruns:0 frame:0
 TX packets:499 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:1000
 RX bytes:393404 (384.1 KiB)  TX bytes:100208 (97.8 KiB)
 Interrupt:209 Base address:0x4400 

eth0      Link encap:Ethernet  HWaddr 00:08:A1:B5:F5:DC
 inet addr:200.1.1.2  Bcast:200.1.1.3  Mask:255.255.255.252
 inet6 addr: fe80::208:a1ff:feb5:f5dc/64 Scope:Link
 UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
 RX packets:220 errors:0 dropped:0 overruns:0 frame:0
 TX packets:29 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:1000
 RX bytes:16646 (16.2 KiB)  TX bytes:3971 (3.8 KiB)
 Interrupt:217 Base address:0xe000 

eth1      Link encap:Ethernet  HWaddr 00:08:A1:82:69:99
 inet addr:10.10.10.1  Bcast:10.10.10.255  Mask:255.255.255.0
 inet6 addr: fe80::208:a1ff:fe82:6999/64 Scope:Link
 UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
 RX packets:4940 errors:0 dropped:0 overruns:0 frame:0
 TX packets:501 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:1000
 RX bytes:393404 (384.1 KiB)  TX bytes:100708 (98.3 KiB)
 Interrupt:201 Base address:0xb000 

lo        Link encap:Local Loopback
 inet addr:127.0.0.1  Mask:255.0.0.0
 inet6 addr: ::1/128 Scope:Host
 UP LOOPBACK RUNNING  MTU:16436  Metric:1
 RX packets:8 errors:0 dropped:0 overruns:0 frame:0
 TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:0
 RX bytes:560 (560.0 b)  TX bytes:560 (560.0 b) 

sit0      Link encap:IPv6-in-IPv4
 NOARP  MTU:1480  Metric:1
 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:0
 RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b) 

[root@fw ~]#</pre>
<p>We can prevent this strange behavior by defining the <em>eth2</em> interface with the minimum information, including the MAC Address. Create the file <strong>/etc/sysconfig/network-scripts/ifcfg-eth2</strong> with the following text:</p>
<pre>DEVICE=eth2
ONBOOT=no
HWADDR=70:5a:b6:95:4c:9b</pre>
<h2>Prevent default route overriding</h2>
<p>When the PPPoE connection is setup, the existing default route is overridden by a new one created to make the PPPoE interface the default route. This is the default behavior.</p>
<p>As the PPPoE connection is secondary, you may want to prevent the PPPoE connection setup to override the default route. To do this, create the file <strong>/etc/ppp/ip-up.local</strong> with the following text:</p>
<pre>#!/bin/bash
#
# When the PPPoE conection is established, the default
# route is overriden. Here we restore the default gateway
# as defined in "/etc/sysconfig/network".
DEFAULT_GATEWAY=`grep GATEWAY /etc/sysconfig/network | cut -d'=' -f2`
/sbin/route delete default
/sbin/route add default gw $DEFAULT_GATEWAY</pre>
<p>Make the new script executable:</p>
<pre># chmod 755 /etc/ppp/ip-up.local</pre>
<h2>Testing</h2>
<p>Use the following commands to test your configuration:</p>
<pre># ifdown ppp0
# ifup ppp0
# netstat -nr | egrep '^0.0.0.0'  # To show the default route</pre>
<p>With the configuration explained in this article, the default route should not change when taking the PPPoE interface (e.g. ppp0) up/down.</p>
<p>Enjoy!</p>
<div class='yarpp-related-rss'>
<p>Related posts:<ol>
<li><a href='http://www.marcosorfila.com/site/firewall-builder-with-multiple-isp-connections/' rel='bookmark' title='Firewall Builder with multiple ISP connections howto'>Firewall Builder with multiple ISP connections howto</a></li>
</ol></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.marcosorfila.com/site/pppoe-in-a-multiple-connection-linux-firewall/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Firewall Builder with multiple ISP connections howto</title>
		<link>http://www.marcosorfila.com/site/firewall-builder-with-multiple-isp-connections/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=firewall-builder-with-multiple-isp-connections</link>
		<comments>http://www.marcosorfila.com/site/firewall-builder-with-multiple-isp-connections/#comments</comments>
		<pubDate>Mon, 04 Oct 2010 18:22:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Firewall]]></category>
		<category><![CDATA[fwbuilder]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.marcosorfila.com/site/?p=623</guid>
		<description><![CDATA[<p>I&#8217;ve been using Firewall Builder to manage Linux (CentOS) firewalls for a while. It&#8217;s an excellent tool for middle-sized organizations.</p> <p>I was a happy sysadmin with my single-ISP fwbuilder configuration. Everything was simple, everything worked out of the box. One day, a PPPoE connection came by. I thought there was a simple solution built <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.marcosorfila.com/site/firewall-builder-with-multiple-isp-connections/">Firewall Builder with multiple ISP connections howto</a></span><div class='yarpp-related-rss'>

Related posts:<ol>
<li><a href='http://www.marcosorfila.com/site/pppoe-in-a-multiple-connection-linux-firewall/' rel='bookmark' title='PPPoE in a multiple-connection Linux firewall'>PPPoE in a multiple-connection Linux firewall</a></li>
</ol>
</div>
]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve been using <a title="Firewall Builder" href="http://www.fwbuilder.org/" target="_blank">Firewall Builder</a> to manage Linux (<a title="www.centos.org - The Community ENTerprise Operating System" href="http://www.centos.org/" target="_blank">CentOS</a>) firewalls for a while. It&#8217;s an excellent tool for middle-sized organizations.</p>
<p>I was a happy sysadmin with my single-ISP fwbuilder configuration. Everything was simple, everything worked out of the box. One day, a PPPoE connection came by. I thought there was a simple solution built into Firewall Builder to cope with two ISP connections, but after a lot of googling, I found that there was a lot of people asking and just a few people giving directions to the starting point.</p>
<p>My goal was to keep most of the Internet traffic through the old ISP connection, which has a static IP, and browse the Internet through the PPPoE connection. All of this using Firewall Builder to manage my firewall.</p>
<p>Well then. Here&#8217;s how I did it.</p>
<h2>Configure the PPPoE interface as a secondary connection</h2>
<p>There are some considerations for a PPPoE interface when it&#8217;s going to work as a secondary connection (i.e. not the default route). Please read my post about <a title="PPPoE in a multiple-connection Linux firewall" href="http://www.marcosorfila.com/site/pppoe-in-a-multiple-connection-linux-firewall/" target="_blank">PPPoE in a multiple-connection Linux firewall</a>.</p>
<h2>FWBuilder Policy Rules</h2>
<p>Besides the rules that allow traffic (action &#8220;Accept&#8221;), the policy must include a rule with action &#8220;Tag&#8221; to mark packets to be routed through the secondary Internet connection.</p>
<h3>TagService</h3>
<p>Define a TagService object (Services &gt; TagServices) in your Firewall Builder configuration:</p>
<dl>
<dd>
<table border="1" cellspacing="0" cellpadding="7" width="554">
<col width="70"></col>
<col width="454"></col>
<tbody>
<tr valign="TOP">
<td width="70">
<p lang="es-ES">Name</p>
</td>
<td width="454">
<p lang="es-ES">TagPPPoE</p>
</td>
</tr>
<tr valign="TOP">
<td width="70">
<p lang="es-ES">Code</p>
</td>
<td width="454">
<p lang="es-ES">4</p>
</td>
</tr>
<tr valign="TOP">
<td width="70">
<p lang="es-ES">Comment</p>
</td>
<td width="454">
<p lang="es-ES">Tag 				service to mark traffic routed through the PPPoE connection.</p>
<p lang="es-ES">IMPORTANT: the code value must match the MARK variable from file  &#8220;/etc/init.d/ip_rules&#8221;.</p>
</td>
</tr>
</tbody>
</table>
</dd>
</dl>
<p>I&#8217;ll explain file &#8220;/etc/init.d/ip_rules&#8221; later.</p>
<h3>Policy rules</h3>
<p lang="es-ES">You must create at least two rules to allow HTTP and HTTPS to be routed through the secondary Internet connection, one rule to mark packets and another one to allow traffic. Both are very similar, so differences are in bold for ease of reading:</p>
<dl>
<dd>
<table border="1" cellspacing="0" cellpadding="7" width="554">
<col width="89"></col>
<col width="435"></col>
<tbody>
<tr valign="TOP">
<td width="89">
<p lang="es-ES">Source</p>
</td>
<td width="435">
<p lang="es-ES">Source IP address for HTTP and HTTPS traffic</p>
</td>
</tr>
<tr valign="TOP">
<td width="89">
<p lang="es-ES">Destination</p>
</td>
<td width="435">
<p lang="es-ES">Any</p>
</td>
</tr>
<tr valign="TOP">
<td width="89">
<p lang="es-ES">Service</p>
</td>
<td width="435">
<p lang="es-ES">http, 				https</p>
</td>
</tr>
<tr valign="TOP">
<td width="89">
<p lang="es-ES">Interface</p>
</td>
<td width="435">
<p lang="es-ES">Your firewall internal network interface</p>
</td>
</tr>
<tr valign="TOP">
<td width="89">
<p lang="es-ES">Direction</p>
</td>
<td width="435">
<p lang="es-ES">Inbound</p>
</td>
</tr>
<tr valign="TOP">
<td width="89">
<p lang="es-ES">Action</p>
</td>
<td width="435">
<p lang="es-ES"><strong>Tag 				(select</strong><strong> the “TagPPPoE”</strong><strong> TagService)</strong></p>
</td>
</tr>
<tr valign="TOP">
<td width="89">
<p lang="es-ES">Time</p>
</td>
<td width="435">
<p lang="es-ES">Any</p>
</td>
</tr>
<tr valign="TOP">
<td width="89">
<p lang="es-ES">Options</p>
</td>
<td width="435">
<p lang="es-ES">(leave empty)</p>
</td>
</tr>
<tr valign="TOP">
<td width="89">
<p lang="es-ES">Comment</p>
</td>
<td width="435">
<p lang="es-ES"><strong>Tagging to let HTTP and HTTPS be routed through the PPPoE interface<br />
</strong></p>
</td>
</tr>
</tbody>
</table>
</dd>
</dl>
<p lang="es-ES">
<dl>
<dd>
<table border="1" cellspacing="0" cellpadding="7" width="554">
<col width="89"></col>
<col width="435"></col>
<tbody>
<tr valign="TOP">
<td width="89">
<p lang="es-ES">Source</p>
</td>
<td width="435">
<p lang="es-ES">Source IP address for HTTP and HTTPS traffic</p>
</td>
</tr>
<tr valign="TOP">
<td width="89">
<p lang="es-ES">Destination</p>
</td>
<td width="435">
<p lang="es-ES">Any</p>
</td>
</tr>
<tr valign="TOP">
<td width="89">
<p lang="es-ES">Service</p>
</td>
<td width="435">
<p lang="es-ES">http, 				https</p>
</td>
</tr>
<tr valign="TOP">
<td width="89">
<p lang="es-ES">Interface</p>
</td>
<td width="435">
<p lang="es-ES">Your firewall internal network interface</p>
</td>
</tr>
<tr valign="TOP">
<td width="89">
<p lang="es-ES">Direction</p>
</td>
<td width="435">
<p lang="es-ES">Inbound</p>
</td>
</tr>
<tr valign="TOP">
<td width="89">
<p lang="es-ES">Action</p>
</td>
<td width="435">
<p lang="es-ES"><strong>Accept</strong></p>
</td>
</tr>
<tr valign="TOP">
<td width="89">
<p lang="es-ES">Time</p>
</td>
<td width="435">
<p lang="es-ES">Any</p>
</td>
</tr>
<tr valign="TOP">
<td width="89">
<p lang="es-ES">Options</p>
</td>
<td width="435">
<p lang="es-ES">(leave empty)</p>
</td>
</tr>
<tr valign="TOP">
<td width="89">
<p lang="es-ES">Comment</p>
</td>
<td width="435">
<p lang="es-ES"><strong>Allow HTTP and HTTPS to the Internet<br />
</strong></p>
</td>
</tr>
</tbody>
</table>
</dd>
</dl>
<p lang="es-ES">
<h2>FWBuilder NAT Rules</h2>
<p>You must create two separate NAT rules for outgoing network traffic, one rule for protocols routed through the secondary Internet connection and one for all the other network traffic. The order is important.</p>
<p lang="es-ES">In the example, &#8220;fw-Static&#8221; and &#8220;fw-PPPoE&#8221; are the network interfaces for the static IP and the PPPoE (secondary) Internet connections respectively.</p>
<dl>
<dd>
<table border="1" cellspacing="0" cellpadding="7" width="554">
<col width="89"></col>
<col width="435"></col>
<tbody>
<tr valign="TOP">
<td width="89">
<p lang="es-ES">Original 				Src</p>
</td>
<td width="435">
<p lang="es-ES">IP&#8217;s of the internal network</p>
</td>
</tr>
<tr valign="TOP">
<td width="89">
<p lang="es-ES">Original 				Dst</p>
</td>
<td width="435">
<p lang="es-ES">Any</p>
</td>
</tr>
<tr valign="TOP">
<td width="89">
<p lang="es-ES">Original 				Srv</p>
</td>
<td width="435">
<p lang="es-ES"><strong>http, 				https</strong></p>
</td>
</tr>
<tr valign="TOP">
<td width="89">
<p lang="es-ES">Translated 				Src</p>
</td>
<td width="435">
<p lang="es-ES"><strong>fw-PPPoE</strong></p>
</td>
</tr>
<tr valign="TOP">
<td width="89">
<p lang="es-ES">Translated 				Dst</p>
</td>
<td width="435">
<p lang="es-ES">Original</p>
</td>
</tr>
<tr valign="TOP">
<td width="89">
<p lang="es-ES">Translated 				Srv</p>
</td>
<td width="435">
<p lang="es-ES">Original</p>
</td>
</tr>
<tr valign="TOP">
<td width="89">
<p lang="es-ES">Action</p>
</td>
<td width="435">
<p lang="es-ES">Translate</p>
</td>
</tr>
<tr valign="TOP">
<td width="89">
<p lang="es-ES">Options</p>
</td>
<td width="435">
<p lang="es-ES">(leave empty)</p>
</td>
</tr>
<tr valign="TOP">
<td width="89">
<p lang="es-ES">Comment</p>
</td>
<td width="435">
<p lang="es-ES"><strong>NAT rule to browse the Internet<br />
</strong></p>
</td>
</tr>
</tbody>
</table>
</dd>
</dl>
<p lang="es-ES">
<dl>
<dd>
<table border="1" cellspacing="0" cellpadding="7" width="554">
<col width="89"></col>
<col width="435"></col>
<tbody>
<tr valign="TOP">
<td width="89">
<p lang="es-ES">Original 				Src</p>
</td>
<td width="435">
<p lang="es-ES">IP&#8217;s of the internal network</p>
</td>
</tr>
<tr valign="TOP">
<td width="89">
<p lang="es-ES">Original 				Dst</p>
</td>
<td width="435">
<p lang="es-ES">Any</p>
</td>
</tr>
<tr valign="TOP">
<td width="89">
<p lang="es-ES">Original 				Srv</p>
</td>
<td width="435">
<p lang="es-ES"><strong>Any</strong></p>
</td>
</tr>
<tr valign="TOP">
<td width="89">
<p lang="es-ES">Translated 				Src</p>
</td>
<td width="435">
<p lang="es-ES"><strong>fw-Static</strong></p>
</td>
</tr>
<tr valign="TOP">
<td width="89">
<p lang="es-ES">Translated 				Dst</p>
</td>
<td width="435">
<p lang="es-ES">Original</p>
</td>
</tr>
<tr valign="TOP">
<td width="89">
<p lang="es-ES">Translated 				Srv</p>
</td>
<td width="435">
<p lang="es-ES">Original</p>
</td>
</tr>
<tr valign="TOP">
<td width="89">
<p lang="es-ES">Action</p>
</td>
<td width="435">
<p lang="es-ES">Translate</p>
</td>
</tr>
<tr valign="TOP">
<td width="89">
<p lang="es-ES">Options</p>
</td>
<td width="435">
<p lang="es-ES">(leave empty)</p>
</td>
</tr>
<tr valign="TOP">
<td width="89">
<p lang="es-ES">Comment</p>
</td>
<td width="435">
<p lang="es-ES"><strong>Default outgoing NAT rule<br />
</strong></p>
</td>
</tr>
</tbody>
</table>
</dd>
</dl>
<p lang="es-ES">
<p>You may need to add one NAT rule for each Internet connection.</p>
<h2>Setting up the routing rules</h2>
<p>The routing tables and ip rules are set outside Firewall Builder. Even though I may have used FWBuilder&#8217;s Epilog to add this code inside the policy, I preferred to create an RC script to load routing configuration right after the network RC script is executed.</p>
<p>You may download the &#8220;/etc/init.d/ip_rules&#8221; RC script from <a title="/etc/init.d/ip_rules" href="/site/wp-content/uploads/Firewall-Builder-with-multiple-ISP-connections/ip_rules" target="_blank">this link</a>.</p>
<h3>Update routing tables when PPPoE changes the IP</h3>
<p>Every time the PPPoE connection changes its IP, the references to this interface in the routing tables are erased! The secondary routing table has the ppp0 interface as the default route, so you will lose your routing capabilities every time the PPPoE IP changes. Unless you do something <img src='http://www.marcosorfila.com/site/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>To automatically configure the routing information every time the PPPoE interface changes, add the following commands to file <strong>/etc/ppp/ip-up.local</strong>:</p>
<pre>/etc/init.d/ip_rules start</pre>
<h2>Troubleshooting</h2>
<h3>Try the simplest FWBuilder Policy first (or even no FWBuilder policy at all)</h3>
<p>Create the simplest policy in FWBuilder (i.e. allow all outgoing traffic, NATed with the external static IP) and then start adding the routing functionality. If it doesn&#8217;t work, try creating simple iptables rules to avoid using FWBuilder while configuring ip rules and routes.</p>
<p>Once the traffic routing is working, let FWBuilder join the party.</p>
<p><!-- p { margin-bottom: 0.21cm; } --></p>
<h3 lang="es-ES">FWBuilder&#8217;s Kernel anti-spoofing protection</h3>
<p>This option made me loose a lot of time!</p>
<p>You may find this firewall option in &#8220;Host OS Settings &gt; Options &gt; Kernel anti-spoofing protection&#8221;. It was set with value &#8220;On&#8221; and I changed it to &#8220;No Change&#8221; to make routing work correctly.</p>
<p>The symptoms were that returning TCP packets arrived correctly to the external PPPoE interface, but did not arrive to the internal Ethernet interface (I used &#8220;tcpdump&#8221; to see this). It worked right without applying FWBuilder policy, so I started diving into FWBuilder configuration, looking for uncommon things, until I found this option to be the root of all evil&#8230; several extra hours later <img src='http://www.marcosorfila.com/site/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> </p>
<h2>Conclusion</h2>
<p>This solution allows the Firewall administrator to easily modify the traffic routed through the secondary Internet connection. Routing other traffic through additional network interfaces may require changes in the &#8220;/etc/init.d/ip_rules&#8221; RC script (just another routing table and another ip rule), but network interfaces seldom change, so 99% of the job is done through Firewall Builder.</p>
<div class='yarpp-related-rss'>
<p>Related posts:<ol>
<li><a href='http://www.marcosorfila.com/site/pppoe-in-a-multiple-connection-linux-firewall/' rel='bookmark' title='PPPoE in a multiple-connection Linux firewall'>PPPoE in a multiple-connection Linux firewall</a></li>
</ol></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.marcosorfila.com/site/firewall-builder-with-multiple-isp-connections/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>vmktree: disable root ssh password logins in VMware ESXi 4.1</title>
		<link>http://www.marcosorfila.com/site/vmktree-disable-root-ssh-password-logins-in-vmware-esxi-4-1/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=vmktree-disable-root-ssh-password-logins-in-vmware-esxi-4-1</link>
		<comments>http://www.marcosorfila.com/site/vmktree-disable-root-ssh-password-logins-in-vmware-esxi-4-1/#comments</comments>
		<pubDate>Mon, 20 Sep 2010 21:01:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[vmktree]]></category>
		<category><![CDATA[VMware]]></category>

		<guid isPermaLink="false">http://www.marcosorfila.com/site/?p=607</guid>
		<description><![CDATA[<p>vmktree is a free web tool that shows you the graphs of resource usage of VMware ESX Server, VMware Server (on Linux), GSX Server (on Linux) and a few other data center devices (ilo/ilo2/rsa2/ds4000).</p> <p>Currently, it is not possible to use vmktree with a VMware ESXi 4.1 host with ssh root logins disabled. This <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.marcosorfila.com/site/vmktree-disable-root-ssh-password-logins-in-vmware-esxi-4-1/">vmktree: disable root ssh password logins in VMware ESXi 4.1</a></span><div class='yarpp-related-rss'>

Related posts:<ol>
<li><a href='http://www.marcosorfila.com/site/ssh-with-non-root-users-in-vmware-esxi/' rel='bookmark' title='SSH with non-root users in VMware ESXi'>SSH with non-root users in VMware ESXi</a></li>
<li><a href='http://www.marcosorfila.com/site/vmware-esxi-always-keep-another-administrator-user-other-than-root/' rel='bookmark' title='VMware ESXi: always keep another Administrator user other than root'>VMware ESXi: always keep another Administrator user other than root</a></li>
<li><a href='http://www.marcosorfila.com/site/selectively-allow-ssh-for-users-in-vmware-esxi/' rel='bookmark' title='Selectively allow SSH for users in VMware ESXi'>Selectively allow SSH for users in VMware ESXi</a></li>
</ol>
</div>
]]></description>
				<content:encoded><![CDATA[<p><a title="vmktree » About vmktree" href="http://vmktree.org/" target="_blank">vmktree</a> <em>is a free web tool that shows you the graphs of resource usage of VMware ESX Server, VMware Server (on Linux), GSX Server (on Linux) and a few other data center devices (ilo/ilo2/rsa2/ds4000).</em></p>
<p>Currently, it is not possible to use vmktree with a <a title="Free VMware vSphere Hypervisor: Bare Metal Hypervisor (Based on VMware ESXi)" href="http://www.vmware.com/products/vsphere-hypervisor" target="_blank">VMware ESXi</a> 4.1 host with ssh root logins disabled. This is due to the lack of the &#8220;sudo&#8221; command in ESXi 4.1 and the required administrative privileges for vmktree commands that are run in the ESXi host.</p>
<p>I do not recommend setting up an ESXi with ssh root logins enabled just like any other user. Instead, with the purpose of setting up a reasonable security level and allow the excellent functionality provided by vmktree, I suggest configuring SSH in the ESXi server to <strong>disable ssh root password logins</strong>. Non-privileged users would be allowed ssh login providing a password, but root ssh logins will require a private key. Protecting that private key with the root permissions of another server will make root ssh logins to the ESXi server as secure as root access on the server that holds the private key.</p>
<p>The configuration steps are as follow:</p>
<h2>Configure SSH in the ESXi</h2>
<p>Edit &#8220;/etc/inetd.conf&#8221; and add option &#8220;-g&#8221; to disable root ssh logins using password. Check that option &#8220;-w&#8221; is not included.</p>
<p>The ssh lines in &#8220;/etc/inetd.conf&#8221; should look like this:</p>
<pre>ssh      stream   tcp   nowait   root   /sbin/dropbearmulti   dropbear ++min=0,swap,group=shell -g -i -K60
ssh      stream   tcp6  nowait   root   /sbin/dropbearmulti   dropbear ++min=0,swap,group=shell -g -i -K60</pre>
<p>To see all dropbear (ssh server) options, you may execute the following commands:</p>
<pre># ln -s /sbin/dropbearmulti /tmp/dropbear
# /tmp/dropbear -h</pre>
<p>To apply changes to the inetd, execute:</p>
<pre># kill -HUP `cat /var/run/inetd.pid`</pre>
<h2>Generate SSH key pair in the vmktree server</h2>
<p>In my network, vmktree is installed in a Linux box, so I&#8217;ll use OpenSSH commands to generate the key pair.</p>
<pre># ssh-keygen -t rsa -b 2048</pre>
<p>Accept the default file name (/root/.ssh/id_rsa) and do not enter a passphrase (just hit the ENTER key when asked for a password). The command will create files &#8220;id_rsa&#8221; (private key) and &#8220;id_rsa.pub&#8221; (public key). Keep the former private since the security secheme is based on it.</p>
<p>Make sure that your &#8220;/root/.ssh&#8221; folder has permissions only for root. If in doubt, execute:</p>
<pre># chmod 700 /root/.ssh</pre>
<h2>Configure SSH logins using keys</h2>
<p>Copy file &#8220;id_rsa.pub&#8221; to the &#8220;/.ssh&#8221; folder in the ESXi host.<br />
Now login to the vmktree server as root and try an ssh root login to your ESXi server. The ssh root login will only work from this host and logged in as root.</p>
<h2>Configure a new ESXi in the vmktree server</h2>
<p>To add a new ESXi host to vmktree (e.g &#8220;myesxi&#8221;), login as root and execute the following commands (press ENTER when asked for a password):</p>
<pre># vmktree-addesx myesxi root</pre>
<p>The output should be something like this:</p>
<pre>[root@linuxbox ~]# /usr/bin/vmktree-addesx myesxi root
root's password:</pre>
<pre>Warning: root ssh login is disabled by default. Details here -&gt; http://kb.vmware.com/selfservice/viewContent.do?language=en_US&amp;externalId=8375637
A normal user is normally prefered over root for this task.

Please wait. This will probably take 15-20 seconds....</pre>
<pre>You have activated Tech Support Mode.
The time and date of this activation have been sent to the system logs.</pre>
<pre>VMware offers supported, powerful system administration tools. Please
see www.vmware.com/go/sysadmintools for details.</pre>
<pre>Tech Support Mode may be disabled by an administrative user.
Please consult the ESXi Configuration Guide for additional
important information.

[root@myesxi /]$ exit
Connection to myesxi closed.</pre>
<pre>Successfully added the needed trust relation ship to the esx server.

cron entry already exists.
ash: chage: not found</pre>
<pre>ESX account info for root:

Successfully added statistic collection from myesxi.

You should start seeing stats from myesxi in a few minutes.
[root@inuxbox ~]#</pre>
<p>Then you should add cron lines like this:</p>
<pre>* * * * * root /usr/bin/vmktree-esx3-collector myesxi root 2&gt;&amp;1 &gt;/dev/null</pre>
<p>That&#8217;s it. Wait for a while and you will see the information collected in the vmktree web page.</p>
<div class='yarpp-related-rss'>
<p>Related posts:<ol>
<li><a href='http://www.marcosorfila.com/site/ssh-with-non-root-users-in-vmware-esxi/' rel='bookmark' title='SSH with non-root users in VMware ESXi'>SSH with non-root users in VMware ESXi</a></li>
<li><a href='http://www.marcosorfila.com/site/vmware-esxi-always-keep-another-administrator-user-other-than-root/' rel='bookmark' title='VMware ESXi: always keep another Administrator user other than root'>VMware ESXi: always keep another Administrator user other than root</a></li>
<li><a href='http://www.marcosorfila.com/site/selectively-allow-ssh-for-users-in-vmware-esxi/' rel='bookmark' title='Selectively allow SSH for users in VMware ESXi'>Selectively allow SSH for users in VMware ESXi</a></li>
</ol></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.marcosorfila.com/site/vmktree-disable-root-ssh-password-logins-in-vmware-esxi-4-1/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>VMware ESXi: always keep another Administrator user other than root</title>
		<link>http://www.marcosorfila.com/site/vmware-esxi-always-keep-another-administrator-user-other-than-root/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=vmware-esxi-always-keep-another-administrator-user-other-than-root</link>
		<comments>http://www.marcosorfila.com/site/vmware-esxi-always-keep-another-administrator-user-other-than-root/#comments</comments>
		<pubDate>Thu, 26 Aug 2010 19:02:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[VMware]]></category>

		<guid isPermaLink="false">http://www.marcosorfila.com/site/?p=597</guid>
		<description><![CDATA[<p>I had to assign permissions to group &#8220;root&#8221; as a host Administrator of my ESXi. I was a little bit distracted and assigned the &#8220;Read-only&#8221; role to group &#8220;root&#8221; instead of role &#8220;Administrator&#8221;. As a side effect, user &#8220;root&#8221; got read-only permissions!</p> <p>User &#8220;dcui&#8221; is Administrator by default, so we can use it to <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.marcosorfila.com/site/vmware-esxi-always-keep-another-administrator-user-other-than-root/">VMware ESXi: always keep another Administrator user other than root</a></span><div class='yarpp-related-rss'>

Related posts:<ol>
<li><a href='http://www.marcosorfila.com/site/ssh-with-non-root-users-in-vmware-esxi/' rel='bookmark' title='SSH with non-root users in VMware ESXi'>SSH with non-root users in VMware ESXi</a></li>
<li><a href='http://www.marcosorfila.com/site/vmktree-disable-root-ssh-password-logins-in-vmware-esxi-4-1/' rel='bookmark' title='vmktree: disable root ssh password logins in VMware ESXi 4.1'>vmktree: disable root ssh password logins in VMware ESXi 4.1</a></li>
<li><a href='http://www.marcosorfila.com/site/selectively-allow-ssh-for-users-in-vmware-esxi/' rel='bookmark' title='Selectively allow SSH for users in VMware ESXi'>Selectively allow SSH for users in VMware ESXi</a></li>
</ol>
</div>
]]></description>
				<content:encoded><![CDATA[<p>I had to assign permissions to group &#8220;root&#8221; as a host Administrator of my ESXi. I was a little bit distracted and assigned the &#8220;Read-only&#8221; role to group &#8220;root&#8221; instead of role &#8220;Administrator&#8221;. As a side effect, user &#8220;root&#8221; got read-only permissions!</p>
<p>User &#8220;dcui&#8221; is Administrator by default, so we can use it to login and remove the wrong permissions for the &#8220;root&#8221; group.</p>
<p>Change file &#8220;/etc/passwd&#8221; to assign &#8220;/bin/ash&#8221; as the shell and change file &#8220;/etc/shadow&#8221; to blank dcui&#8217;s password. The lines for dcui should look like this:</p>
<pre>~ # grep dcui /etc/passwd
dcui:x:100:100:DCUI User:/:/bin/ash
~ #
~ # grep dcui /etc/shadow
dcui::13358:0:99999:7:::
~ #</pre>
<p>After these changes, login with user &#8220;dcui&#8221; using the vSphere Client and remove group &#8220;root&#8221; from the host permissions list. You may see an error message, but the group is removed anyway.</p>
<p>A piece of advice: always keep an Administrator user other that root, and make sure this user does not belong to the same groups user root belongs to. You may keep this user disabled with neither password nor shell, just like the default setting for user &#8220;dcui&#8221;.</p>
<div class='yarpp-related-rss'>
<p>Related posts:<ol>
<li><a href='http://www.marcosorfila.com/site/ssh-with-non-root-users-in-vmware-esxi/' rel='bookmark' title='SSH with non-root users in VMware ESXi'>SSH with non-root users in VMware ESXi</a></li>
<li><a href='http://www.marcosorfila.com/site/vmktree-disable-root-ssh-password-logins-in-vmware-esxi-4-1/' rel='bookmark' title='vmktree: disable root ssh password logins in VMware ESXi 4.1'>vmktree: disable root ssh password logins in VMware ESXi 4.1</a></li>
<li><a href='http://www.marcosorfila.com/site/selectively-allow-ssh-for-users-in-vmware-esxi/' rel='bookmark' title='Selectively allow SSH for users in VMware ESXi'>Selectively allow SSH for users in VMware ESXi</a></li>
</ol></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.marcosorfila.com/site/vmware-esxi-always-keep-another-administrator-user-other-than-root/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
