<?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>Ralf Eisenreich &#187; sicherheit</title>
	<atom:link href="http://sqlblog.de/blog/tag/sicherheit/feed/" rel="self" type="application/rss+xml" />
	<link>http://sqlblog.de/blog</link>
	<description>SQLBlog.DE &#124; ..things to remember</description>
	<lastBuildDate>Mon, 09 Apr 2012 07:11:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>SQL Server: Security Check List</title>
		<link>http://sqlblog.de/blog/2009/08/sql-server-security-check-list/</link>
		<comments>http://sqlblog.de/blog/2009/08/sql-server-security-check-list/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 15:50:54 +0000</pubDate>
		<dc:creator>Ralf</dc:creator>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[sicherheit]]></category>

		<guid isPermaLink="false">http://sqlblog.de/blog/?p=635</guid>
		<description><![CDATA[In the following you find a compact catalog of steps which should be considered in a SQL Server environment. It...]]></description>
			<content:encoded><![CDATA[<p>In the following you find a compact catalog of steps which should be considered in a SQL Server environment.<br />
It is a conclusion of information from different sources.</p>
<p><strong>Check List</strong><br />
<em>Installation &#038; Patching</em></p>
<ul>
<li>Are only required components installed? Additional components should be installed when required.</li>
<li>As Service Account a Local or Domain Account should be rather used than a System Account.</li>
<li>A separate account for each service should be used.</li>
<li>Service accounts should use standard privileges (no special). The privileges are applied per Group Membership (SQL Server supplied group accounts).</li>
<li>Service Accounts should be applied with SQL Server Configuration Manager.</li>
<li>Always the most recent updates should be used.</li>
<li>Do not apply automatic updates. Rather test them before on a test environment.</li>
</ul>
<p><em>Configuration: Surface Area Reduction</em></p>
<ul>
<li>Surface Area Configuration Tool: only required features should be enabled.</li>
<li>Only Required Services should be set to Auto startup. Others should be set to Manual startup. Also consider to set some Services to Disabled startup.</li>
<li>If not needed supported Network protocols should be disabled in Configuration Manager.</li>
<li>If not needed, SQL Server should not be exposed to all networks (e.g. the Internet).</li>
<li>For some Configurations it is easier if named instances use fixed ports, rather than  dynamic ports.</li>
<li>Surface Area Configuration Tool: the xp_cmdshell should be disabled unless it is absolutely needed.</li>
<li>Surface Area Configuration Tool: COM components should be disabled once all COM components have been converted to SQLCLR.</li>
<li>Surface Area Configuration Tool: both mail procedures (database mail and SQL mail) should be disabled unless it required to send mails from SQL Server. Rather use database mail.</li>
<li>Surface Area Configuration Tool: standard policy should be enforced for extended procedure usage.</li>
<li>No system stored procedure should be removed by dropping it.</li>
<li>User or Administrator access should not be denied to the extended procedures by using DENY all.</li>
<li>Surface Area Configuration Tool: All exceptions to the above statements should be documented here.</li>
</ul>
<p><em>SQL Server Agent</em></p>
<ul>
<li>In order to apply special privileges to Jobs, Credentials should be used, instead of adjusting the privileges of SQL Server Agent service account.</li>
<li>In order to execute a Job with different Windows credentials, Proxy accounts should be used.</li>
</ul>
<p><em>Security: Authentication (general)</em></p>
<ul>
<li>Always Windows Authentication should be used. Mixed Authentication should be used only for Non-Windows accounts or incompatible applications.</li>
<li>The sa account should have a strong and known password.</li>
<li>If possible, the sa account should be renamed.</li>
<li>The SQL Server Management should not be done using the sa account. Rather use a known login and assign the sysadmin privilege to it.</li>
</ul>
<p><em>Security: Authentication (administrative access)</em></p>
<ul>
<li>Use administrative privileges only when needed to access SQL Server.</li>
<li>The number of administrators should be as low as possible.</li>
<li>Administrative logins should not be linked to the BuiltIn\Administrators group.</li>
</ul>
<p><em>Security: Authorisation</em></p>
<ul>
<li>Permissions on DB objects should be managed using Database roles or Windows groups.</li>
<li>Guest access should not be enabled.</li>
</ul>
<p><em>Security: Scanner Tools</em></p>
<ul>
<li>Use Microsoft Best Practices Analyser to identiy possible weak points in SQL Server 2005.</li>
<li>Use Microsoft Baseline Security Analyser to identify weak points in your operating System.</li>
</ul>
<p><em>Security: Password Policy</em></p>
<ul>
<li>Set up a strong password policy, including an expiration and a complexity policy. E.g. use the company password policy.</li>
<li>If using SQL logins, SQL Server should run on Windows Server 2003 OS. Also password policies should be mandatory.</li>
<li>Application should support the change procedure for SQL Login passwords.</li>
<li>New SQL Logins should have the property MUST_CHANGE_ON_FIRST_ACCESS on true.</li>
<li>Security on Database objects should be managed by using schemas.</li>
</ul>
<p><em>Database Properties</em></p>
<ul>
<li>Databases should have distinct owners. The sa user should not own all databases.</li>
<li>The number of owners per Database should be as low as possible.</li>
</ul>
<p><em>Schema Properties</em></p>
<ul>
<li>Similar SQL objects should be grouped into the same schema.</li>
<li>Schemas should not be owned only by dbo.</li>
<li>The number of schema owners should be minimized.</li>
</ul>
<p><em>Catalog Views</em></p>
<ul>
<li>Catalog views are secure by default, so no additional action is required to secure them.</li>
</ul>
<p><em>Remote Data Source Execution</em></p>
<ul>
<li>Instead of Remote server definitions rather Linked Servers should be used.</li>
<li>Ad hoc queries through Linked Servers should be disabled if not needed.</li>
</ul>
<p><em>Execution Context</em></p>
<ul>
<li>Rather use EXECUTE AS instead of SETUSER.</li>
<li>Rather use WITH NO REVERT/COOKIE instead of Application Roles.</li>
</ul>
<p><em>Data Encryption</em></p>
<ul>
<li>Information which is classified as secret (or confidential) should be encrypted.</li>
<li>Data encryption should be done with symmetric keys which are protected by using asymmetric keys or certificates.</li>
<li>Keys should be password-protected and the master key encryption should be removed for the most secure configuration.</li>
<li>The service master key, database master keys, and certificates should be backed-up by using the key-specific DDL statements.</li>
</ul>
<p><em>Auditing</em></p>
<ul>
<li>The amount of auditing data (detail level) should be project specific.</li>
<li>C2 auditing should be enabled only if explicitly needed.</li>
<li>DDL and specific server events should be audited by using trace events or event notifications.</li>
<li>DML must be audited by using trace events.</li>
<li>WMI should ber used to be alerted of emergency events.</li>
</ul>
<p><strong>Fazit</strong><br />
My recommendation is to use following Test Protocol in order to check the several steps.</p>
<p><strong>Download</strong>: <a href="http://sqlblog.de/blog/wp-content/uploads/2009/08/T_SQL_Server_Best_Practices.xls">SQL Server: Check List Best Practices</a></p>
]]></content:encoded>
			<wfw:commentRss>http://sqlblog.de/blog/2009/08/sql-server-security-check-list/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wireshark: successor application of Ethereal</title>
		<link>http://sqlblog.de/blog/2009/07/wireshark-successor-application-of-ethereal/</link>
		<comments>http://sqlblog.de/blog/2009/07/wireshark-successor-application-of-ethereal/#comments</comments>
		<pubDate>Fri, 24 Jul 2009 16:17:26 +0000</pubDate>
		<dc:creator>Ralf</dc:creator>
				<category><![CDATA[bookmarks]]></category>
		<category><![CDATA[by the way]]></category>
		<category><![CDATA[Freeware]]></category>
		<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[sicherheit]]></category>

		<guid isPermaLink="false">http://sqlblog.de/blog/?p=622</guid>
		<description><![CDATA[Wireshark is the successor application of Ethereal. Wireshark is a free (GNU General Public License) network traffic analyser (packet sniffer)....]]></description>
			<content:encoded><![CDATA[<div id="attachment_623" class="wp-caption alignnone" style="width: 355px"><img src="http://sqlblog.de/blog/wp-content/uploads/2009/07/wireshark_logo.png" alt="Wireshark Logo" title="Wireshark Logo" width="345" height="107" class="size-full wp-image-623" /><p class="wp-caption-text">Wireshark Logo</p></div>
<p><a href="http://www.wireshark.org/">Wireshark</a> is the successor application of <a href="http://ethereal.com/">Ethereal</a>. Wireshark is a free (<a href="http://en.wikipedia.org/wiki/GNU_General_Public_License">GNU General Public License</a>) network traffic analyser (packet sniffer).<br />
This tool is very useful to test encrypted connections of own applications or to analyse active connections and data flows on the own desktop.</p>
<p><strong>Here is an application screenshot</strong>:<br />
The application layout consists of 3 parts (windows) &#8211; packet list, packet details and packet bytes.<br />
<div id="attachment_625" class="wp-caption alignnone" style="width: 531px"><img src="http://sqlblog.de/blog/wp-content/uploads/2009/07/wireshark_app.png" alt="Wireshark Application Screenshot" title="Wireshark Application Screenshot" width="521" height="377" class="size-full wp-image-625" /><p class="wp-caption-text">Wireshark Application Screenshot</p></div></p>
<p><strong>A sample ICQ data flow</strong>:<br />
This data flow contains the message: &#8220;Gratulation zum Motoradführerschein <img src='http://sqlblog.de/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> &#8220;<br />
<div id="attachment_626" class="wp-caption alignnone" style="width: 600px"><img src="http://sqlblog.de/blog/wp-content/uploads/2009/07/ICQ-Traffic.png" alt="ICQ Data Flow" title="ICQ Data Flow" width="590" height="244" class="size-full wp-image-626" /><p class="wp-caption-text">ICQ Data Flow</p></div></p>
<p><strong>Supported Systems</strong>:<br />
Wireshark runs on Unix-like systems (e.g. Linux, Solaris, HP-UX, FreeBSD, NetBSD, OpenBSD and Mac OS X) and on Microsoft Windows.</p>
<p>[Source: <a href="http://www.wireshark.org/">Wireshark</a>]</p>
]]></content:encoded>
			<wfw:commentRss>http://sqlblog.de/blog/2009/07/wireshark-successor-application-of-ethereal/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Linked SQL Server: Encrypted Connection</title>
		<link>http://sqlblog.de/blog/2009/07/linked-sql-server-encrypted-connection/</link>
		<comments>http://sqlblog.de/blog/2009/07/linked-sql-server-encrypted-connection/#comments</comments>
		<pubDate>Wed, 22 Jul 2009 08:59:50 +0000</pubDate>
		<dc:creator>Ralf</dc:creator>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[sicherheit]]></category>

		<guid isPermaLink="false">http://sqlblog.de/blog/?p=591</guid>
		<description><![CDATA[Linked SQL Server (applies to SQL Server 2005 / SQL Server 2008 / later) It can happen that an application...]]></description>
			<content:encoded><![CDATA[<p><strong>Linked SQL Server (applies to SQL Server 2005 / SQL Server 2008 / later)</strong><br />
It can happen that an application may need data stored in second database which is not located on the same instance of SQL Server. That instance could be on the same physical machine or it could be on another machine. There are many solutions to this scenario, but it depends on your requirements which solution you should choose. If there is no need to transport a huge amount of data between the two SQL Server instances then you should consider to register the second instance as Linked SQL Server into the first instance.</p>
<p>The advantage is that the Linked Server can provide seamlessly data access to the application. By the way, Linked Servers can be also used to register Non-SQL-Server instances.</p>
<p><strong>Basic Architecture Example</strong><br />
The following illustration shows a basic architecture sample. As you can see the Client is only accessing the Application Server and the Application Server is only accessing the first SQL Server.<br />
<div id="attachment_595" class="wp-caption aligncenter" style="width: 310px"><a href="http://sqlblog.de/blog/wp-content/uploads/2009/07/Server_Topologie.png"><img src="http://sqlblog.de/blog/wp-content/uploads/2009/07/Server_Topologie-300x56.png" alt="Linked SQL Server: Basic Architecture" title="Linked SQL Server: Basic Architecture" width="300" height="56" class="size-medium wp-image-595" /></a><p class="wp-caption-text">Linked SQL Server: Basic Architecture</p></div></p>
<p>This means the Application Server is submitting only one query to the first SQL Server instance and gets the result back only from the the same SQL Server instance. The data retrieval from the second SQL Server instance is processed by the first SQL Server instance.<br />
More detailed:  If the application running on the Application Server submits a query to the frist SQL Server instance that needs to retrieve data from a database hosted on the second SQL Server instance, then a so called <em>Distributed Query</em> is fired. An Example for such a query:</p>
<p><code><br />
SELECT SERVER2.[DB].[SCHEMA].[TABLE].[FIELD]<br />
FROM SERVER2.[DB]<br />
</code></p>
<p>In this sample the SERVER2 (= Linked Server Registration name on SERVER1) identifies that I am starting a distributed query.</p>
<p><strong>How to setup the Linked Server</strong><br />
You can register a Linked Server instance within Management Studio as the following illustration shows.<br />
<div id="attachment_601" class="wp-caption aligncenter" style="width: 304px"><img src="http://sqlblog.de/blog/wp-content/uploads/2009/07/Linked_Server_MMS.png" alt="Linked SQL Server: Management Studio" title="Linked SQL Server: Management Studio" width="294" height="274" class="size-full wp-image-601" /><p class="wp-caption-text">Linked SQL Server: Management Studio</p></div></p>
<p>For a greater flexibility I recommend to use the stored procedure.<br />
<code><br />
EXEC master.dbo.sp_addlinkedserver<br />
@server = N'REGISTRATION_NAME',<br />
@srvproduct=N'',<br />
@provider=N'SQLNCLI',<br />
@datasrc=N'SERVER\INSTANCE',<br />
@provstr=N'',<br />
@catalog = 'DATABASE_NAME'<br />
</code></p>
<p><strong>Linked Server Options: Server Options</strong><br />
Following Server options are available:</p>
<ul>
<li><strong>Collation Compatible</strong>: is used to identify whether or not the Linked Server has the same collation as the Local Server, should be set only the to true if you know for sure that both instances have the same collation. </li>
<li><strong>Data Access</strong>: is used allow data access on the linked server, should be true. This option can be used to disable a Linked Server temporally.</li>
<li><strong>RPC</strong>: is used to allow remote procedures calls <strong>from</strong> the Linked Server.</li>
<li><strong>RPC out</strong>: is used to allow remote procedures calls <strong>to</strong> the Linked Server (procedures which are defined on the second instance).</li>
<li><strong>Use Remote Collation</strong>: is used to specify that the collation setting from the remote instance is used.</li>
<li><strong>Collation Name</strong>: is to specify the collation setting of the Linked Server.</li>
<li><strong>Connection Timeout</strong>: is used to specify a time the Local Server waits to obtain a connection to the Linked Server (Zero used the remote instance setting).</li>
<li><strong>Query Timeout</strong>: is used to specify a time the Local Server waits to retrieve data from the Linked Server (Zero used the remote instance setting).</li>
</ul>
<p><strong>Linked Server Options: Security</strong></p>
<ul>
<li><strong>Login mapping</strong>: is a way to associate a login on the Local Server, with a login on the Remote Server. There are two options &#8211; Impersonate login and SQL login.</li>
<li><strong>Impersonate login</strong>: uses a local Windows login and uses it to connect to the Linked Server, by impersonating it. For this login delegation has to be enabled between the two Servers!</li>
<li><strong>SQL login</strong>: is used by associating a local login with a remote login and password. The remote login needs to be a SQL Server Authenticated user on the remote server.</li>
</ul>
<p>For logins which are not defined in the mapping you can specify the behavior for the connection to the linked server. There are four different options that are available by choosing the corresponding radio button. </p>
<ul>
<li><strong>Not be made</strong>: any users who are not added to the mapping list cannot connect to the Linked Server.</li>
<li><strong>Be made without using a security context</strong>: can be used for Data Sources which do not require any authentication. E.g. text files.</li>
<li><strong>Be made using Login’s current security context</strong>: the Windows account of the current login is used to connect to the Linked Server. The Local Server has to be able to impersonate the corresponding local account. This option is a simple way to specify that all Windows accounts are able to connect to the Linked Server, without mapping each login.</li>
<li><strong>Be made with this security context</strong>: specifies that all logins connecting to the Linked Server are using a single remote login and password (SQL Server Authenticated login).</li>
</ul>
<p><strong>Encryption of Connection stream</strong><br />
SQL Server is able to encrypt the connection between Client and Server. Since SQL Server 2005 you do not necessarily need to use SSL certificates. However, it makes sense to have certificates, because the Client can not check the identity of the Server. By the way, if you use a certificate which was generated from the Server itself then it will not be trustful.</p>
<p>The Login packets are always encrypted since SQL Server 2005, if the Client supports it. Encrypted communication between Client and Server is supported since MDAC 2.6 and third party Client tools should be ckecked. It is important to know that encryption takes additional CPU time and that encrypted data streams cannot be compressed anymore.</p>
<p>The encryption option can be activated in the Configuration Manager (SQL Server Network Cobnfiguration). Choosing the Properties dialog for an Instance you can set the option &#8220;Force Encryption&#8221; to true.<br />
With this option set to true the SQL Server instance only accepts encrypted connections. If you want to have both connection options (encrypted / non-encrypted) then you should not set this option to true.</p>
<p>If you do not choose a certificate (under certificate tab) then SQL Server 2005 (or later) generates a self-signed certificate. This means that the communication between Client and Server is encrypted and that spoofing of data is not possible anymore.</p>
<p><strong>Encryption of Linked Server Connection Stream</strong><br />
To enable the encryption of a Linked Server connection stream you should use the provider string option &#8220;Encrypted=YES&#8221;. The following stored procedure includes this option.</p>
<p><code><br />
EXEC master.dbo.sp_addlinkedserver<br />
@server = N'REGISTRATION_NAME',<br />
@srvproduct=N'',<br />
@provider=N'SQLNCLI',<br />
@datasrc=N'SERVER\INSTANCE',<br />
@provstr=N'<strong>Encrypt=yes;</strong>',<br />
@catalog = 'DATABASE_NAME'</code></p>
<p>The Linked SQL Server connection is now encrypted using a self-signed certificate or if available a Server certificate.</p>
<p><strong>How to check encrypted connection for SQL Server</strong><br />
I recommend the tool <a href="http://www.wireshark.org/">Wireshark</a> (former known as <a href="http://www.ethereal.com/">Ethereal</a>) to check the packages and look into the data. Just run this tool, capture a stream and fire a SELECT statement.</p>
<p><strong>Conclusion</strong><br />
Registering another SQL Server instance as Linked Server allows you to submit T-SQL statements on one SQL Server instance, which retrieves data from a second instance. Moreover it is possible to fire linked statements so that you can join data between several instances.</p>
]]></content:encoded>
			<wfw:commentRss>http://sqlblog.de/blog/2009/07/linked-sql-server-encrypted-connection/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Sicherheitscenter (Windows) erkennt Software nicht</title>
		<link>http://sqlblog.de/blog/2008/01/sicherheitscenter-windows-erkennt-software-nicht/</link>
		<comments>http://sqlblog.de/blog/2008/01/sicherheitscenter-windows-erkennt-software-nicht/#comments</comments>
		<pubDate>Mon, 14 Jan 2008 18:23:18 +0000</pubDate>
		<dc:creator>Ralf</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[sicherheit]]></category>

		<guid isPermaLink="false">http://sqlblog.de/blog/index.php/2008/01/14/sicherheitscenter-windows-erkennt-software-nicht/</guid>
		<description><![CDATA[Falls im Sicherheitscenter weder Windows Defender noch Antivirus-Software erkannt wird, hilft folgendes: Start &#8211; Ausführen &#8211; &#8220;services.msc&#8221; starten und Dienst...]]></description>
			<content:encoded><![CDATA[<p>Falls im Sicherheitscenter weder Windows Defender noch Antivirus-Software erkannt wird, hilft folgendes:</p>
<ol>
<li>Start &#8211; Ausführen &#8211; &#8220;services.msc&#8221; starten und Dienst Windows-Verwaltungsinstrumentation stoppen</li>
<li>unter C:\Windows\system32\wbem\repository den Ordner löschen oder umbenennen</li>
<li>den WMI-Dienst wieder starten</li>
</ol>
<p>Das sollte helfen.</p>
]]></content:encoded>
			<wfw:commentRss>http://sqlblog.de/blog/2008/01/sicherheitscenter-windows-erkennt-software-nicht/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Sicheres Surfen</title>
		<link>http://sqlblog.de/blog/2006/10/sicheres-surfen/</link>
		<comments>http://sqlblog.de/blog/2006/10/sicheres-surfen/#comments</comments>
		<pubDate>Sun, 01 Oct 2006 09:02:34 +0000</pubDate>
		<dc:creator>Ralf</dc:creator>
				<category><![CDATA[by the way]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[openssh]]></category>
		<category><![CDATA[putty]]></category>
		<category><![CDATA[sicherheit]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[surfen]]></category>
		<category><![CDATA[tunnel]]></category>

		<guid isPermaLink="false">http://blog.ralf-eisenreich.de/blog/index.php/2006/10/01/sicheres-surfen/</guid>
		<description><![CDATA[Folgende Motivationen können es veranlassen &#8220;sicher&#8221; zu surfen: auf einem Shared PC sollen wichtige Daten abgerufen werden (z.B. Online Banking)...]]></description>
			<content:encoded><![CDATA[<p>Folgende Motivationen können es veranlassen &#8220;sicher&#8221; zu surfen:</p>
<ul>
<li>auf einem Shared PC sollen wichtige Daten abgerufen werden (z.B. Online Banking)</li>
<li>der Internet-Provider blockt einige Inhalte im Internet (gängige Praxis in China, UAE oder Saudi Arabien)</li>
<li>es soll nicht ohne weiteres nachvollziehbar sein (z.B. beim Arbeitgeber), welche Inhalte abgerufen worden sind</li>
</ul>
<p><strong>Lösung:</strong><br />
Die einfachste Lösung ist das Surfen über einen abgesicherten Proxy, dem man selbst vertraut. Hier möchte ich die Möglichkeit vorstellen, wie unter Windows ein SSH-Tunnel eingerichtet werden kann.</p>
<p><strong>Vorraussetzungen</strong></p>
<ul>
<li><a href="http://www.chiark.greenend.org.uk/~sgtatham/putty">PuTTY</a> auf dem lokalen Rechner</li>
<li>einen Remote Host, auf dem OpenSSH läuft (beispielsweise ein Linux-Rechner zu Hause)</li>
</ul>
<p><span id="more-101"></span></p>
<p><strong>Anleitung</strong></p>
<ol>
<li><strong>PuTTY-Session erstellen</strong><br />
Zuerst PuTTY ausführen und eine neue Session erstellen, wobei der Hostname, der Port (normalerweise 22) und die Option <em>SSH</em> angegeben werden.</p>
<p><img id="image106" src="http://ralf-eisenreich.de/blog/wp-content/uploads/2006/10/putty00.png" alt="Putty00" /></li>
<li><strong>SSH-Tunnel einrichten</strong><br />
Links auf Tunnels klicken und einen dynamischen weitergeleiteten lokalen Port (z.B. 7777) erstellen, indem unter &#8220;add new forwarded port&#8221; die <strong>Portnummer</strong> <em>7777</em> eingegeben wird, <strong>destination</strong> <em>leer</em> gelassen wird und <em>auto</em> sowie <em>dynamic</em> ausgewählt werden. Nach dem Hinzufügen sollte der Port unter forwarded Ports als <em>D7070</em> aufgelistet werden.</p>
<p><img id="image103" src="http://ralf-eisenreich.de/blog/wp-content/uploads/2006/10/putty02.png" alt="Putty02" /></p>
<p>Damit ist der SSH-Tunnel eingerichtet. Die Session muß nun noch gespeichert werden!</li>
<li><strong>Kompression und Keep-Alive aktivieren</strong><br />
Damit das Surfen einigermaßen performant ist (Kompression der Daten) und die Verbindung dauerhaft aufrecht erhalten wird, empfiehlt es sich folgende Optionen zu aktivieren.</p>
<p><img id="image102" src="http://ralf-eisenreich.de/blog/wp-content/uploads/2006/10/putty01.png" alt="Putty01" /></p>
<p><img id="image104" src="http://ralf-eisenreich.de/blog/wp-content/uploads/2006/10/putty03.png" alt="Putty03" /></p>
<p>Wieder muß die Session gespeichert werden!</li>
<li><strong>Verbindung zum SSH-Host herstellen</strong><br />
Die Verbindung wird nun durch einen Doppelklick auf Session hergestellt. Nach Aufforderung müssen Benutzername und Passwort eingegeben werden.</li>
<li><strong>Browser einrichten</strong><br />
Im Beispiel wird der Browser Firefox verwendet. Unter Tools, Options, General und Connection Settings..  muss eine manuelle Proxy Einstellung vorgenommen werden, wobei alle Felder leer sein muessen, bzw. unter Socks Host <em>127.0.0.1</em> mit dem Port <em>7777</em> eingeben werden muss.</p>
<p><img id="image105" src="http://ralf-eisenreich.de/blog/wp-content/uploads/2006/10/firefox01.png" alt="Firefox Connection settings" /></li>
<li><strong>Fertig</strong><br />
Das ist alles. Von nun an wird der Verkehr über einen sicheren Kanal (einen SSH-Tunnel) zu dem Remote Host geleitet.</li>
</ol>
<p><strong>Zusammenfassung</strong></p>
<ul>
<li>die Verbindung ist <strong>nur</strong> zwischen lokalem Rechner und Remote Host <strong>abgesichert</strong>, <strong>nicht</strong> von Remote Host in das Internet</li>
<li>Die <strong>DNS-Abfragen</strong> werden <strong>weiterhin</strong> über das unsichere Netzwerk abgewickelt. Dadurch können Seiten, die besucht werden nach wie vor protokolliert werden! Soll auch dies verhindert werden und DNS-Anfragen über das sichere Netzwerk abgewickelt werden, kann das im Firefox auf folgende Weise gemacht werden: Durch Aufruf der <strong>about:config</strong> Seite kann die Einstellung <strong>network.proxy.socks_remote_dns</strong> auf true gesetzt werden.</li>
<li>Es gibt portable Versionen von Firefox und Thunderbird, welche zusammen mit PuTTY auf einem USB-Stick geladen werden können. Dann wird die ganze Sache mit Shared-Rechnern sehr interessant.</li>
<li>Unter Linux oder unter anderen Betriebssystemen mit OpenSSH-Client kann der abgesicherte Tunnel auch durch folgende Anweisung erreicht werden: <strong>ssh -D 7777 username@ssh.ralf-eisenreich.de</strong></li>
<li>Um zu kontrollieren ob die Einrichtung funktioniert hat, kann man beispielsweise im Firefox alle Proxy-Verbindungen auf den Socks-Proxy stellen, danach eine Webseite aufrufen, Putty beenden und sehen, ob die Verbindung noch funktioniert. Bricht die Verbindung ab, hat alles funktioniert.</li>
<li>Anmerkung von <a href="http://martin.ringehahn.de/blog/">Martin</a>: damit PuTTY keine Registry-Einträge vornimmt kann die modifiziere Version <a href="http://socialistsushi.com/portaputty">portAPuTTY</a> verwendet werden.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://sqlblog.de/blog/2006/10/sicheres-surfen/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

