<?xml version="1.0"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>SlackWiki - User contributions [en]</title>
		<link>https://www.slackwiki.com/Special:Contributions/Arfon</link>
		<description>User contributions</description>
		<language>en</language>
		<generator>MediaWiki 1.40.0</generator>
		<lastBuildDate>Wed, 22 Apr 2026 18:00:18 GMT</lastBuildDate>
		<item>
			<title>Slack-desc</title>
			<link>https://www.slackwiki.com/index.php?title=Slack-desc&amp;diff=899</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=Slack-desc&amp;diff=899</guid>
			<description>&lt;p&gt;Arfon: /* Tools */  - linuxpackages.net is no more.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
A proper slack-desc file should be written as follows:&lt;br /&gt;
&lt;br /&gt;
 # HOW TO EDIT THIS FILE:&lt;br /&gt;
 # The &amp;quot;handy ruler&amp;quot; below makes it easier to edit a package description.  Line&lt;br /&gt;
 # up the first '|' above the ':' following the base package name, and the '|' on&lt;br /&gt;
 # the right side marks the last column you can put a character in.  You must make&lt;br /&gt;
 # exactly 11 lines for the formatting to be correct.  It's also customary to&lt;br /&gt;
 # leave one space after the ':'.&lt;br /&gt;
 &lt;br /&gt;
        |-----handy-ruler------------------------------------------------------|&lt;br /&gt;
 appname: appname (Short description of the application)&lt;br /&gt;
 appname:      &amp;lt;this line is generally left blank&amp;gt;&lt;br /&gt;
 appname: Description of application  -  this description should be fairly&lt;br /&gt;
 appname: in-depth; in other words, make it clear what the package does (and &lt;br /&gt;
 appname: maybe include relevant links and/or instructions if there's room),&lt;br /&gt;
 appname: but don't get too verbose.  &lt;br /&gt;
 appname: This file can have a maximum of eleven (11) lines of text preceded by&lt;br /&gt;
 appname: the &amp;quot;appname: &amp;quot; designation.  &lt;br /&gt;
 appname:&lt;br /&gt;
 appname: It's a good idea to include a link to the application's homepage too.&lt;br /&gt;
 appname:&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;appname&amp;quot; string must *exactly* match the application name portion of the &lt;br /&gt;
Slackware package (for example, a package titled &amp;quot;gaim-1.5-i486-1.tgz&amp;quot; must have &lt;br /&gt;
a slack-desc file with the &amp;lt;appname&amp;gt; string of &amp;quot;gaim: &amp;quot; rather than &amp;quot;Gaim: &amp;quot; or &lt;br /&gt;
&amp;quot;GAIM: &amp;quot; or something else.&lt;br /&gt;
&lt;br /&gt;
The first line ''must'' show the application name followed by a short&lt;br /&gt;
description (enclosed in parentheses).&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;handy ruler&amp;quot; is meant to stop you at 79 characters, because the standard&lt;br /&gt;
console is 80x25 and if you go beyond this the words will wrap.&lt;br /&gt;
&lt;br /&gt;
The space after the : is needed only when there is text after the :&lt;br /&gt;
In the above example lines 9 &amp;amp; 11 should not have a space after the :&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;br /&gt;
1. There is a command-line tool that automates the creation of slack-desc files and helps you generate legal slack-desc files with minimal effort:&lt;br /&gt;
http://slack-desc.sourceforge.net/&lt;br /&gt;
&lt;br /&gt;
=See Also=&lt;br /&gt;
 man makepkg&lt;br /&gt;
 man pkgtool&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</description>
			<pubDate>Thu, 23 Jan 2014 17:33:29 GMT</pubDate>
			<dc:creator>Arfon</dc:creator>
			<comments>https://www.slackwiki.com/Talk:Slack-desc</comments>
		</item>
		<item>
			<title>Network Configuration</title>
			<link>https://www.slackwiki.com/index.php?title=Network_Configuration&amp;diff=778</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=Network_Configuration&amp;diff=778</guid>
			<description>&lt;p&gt;Arfon: Forgot to add Category AGAIN!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==See Your Current Network Configuration==&lt;br /&gt;
&lt;br /&gt;
   ifconfig&lt;br /&gt;
&lt;br /&gt;
   /sbin/ifconfig (if you are not root)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Network Reconfiguration - Temporary Changes==&lt;br /&gt;
&lt;br /&gt;
ifconfig is the command to make changes to your networking.&lt;br /&gt;
&lt;br /&gt;
     ifconfig (shows the current interface configuration)&lt;br /&gt;
     &lt;br /&gt;
     ifconfig eth0 up (brings eth0 interface up)&lt;br /&gt;
     &lt;br /&gt;
     ifconfig eth1 down (takes eth1 interface down)&lt;br /&gt;
     &lt;br /&gt;
     ifconfig eth0 192.168.1.5 netmask 255.255.255.0 up (brings eth0 up with an IP of 192.168.1.5)&lt;br /&gt;
     &lt;br /&gt;
     ifconfig eth0:1 192.168.2.15 netmask 255.255.255.0 (adds a secondary IP address of 192.168.2.15 to eth0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Network Reconfiguration - Permanent Changes==&lt;br /&gt;
'''ETH0'''&amp;lt;br&amp;gt;&lt;br /&gt;
If you need to change your '''eth0''' configuration after an install, use netconfig&lt;br /&gt;
&lt;br /&gt;
     netconfig&lt;br /&gt;
&lt;br /&gt;
'''OTHER INTERFACES'''&amp;lt;br&amp;gt;&lt;br /&gt;
To reconfigure other network devices, you need to edit the /etc/rc.d/rc.inet1.conf files by hand. The file is very easy to figure out.&lt;br /&gt;
&lt;br /&gt;
     vi /etc/rc.d/rc.inet1.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Make changes take effect immediately==&lt;br /&gt;
To make the network changes immediately active:&lt;br /&gt;
&lt;br /&gt;
     /etc/rc.d/rc.inet1 restart  (restarts all interfaces)&lt;br /&gt;
     /etc/rc.d/rc.inet1 eth0_restart  (restarts eth0)&lt;br /&gt;
     /etc/rc.d/rc.inet1 eth1_restart  (restarts eth1)&lt;br /&gt;
     ...etc...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Tutorials]]&lt;/div&gt;</description>
			<pubDate>Thu, 30 Aug 2012 18:40:34 GMT</pubDate>
			<dc:creator>Arfon</dc:creator>
			<comments>https://www.slackwiki.com/Talk:Network_Configuration</comments>
		</item>
		<item>
			<title>Network Configuration</title>
			<link>https://www.slackwiki.com/index.php?title=Network_Configuration&amp;diff=777</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=Network_Configuration&amp;diff=777</guid>
			<description>&lt;p&gt;Arfon: CREATED!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==See Your Current Network Configuration==&lt;br /&gt;
&lt;br /&gt;
   ifconfig&lt;br /&gt;
&lt;br /&gt;
   /sbin/ifconfig (if you are not root)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Network Reconfiguration - Temporary Changes==&lt;br /&gt;
&lt;br /&gt;
ifconfig is the command to make changes to your networking.&lt;br /&gt;
&lt;br /&gt;
     ifconfig (shows the current interface configuration)&lt;br /&gt;
     &lt;br /&gt;
     ifconfig eth0 up (brings eth0 interface up)&lt;br /&gt;
     &lt;br /&gt;
     ifconfig eth1 down (takes eth1 interface down)&lt;br /&gt;
     &lt;br /&gt;
     ifconfig eth0 192.168.1.5 netmask 255.255.255.0 up (brings eth0 up with an IP of 192.168.1.5)&lt;br /&gt;
     &lt;br /&gt;
     ifconfig eth0:1 192.168.2.15 netmask 255.255.255.0 (adds a secondary IP address of 192.168.2.15 to eth0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Network Reconfiguration - Permanent Changes==&lt;br /&gt;
'''ETH0'''&amp;lt;br&amp;gt;&lt;br /&gt;
If you need to change your '''eth0''' configuration after an install, use netconfig&lt;br /&gt;
&lt;br /&gt;
     netconfig&lt;br /&gt;
&lt;br /&gt;
'''OTHER INTERFACES'''&amp;lt;br&amp;gt;&lt;br /&gt;
To reconfigure other network devices, you need to edit the /etc/rc.d/rc.inet1.conf files by hand. The file is very easy to figure out.&lt;br /&gt;
&lt;br /&gt;
     vi /etc/rc.d/rc.inet1.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Make changes take effect immediately==&lt;br /&gt;
To make the network changes immediately active:&lt;br /&gt;
&lt;br /&gt;
     /etc/rc.d/rc.inet1 restart  (restarts all interfaces)&lt;br /&gt;
     /etc/rc.d/rc.inet1 eth0_restart  (restarts eth0)&lt;br /&gt;
     /etc/rc.d/rc.inet1 eth1_restart  (restarts eth1)&lt;br /&gt;
     ...etc...&lt;/div&gt;</description>
			<pubDate>Thu, 30 Aug 2012 18:38:57 GMT</pubDate>
			<dc:creator>Arfon</dc:creator>
			<comments>https://www.slackwiki.com/Talk:Network_Configuration</comments>
		</item>
		<item>
			<title>NTPD - temp</title>
			<link>https://www.slackwiki.com/index.php?title=NTPD_-_temp&amp;diff=776</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=NTPD_-_temp&amp;diff=776</guid>
			<description>&lt;p&gt;Arfon: Arfon moved page NTPD - temp to NTPD: Fixing page name&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[NTPD]]&lt;/div&gt;</description>
			<pubDate>Thu, 30 Aug 2012 15:04:37 GMT</pubDate>
			<dc:creator>Arfon</dc:creator>
			<comments>https://www.slackwiki.com/Talk:NTPD_-_temp</comments>
		</item>
		<item>
			<title>NTPD</title>
			<link>https://www.slackwiki.com/index.php?title=NTPD&amp;diff=775</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=NTPD&amp;diff=775</guid>
			<description>&lt;p&gt;Arfon: Arfon moved page NTPD - temp to NTPD: Fixing page name&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Automating the time synchronization ==&lt;br /&gt;
You have two choices for automatic time updating, you can run ntpd all the time as a background process or you can have it run once in awhile (if you are tight on system resources).&lt;br /&gt;
&lt;br /&gt;
'''Running ntpd all the time'''&amp;lt;br&amp;gt;&lt;br /&gt;
::Just enable rc.ntpd script:&lt;br /&gt;
::::&amp;lt;code&amp;gt;chmod +x /etc/rc.d/rc.ntpd&amp;lt;/code&amp;gt;&lt;br /&gt;
::After the script is enabled you probably will want ntpd to start immediately so, can either restart the system or manually start ntpd with:&lt;br /&gt;
::::&amp;lt;code&amp;gt;/etc/rc.d/rc.ntpd start&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Running ntpd once in awhile'''&amp;lt;br&amp;gt;&lt;br /&gt;
::You have many choices but the two best ones are:&lt;br /&gt;
:::1) Set up a cron job&lt;br /&gt;
:::2) Set up a /etc/rc.d/rc.local entry and update the time on start-up only.&lt;br /&gt;
::Either way, you need to add the following commands into your cron job or rc.local script:&lt;br /&gt;
::::&amp;lt;code&amp;gt;ntpdate pool.ntp.org&amp;lt;/code&amp;gt; &amp;lt;---(updates the time)&lt;br /&gt;
::::&amp;lt;code&amp;gt;hwclock --systohc&amp;lt;/code&amp;gt; &amp;lt;------(saves the time to the hardware clock)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Manually updating the time==&lt;br /&gt;
Issue the following commands:&lt;br /&gt;
::::&amp;lt;code&amp;gt;ntpdate pool.ntp.org&amp;lt;/code&amp;gt;&lt;br /&gt;
::::&amp;lt;code&amp;gt;hwclock --systohc&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Choosing the right time server==&lt;br /&gt;
On ntp.org you will find a complete list with the right time server for you.&lt;br /&gt;
Let's say you live in germany, then you will choose &amp;lt;code&amp;gt;de.pool.ntp.org&amp;lt;/code&amp;gt;. A complete List is available at http://support.ntp.org/bin/view/Servers/NTPPoolServers&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==DST changes==&lt;br /&gt;
If your time is off due to DST changes, you must update the &amp;lt;code&amp;gt;/etc/localtime&amp;lt;/code&amp;gt; file.  You should be able to find a correct file on the internet and just replace the old &amp;lt;code&amp;gt;/etc/localtime&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PROBLEMS==&lt;br /&gt;
'''PROBLEM:''' &amp;quot;Unable to contact time server:&amp;quot; error with KDE's Time Control Module.&amp;lt;br&amp;gt;&lt;br /&gt;
'''FIX:''' Make sure ntpd is NOT running.  If ntpd is running, manual ntp and KDE ntp updates will return errors due to ntpd having control of the ntp port.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</description>
			<pubDate>Thu, 30 Aug 2012 15:04:37 GMT</pubDate>
			<dc:creator>Arfon</dc:creator>
			<comments>https://www.slackwiki.com/Talk:NTPD</comments>
		</item>
		<item>
			<title>Ntpd</title>
			<link>https://www.slackwiki.com/index.php?title=Ntpd&amp;diff=774</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=Ntpd&amp;diff=774</guid>
			<description>&lt;p&gt;Arfon: Arfon moved page Ntpd to NTPD - temp: Fixing page name&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[NTPD - temp]]&lt;/div&gt;</description>
			<pubDate>Thu, 30 Aug 2012 15:04:19 GMT</pubDate>
			<dc:creator>Arfon</dc:creator>
			<comments>https://www.slackwiki.com/Talk:Ntpd</comments>
		</item>
		<item>
			<title>NTPD</title>
			<link>https://www.slackwiki.com/index.php?title=NTPD&amp;diff=773</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=NTPD&amp;diff=773</guid>
			<description>&lt;p&gt;Arfon: Arfon moved page Ntpd to NTPD - temp: Fixing page name&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Automating the time synchronization ==&lt;br /&gt;
You have two choices for automatic time updating, you can run ntpd all the time as a background process or you can have it run once in awhile (if you are tight on system resources).&lt;br /&gt;
&lt;br /&gt;
'''Running ntpd all the time'''&amp;lt;br&amp;gt;&lt;br /&gt;
::Just enable rc.ntpd script:&lt;br /&gt;
::::&amp;lt;code&amp;gt;chmod +x /etc/rc.d/rc.ntpd&amp;lt;/code&amp;gt;&lt;br /&gt;
::After the script is enabled you probably will want ntpd to start immediately so, can either restart the system or manually start ntpd with:&lt;br /&gt;
::::&amp;lt;code&amp;gt;/etc/rc.d/rc.ntpd start&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Running ntpd once in awhile'''&amp;lt;br&amp;gt;&lt;br /&gt;
::You have many choices but the two best ones are:&lt;br /&gt;
:::1) Set up a cron job&lt;br /&gt;
:::2) Set up a /etc/rc.d/rc.local entry and update the time on start-up only.&lt;br /&gt;
::Either way, you need to add the following commands into your cron job or rc.local script:&lt;br /&gt;
::::&amp;lt;code&amp;gt;ntpdate pool.ntp.org&amp;lt;/code&amp;gt; &amp;lt;---(updates the time)&lt;br /&gt;
::::&amp;lt;code&amp;gt;hwclock --systohc&amp;lt;/code&amp;gt; &amp;lt;------(saves the time to the hardware clock)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Manually updating the time==&lt;br /&gt;
Issue the following commands:&lt;br /&gt;
::::&amp;lt;code&amp;gt;ntpdate pool.ntp.org&amp;lt;/code&amp;gt;&lt;br /&gt;
::::&amp;lt;code&amp;gt;hwclock --systohc&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Choosing the right time server==&lt;br /&gt;
On ntp.org you will find a complete list with the right time server for you.&lt;br /&gt;
Let's say you live in germany, then you will choose &amp;lt;code&amp;gt;de.pool.ntp.org&amp;lt;/code&amp;gt;. A complete List is available at http://support.ntp.org/bin/view/Servers/NTPPoolServers&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==DST changes==&lt;br /&gt;
If your time is off due to DST changes, you must update the &amp;lt;code&amp;gt;/etc/localtime&amp;lt;/code&amp;gt; file.  You should be able to find a correct file on the internet and just replace the old &amp;lt;code&amp;gt;/etc/localtime&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PROBLEMS==&lt;br /&gt;
'''PROBLEM:''' &amp;quot;Unable to contact time server:&amp;quot; error with KDE's Time Control Module.&amp;lt;br&amp;gt;&lt;br /&gt;
'''FIX:''' Make sure ntpd is NOT running.  If ntpd is running, manual ntp and KDE ntp updates will return errors due to ntpd having control of the ntp port.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</description>
			<pubDate>Thu, 30 Aug 2012 15:04:19 GMT</pubDate>
			<dc:creator>Arfon</dc:creator>
			<comments>https://www.slackwiki.com/Talk:NTPD</comments>
		</item>
		<item>
			<title>NTPD</title>
			<link>https://www.slackwiki.com/index.php?title=NTPD&amp;diff=772</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=NTPD&amp;diff=772</guid>
			<description>&lt;p&gt;Arfon: Undo revision 771 by Arfon (talk) - Removed 2007 stuff, fixed typos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Automating the time synchronization ==&lt;br /&gt;
You have two choices for automatic time updating, you can run ntpd all the time as a background process or you can have it run once in awhile (if you are tight on system resources).&lt;br /&gt;
&lt;br /&gt;
'''Running ntpd all the time'''&amp;lt;br&amp;gt;&lt;br /&gt;
::Just enable rc.ntpd script:&lt;br /&gt;
::::&amp;lt;code&amp;gt;chmod +x /etc/rc.d/rc.ntpd&amp;lt;/code&amp;gt;&lt;br /&gt;
::After the script is enabled you probably will want ntpd to start immediately so, can either restart the system or manually start ntpd with:&lt;br /&gt;
::::&amp;lt;code&amp;gt;/etc/rc.d/rc.ntpd start&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Running ntpd once in awhile'''&amp;lt;br&amp;gt;&lt;br /&gt;
::You have many choices but the two best ones are:&lt;br /&gt;
:::1) Set up a cron job&lt;br /&gt;
:::2) Set up a /etc/rc.d/rc.local entry and update the time on start-up only.&lt;br /&gt;
::Either way, you need to add the following commands into your cron job or rc.local script:&lt;br /&gt;
::::&amp;lt;code&amp;gt;ntpdate pool.ntp.org&amp;lt;/code&amp;gt; &amp;lt;---(updates the time)&lt;br /&gt;
::::&amp;lt;code&amp;gt;hwclock --systohc&amp;lt;/code&amp;gt; &amp;lt;------(saves the time to the hardware clock)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Manually updating the time==&lt;br /&gt;
Issue the following commands:&lt;br /&gt;
::::&amp;lt;code&amp;gt;ntpdate pool.ntp.org&amp;lt;/code&amp;gt;&lt;br /&gt;
::::&amp;lt;code&amp;gt;hwclock --systohc&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Choosing the right time server==&lt;br /&gt;
On ntp.org you will find a complete list with the right time server for you.&lt;br /&gt;
Let's say you live in germany, then you will choose &amp;lt;code&amp;gt;de.pool.ntp.org&amp;lt;/code&amp;gt;. A complete List is available at http://support.ntp.org/bin/view/Servers/NTPPoolServers&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==DST changes==&lt;br /&gt;
If your time is off due to DST changes, you must update the &amp;lt;code&amp;gt;/etc/localtime&amp;lt;/code&amp;gt; file.  You should be able to find a correct file on the internet and just replace the old &amp;lt;code&amp;gt;/etc/localtime&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PROBLEMS==&lt;br /&gt;
'''PROBLEM:''' &amp;quot;Unable to contact time server:&amp;quot; error with KDE's Time Control Module.&amp;lt;br&amp;gt;&lt;br /&gt;
'''FIX:''' Make sure ntpd is NOT running.  If ntpd is running, manual ntp and KDE ntp updates will return errors due to ntpd having control of the ntp port.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</description>
			<pubDate>Thu, 30 Aug 2012 15:01:26 GMT</pubDate>
			<dc:creator>Arfon</dc:creator>
			<comments>https://www.slackwiki.com/Talk:NTPD</comments>
		</item>
		<item>
			<title>NTPD</title>
			<link>https://www.slackwiki.com/index.php?title=NTPD&amp;diff=771</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=NTPD&amp;diff=771</guid>
			<description>&lt;p&gt;Arfon: Moved to NTPD&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</description>
			<pubDate>Thu, 30 Aug 2012 14:52:37 GMT</pubDate>
			<dc:creator>Arfon</dc:creator>
			<comments>https://www.slackwiki.com/Talk:NTPD</comments>
		</item>
		<item>
			<title>Pptp</title>
			<link>https://www.slackwiki.com/index.php?title=Pptp&amp;diff=770</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=Pptp&amp;diff=770</guid>
			<description>&lt;p&gt;Arfon: Moved to PPPTP (Poptop)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</description>
			<pubDate>Thu, 30 Aug 2012 14:38:48 GMT</pubDate>
			<dc:creator>Arfon</dc:creator>
			<comments>https://www.slackwiki.com/Talk:Pptp</comments>
		</item>
		<item>
			<title>PPTP (Poptop)</title>
			<link>https://www.slackwiki.com/index.php?title=PPTP_(Poptop)&amp;diff=769</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=PPTP_(Poptop)&amp;diff=769</guid>
			<description>&lt;p&gt;Arfon: Moved from Pptp&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Server]]&lt;br /&gt;
[[Category:Networking]]&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
&lt;br /&gt;
==(Poptop) pptpd Server Setup==&lt;br /&gt;
&lt;br /&gt;
Here's what I did to get Poptop pptpd (1.3.4) running on my Slackware (13.37) box.&lt;br /&gt;
&lt;br /&gt;
 1) Install the official Slackware ppp package using pkgtool or slackpkg.&lt;br /&gt;
 &lt;br /&gt;
 2) Install the ppptpd package from Slackbuilds.org using sbopkg.&lt;br /&gt;
 	***NOTE: The package name is NOT Poptop, it's pptpd***&lt;br /&gt;
 &lt;br /&gt;
 3) Edit /etc/pptpd.conf&lt;br /&gt;
 &lt;br /&gt;
 	ADD:&lt;br /&gt;
 		localip 10.7.0.1&lt;br /&gt;
 		remoteip 10.7.0.2-50&lt;br /&gt;
 	CHANGE:&lt;br /&gt;
 		option /etc/ppp/options.pptpd -&amp;gt; option /etc/ppp/options&lt;br /&gt;
 &lt;br /&gt;
 4) Edit /etc/ppp/options&lt;br /&gt;
 	HERE IS A GOTCHA- The official Slackware ppp package (at the time of this writing) contains an error in the options&lt;br /&gt;
 	file. The pppd binary was compiled to look for the new ms-dns parameter but the option file has the old dns-addr&lt;br /&gt;
 	parameter.&lt;br /&gt;
 &lt;br /&gt;
 	CHANGE:&lt;br /&gt;
 	# dns-addr 192.168.1.1 -&amp;gt; ms-dns 8.8.8.8 (or whatever your dns server is)&lt;br /&gt;
 &lt;br /&gt;
 5) Edit the /etc/ppp/chap-secrets file.&lt;br /&gt;
 	For some reason, the default Slackware package has 4 example entries in it that are not commented (jacco,*,sam,*)&lt;br /&gt;
 	delete these.  You don't want jacco or sam to have a free connection into your box...&lt;br /&gt;
 &lt;br /&gt;
 	ADD: one entry for each user you want to allow access.&lt;br /&gt;
 	Format is: CLIENT [tab] SERVER [tab] PASSWORD [tab] IP ADDRESS&lt;br /&gt;
 	Mine looks like this:&lt;br /&gt;
 &lt;br /&gt;
 	bob	*	&amp;quot;BobsPasswordIsStrong&amp;quot;	*&lt;br /&gt;
 	sue	*	&amp;quot;FluffyBunnies92&amp;quot;	*&lt;br /&gt;
 &lt;br /&gt;
 6) Finally to start pptpd, normally you would just execute 'pptpd &amp;amp;' but being that I'm a good Slacker, I wrote an&lt;br /&gt;
 rc.pptpd script.&lt;br /&gt;
 	Create /etc/rc.d/rc.pptpd&lt;br /&gt;
 	contents:&lt;br /&gt;
 		#!/bin/sh&lt;br /&gt;
 		#&lt;br /&gt;
 		# /etc/rc.d/rc.pptpd&lt;br /&gt;
 		#&lt;br /&gt;
 		# Start/stop/restart the pptpd server.&lt;br /&gt;
 		#&lt;br /&gt;
 		# To make PopTop start automatically at boot, make this&lt;br /&gt;
 		# file executable:  chmod 755 /etc/rc.d/rc.pptpd&lt;br /&gt;
 		#&lt;br /&gt;
 		&lt;br /&gt;
 		pptpd_start() {&lt;br /&gt;
 		  if [ -x /usr/sbin/pptpd ]; then&lt;br /&gt;
 		    echo &amp;quot;Starting PopTop pptpd:  /usr/sbin/pptpd server.conf&amp;quot;&lt;br /&gt;
 		    /usr/sbin/pptpd &amp;amp;&lt;br /&gt;
 		  fi&lt;br /&gt;
 		}&lt;br /&gt;
 		&lt;br /&gt;
 		pptpd_stop() {&lt;br /&gt;
 		  killall pptpd&lt;br /&gt;
 		}&lt;br /&gt;
 		&lt;br /&gt;
 		pptpd_restart() {&lt;br /&gt;
 		  pptpd_stop&lt;br /&gt;
 		  sleep 2&lt;br /&gt;
 		  pptpd_start&lt;br /&gt;
 		}&lt;br /&gt;
 		&lt;br /&gt;
 		case &amp;quot;$1&amp;quot; in&lt;br /&gt;
 		'start')&lt;br /&gt;
 		  pptpd_start&lt;br /&gt;
 		  ;;&lt;br /&gt;
 		'stop')&lt;br /&gt;
 		  pptpd_stop&lt;br /&gt;
 		  ;;&lt;br /&gt;
 		'restart')&lt;br /&gt;
 		  pptpd_restart&lt;br /&gt;
 		  ;;&lt;br /&gt;
 		*)&lt;br /&gt;
 		  # Default is &amp;quot;start&amp;quot;, for backwards compatibility with previous&lt;br /&gt;
 		  # Slackware versions.  This may change to a 'usage' error someday.&lt;br /&gt;
 		  pptpd_start&lt;br /&gt;
 		esac&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 7) Make it executable (and autobootable on start up)&lt;br /&gt;
 &lt;br /&gt;
 	chmod 755 /etc/rc.d/rc.pptpd&lt;br /&gt;
 &lt;br /&gt;
 To start it manually- /etc/rc.d/rc.pptpd start&lt;br /&gt;
 &lt;br /&gt;
 To be useful you next need to configure your firewall to forward and masquerade traffic from the vpn out to&lt;br /&gt;
 the world...&lt;br /&gt;
 &lt;br /&gt;
 8) Edit/create: /etc/rc.d/rc.firewall&lt;br /&gt;
 &lt;br /&gt;
 	ADD:&lt;br /&gt;
 		iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT&lt;br /&gt;
 		iptables -A FORWARD -i ppp+ -j ACCEPT&lt;br /&gt;
 		iptables -A FORWARD -o ppp+ -j ACCEPT&lt;br /&gt;
 		iptables -A FORWARD -j ACCEPT&lt;br /&gt;
 		iptables -t nat -A POSTROUTING -s 10.7.0.0/24 -o ppp+ -j MASQUERADE&lt;br /&gt;
 &lt;br /&gt;
 9) Make it executable&lt;br /&gt;
 &lt;br /&gt;
 	chmod 755 /etc/rc.d/rc.firewall&lt;br /&gt;
 &lt;br /&gt;
 10) Flush the old firewall rules (forgetting to do this caused me all sorts of grief (Thanks mancha))&lt;br /&gt;
 &lt;br /&gt;
 	iptables -F&lt;br /&gt;
 &lt;br /&gt;
 11) Execute the new firewall rules&lt;br /&gt;
 &lt;br /&gt;
 	/etc/rc.d/rc.firewall&lt;br /&gt;
 &lt;br /&gt;
 If you and I haven't made any mistakes, you should now have pptp (server) and router working on your box.&lt;br /&gt;
&lt;br /&gt;
==pptp Client Setup==&lt;br /&gt;
&lt;br /&gt;
Needs to be added.&lt;/div&gt;</description>
			<pubDate>Thu, 30 Aug 2012 14:38:02 GMT</pubDate>
			<dc:creator>Arfon</dc:creator>
			<comments>https://www.slackwiki.com/Talk:PPTP_(Poptop)</comments>
		</item>
		<item>
			<title>X Windows: Remote X to Windows with Xming</title>
			<link>https://www.slackwiki.com/index.php?title=X_Windows:_Remote_X_to_Windows_with_Xming&amp;diff=768</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=X_Windows:_Remote_X_to_Windows_with_Xming&amp;diff=768</guid>
			<description>&lt;p&gt;Arfon: ADDED: Enable X11Forwarding to sshd_conf&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Plain Ol' Vanilla Remote X Session===&lt;br /&gt;
&lt;br /&gt;
1) Install Xming '''and''' Xming-fonts&lt;br /&gt;
  * Download from sourceforge.net/projects/xming[http://sourceforge.net/projects/xming/]&lt;br /&gt;
&lt;br /&gt;
2) Add the Linux machine's DNS name(s) and IP address to the C:\Program Files\xming\X0.hosts file. File should contain:&lt;br /&gt;
    LinuxBox.mydomain.com&lt;br /&gt;
    LinuxBox&lt;br /&gt;
    192.168.1.25&lt;br /&gt;
&lt;br /&gt;
3) Start Xming on your Windows machine '''(NOT XLaunch)'''&lt;br /&gt;
&lt;br /&gt;
4) Start the connection:&lt;br /&gt;
Connect to the Linux machine via ssh/telnet/rlogin/whatever and run:&lt;br /&gt;
     DISPLAY=WINDOWS_IP:0;export DISPLAY;APPLICATION_YOU_WANT_TO_RUN &amp;amp;&lt;br /&gt;
     &lt;br /&gt;
     EXAMPLE: DISPLAY=192.168.1.10:0;export DISPLAY;xterm &amp;amp;&lt;br /&gt;
&lt;br /&gt;
5) Minimize the SSH/telnet session, do not close it.  If you close it, your X connections will close.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Remote X11 Over SSH===&lt;br /&gt;
'''On the remote machine (Linux):'''&amp;lt;br&amp;gt;&lt;br /&gt;
1) Ensure that X11Forwarding is enabled in /etc/ssh/sshd_conf on the remote machine.&lt;br /&gt;
&lt;br /&gt;
'''On the local machine (Windows):'''&amp;lt;br&amp;gt;&lt;br /&gt;
2) Install Xming '''and''' Xming-fonts&lt;br /&gt;
  * Download from sourceforge.net/projects/xming[http://sourceforge.net/projects/xming/]&lt;br /&gt;
&lt;br /&gt;
3) Add the Linux machine's DNS name(s) and IP address to the C:\Program Files\xming\X0.hosts file. File should contain:&lt;br /&gt;
    LinuxBox.mydomain.com&lt;br /&gt;
    LinuxBox&lt;br /&gt;
    192.168.1.25&lt;br /&gt;
&lt;br /&gt;
4) Start Xming on your Windows machine '''(NOT XLaunch)'''&lt;br /&gt;
&lt;br /&gt;
5) Install Putty (if it's not already installed) onto your Windows machine.&lt;br /&gt;
&lt;br /&gt;
   * Download from www.chiark.greenend.org.uk/~sgtatham/putty/[http://www.chiark.greenend.org.uk/~sgtatham/putty/]&lt;br /&gt;
&lt;br /&gt;
6) Open putty and fill in the “Host Name” box.&lt;br /&gt;
&lt;br /&gt;
7) Ensure that SSH is checked and that the port is correct (probably 22).&lt;br /&gt;
&lt;br /&gt;
8) Under Category &amp;gt; Connection &amp;gt; SSH &amp;gt; X11 check the “Enable X11 forwarding” box.&lt;br /&gt;
&lt;br /&gt;
9) Click the “Open” button to start the connection.&lt;br /&gt;
&lt;br /&gt;
10) Log into the remote machine as you would do in a normal SSH session.&lt;br /&gt;
&lt;br /&gt;
11) Start the X application from the command line, a window should open on your local machine with the application.&lt;br /&gt;
&lt;br /&gt;
12) Minimize the SSH session, do not close it.  If you close it, your X connections will close.&lt;br /&gt;
&lt;br /&gt;
(It's a regular SSH session with putty but with X11 forwarding enabled.)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===PROBLEMS===&lt;br /&gt;
&lt;br /&gt;
'''PROBLEM:''' &amp;quot;Xlib: connection to YOUR_IP refused by server&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
'''FIX:''' Check the Xming log, it probably contains &amp;quot;Xming.exe: client 4 rejected from IP YOUR_IP&amp;quot;. If so, &lt;br /&gt;
* close Xming&lt;br /&gt;
* Make sure that the DNS names and/or IPs are in the C:\Program Files\xming\X0.hosts file&lt;br /&gt;
* restart Xming&lt;br /&gt;
'''FIX2:''' If problem is not fixed, restart Xming with the -ac option.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROBLEM:''' The application starts but then I get a font error(s).&amp;lt;br&amp;gt;&lt;br /&gt;
'''FIX:''' Install the Xming-fonts onto your Windows box.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROBLEM:''' When starting Xming, a Windows Security Alert pops up saying Windows Firewall has blocked this program.&amp;lt;br&amp;gt;&lt;br /&gt;
'''FIX:''' Change Windows Firewall setting to allow Xming.&amp;lt;br&amp;gt;&lt;br /&gt;
'''FIX2:''' Disable Windows Firewall by going to Services, setting Windows Firewall to MANUAL START and then stop the service.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROBLEM:''' Cannot connect to Xming and I have checked all of the above.&amp;lt;br&amp;gt;&lt;br /&gt;
'''FIX:''' When starting Xming as display 0, Windows Firewall does not complain. Check to see if Windows Firewall is blocking the connection.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</description>
			<pubDate>Thu, 30 Aug 2012 13:40:57 GMT</pubDate>
			<dc:creator>Arfon</dc:creator>
			<comments>https://www.slackwiki.com/Talk:X_Windows:_Remote_X_to_Windows_with_Xming</comments>
		</item>
		<item>
			<title>X Windows: Remote X to Windows with Xming</title>
			<link>https://www.slackwiki.com/index.php?title=X_Windows:_Remote_X_to_Windows_with_Xming&amp;diff=767</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=X_Windows:_Remote_X_to_Windows_with_Xming&amp;diff=767</guid>
			<description>&lt;p&gt;Arfon: ADDED: Remote X over SSH&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Plain Ol' Vanilla Remote X Session===&lt;br /&gt;
&lt;br /&gt;
1) Install Xming '''and''' Xming-fonts&lt;br /&gt;
  * Download from sourceforge.net/projects/xming[http://sourceforge.net/projects/xming/]&lt;br /&gt;
&lt;br /&gt;
2) Add the Linux machine's DNS name(s) and IP address to the C:\Program Files\xming\X0.hosts file. File should contain:&lt;br /&gt;
    LinuxBox.mydomain.com&lt;br /&gt;
    LinuxBox&lt;br /&gt;
    192.168.1.25&lt;br /&gt;
&lt;br /&gt;
3) Start Xming on your Windows machine '''(NOT XLaunch)'''&lt;br /&gt;
&lt;br /&gt;
4) Start the connection:&lt;br /&gt;
Connect to the Linux machine via ssh/telnet/rlogin/whatever and run:&lt;br /&gt;
     DISPLAY=WINDOWS_IP:0;export DISPLAY;APPLICATION_YOU_WANT_TO_RUN&lt;br /&gt;
     &lt;br /&gt;
     EXAMPLE: DISPLAY=192.168.1.10:0;export DISPLAY;xterm&lt;br /&gt;
&lt;br /&gt;
5) Minimize the telnet session, do not close it.  If you close it, your X connections will close.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Remote X11 Over SSH===&lt;br /&gt;
&lt;br /&gt;
1) Install Xming '''and''' Xming-fonts&lt;br /&gt;
  * Download from sourceforge.net/projects/xming[http://sourceforge.net/projects/xming/]&lt;br /&gt;
&lt;br /&gt;
2) Add the Linux machine's DNS name(s) and IP address to the C:\Program Files\xming\X0.hosts file. File should contain:&lt;br /&gt;
    LinuxBox.mydomain.com&lt;br /&gt;
    LinuxBox&lt;br /&gt;
    192.168.1.25&lt;br /&gt;
&lt;br /&gt;
3) Start Xming on your Windows machine '''(NOT XLaunch)'''&lt;br /&gt;
&lt;br /&gt;
4) Install Putty (if it's not already installed).&lt;br /&gt;
&lt;br /&gt;
   * Download from www.chiark.greenend.org.uk/~sgtatham/putty/&lt;br /&gt;
&lt;br /&gt;
5) Open putty and fill in the “Host Name” box.&lt;br /&gt;
&lt;br /&gt;
6) Ensure that SSH is checked.&lt;br /&gt;
&lt;br /&gt;
7) Under Category &amp;gt; Connection &amp;gt; SSH &amp;gt; X11 check the “Enable X11 forwarding” box.&lt;br /&gt;
&lt;br /&gt;
8) Click the “Open” button to start the connection.&lt;br /&gt;
&lt;br /&gt;
9) Log into the remote machine as you would do in a normal SSH session.&lt;br /&gt;
&lt;br /&gt;
10) Start the X application from the command line, a window should open on your local machine with the application.&lt;br /&gt;
&lt;br /&gt;
(It's a regular SSH session with putty but with X11 forwarding enabled.)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===PROBLEMS===&lt;br /&gt;
&lt;br /&gt;
'''PROBLEM:''' &amp;quot;Xlib: connection to YOUR_IP refused by server&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
'''FIX:''' Check the Xming log, it probably contains &amp;quot;Xming.exe: client 4 rejected from IP YOUR_IP&amp;quot;. If so, &lt;br /&gt;
* close Xming&lt;br /&gt;
* Make sure that the DNS names and/or IPs are in the C:\Program Files\xming\X0.hosts file&lt;br /&gt;
* restart Xming&lt;br /&gt;
'''FIX2:''' If problem is not fixed, restart Xming with the -ac option.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROBLEM:''' The application starts but then I get a font error(s).&amp;lt;br&amp;gt;&lt;br /&gt;
'''FIX:''' Install the Xming-fonts onto your Windows box.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROBLEM:''' When starting Xming, a Windows Security Alert pops up saying Windows Firewall has blocked this program.&amp;lt;br&amp;gt;&lt;br /&gt;
'''FIX:''' Change Windows Firewall setting to allow Xming.&amp;lt;br&amp;gt;&lt;br /&gt;
'''FIX2:''' Disable Windows Firewall by going to Services, setting Windows Firewall to MANUAL START and then stop the service.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROBLEM:''' Cannot connect to Xming and I have checked all of the above.&amp;lt;br&amp;gt;&lt;br /&gt;
'''FIX:''' When starting Xming as display 0, Windows Firewall does not complain. Check to see if Windows Firewall is blocking the connection.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</description>
			<pubDate>Thu, 30 Aug 2012 13:26:13 GMT</pubDate>
			<dc:creator>Arfon</dc:creator>
			<comments>https://www.slackwiki.com/Talk:X_Windows:_Remote_X_to_Windows_with_Xming</comments>
		</item>
		<item>
			<title>X Windows: Remote X to Linux</title>
			<link>https://www.slackwiki.com/index.php?title=X_Windows:_Remote_X_to_Linux&amp;diff=766</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=X_Windows:_Remote_X_to_Linux&amp;diff=766</guid>
			<description>&lt;p&gt;Arfon: ADDED: X11 over SSH&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''NOTE:''' In the X11 world, the '''SERVER machine''' is the one listening for a connection (the local machine (your desktop)).&amp;lt;br&amp;gt;&lt;br /&gt;
'''NOTE:''' The '''CLIENT machine''' is the one initiating the connection (the remote machine).&amp;lt;br&amp;gt;&lt;br /&gt;
I know, it sounds backwards but, it is actually correct if you understand the X11 connection.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===Plain Ol' Vanilla X11 Remote Connection===&lt;br /&gt;
&lt;br /&gt;
1) Tell your X11 server machine (your desktop) to accept X11 connections from the client machine.&amp;lt;br&amp;gt;&lt;br /&gt;
* If it's a one time connection, just run the following from the command line&amp;lt;br&amp;gt;&lt;br /&gt;
or&amp;lt;br&amp;gt;&lt;br /&gt;
* You can add the following to .bashrc or .profile to make it permanent&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
     xhost +X11_SERVER_IP  (the '''remote''' machine)&lt;br /&gt;
     &lt;br /&gt;
     '''EXAMPLE:''' xhost +192.168.1.45&lt;br /&gt;
&lt;br /&gt;
2) Start the connection from the Client Linux machine (the remote machine)- Connect to the remote Linux machine via ssh/telnet/rlogin/whatever and run:&lt;br /&gt;
&lt;br /&gt;
      DISPLAY=X11_SERVER_IP:0;export DISPLAY;APPLICATION_YOU_WANT_TO_RUN &amp;amp;&lt;br /&gt;
      &lt;br /&gt;
      '''EXAMPLE:''' DISPLAY=192.168.1.10:0;export DISPLAY;xterm &amp;amp;&lt;br /&gt;
      &lt;br /&gt;
      '''REMEMBER:''' ''The X11 server is your desktop.''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===Remote X11 Over SSH===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1) ensure that X11Forwarding is enabled in /etc/ssh/ssh'''d'''_conf on the '''remote''' machine.&lt;br /&gt;
&lt;br /&gt;
2) ensure that X11Forwarding is enabled in /etc/ssh/ssh_conf on the '''local''' machine.&lt;br /&gt;
&lt;br /&gt;
3) open an X11 forwarded ssh session '''from the local machine to the remote machine''' (opposite of what you do for a 'vanilla' remote X connection):&lt;br /&gt;
&lt;br /&gt;
     ssh -X USER@REMOTE_MACHINE &lt;br /&gt;
     XAPPLICATION_YOU_WANT_TO_RUN&lt;br /&gt;
     &lt;br /&gt;
     '''EXAMPLE:'''&lt;br /&gt;
     ssh -X joe@192.168.1.45&lt;br /&gt;
     xterm &amp;amp;&lt;br /&gt;
&lt;br /&gt;
'''PROBLEMS'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''PROBLEM:''' ssh connection is complaining about an “Invalid MIT-MAGIC-COOKIE”.&amp;lt;br&amp;gt;&lt;br /&gt;
'''FIX:''' start a less secure ssh session:&lt;br /&gt;
&lt;br /&gt;
     ssh -Y USER@REMOTE_MACHINE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Tutorials]]&lt;/div&gt;</description>
			<pubDate>Thu, 30 Aug 2012 12:59:00 GMT</pubDate>
			<dc:creator>Arfon</dc:creator>
			<comments>https://www.slackwiki.com/Talk:X_Windows:_Remote_X_to_Linux</comments>
		</item>
		<item>
			<title>Perl Modules</title>
			<link>https://www.slackwiki.com/index.php?title=Perl_Modules&amp;diff=765</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=Perl_Modules&amp;diff=765</guid>
			<description>&lt;p&gt;Arfon: ADDED: upgrade modules&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tutorials]]&lt;br /&gt;
==Getting To The CPAN Prompt==&lt;br /&gt;
To administer your Perl modules you must use the CPAN prompt. To get to the CPAN prompt, &amp;lt;b&amp;gt;as root&amp;lt;/b&amp;gt; type:&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;code&amp;gt;cpan&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this is the first time that you have entered the CPAN shell, you will be asked some set-up questions that will allow the shell to access CPAN's servers to get modules.  Just read the questions and answer them.&lt;br /&gt;
&lt;br /&gt;
If you ever need to re-run the set-up again, enter the CPAN shell and then type:&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;code&amp;gt;o conf init&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Listing The Installed Modules==&lt;br /&gt;
From the BASH prompt:&lt;br /&gt;
&lt;br /&gt;
'''Easy way'''&lt;br /&gt;
     instmodsh&lt;br /&gt;
     l (L)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Hard way'''&lt;br /&gt;
use this Perl program:&lt;br /&gt;
&lt;br /&gt;
     #!/usr/bin/perl&lt;br /&gt;
     use ExtUtils::Installed;&lt;br /&gt;
     my $instmod = ExtUtils::Installed-&amp;gt;new();&lt;br /&gt;
     foreach my $module ($instmod-&amp;gt;modules())&lt;br /&gt;
     {&lt;br /&gt;
     my $version = $instmod-&amp;gt;version($module) || &amp;quot;???&amp;quot;;&lt;br /&gt;
     print &amp;quot;$module -- $version\n&amp;quot;;&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installing New Modules==&lt;br /&gt;
From the CPAN prompt, type:&lt;br /&gt;
&lt;br /&gt;
     install &amp;amp;lt;Some::Module&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Removing Modules==&lt;br /&gt;
&lt;br /&gt;
A clean way is by using this Perl program from the BASH prompt:&lt;br /&gt;
&lt;br /&gt;
     #!/usr/bin/perl -w&lt;br /&gt;
     use ExtUtils::Packlist;&lt;br /&gt;
     use ExtUtils::Installed;&lt;br /&gt;
     $ARGV[0] or die &amp;quot;Usage: $0 Module::Name\n&amp;quot;;&lt;br /&gt;
     my $mod = $ARGV[0];&lt;br /&gt;
     my $inst = ExtUtils::Installed-&amp;gt;new();&lt;br /&gt;
     foreach my $item (sort($inst-&amp;gt;files($mod)))&lt;br /&gt;
     {&lt;br /&gt;
     print &amp;quot;removing $item\n&amp;quot;;&lt;br /&gt;
     unlink $item;&lt;br /&gt;
     }&lt;br /&gt;
     my $packfile = $inst-&amp;gt;packlist($mod)-&amp;gt;packlist_file();&lt;br /&gt;
     print &amp;quot;removing $packfile\n&amp;quot;;&lt;br /&gt;
     unlink $packfile;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Upgrade Modules==&lt;br /&gt;
From the CPAN prompt, type:&lt;br /&gt;
&lt;br /&gt;
     upgrade MODULE::NAME (to upgrade an individual module)&lt;br /&gt;
&lt;br /&gt;
'''or'''&lt;br /&gt;
&lt;br /&gt;
     upgrade (to upgrade ALL modules)&lt;/div&gt;</description>
			<pubDate>Wed, 29 Aug 2012 19:48:38 GMT</pubDate>
			<dc:creator>Arfon</dc:creator>
			<comments>https://www.slackwiki.com/Talk:Perl_Modules</comments>
		</item>
		<item>
			<title>Perl Modules</title>
			<link>https://www.slackwiki.com/index.php?title=Perl_Modules&amp;diff=764</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=Perl_Modules&amp;diff=764</guid>
			<description>&lt;p&gt;Arfon: ADDED: upgrade modules&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tutorials]]&lt;br /&gt;
==Getting To The CPAN Prompt==&lt;br /&gt;
To administer your Perl modules you must use the CPAN prompt. To get to the CPAN prompt, &amp;lt;b&amp;gt;as root&amp;lt;/b&amp;gt; type:&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;code&amp;gt;cpan&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this is the first time that you have entered the CPAN shell, you will be asked some set-up questions that will allow the shell to access CPAN's servers to get modules.  Just read the questions and answer them.&lt;br /&gt;
&lt;br /&gt;
If you ever need to re-run the set-up again, enter the CPAN shell and then type:&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;code&amp;gt;o conf init&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Listing The Installed Modules==&lt;br /&gt;
&lt;br /&gt;
'''Easy way'''&lt;br /&gt;
     instmodsh&lt;br /&gt;
     l (L)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Hard way'''&lt;br /&gt;
use this Perl program:&lt;br /&gt;
&lt;br /&gt;
     #!/usr/bin/perl&lt;br /&gt;
     use ExtUtils::Installed;&lt;br /&gt;
     my $instmod = ExtUtils::Installed-&amp;gt;new();&lt;br /&gt;
     foreach my $module ($instmod-&amp;gt;modules())&lt;br /&gt;
     {&lt;br /&gt;
     my $version = $instmod-&amp;gt;version($module) || &amp;quot;???&amp;quot;;&lt;br /&gt;
     print &amp;quot;$module -- $version\n&amp;quot;;&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installing New Modules==&lt;br /&gt;
From the CPAN shell prompt, type:&lt;br /&gt;
&lt;br /&gt;
     install &amp;amp;lt;Some::Module&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Removing Modules==&lt;br /&gt;
&lt;br /&gt;
A clean way is by using this Perl program:&lt;br /&gt;
&lt;br /&gt;
     #!/usr/bin/perl -w&lt;br /&gt;
     use ExtUtils::Packlist;&lt;br /&gt;
     use ExtUtils::Installed;&lt;br /&gt;
     $ARGV[0] or die &amp;quot;Usage: $0 Module::Name\n&amp;quot;;&lt;br /&gt;
     my $mod = $ARGV[0];&lt;br /&gt;
     my $inst = ExtUtils::Installed-&amp;gt;new();&lt;br /&gt;
     foreach my $item (sort($inst-&amp;gt;files($mod)))&lt;br /&gt;
     {&lt;br /&gt;
     print &amp;quot;removing $item\n&amp;quot;;&lt;br /&gt;
     unlink $item;&lt;br /&gt;
     }&lt;br /&gt;
     my $packfile = $inst-&amp;gt;packlist($mod)-&amp;gt;packlist_file();&lt;br /&gt;
     print &amp;quot;removing $packfile\n&amp;quot;;&lt;br /&gt;
     unlink $packfile;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Upgrade Modules==&lt;br /&gt;
&lt;br /&gt;
In the cpan prompt, type:&lt;br /&gt;
&lt;br /&gt;
     upgrade MODULE::NAME to upgrade an individual module&lt;br /&gt;
&lt;br /&gt;
'''or'''&lt;/div&gt;</description>
			<pubDate>Wed, 29 Aug 2012 19:46:23 GMT</pubDate>
			<dc:creator>Arfon</dc:creator>
			<comments>https://www.slackwiki.com/Talk:Perl_Modules</comments>
		</item>
		<item>
			<title>Perl Modules</title>
			<link>https://www.slackwiki.com/index.php?title=Perl_Modules&amp;diff=763</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=Perl_Modules&amp;diff=763</guid>
			<description>&lt;p&gt;Arfon: /* Getting To The CPAN Prompt */  REMOVED perl MCPAN and ADDED cpan&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tutorials]]&lt;br /&gt;
==Getting To The CPAN Prompt==&lt;br /&gt;
To administer your Perl modules you must use the CPAN prompt. To get to the CPAN prompt, &amp;lt;b&amp;gt;as root&amp;lt;/b&amp;gt; type:&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;code&amp;gt;cpan&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this is the first time that you have entered the CPAN shell, you will be asked some set-up questions that will allow the shell to access CPAN's servers to get modules.  Just read the questions and answer them.&lt;br /&gt;
&lt;br /&gt;
If you ever need to re-run the set-up again, enter the CPAN shell and then type:&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;code&amp;gt;o conf init&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Listing The Installed Modules==&lt;br /&gt;
&lt;br /&gt;
'''Easy way'''&lt;br /&gt;
     instmodsh&lt;br /&gt;
     l (L)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Hard way'''&lt;br /&gt;
use this Perl program:&lt;br /&gt;
&lt;br /&gt;
     #!/usr/bin/perl&lt;br /&gt;
     use ExtUtils::Installed;&lt;br /&gt;
     my $instmod = ExtUtils::Installed-&amp;gt;new();&lt;br /&gt;
     foreach my $module ($instmod-&amp;gt;modules())&lt;br /&gt;
     {&lt;br /&gt;
     my $version = $instmod-&amp;gt;version($module) || &amp;quot;???&amp;quot;;&lt;br /&gt;
     print &amp;quot;$module -- $version\n&amp;quot;;&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installing New Modules==&lt;br /&gt;
From the CPAN shell prompt, type:&lt;br /&gt;
&lt;br /&gt;
     install &amp;amp;lt;Some::Module&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Removing Modules==&lt;br /&gt;
&lt;br /&gt;
A clean way is by using this Perl program:&lt;br /&gt;
&lt;br /&gt;
     #!/usr/bin/perl -w&lt;br /&gt;
     use ExtUtils::Packlist;&lt;br /&gt;
     use ExtUtils::Installed;&lt;br /&gt;
     $ARGV[0] or die &amp;quot;Usage: $0 Module::Name\n&amp;quot;;&lt;br /&gt;
     my $mod = $ARGV[0];&lt;br /&gt;
     my $inst = ExtUtils::Installed-&amp;gt;new();&lt;br /&gt;
     foreach my $item (sort($inst-&amp;gt;files($mod)))&lt;br /&gt;
     {&lt;br /&gt;
     print &amp;quot;removing $item\n&amp;quot;;&lt;br /&gt;
     unlink $item;&lt;br /&gt;
     }&lt;br /&gt;
     my $packfile = $inst-&amp;gt;packlist($mod)-&amp;gt;packlist_file();&lt;br /&gt;
     print &amp;quot;removing $packfile\n&amp;quot;;&lt;br /&gt;
     unlink $packfile;&lt;/div&gt;</description>
			<pubDate>Wed, 29 Aug 2012 19:43:08 GMT</pubDate>
			<dc:creator>Arfon</dc:creator>
			<comments>https://www.slackwiki.com/Talk:Perl_Modules</comments>
		</item>
		<item>
			<title>Perl Modules</title>
			<link>https://www.slackwiki.com/index.php?title=Perl_Modules&amp;diff=762</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=Perl_Modules&amp;diff=762</guid>
			<description>&lt;p&gt;Arfon: I originally created this page and things have changed slightly...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tutorials]]&lt;br /&gt;
==Getting To The CPAN Prompt==&lt;br /&gt;
To administer your Perl modules you must use the CPAN prompt. To get to the CPAN prompt, &amp;lt;b&amp;gt;as root&amp;lt;/b&amp;gt; type:&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;code&amp;gt;perl -MCPAN -e shell&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this is the first time that you have entered the CPAN shell, you will be asked some set-up questions that will allow the shell to access CPAN's servers to get modules.  Just read the questions and answer them.&lt;br /&gt;
&lt;br /&gt;
If you ever need to re-run the set-up again, enter the CPAN shell and then type:&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;code&amp;gt;o conf init&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Listing The Installed Modules==&lt;br /&gt;
&lt;br /&gt;
'''Easy way'''&lt;br /&gt;
     instmodsh&lt;br /&gt;
     l (L)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Hard way'''&lt;br /&gt;
use this Perl program:&lt;br /&gt;
&lt;br /&gt;
     #!/usr/bin/perl&lt;br /&gt;
     use ExtUtils::Installed;&lt;br /&gt;
     my $instmod = ExtUtils::Installed-&amp;gt;new();&lt;br /&gt;
     foreach my $module ($instmod-&amp;gt;modules())&lt;br /&gt;
     {&lt;br /&gt;
     my $version = $instmod-&amp;gt;version($module) || &amp;quot;???&amp;quot;;&lt;br /&gt;
     print &amp;quot;$module -- $version\n&amp;quot;;&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installing New Modules==&lt;br /&gt;
From the CPAN shell prompt, type:&lt;br /&gt;
&lt;br /&gt;
     install &amp;amp;lt;Some::Module&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Removing Modules==&lt;br /&gt;
&lt;br /&gt;
A clean way is by using this Perl program:&lt;br /&gt;
&lt;br /&gt;
     #!/usr/bin/perl -w&lt;br /&gt;
     use ExtUtils::Packlist;&lt;br /&gt;
     use ExtUtils::Installed;&lt;br /&gt;
     $ARGV[0] or die &amp;quot;Usage: $0 Module::Name\n&amp;quot;;&lt;br /&gt;
     my $mod = $ARGV[0];&lt;br /&gt;
     my $inst = ExtUtils::Installed-&amp;gt;new();&lt;br /&gt;
     foreach my $item (sort($inst-&amp;gt;files($mod)))&lt;br /&gt;
     {&lt;br /&gt;
     print &amp;quot;removing $item\n&amp;quot;;&lt;br /&gt;
     unlink $item;&lt;br /&gt;
     }&lt;br /&gt;
     my $packfile = $inst-&amp;gt;packlist($mod)-&amp;gt;packlist_file();&lt;br /&gt;
     print &amp;quot;removing $packfile\n&amp;quot;;&lt;br /&gt;
     unlink $packfile;&lt;/div&gt;</description>
			<pubDate>Wed, 29 Aug 2012 19:41:55 GMT</pubDate>
			<dc:creator>Arfon</dc:creator>
			<comments>https://www.slackwiki.com/Talk:Perl_Modules</comments>
		</item>
		<item>
			<title>X Windows: Remote X to Linux</title>
			<link>https://www.slackwiki.com/index.php?title=X_Windows:_Remote_X_to_Linux&amp;diff=761</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=X_Windows:_Remote_X_to_Linux&amp;diff=761</guid>
			<description>&lt;p&gt;Arfon: CREATED!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''NOTE:''' in the X11 world, the '''SERVER machine''' is the one listening for a connection (your desktop).&amp;lt;br&amp;gt;&lt;br /&gt;
'''NOTE:''' The '''CLIENT machine''' is the one initiating the connection (the remote machine).&amp;lt;br&amp;gt;&lt;br /&gt;
I know, it sounds backwards but, it is actually correct if you understand the X11 connection.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1) Tell your X11 Server Linux box (your desktop) to accept X11 connections from the Client machines.&amp;lt;br&amp;gt;&lt;br /&gt;
* If it's a one time connection, just run the following from the command line&amp;lt;br&amp;gt;&lt;br /&gt;
or&amp;lt;br&amp;gt;&lt;br /&gt;
* You can add the following to .bashrc or .profile to make it permenant&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
     xhost +144.45.254.150&lt;br /&gt;
&lt;br /&gt;
2) Start the connection from the Client Linux machine (the remote machine)- Connect to the remote Linux machine via ssh/telnet/rlogin/whatever and run:&lt;br /&gt;
&lt;br /&gt;
      DISPLAY=X11_SERVER_IP:0;export DISPLAY;APPLICATION_YOU_WANT_TO_RUN &amp;amp;&lt;br /&gt;
      &lt;br /&gt;
      '''EXAMPLE:''' DISPLAY=192.168.1.10:0;export DISPLAY;xterm &amp;amp;&lt;br /&gt;
      &lt;br /&gt;
      '''REMEMBER:''' ''The X11 server is your desktop.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Tutorials]]&lt;/div&gt;</description>
			<pubDate>Wed, 29 Aug 2012 19:25:29 GMT</pubDate>
			<dc:creator>Arfon</dc:creator>
			<comments>https://www.slackwiki.com/Talk:X_Windows:_Remote_X_to_Linux</comments>
		</item>
		<item>
			<title>DHCP Server: DNSMasq</title>
			<link>https://www.slackwiki.com/index.php?title=DHCP_Server:_DNSMasq&amp;diff=760</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=DHCP_Server:_DNSMasq&amp;diff=760</guid>
			<description>&lt;p&gt;Arfon: FIXED: typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Written from a Slackware 13.37 perspective.&lt;br /&gt;
&lt;br /&gt;
To set up a DHCP server you can use the dchp package (that is included with Slackware)&amp;lt;br&amp;gt;&lt;br /&gt;
'''or'''&amp;lt;br&amp;gt;&lt;br /&gt;
you can do it the easier way and use DNSMasq (also included with Slackware).&lt;br /&gt;
&lt;br /&gt;
'''Assuming that you do not have DNSMasq installed'''&lt;br /&gt;
&lt;br /&gt;
1) Install the official dnsmasq Slackware package either by pkgtool or slackpkg.&lt;br /&gt;
&lt;br /&gt;
2) Make DNSMasq start on boot:&lt;br /&gt;
&lt;br /&gt;
     CHMOD 755 /etc/rc.d/rc.dnsmasq&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At this point you will have a really cool little DNS on your box...&lt;br /&gt;
&lt;br /&gt;
'''If you already had DNSMasq running on your box, start here'''&lt;br /&gt;
&lt;br /&gt;
1) edit the /etc/dnsmasq.conf file:&lt;br /&gt;
&lt;br /&gt;
     CHANGE: #dhcp-range=192.168.0.50,192.168.0.150,255.255.255.0,12h&lt;br /&gt;
     TO: dhcp-range=1ST_POOL_IP,LAST_POOL_IP,12h  (using your correct IP range)&lt;br /&gt;
&lt;br /&gt;
1a) If your DNSMasq box isn't also your gateway router, tell your DHCP clients who is the default gateway:&lt;br /&gt;
&lt;br /&gt;
     CHANGE: #dhcp-option=3,1.2.3.4&lt;br /&gt;
     TO: dhcp-option=3,YOUR_GATEWAY_IP&lt;br /&gt;
&lt;br /&gt;
2) start/restart DNSMasq&lt;br /&gt;
&lt;br /&gt;
     /etc/rc.d/rc.dnsmasq restart&lt;br /&gt;
&lt;br /&gt;
You should now have a working DCHP server.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
'''Persistent IPs'''&lt;br /&gt;
&lt;br /&gt;
To assign IPs based on a device's MAC address, edit /etc/dnsmasq.conf and add the following line for every device (using the correct MAC and IP of course):&lt;br /&gt;
&lt;br /&gt;
     dhcp-host=11:22:33:44:55:66,192.168.1.61&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' The IP address should be OUTSIDE the DHCP pool.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Tutorials]]&lt;/div&gt;</description>
			<pubDate>Wed, 29 Aug 2012 16:18:08 GMT</pubDate>
			<dc:creator>Arfon</dc:creator>
			<comments>https://www.slackwiki.com/Talk:DHCP_Server:_DNSMasq</comments>
		</item>
		<item>
			<title>DHCP Server: dhcpd</title>
			<link>https://www.slackwiki.com/index.php?title=DHCP_Server:_dhcpd&amp;diff=759</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=DHCP_Server:_dhcpd&amp;diff=759</guid>
			<description>&lt;p&gt;Arfon: CREATED to match DCHP Server: DNSMasq&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;NEEDS TO BE CREATED&lt;br /&gt;
&lt;br /&gt;
You can look at [[DHCP Server: DNSMasq]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Tutorials]]&lt;/div&gt;</description>
			<pubDate>Wed, 29 Aug 2012 16:11:03 GMT</pubDate>
			<dc:creator>Arfon</dc:creator>
			<comments>https://www.slackwiki.com/Talk:DHCP_Server:_dhcpd</comments>
		</item>
		<item>
			<title>DHCP Server: DNSMasq</title>
			<link>https://www.slackwiki.com/index.php?title=DHCP_Server:_DNSMasq&amp;diff=758</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=DHCP_Server:_DNSMasq&amp;diff=758</guid>
			<description>&lt;p&gt;Arfon: ADDED: Category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Written from a Slackware 13.37 perspective.&lt;br /&gt;
&lt;br /&gt;
To set up a DHCP server you can use the dchp package that is included with Slackware OR you can do it the easier way and use DNSMasq (also included with Slackware).&lt;br /&gt;
&lt;br /&gt;
'''Assuming that you do not have DNSMasq installed'''&lt;br /&gt;
&lt;br /&gt;
1) Install the official dnsmasq Slackware package either by pkgtool oe slackpkg.&lt;br /&gt;
&lt;br /&gt;
2) Make DNSMasq start on boot:&lt;br /&gt;
&lt;br /&gt;
     CHMOD 755 /etc/rc.d/rc.dnsmasq&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At this point you will have a really cool little DNS on your box...&lt;br /&gt;
&lt;br /&gt;
'''If you already had DNSMasq running on your box, start here'''&lt;br /&gt;
&lt;br /&gt;
1) edit the /etc/dnsmasq.conf file:&lt;br /&gt;
&lt;br /&gt;
     CHANGE: #dhcp-range=192.168.0.50,192.168.0.150,255.255.255.0,12h&lt;br /&gt;
     TO: dhcp-range=192.168.1.200,192.168.1.239,12h  (using your correct IP range)&lt;br /&gt;
&lt;br /&gt;
2) start/restart DNSMasq&lt;br /&gt;
&lt;br /&gt;
     /etc/rc.d/rc.dnsmasq restart&lt;br /&gt;
&lt;br /&gt;
You should now have a working DCHP server.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
'''Persistent IPs'''&lt;br /&gt;
&lt;br /&gt;
To assign IPs based on a device's MAC address, edit /etc/dnsmasq.conf and add the following line for every device (using the correct MAC and IP of course):&lt;br /&gt;
&lt;br /&gt;
     dhcp-host=11:22:33:44:55:66,192.168.1.61&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' The IP address should be OUTSIDE the DHCP pool.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Tutorials]]&lt;/div&gt;</description>
			<pubDate>Wed, 29 Aug 2012 16:08:37 GMT</pubDate>
			<dc:creator>Arfon</dc:creator>
			<comments>https://www.slackwiki.com/Talk:DHCP_Server:_DNSMasq</comments>
		</item>
		<item>
			<title>DHCP Server: DNSMasq</title>
			<link>https://www.slackwiki.com/index.php?title=DHCP_Server:_DNSMasq&amp;diff=757</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=DHCP_Server:_DNSMasq&amp;diff=757</guid>
			<description>&lt;p&gt;Arfon: CREATED!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Written from a Slackware 13.37 perspective.&lt;br /&gt;
&lt;br /&gt;
To set up a DHCP server you can use the dchp package that is included with Slackware OR you can do it the easier way and use DNSMasq (also included with Slackware).&lt;br /&gt;
&lt;br /&gt;
'''Assuming that you do not have DNSMasq installed'''&lt;br /&gt;
&lt;br /&gt;
1) Install the official dnsmasq Slackware package either by pkgtool oe slackpkg.&lt;br /&gt;
&lt;br /&gt;
2) Make DNSMasq start on boot:&lt;br /&gt;
&lt;br /&gt;
     CHMOD 755 /etc/rc.d/rc.dnsmasq&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At this point you will have a really cool little DNS on your box...&lt;br /&gt;
&lt;br /&gt;
'''If you already had DNSMasq running on your box, start here'''&lt;br /&gt;
&lt;br /&gt;
1) edit the /etc/dnsmasq.conf file:&lt;br /&gt;
&lt;br /&gt;
     CHANGE: #dhcp-range=192.168.0.50,192.168.0.150,255.255.255.0,12h&lt;br /&gt;
     TO: dhcp-range=192.168.1.200,192.168.1.239,12h  (using your correct IP range)&lt;br /&gt;
&lt;br /&gt;
2) start/restart DNSMasq&lt;br /&gt;
&lt;br /&gt;
     /etc/rc.d/rc.dnsmasq restart&lt;br /&gt;
&lt;br /&gt;
You should now have a working DCHP server.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
'''Persistent IPs'''&lt;br /&gt;
&lt;br /&gt;
To assign IPs based on a device's MAC address, edit /etc/dnsmasq.conf and add the following line for every device (using the correct MAC and IP of course):&lt;br /&gt;
&lt;br /&gt;
     dhcp-host=11:22:33:44:55:66,192.168.1.61&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' The IP address should be OUTSIDE the DHCP pool.&lt;/div&gt;</description>
			<pubDate>Wed, 29 Aug 2012 16:07:31 GMT</pubDate>
			<dc:creator>Arfon</dc:creator>
			<comments>https://www.slackwiki.com/Talk:DHCP_Server:_DNSMasq</comments>
		</item>
		<item>
			<title>X Windows: Remote X to Windows with Xming</title>
			<link>https://www.slackwiki.com/index.php?title=X_Windows:_Remote_X_to_Windows_with_Xming&amp;diff=756</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=X_Windows:_Remote_X_to_Windows_with_Xming&amp;diff=756</guid>
			<description>&lt;p&gt;Arfon: ADDED: Category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1) Install Xming '''and''' Xming-fonts&lt;br /&gt;
  * Download from sourceforge.net/projects/xming[http://sourceforge.net/projects/xming/]&lt;br /&gt;
&lt;br /&gt;
2) Add the Linux machine's DNS name(s) and IP address to the C:\Program Files\xming\X0.hosts file. File should contain:&lt;br /&gt;
    LinuxBox.mydomain.com&lt;br /&gt;
    LinuxBox&lt;br /&gt;
    192.168.1.25&lt;br /&gt;
&lt;br /&gt;
3) Start Xming on your Windows machine '''(NOT XLaunch)'''&lt;br /&gt;
&lt;br /&gt;
4) Start the connection:&lt;br /&gt;
Connect to the Linux machine via ssh/telnet/rlogin/whatever and run:&lt;br /&gt;
     DISPLAY=WINDOWS_IP:0;export DISPLAY;APPLICATION_YOU_WANT_TO_RUN&lt;br /&gt;
     &lt;br /&gt;
     EXAMPLE: DISPLAY=192.168.1.10:0;export DISPLAY;xterm&lt;br /&gt;
&lt;br /&gt;
5) Minimize the telnet session, do not close it.  If you close it, your X connections will close.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''PROBLEMS'''&lt;br /&gt;
&lt;br /&gt;
'''PROBLEM:''' &amp;quot;Xlib: connection to YOUR_IP refused by server&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
'''FIX:''' Check the Xming log, it probably contains &amp;quot;Xming.exe: client 4 rejected from IP YOUR_IP&amp;quot;. If so, &lt;br /&gt;
* close Xming&lt;br /&gt;
* Make sure that the DNS names and/or IPs are in the C:\Program Files\xming\X0.hosts file&lt;br /&gt;
* restart Xming&lt;br /&gt;
'''FIX2:''' If problem is not fixed, restart Xming with the -ac option.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROBLEM:''' The application starts but then I get a font error(s).&amp;lt;br&amp;gt;&lt;br /&gt;
'''FIX:''' Install the Xming-fonts onto your Windows box.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROBLEM:''' When starting Xming, a Windows Security Alert pops up saying Windows Firewall has blocked this program.&amp;lt;br&amp;gt;&lt;br /&gt;
'''FIX:''' Change Windows Firewall setting to allow Xming.&amp;lt;br&amp;gt;&lt;br /&gt;
'''FIX2:''' Disable Windows Firewall by going to Services, setting Windows Firewall to MANUAL START and then stop the service.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROBLEM:''' Cannot connect to Xming and I have checked all of the above.&amp;lt;br&amp;gt;&lt;br /&gt;
'''FIX:''' When starting Xming as display 0, Windows Firewall does not complain. Check to see if Windows Firewall is blocking the connection.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</description>
			<pubDate>Wed, 29 Aug 2012 15:16:15 GMT</pubDate>
			<dc:creator>Arfon</dc:creator>
			<comments>https://www.slackwiki.com/Talk:X_Windows:_Remote_X_to_Windows_with_Xming</comments>
		</item>
		<item>
			<title>X Windows: Remote X to Windows with Xming</title>
			<link>https://www.slackwiki.com/index.php?title=X_Windows:_Remote_X_to_Windows_with_Xming&amp;diff=755</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=X_Windows:_Remote_X_to_Windows_with_Xming&amp;diff=755</guid>
			<description>&lt;p&gt;Arfon: FIXED: typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1) Install Xming '''and''' Xming-fonts&lt;br /&gt;
  * Download from sourceforge.net/projects/xming[http://sourceforge.net/projects/xming/]&lt;br /&gt;
&lt;br /&gt;
2) Add the Linux machine's DNS name(s) and IP address to the C:\Program Files\xming\X0.hosts file. File should contain:&lt;br /&gt;
    LinuxBox.mydomain.com&lt;br /&gt;
    LinuxBox&lt;br /&gt;
    192.168.1.25&lt;br /&gt;
&lt;br /&gt;
3) Start Xming on your Windows machine '''(NOT XLaunch)'''&lt;br /&gt;
&lt;br /&gt;
4) Start the connection:&lt;br /&gt;
Connect to the Linux machine via ssh/telnet/rlogin/whatever and run:&lt;br /&gt;
     DISPLAY=WINDOWS_IP:0;export DISPLAY;APPLICATION_YOU_WANT_TO_RUN&lt;br /&gt;
     &lt;br /&gt;
     EXAMPLE: DISPLAY=192.168.1.10:0;export DISPLAY;xterm&lt;br /&gt;
&lt;br /&gt;
5) Minimize the telnet session, do not close it.  If you close it, your X connections will close.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''PROBLEMS'''&lt;br /&gt;
&lt;br /&gt;
'''PROBLEM:''' &amp;quot;Xlib: connection to YOUR_IP refused by server&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
'''FIX:''' Check the Xming log, it probably contains &amp;quot;Xming.exe: client 4 rejected from IP YOUR_IP&amp;quot;. If so, &lt;br /&gt;
* close Xming&lt;br /&gt;
* Make sure that the DNS names and/or IPs are in the C:\Program Files\xming\X0.hosts file&lt;br /&gt;
* restart Xming&lt;br /&gt;
'''FIX2:''' If problem is not fixed, restart Xming with the -ac option.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROBLEM:''' The application starts but then I get a font error(s).&amp;lt;br&amp;gt;&lt;br /&gt;
'''FIX:''' Install the Xming-fonts onto your Windows box.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROBLEM:''' When starting Xming, a Windows Security Alert pops up saying Windows Firewall has blocked this program.&amp;lt;br&amp;gt;&lt;br /&gt;
'''FIX:''' Change Windows Firewall setting to allow Xming.&amp;lt;br&amp;gt;&lt;br /&gt;
'''FIX2:''' Disable Windows Firewall by going to Services, setting Windows Firewall to MANUAL START and then stop the service.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROBLEM:''' Cannot connect to Xming and I have checked all of the above.&amp;lt;br&amp;gt;&lt;br /&gt;
'''FIX:''' When starting Xming as display 0, Windows Firewall does not complain. Check to see if Windows Firewall is blocking the connection.&amp;lt;br&amp;gt;&lt;/div&gt;</description>
			<pubDate>Wed, 29 Aug 2012 15:14:36 GMT</pubDate>
			<dc:creator>Arfon</dc:creator>
			<comments>https://www.slackwiki.com/Talk:X_Windows:_Remote_X_to_Windows_with_Xming</comments>
		</item>
		<item>
			<title>X Windows: Remote X to Windows with Xming</title>
			<link>https://www.slackwiki.com/index.php?title=X_Windows:_Remote_X_to_Windows_with_Xming&amp;diff=754</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=X_Windows:_Remote_X_to_Windows_with_Xming&amp;diff=754</guid>
			<description>&lt;p&gt;Arfon: CREATED!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1) Install Xming '''and''' Xming-fonts&lt;br /&gt;
  * Download from sourceforge.net/projects/xming[http://sourceforge.net/projects/xming/]&lt;br /&gt;
&lt;br /&gt;
2) Add the Linux machine's DNS name(s) and IP address to the C:\Program Files\xming\X0.hosts file. File should contain:&lt;br /&gt;
    LinuxBox.mydomain.com&lt;br /&gt;
    LinuxBox&lt;br /&gt;
    192.168.1.25&lt;br /&gt;
&lt;br /&gt;
3) Start Xming on your Windows machine '''(NOT XLaunch)'''&lt;br /&gt;
&lt;br /&gt;
4) Start the connection:&lt;br /&gt;
Connect to the Linux machine via ssh/telnet/rlogin/whatever and run:&lt;br /&gt;
     DISPLAY=WINDOWS_IP:0;export DISPLAY;APPLICATION_YOU_WANT_TO_RUN&lt;br /&gt;
     &lt;br /&gt;
     EXAMPLE: DISPLAY=192.168.1.10:0;export DISPLAY;xterm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Minimize the telnet session, do not close it.  If you close it, your OV connection will close.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''PROBLEMS'''&lt;br /&gt;
&lt;br /&gt;
'''PROBLEM:''' &amp;quot;Xlib: connection to YOUR_IP refused by server&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
'''FIX:''' Check the Xming log, it probably contains &amp;quot;Xming.exe: client 4 rejected from IP YOUR_IP&amp;quot;. If so, &lt;br /&gt;
* close Xming&lt;br /&gt;
* Make sure that the DNS names and/or IPs are in the C:\Program Files\xming\X0.hosts file&lt;br /&gt;
* restart Xming&lt;br /&gt;
'''FIX2:''' If problem is not fixed, restart Xming with the -ac option.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROBLEM:''' Map starts but then I get a font error from OpenView.&amp;lt;br&amp;gt;&lt;br /&gt;
'''FIX:''' Install the Xming-fonts onto your Windows box.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROBLEM:''' When starting Xming, a Windows Security Alert pops up saying Windows Firewall has blocked this program.&amp;lt;br&amp;gt;&lt;br /&gt;
'''FIX:''' Change Windows Firewall setting to allow Xming.&amp;lt;br&amp;gt;&lt;br /&gt;
'''FIX2:''' Disable Windows Firewall by going to Services, setting Windows Firewall to MANUAL START and then stop the service.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''PROBLEM:''' Cannot connect to Xming and I have checked all of the above.&amp;lt;br&amp;gt;&lt;br /&gt;
'''FIX:''' When starting Xming as display 0, Windows Firewall does not complain. Check to see if Windows Firewall is blocking the connection.&amp;lt;br&amp;gt;&lt;/div&gt;</description>
			<pubDate>Wed, 29 Aug 2012 15:12:05 GMT</pubDate>
			<dc:creator>Arfon</dc:creator>
			<comments>https://www.slackwiki.com/Talk:X_Windows:_Remote_X_to_Windows_with_Xming</comments>
		</item>
		<item>
			<title>MySQL Configuration</title>
			<link>https://www.slackwiki.com/index.php?title=MySQL_Configuration&amp;diff=729</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=MySQL_Configuration&amp;diff=729</guid>
			<description>&lt;p&gt;Arfon: /etc/rc.d/rc.mysql start --&amp;gt; /etc/rc.d/rc.mysqld start    AND ADDED: mysql&amp;gt; use mysql&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tutorials]]&lt;br /&gt;
''Have you just installed Slackware and now see a MySQL error at the login prompt?''&lt;br /&gt;
&lt;br /&gt;
This is a VERY quick HowTo and should take maybe 30 seconds to complete at its slowest.  The reason I decided to do a write-up is because of the sheer number of people asking how to fix it.&lt;br /&gt;
&lt;br /&gt;
== Option 1 ==&lt;br /&gt;
In a shell or xterm, type (you have to be logged in as superuser to use the mysql login):&lt;br /&gt;
&lt;br /&gt;
 su mysql&lt;br /&gt;
&lt;br /&gt;
This logs you into the 'mysql' user account.&lt;br /&gt;
&lt;br /&gt;
Next, run:&lt;br /&gt;
&lt;br /&gt;
 mysql_install_db&lt;br /&gt;
&lt;br /&gt;
This will create the needed databases and set their permissions properly.&lt;br /&gt;
&lt;br /&gt;
if your not logon as mysql user (root)&lt;br /&gt;
&lt;br /&gt;
Don't forget to chown folder /var/lib/mysql&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chown -R mysql.mysql /var/lib/mysql&lt;br /&gt;
chmod 755 /etc/rc.d/rc.mysqld&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You're now finished and should not see the typical MySQL errors at the login prompt.&lt;br /&gt;
&lt;br /&gt;
 /etc/rc.d/rc.mysqld start&lt;br /&gt;
&lt;br /&gt;
Now you should set a password for MySQL's root password:&lt;br /&gt;
&lt;br /&gt;
 mysqladmin -u root password 'new-password-here'&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can connect to your MySQL server with:&lt;br /&gt;
 mysql -u root -p&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For security reasons you should delete an empy user for localhost server&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql&amp;gt; use mysql&lt;br /&gt;
mysql&amp;gt; SELECT user, host FROM user;&lt;br /&gt;
mysql&amp;gt; DELETE FROM user WHERE host='localhost' AND user=''; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*''This tutorial is currently linked at ''&lt;br /&gt;
* ''http://www.unixfool.com/mysql-slack.shtml''&lt;br /&gt;
&lt;br /&gt;
== Option 2 ==&lt;br /&gt;
1. log in as &amp;lt;b&amp;gt;root&amp;lt;/b&amp;gt; and install the mysql package&lt;br /&gt;
&lt;br /&gt;
2. &amp;lt;code&amp;gt;killall -9 mysqld mysqld_safe&amp;lt;/code&amp;gt; to kill any running MySQL processes.&lt;br /&gt;
&lt;br /&gt;
3. copy one of the my-size.cnf files in /etc to my.cnf (picking an apporpriate size):&amp;lt;br&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;cp /etc/my-medium.cnf /etc/my.cnf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Install the MySQL database-&lt;br /&gt;
&lt;br /&gt;
::'''Slackware 12.1''' (and later):&lt;br /&gt;
::::&amp;lt;code&amp;gt;mysql_install_db --user=mysql&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::'''Slackware 12.0''' (and before):&lt;br /&gt;
::::&amp;lt;code&amp;gt;su mysql&amp;lt;/code&amp;gt;&lt;br /&gt;
::::&amp;lt;code&amp;gt;mysql_install_db&amp;lt;/code&amp;gt;&lt;br /&gt;
:::: &amp;lt;code&amp;gt;exit&amp;lt;/code&amp;gt; (to get out of the mysql login and back to root).&lt;br /&gt;
&lt;br /&gt;
5. &amp;lt;code&amp;gt;mysqld_safe --skip-grant-tables &amp;amp;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. &amp;lt;code&amp;gt;mysql -u root mysql&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. &amp;lt;code&amp;gt;UPDATE user SET Password=PASSWORD('&amp;lt;i&amp;gt;new_password&amp;lt;/i&amp;gt;') WHERE user='root';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8. &amp;lt;code&amp;gt;FLUSH PRIVILEGES;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
9. &amp;lt;code&amp;gt;exit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
10. &amp;lt;code&amp;gt;killall -9 mysqld mysqld_safe&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
11. &amp;lt;code&amp;gt;mysqld_safe &amp;amp;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
to check the new password, (as root) type:&amp;lt;br&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;mysqladmin -u root -p status&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
:::::...and enter the new password.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Option 3 ==&lt;br /&gt;
&lt;br /&gt;
I'm starting from a [http://www.slackwiki.org/Minimal_System very basic install]. &lt;br /&gt;
&lt;br /&gt;
The only additional package needed is '''mysql''' in the '''AP''' group.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# installpkg mysql-5.0.37-i486-1.tgz&lt;br /&gt;
# su mysql&lt;br /&gt;
$ mysql_install_db&lt;br /&gt;
Installing all prepared tables&lt;br /&gt;
Fill help tables&lt;br /&gt;
...&lt;br /&gt;
$ exit&lt;br /&gt;
# chmod 755 /etc/rc.d/rc.mysqld &lt;br /&gt;
# /etc/rc.d/rc.mysqld start&lt;br /&gt;
Starting mysqld daemon with databases from /var/lib/mysql&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MySQL is now installed, but there are no passwords defined yet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# mysql -u root&lt;br /&gt;
Welcome to the MySQL monitor.  Commands end with ; or \g.&lt;br /&gt;
Your MySQL connection id is 1&lt;br /&gt;
Server version: 5.0.37 Source distribution&lt;br /&gt;
&lt;br /&gt;
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can now set passwords from within the MySQL console. I know this can be achieved with '''mysqladmin''', but then, several ways lead to Rome. It's a simple matter of habit.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql&amp;gt; show databases;&lt;br /&gt;
 +--------------------+&lt;br /&gt;
| Database           |&lt;br /&gt;
+--------------------+&lt;br /&gt;
| information_schema | &lt;br /&gt;
| mysql              | &lt;br /&gt;
| test               | &lt;br /&gt;
+--------------------+&lt;br /&gt;
3 rows in set (0.01 sec)&lt;br /&gt;
&lt;br /&gt;
mysql&amp;gt; use mysql;&lt;br /&gt;
Database changed&lt;br /&gt;
&lt;br /&gt;
mysql&amp;gt; select user, host, password from user where user = 'root';&lt;br /&gt;
+------+-----------+----------+&lt;br /&gt;
| user | host      | password |&lt;br /&gt;
+------+-----------+----------+&lt;br /&gt;
| root | localhost |          | &lt;br /&gt;
| root | slacktest |          | &lt;br /&gt;
+------+-----------+----------+&lt;br /&gt;
2 rows in set (0.00 sec)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As you can see, there are two 'root' users here (and none of them is our system's root user, don't forget): root@localhost... and root@slacktest. We have to set a password for both of them. In theory, these can be different, but why make things more complicated than they already are? ;o)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql&amp;gt; set password for root@localhost = password('yatahongaga');&lt;br /&gt;
Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Let's repeat our query above to see the actual changes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql&amp;gt; select user, host, password from user where user = 'root';&lt;br /&gt;
+------+-----------+-------------------------------------------+&lt;br /&gt;
| user | host      | password                                  |&lt;br /&gt;
+------+-----------+-------------------------------------------+&lt;br /&gt;
| root | localhost | *71CDE2704222D8D5A7608C92AF78C53F78DA5EBA | &lt;br /&gt;
| root | slacktest |                                           | &lt;br /&gt;
+------+-----------+-------------------------------------------+&lt;br /&gt;
2 rows in set (0.00 sec)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can see that root@localhost's password is displayed as a shadow password. Now let's set the password for root@slacktest (replace ''slacktest'' by your machine's hostname):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql&amp;gt; set password for root@slacktest = password('yatahongaga');&lt;br /&gt;
Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What do we have now?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql&amp;gt; select user, host, password from user where user = 'root';&lt;br /&gt;
+------+-----------+-------------------------------------------+&lt;br /&gt;
| user | host      | password                                  |&lt;br /&gt;
+------+-----------+-------------------------------------------+&lt;br /&gt;
| root | localhost | *71CDE2704222D8D5A7608C92AF78C53F78DA5EBA | &lt;br /&gt;
| root | slacktest | *71CDE2704222D8D5A7608C92AF78C53F78DA5EBA | &lt;br /&gt;
+------+-----------+-------------------------------------------+&lt;br /&gt;
2 rows in set (0.00 sec)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we have some (very) basic security, we can leave the MySQL monitor.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql&amp;gt; quit;&lt;br /&gt;
Bye&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To connect to our MySQL database as MySQL's root user (who, remember, is ''not'' the system's root), we can do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# mysql -u root -p&lt;br /&gt;
Enter password: &lt;br /&gt;
Welcome to the MySQL monitor.  Commands end with ; or \g.&lt;br /&gt;
Your MySQL connection id is 2&lt;br /&gt;
Server version: 5.0.37 Source distribution&lt;br /&gt;
&lt;br /&gt;
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.&lt;br /&gt;
&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If we have to do this often, we can create a /root/.my.cnf file and edit it as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[mysql]&lt;br /&gt;
user            =       root&lt;br /&gt;
password        =       yatahongaga&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Just to be on the safe side:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# chmod 0600 /root/.my.cnf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From now on, you can connect directly to the MySQL monitor, without having to type your password every time.&lt;/div&gt;</description>
			<pubDate>Mon, 06 Aug 2012 15:30:58 GMT</pubDate>
			<dc:creator>Arfon</dc:creator>
			<comments>https://www.slackwiki.com/Talk:MySQL_Configuration</comments>
		</item>
		<item>
			<title>MySQL Configuration</title>
			<link>https://www.slackwiki.com/index.php?title=MySQL_Configuration&amp;diff=728</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=MySQL_Configuration&amp;diff=728</guid>
			<description>&lt;p&gt;Arfon: chmod 755 /etc/rc.d/rc.mysql --&amp;gt; chmod 755 /etc/rc.d/rc.mysqld&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tutorials]]&lt;br /&gt;
''Have you just installed Slackware and now see a MySQL error at the login prompt?''&lt;br /&gt;
&lt;br /&gt;
This is a VERY quick HowTo and should take maybe 30 seconds to complete at its slowest.  The reason I decided to do a write-up is because of the sheer number of people asking how to fix it.&lt;br /&gt;
&lt;br /&gt;
== Option 1 ==&lt;br /&gt;
In a shell or xterm, type (you have to be logged in as superuser to use the mysql login):&lt;br /&gt;
&lt;br /&gt;
 su mysql&lt;br /&gt;
&lt;br /&gt;
This logs you into the 'mysql' user account.&lt;br /&gt;
&lt;br /&gt;
Next, run:&lt;br /&gt;
&lt;br /&gt;
 mysql_install_db&lt;br /&gt;
&lt;br /&gt;
This will create the needed databases and set their permissions properly.&lt;br /&gt;
&lt;br /&gt;
if your not logon as mysql user (root)&lt;br /&gt;
&lt;br /&gt;
Don't forget to chown folder /var/lib/mysql&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chown -R mysql.mysql /var/lib/mysql&lt;br /&gt;
chmod 755 /etc/rc.d/rc.mysqld&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You're now finished and should not see the typical MySQL errors at the login prompt.&lt;br /&gt;
&lt;br /&gt;
 /etc/rc.d/rc.mysql start&lt;br /&gt;
&lt;br /&gt;
Now you should set a password for MySQL's root password:&lt;br /&gt;
&lt;br /&gt;
 mysqladmin -u root password 'new-password-here'&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can connect to your MySQL server with:&lt;br /&gt;
 mysql -u root -p&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For security reasons you should delete an empy user for localhost server&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql&amp;gt; SELECT user, host FROM user;&lt;br /&gt;
mysql&amp;gt; DELETE FROM user WHERE host='localhost' AND user=''; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*''This tutorial is currently linked at ''&lt;br /&gt;
* ''http://www.unixfool.com/mysql-slack.shtml''&lt;br /&gt;
&lt;br /&gt;
== Option 2 ==&lt;br /&gt;
1. log in as &amp;lt;b&amp;gt;root&amp;lt;/b&amp;gt; and install the mysql package&lt;br /&gt;
&lt;br /&gt;
2. &amp;lt;code&amp;gt;killall -9 mysqld mysqld_safe&amp;lt;/code&amp;gt; to kill any running MySQL processes.&lt;br /&gt;
&lt;br /&gt;
3. copy one of the my-size.cnf files in /etc to my.cnf (picking an apporpriate size):&amp;lt;br&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;cp /etc/my-medium.cnf /etc/my.cnf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Install the MySQL database-&lt;br /&gt;
&lt;br /&gt;
::'''Slackware 12.1''' (and later):&lt;br /&gt;
::::&amp;lt;code&amp;gt;mysql_install_db --user=mysql&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::'''Slackware 12.0''' (and before):&lt;br /&gt;
::::&amp;lt;code&amp;gt;su mysql&amp;lt;/code&amp;gt;&lt;br /&gt;
::::&amp;lt;code&amp;gt;mysql_install_db&amp;lt;/code&amp;gt;&lt;br /&gt;
:::: &amp;lt;code&amp;gt;exit&amp;lt;/code&amp;gt; (to get out of the mysql login and back to root).&lt;br /&gt;
&lt;br /&gt;
5. &amp;lt;code&amp;gt;mysqld_safe --skip-grant-tables &amp;amp;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. &amp;lt;code&amp;gt;mysql -u root mysql&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. &amp;lt;code&amp;gt;UPDATE user SET Password=PASSWORD('&amp;lt;i&amp;gt;new_password&amp;lt;/i&amp;gt;') WHERE user='root';&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8. &amp;lt;code&amp;gt;FLUSH PRIVILEGES;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
9. &amp;lt;code&amp;gt;exit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
10. &amp;lt;code&amp;gt;killall -9 mysqld mysqld_safe&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
11. &amp;lt;code&amp;gt;mysqld_safe &amp;amp;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
to check the new password, (as root) type:&amp;lt;br&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt;mysqladmin -u root -p status&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
:::::...and enter the new password.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Option 3 ==&lt;br /&gt;
&lt;br /&gt;
I'm starting from a [http://www.slackwiki.org/Minimal_System very basic install]. &lt;br /&gt;
&lt;br /&gt;
The only additional package needed is '''mysql''' in the '''AP''' group.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# installpkg mysql-5.0.37-i486-1.tgz&lt;br /&gt;
# su mysql&lt;br /&gt;
$ mysql_install_db&lt;br /&gt;
Installing all prepared tables&lt;br /&gt;
Fill help tables&lt;br /&gt;
...&lt;br /&gt;
$ exit&lt;br /&gt;
# chmod 755 /etc/rc.d/rc.mysqld &lt;br /&gt;
# /etc/rc.d/rc.mysqld start&lt;br /&gt;
Starting mysqld daemon with databases from /var/lib/mysql&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MySQL is now installed, but there are no passwords defined yet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# mysql -u root&lt;br /&gt;
Welcome to the MySQL monitor.  Commands end with ; or \g.&lt;br /&gt;
Your MySQL connection id is 1&lt;br /&gt;
Server version: 5.0.37 Source distribution&lt;br /&gt;
&lt;br /&gt;
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can now set passwords from within the MySQL console. I know this can be achieved with '''mysqladmin''', but then, several ways lead to Rome. It's a simple matter of habit.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql&amp;gt; show databases;&lt;br /&gt;
 +--------------------+&lt;br /&gt;
| Database           |&lt;br /&gt;
+--------------------+&lt;br /&gt;
| information_schema | &lt;br /&gt;
| mysql              | &lt;br /&gt;
| test               | &lt;br /&gt;
+--------------------+&lt;br /&gt;
3 rows in set (0.01 sec)&lt;br /&gt;
&lt;br /&gt;
mysql&amp;gt; use mysql;&lt;br /&gt;
Database changed&lt;br /&gt;
&lt;br /&gt;
mysql&amp;gt; select user, host, password from user where user = 'root';&lt;br /&gt;
+------+-----------+----------+&lt;br /&gt;
| user | host      | password |&lt;br /&gt;
+------+-----------+----------+&lt;br /&gt;
| root | localhost |          | &lt;br /&gt;
| root | slacktest |          | &lt;br /&gt;
+------+-----------+----------+&lt;br /&gt;
2 rows in set (0.00 sec)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As you can see, there are two 'root' users here (and none of them is our system's root user, don't forget): root@localhost... and root@slacktest. We have to set a password for both of them. In theory, these can be different, but why make things more complicated than they already are? ;o)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql&amp;gt; set password for root@localhost = password('yatahongaga');&lt;br /&gt;
Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Let's repeat our query above to see the actual changes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql&amp;gt; select user, host, password from user where user = 'root';&lt;br /&gt;
+------+-----------+-------------------------------------------+&lt;br /&gt;
| user | host      | password                                  |&lt;br /&gt;
+------+-----------+-------------------------------------------+&lt;br /&gt;
| root | localhost | *71CDE2704222D8D5A7608C92AF78C53F78DA5EBA | &lt;br /&gt;
| root | slacktest |                                           | &lt;br /&gt;
+------+-----------+-------------------------------------------+&lt;br /&gt;
2 rows in set (0.00 sec)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can see that root@localhost's password is displayed as a shadow password. Now let's set the password for root@slacktest (replace ''slacktest'' by your machine's hostname):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql&amp;gt; set password for root@slacktest = password('yatahongaga');&lt;br /&gt;
Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What do we have now?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql&amp;gt; select user, host, password from user where user = 'root';&lt;br /&gt;
+------+-----------+-------------------------------------------+&lt;br /&gt;
| user | host      | password                                  |&lt;br /&gt;
+------+-----------+-------------------------------------------+&lt;br /&gt;
| root | localhost | *71CDE2704222D8D5A7608C92AF78C53F78DA5EBA | &lt;br /&gt;
| root | slacktest | *71CDE2704222D8D5A7608C92AF78C53F78DA5EBA | &lt;br /&gt;
+------+-----------+-------------------------------------------+&lt;br /&gt;
2 rows in set (0.00 sec)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we have some (very) basic security, we can leave the MySQL monitor.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql&amp;gt; quit;&lt;br /&gt;
Bye&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To connect to our MySQL database as MySQL's root user (who, remember, is ''not'' the system's root), we can do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# mysql -u root -p&lt;br /&gt;
Enter password: &lt;br /&gt;
Welcome to the MySQL monitor.  Commands end with ; or \g.&lt;br /&gt;
Your MySQL connection id is 2&lt;br /&gt;
Server version: 5.0.37 Source distribution&lt;br /&gt;
&lt;br /&gt;
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.&lt;br /&gt;
&lt;br /&gt;
mysql&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If we have to do this often, we can create a /root/.my.cnf file and edit it as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[mysql]&lt;br /&gt;
user            =       root&lt;br /&gt;
password        =       yatahongaga&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Just to be on the safe side:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# chmod 0600 /root/.my.cnf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From now on, you can connect directly to the MySQL monitor, without having to type your password every time.&lt;/div&gt;</description>
			<pubDate>Mon, 06 Aug 2012 15:22:36 GMT</pubDate>
			<dc:creator>Arfon</dc:creator>
			<comments>https://www.slackwiki.com/Talk:MySQL_Configuration</comments>
		</item>
		<item>
			<title>Pptp</title>
			<link>https://www.slackwiki.com/index.php?title=Pptp&amp;diff=725</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=Pptp&amp;diff=725</guid>
			<description>&lt;p&gt;Arfon: ADDED: categories&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Server]]&lt;br /&gt;
[[Category:Networking]]&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
&lt;br /&gt;
==(Poptop) pptpd Server Setup==&lt;br /&gt;
&lt;br /&gt;
Here's what I did to get Poptop pptpd (1.3.4) running on my Slackware (13.37) box.&lt;br /&gt;
&lt;br /&gt;
 1) Install the official Slackware ppp package using pkgtool or slackpkg.&lt;br /&gt;
 &lt;br /&gt;
 2) Install the ppptpd package from Slackbuilds.org using sbopkg.&lt;br /&gt;
 	***NOTE: The package name is NOT Poptop, it's pptpd***&lt;br /&gt;
 &lt;br /&gt;
 3) Edit /etc/pptpd.conf&lt;br /&gt;
 &lt;br /&gt;
 	ADD:&lt;br /&gt;
 		localip 10.7.0.1&lt;br /&gt;
 		remoteip 10.7.0.2-50&lt;br /&gt;
 	CHANGE:&lt;br /&gt;
 		option /etc/ppp/options.pptpd -&amp;gt; option /etc/ppp/options&lt;br /&gt;
 &lt;br /&gt;
 4) Edit /etc/ppp/options&lt;br /&gt;
 	HERE IS A GOTCHA- The official Slackware ppp package (at the time of this writing) contains an error in the options&lt;br /&gt;
 	file. The pppd binary was compiled to look for the new ms-dns parameter but the option file has the old dns-addr&lt;br /&gt;
 	parameter.&lt;br /&gt;
 &lt;br /&gt;
 	CHANGE:&lt;br /&gt;
 	# dns-addr 192.168.1.1 -&amp;gt; ms-dns 8.8.8.8 (or whatever your dns server is)&lt;br /&gt;
 &lt;br /&gt;
 5) Edit the /etc/ppp/chap-secrets file.&lt;br /&gt;
 	For some reason, the default Slackware package has 4 example entries in it that are not commented (jacco,*,sam,*)&lt;br /&gt;
 	delete these.  You don't want jacco or sam to have a free connection into your box...&lt;br /&gt;
 &lt;br /&gt;
 	ADD: one entry for each user you want to allow access.&lt;br /&gt;
 	Format is: CLIENT [tab] SERVER [tab] PASSWORD [tab] IP ADDRESS&lt;br /&gt;
 	Mine looks like this:&lt;br /&gt;
 &lt;br /&gt;
 	bob	*	&amp;quot;BobsPasswordIsStrong&amp;quot;	*&lt;br /&gt;
 	sue	*	&amp;quot;FluffyBunnies92&amp;quot;	*&lt;br /&gt;
 &lt;br /&gt;
 6) Finally to start pptpd, normally you would just execute 'pptpd &amp;amp;' but being that I'm a good Slacker, I wrote an&lt;br /&gt;
 rc.pptpd script.&lt;br /&gt;
 	Create /etc/rc.d/rc.pptpd&lt;br /&gt;
 	contents:&lt;br /&gt;
 		#!/bin/sh&lt;br /&gt;
 		#&lt;br /&gt;
 		# /etc/rc.d/rc.pptpd&lt;br /&gt;
 		#&lt;br /&gt;
 		# Start/stop/restart the pptpd server.&lt;br /&gt;
 		#&lt;br /&gt;
 		# To make PopTop start automatically at boot, make this&lt;br /&gt;
 		# file executable:  chmod 755 /etc/rc.d/rc.pptpd&lt;br /&gt;
 		#&lt;br /&gt;
 		&lt;br /&gt;
 		pptpd_start() {&lt;br /&gt;
 		  if [ -x /usr/sbin/pptpd ]; then&lt;br /&gt;
 		    echo &amp;quot;Starting PopTop pptpd:  /usr/sbin/pptpd server.conf&amp;quot;&lt;br /&gt;
 		    /usr/sbin/pptpd &amp;amp;&lt;br /&gt;
 		  fi&lt;br /&gt;
 		}&lt;br /&gt;
 		&lt;br /&gt;
 		pptpd_stop() {&lt;br /&gt;
 		  killall pptpd&lt;br /&gt;
 		}&lt;br /&gt;
 		&lt;br /&gt;
 		pptpd_restart() {&lt;br /&gt;
 		  pptpd_stop&lt;br /&gt;
 		  sleep 2&lt;br /&gt;
 		  pptpd_start&lt;br /&gt;
 		}&lt;br /&gt;
 		&lt;br /&gt;
 		case &amp;quot;$1&amp;quot; in&lt;br /&gt;
 		'start')&lt;br /&gt;
 		  pptpd_start&lt;br /&gt;
 		  ;;&lt;br /&gt;
 		'stop')&lt;br /&gt;
 		  pptpd_stop&lt;br /&gt;
 		  ;;&lt;br /&gt;
 		'restart')&lt;br /&gt;
 		  pptpd_restart&lt;br /&gt;
 		  ;;&lt;br /&gt;
 		*)&lt;br /&gt;
 		  # Default is &amp;quot;start&amp;quot;, for backwards compatibility with previous&lt;br /&gt;
 		  # Slackware versions.  This may change to a 'usage' error someday.&lt;br /&gt;
 		  pptpd_start&lt;br /&gt;
 		esac&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 7) Make it executable (and autobootable on start up)&lt;br /&gt;
 &lt;br /&gt;
 	chmod 755 /etc/rc.d/rc.pptpd&lt;br /&gt;
 &lt;br /&gt;
 To start it manually- /etc/rc.d/rc.pptpd start&lt;br /&gt;
 &lt;br /&gt;
 To be useful you next need to configure your firewall to forward and masquerade traffic from the vpn out to&lt;br /&gt;
 the world...&lt;br /&gt;
 &lt;br /&gt;
 8) Edit/create: /etc/rc.d/rc.firewall&lt;br /&gt;
 &lt;br /&gt;
 	ADD:&lt;br /&gt;
 		iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT&lt;br /&gt;
 		iptables -A FORWARD -i ppp+ -j ACCEPT&lt;br /&gt;
 		iptables -A FORWARD -o ppp+ -j ACCEPT&lt;br /&gt;
 		iptables -A FORWARD -j ACCEPT&lt;br /&gt;
 		iptables -t nat -A POSTROUTING -s 10.7.0.0/24 -o ppp+ -j MASQUERADE&lt;br /&gt;
 &lt;br /&gt;
 9) Make it executable&lt;br /&gt;
 &lt;br /&gt;
 	chmod 755 /etc/rc.d/rc.firewall&lt;br /&gt;
 &lt;br /&gt;
 10) Flush the old firewall rules (forgetting to do this caused me all sorts of grief (Thanks mancha))&lt;br /&gt;
 &lt;br /&gt;
 	iptables -F&lt;br /&gt;
 &lt;br /&gt;
 11) Execute the new firewall rules&lt;br /&gt;
 &lt;br /&gt;
 	/etc/rc.d/rc.firewall&lt;br /&gt;
 &lt;br /&gt;
 If you and I haven't made any mistakes, you should now have pptp (server) and router working on your box.&lt;br /&gt;
&lt;br /&gt;
==pptp Client Setup==&lt;br /&gt;
&lt;br /&gt;
Needs to be added.&lt;/div&gt;</description>
			<pubDate>Wed, 13 Jun 2012 14:50:40 GMT</pubDate>
			<dc:creator>Arfon</dc:creator>
			<comments>https://www.slackwiki.com/Talk:Pptp</comments>
		</item>
		<item>
			<title>OpenVPN smcr 2012</title>
			<link>https://www.slackwiki.com/index.php?title=OpenVPN_smcr_2012&amp;diff=724</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=OpenVPN_smcr_2012&amp;diff=724</guid>
			<description>&lt;p&gt;Arfon: ca /etc/openvpn/certs/ca.crt --&amp;gt;ca /etc/openvpn/certsnkeys/ca.crt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Server]]&lt;br /&gt;
[[Category:Networking]]&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
&lt;br /&gt;
'''OPENVPN MULTI-CLIENT ROUTED SERVER'''&lt;br /&gt;
&lt;br /&gt;
Here's what I did to get OpenVPN (2.1.4) on my Slackware (13.37) box.&lt;br /&gt;
&lt;br /&gt;
I wanted to get on the internet from public wifi WITHOUT being snooped on so I installed a MULTI-CLIENT, ROUTED (not bridged) OpenVPN server on my Linode.  Again, this is MULTI-CLIENT and ROUTED.&lt;br /&gt;
&lt;br /&gt;
 1) Install OpenVPN from Slackbuilds.org or using sbopkg&lt;br /&gt;
 &lt;br /&gt;
 2) Generate the needed certificates and keys-&lt;br /&gt;
 &lt;br /&gt;
 	cd /usr/doc/openvpn-2.1.4/easy-rsa/2.0/&lt;br /&gt;
 	vi vars&lt;br /&gt;
 		Set the KEY_COUNTRY, KEY_PROVINCE, KEY_CITY, KEY_ORG, and KEY_EMAIL parameters.&lt;br /&gt;
 		Don't leave any of these parameters blank.&lt;br /&gt;
 &lt;br /&gt;
 	source ./vars&lt;br /&gt;
 	./clean-all&lt;br /&gt;
 	./build-ca&lt;br /&gt;
 		answer questions&lt;br /&gt;
 	./build-key-server server (server could be anything e.g. VPN1.blah.net)&lt;br /&gt;
 		answer questions&lt;br /&gt;
 	./build-key client1 (client1 can be anything e.g bobs-phone)&lt;br /&gt;
 		answer questions&lt;br /&gt;
 		repeat for each client to have&lt;br /&gt;
 	./build-dh&lt;br /&gt;
 &lt;br /&gt;
 3) Put the server certs and keys where they need to be-&lt;br /&gt;
 	mkdir /etc/openvpn/certsnkeys&lt;br /&gt;
 	cp ca.crt /etc/openvpn/certsnkeys/&lt;br /&gt;
 	cp ca.key /etc/openvpn/certsnkeys/&lt;br /&gt;
 	cp server.crt /etc/openvpn/certsnkeys/&lt;br /&gt;
 	cp server.key /etc/openvpn/certsnkeys/&lt;br /&gt;
 	cp dh1024.pem /etc/openvpn/&lt;br /&gt;
 &lt;br /&gt;
 4) Send the client certs and keys where they need to be-&lt;br /&gt;
 	Each client gets a copy of his client.crt and client.key AND a copy of ca.crt&lt;br /&gt;
 	EXAMPLE: My android got a copy of client1.crt, client2.key and ca.crt.&lt;br /&gt;
 		My laptop got a copy of client2.crt, client2.key and ca.crt&lt;br /&gt;
 	NOTE: my android need a .p12 file, more on that below.&lt;br /&gt;
 &lt;br /&gt;
 5) Configure the server.conf file-&lt;br /&gt;
 	cd /usr/doc/openvpn-2.1.4&lt;br /&gt;
 	cp server.conf.sample /etc/openvpn/server.conf&lt;br /&gt;
 	cd /etc/openvpn&lt;br /&gt;
 &lt;br /&gt;
 ***NOTE: in /etc/openvpn you will see a file called openvpn.conf.  DO NOT USE THAT!&lt;br /&gt;
 Use server.conf***&lt;br /&gt;
 &lt;br /&gt;
 	Edit /etc/openvpn/server.conf&lt;br /&gt;
 	CHANGE:&lt;br /&gt;
 		ca ca.crt	-&amp;gt; ca /etc/openvpn/certsnkeys/ca.crt&lt;br /&gt;
 		cert server.crt	-&amp;gt; cert /etc/openvpn/certsnkeys/server.crt&lt;br /&gt;
 		key server.key	-&amp;gt; key /etc/openvpn/certsnkeys/server.key&lt;br /&gt;
 		dh dh.pem	-&amp;gt; dh /etc/openvpn/dh1024.pem&lt;br /&gt;
 &lt;br /&gt;
 6) Start OpenVPN-&lt;br /&gt;
 Normally you would start OpenVPN by: openvpn /etc/openvpn/server.conf&lt;br /&gt;
 but, being that I'm a good Slacker, I created an rc.openvpn file...&lt;br /&gt;
 &lt;br /&gt;
 	CREATE: /etc/rc.d/rc.openvpn&lt;br /&gt;
 	CONTAINS:&lt;br /&gt;
 		#!/bin/sh&lt;br /&gt;
 		#&lt;br /&gt;
 		# /etc/rc.d/rc.openvpn&lt;br /&gt;
 		#&lt;br /&gt;
 		# Start/stop/restart the openvpn server.&lt;br /&gt;
 		#&lt;br /&gt;
 		# To make OpenVPN start automatically at boot, make this&lt;br /&gt;
 		# file executable:  chmod 755 /etc/rc.d/rc.openvpn&lt;br /&gt;
 		#&lt;br /&gt;
 		&lt;br /&gt;
 		ovpn_start() {&lt;br /&gt;
 		  if [ -x /usr/sbin/openvpn -a -r /etc/openvpn/server.conf ]; then&lt;br /&gt;
 		    echo &amp;quot;Starting OpenVPN:  /usr/sbin/openvpn server.conf&amp;quot;&lt;br /&gt;
 		    /usr/sbin/openvpn /etc/openvpn/server.conf &amp;amp;&lt;br /&gt;
 		  fi&lt;br /&gt;
 		}&lt;br /&gt;
 		&lt;br /&gt;
 		ovpn_stop() {&lt;br /&gt;
 		  killall openvpn&lt;br /&gt;
 		}&lt;br /&gt;
 		&lt;br /&gt;
 		ovpn_restart() {&lt;br /&gt;
 		  ovpn_stop&lt;br /&gt;
 		  sleep 2&lt;br /&gt;
 		  ovpn_start&lt;br /&gt;
 		}&lt;br /&gt;
 		&lt;br /&gt;
 		case &amp;quot;$1&amp;quot; in&lt;br /&gt;
 		'start')&lt;br /&gt;
 		  ovpn_start&lt;br /&gt;
 		  ;;&lt;br /&gt;
 		'stop')&lt;br /&gt;
 		  ovpn_stop&lt;br /&gt;
 		  ;;&lt;br /&gt;
 		'restart')&lt;br /&gt;
 		  ovpn_restart&lt;br /&gt;
 		  ;;&lt;br /&gt;
 		*)&lt;br /&gt;
 		  # Default is &amp;quot;start&amp;quot;, for backwards compatibility with previous&lt;br /&gt;
 		  # Slackware versions.  This may change to a 'usage' error someday.&lt;br /&gt;
 		  ovpn_start&lt;br /&gt;
 		esac&lt;br /&gt;
 &lt;br /&gt;
 7) Make it executable (and autostart on reboots)-&lt;br /&gt;
 &lt;br /&gt;
 	chmod 755 /etc/rc.d/rc.openvpn&lt;br /&gt;
 &lt;br /&gt;
 To start/stop it manually- /etc/rc.d/rc.openvpn start (or stop or restart)&lt;br /&gt;
 &lt;br /&gt;
 Now let's fix the firewall so our clients can get to the rest of the world...&lt;br /&gt;
 &lt;br /&gt;
 8) Edit/create /etc/rc.d/rc.firewall&lt;br /&gt;
 &lt;br /&gt;
 	ADD:&lt;br /&gt;
 	iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT&lt;br /&gt;
 	iptables -A FORWARD -i tun+ -j ACCEPT&lt;br /&gt;
 	iptables -A FORWARD -o tun+ -j ACCEPT&lt;br /&gt;
 	iptables -A FORWARD -j ACCEPT&lt;br /&gt;
 	iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE&lt;br /&gt;
 &lt;br /&gt;
 9) Flush the old firewall rules-&lt;br /&gt;
 &lt;br /&gt;
 	iptables -F&lt;br /&gt;
 &lt;br /&gt;
 10) Activate the new rules now-&lt;br /&gt;
 &lt;br /&gt;
 	/etc/rc.d/rc.firewall&lt;br /&gt;
&lt;br /&gt;
If the planets are aligned, you should now have a working OpenVPN server/router.&lt;/div&gt;</description>
			<pubDate>Wed, 13 Jun 2012 14:50:07 GMT</pubDate>
			<dc:creator>Arfon</dc:creator>
			<comments>https://www.slackwiki.com/Talk:OpenVPN_smcr_2012</comments>
		</item>
		<item>
			<title>User:Arfon</title>
			<link>https://www.slackwiki.com/index.php?title=User:Arfon&amp;diff=717</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=User:Arfon&amp;diff=717</guid>
			<description>&lt;p&gt;Arfon: Created page with &amp;quot;Find me on freenode ##Slackware as either arfon or urmom_  or drop me an email: REMOVETHIS arfon REMOVETHIS atsign REMOVETHIS 1337mail REMOVETHIS period REMOVETHIS net&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Find me on freenode ##Slackware as either arfon or urmom_&lt;br /&gt;
&lt;br /&gt;
or drop me an email: REMOVETHIS arfon REMOVETHIS atsign REMOVETHIS 1337mail REMOVETHIS period REMOVETHIS net&lt;/div&gt;</description>
			<pubDate>Sat, 09 Jun 2012 19:25:49 GMT</pubDate>
			<dc:creator>Arfon</dc:creator>
			<comments>https://www.slackwiki.com/User_talk:Arfon</comments>
		</item>
		<item>
			<title>OpenVPN smcr 2012</title>
			<link>https://www.slackwiki.com/index.php?title=OpenVPN_smcr_2012&amp;diff=716</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=OpenVPN_smcr_2012&amp;diff=716</guid>
			<description>&lt;p&gt;Arfon: ADDED: Categories&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Server]]&lt;br /&gt;
[[Category:Networking]]&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
&lt;br /&gt;
'''OPENVPN MULTI-CLIENT ROUTED SERVER'''&lt;br /&gt;
&lt;br /&gt;
Here's what I did to get OpenVPN (2.1.4) on my Slackware (13.37) box.&lt;br /&gt;
&lt;br /&gt;
I wanted to get on the internet from public wifi WITHOUT being snooped on so I installed a MULTI-CLIENT, ROUTED (not bridged) OpenVPN server on my Linode.  Again, this is MULTI-CLIENT and ROUTED.&lt;br /&gt;
&lt;br /&gt;
 1) Install OpenVPN from Slackbuilds.org or using sbopkg&lt;br /&gt;
 &lt;br /&gt;
 2) Generate the needed certificates and keys-&lt;br /&gt;
 &lt;br /&gt;
 	cd /usr/doc/openvpn-2.1.4/easy-rsa/2.0/&lt;br /&gt;
 	vi vars&lt;br /&gt;
 		Set the KEY_COUNTRY, KEY_PROVINCE, KEY_CITY, KEY_ORG, and KEY_EMAIL parameters.&lt;br /&gt;
 		Don't leave any of these parameters blank.&lt;br /&gt;
 &lt;br /&gt;
 	source ./vars&lt;br /&gt;
 	./clean-all&lt;br /&gt;
 	./build-ca&lt;br /&gt;
 		answer questions&lt;br /&gt;
 	./build-key-server server (server could be anything e.g. VPN1.blah.net)&lt;br /&gt;
 		answer questions&lt;br /&gt;
 	./build-key client1 (client1 can be anything e.g bobs-phone)&lt;br /&gt;
 		answer questions&lt;br /&gt;
 		repeat for each client to have&lt;br /&gt;
 	./build-dh&lt;br /&gt;
 &lt;br /&gt;
 3) Put the server certs and keys where they need to be-&lt;br /&gt;
 	mkdir /etc/openvpn/certsnkeys&lt;br /&gt;
 	cp ca.crt /etc/openvpn/certsnkeys/&lt;br /&gt;
 	cp ca.key /etc/openvpn/certsnkeys/&lt;br /&gt;
 	cp server.crt /etc/openvpn/certsnkeys/&lt;br /&gt;
 	cp server.key /etc/openvpn/certsnkeys/&lt;br /&gt;
 	cp dh1024.pem /etc/openvpn/&lt;br /&gt;
 &lt;br /&gt;
 4) Send the client certs and keys where they need to be-&lt;br /&gt;
 	Each client gets a copy of his client.crt and client.key AND a copy of ca.crt&lt;br /&gt;
 	EXAMPLE: My android got a copy of client1.crt, client2.key and ca.crt.&lt;br /&gt;
 		My laptop got a copy of client2.crt, client2.key and ca.crt&lt;br /&gt;
 	NOTE: my android need a .p12 file, more on that below.&lt;br /&gt;
 &lt;br /&gt;
 5) Configure the server.conf file-&lt;br /&gt;
 	cd /usr/doc/openvpn-2.1.4&lt;br /&gt;
 	cp server.conf.sample /etc/openvpn/server.conf&lt;br /&gt;
 	cd /etc/openvpn&lt;br /&gt;
 &lt;br /&gt;
 ***NOTE: in /etc/openvpn you will see a file called openvpn.conf.  DO NOT USE THAT!&lt;br /&gt;
 Use server.conf***&lt;br /&gt;
 &lt;br /&gt;
 	Edit /etc/openvpn/server.conf&lt;br /&gt;
 	CHANGE:&lt;br /&gt;
 		ca ca.crt	-&amp;gt; ca /etc/openvpn/certs/ca.crt&lt;br /&gt;
 		cert server.crt	-&amp;gt; cert /etc/openvpn/certsnkeys/server.crt&lt;br /&gt;
 		key server.key	-&amp;gt; key /etc/openvpn/certsnkeys/server.key&lt;br /&gt;
 		dh dh.pem	-&amp;gt; dh /etc/openvpn/dh1024.pem&lt;br /&gt;
 &lt;br /&gt;
 6) Start OpenVPN-&lt;br /&gt;
 Normally you would start OpenVPN by: openvpn /etc/openvpn/server.conf&lt;br /&gt;
 but, being that I'm a good Slacker, I created an rc.openvpn file...&lt;br /&gt;
 &lt;br /&gt;
 	CREATE: /etc/rc.d/rc.openvpn&lt;br /&gt;
 	CONTAINS:&lt;br /&gt;
 		#!/bin/sh&lt;br /&gt;
 		#&lt;br /&gt;
 		# /etc/rc.d/rc.openvpn&lt;br /&gt;
 		#&lt;br /&gt;
 		# Start/stop/restart the openvpn server.&lt;br /&gt;
 		#&lt;br /&gt;
 		# To make OpenVPN start automatically at boot, make this&lt;br /&gt;
 		# file executable:  chmod 755 /etc/rc.d/rc.openvpn&lt;br /&gt;
 		#&lt;br /&gt;
 		&lt;br /&gt;
 		ovpn_start() {&lt;br /&gt;
 		  if [ -x /usr/sbin/openvpn -a -r /etc/openvpn/server.conf ]; then&lt;br /&gt;
 		    echo &amp;quot;Starting OpenVPN:  /usr/sbin/openvpn server.conf&amp;quot;&lt;br /&gt;
 		    /usr/sbin/openvpn /etc/openvpn/server.conf &amp;amp;&lt;br /&gt;
 		  fi&lt;br /&gt;
 		}&lt;br /&gt;
 		&lt;br /&gt;
 		ovpn_stop() {&lt;br /&gt;
 		  killall openvpn&lt;br /&gt;
 		}&lt;br /&gt;
 		&lt;br /&gt;
 		ovpn_restart() {&lt;br /&gt;
 		  ovpn_stop&lt;br /&gt;
 		  sleep 2&lt;br /&gt;
 		  ovpn_start&lt;br /&gt;
 		}&lt;br /&gt;
 		&lt;br /&gt;
 		case &amp;quot;$1&amp;quot; in&lt;br /&gt;
 		'start')&lt;br /&gt;
 		  ovpn_start&lt;br /&gt;
 		  ;;&lt;br /&gt;
 		'stop')&lt;br /&gt;
 		  ovpn_stop&lt;br /&gt;
 		  ;;&lt;br /&gt;
 		'restart')&lt;br /&gt;
 		  ovpn_restart&lt;br /&gt;
 		  ;;&lt;br /&gt;
 		*)&lt;br /&gt;
 		  # Default is &amp;quot;start&amp;quot;, for backwards compatibility with previous&lt;br /&gt;
 		  # Slackware versions.  This may change to a 'usage' error someday.&lt;br /&gt;
 		  ovpn_start&lt;br /&gt;
 		esac&lt;br /&gt;
 &lt;br /&gt;
 7) Make it executable (and autostart on reboots)-&lt;br /&gt;
 &lt;br /&gt;
 	chmod 755 /etc/rc.d/rc.openvpn&lt;br /&gt;
 &lt;br /&gt;
 To start/stop it manually- /etc/rc.d/rc.openvpn start (or stop or restart)&lt;br /&gt;
 &lt;br /&gt;
 Now let's fix the firewall so our clients can get to the rest of the world...&lt;br /&gt;
 &lt;br /&gt;
 8) Edit/create /etc/rc.d/rc.firewall&lt;br /&gt;
 &lt;br /&gt;
 	ADD:&lt;br /&gt;
 	iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT&lt;br /&gt;
 	iptables -A FORWARD -i tun+ -j ACCEPT&lt;br /&gt;
 	iptables -A FORWARD -o tun+ -j ACCEPT&lt;br /&gt;
 	iptables -A FORWARD -j ACCEPT&lt;br /&gt;
 	iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE&lt;br /&gt;
 &lt;br /&gt;
 9) Flush the old firewall rules-&lt;br /&gt;
 &lt;br /&gt;
 	iptables -F&lt;br /&gt;
 &lt;br /&gt;
 10) Activate the new rules now-&lt;br /&gt;
 &lt;br /&gt;
 	/etc/rc.d/rc.firewall&lt;br /&gt;
&lt;br /&gt;
If the planets are aligned, you should now have a working OpenVPN server/router.&lt;/div&gt;</description>
			<pubDate>Sat, 09 Jun 2012 19:21:54 GMT</pubDate>
			<dc:creator>Arfon</dc:creator>
			<comments>https://www.slackwiki.com/Talk:OpenVPN_smcr_2012</comments>
		</item>
		<item>
			<title>OpenVPN smcr 2012</title>
			<link>https://www.slackwiki.com/index.php?title=OpenVPN_smcr_2012&amp;diff=715</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=OpenVPN_smcr_2012&amp;diff=715</guid>
			<description>&lt;p&gt;Arfon: Fixed some trash&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''OPENVPN MULTI-CLIENT ROUTED SERVER'''&lt;br /&gt;
&lt;br /&gt;
Here's what I did to get OpenVPN (2.1.4) on my Slackware (13.37) box.&lt;br /&gt;
&lt;br /&gt;
I wanted to get on the internet from public wifi WITHOUT being snooped on so I installed a MULTI-CLIENT, ROUTED (not bridged) OpenVPN server on my Linode.  Again, this is MULTI-CLIENT and ROUTED.&lt;br /&gt;
&lt;br /&gt;
 1) Install OpenVPN from Slackbuilds.org or using sbopkg&lt;br /&gt;
 &lt;br /&gt;
 2) Generate the needed certificates and keys-&lt;br /&gt;
 &lt;br /&gt;
 	cd /usr/doc/openvpn-2.1.4/easy-rsa/2.0/&lt;br /&gt;
 	vi vars&lt;br /&gt;
 		Set the KEY_COUNTRY, KEY_PROVINCE, KEY_CITY, KEY_ORG, and KEY_EMAIL parameters.&lt;br /&gt;
 		Don't leave any of these parameters blank.&lt;br /&gt;
 &lt;br /&gt;
 	source ./vars&lt;br /&gt;
 	./clean-all&lt;br /&gt;
 	./build-ca&lt;br /&gt;
 		answer questions&lt;br /&gt;
 	./build-key-server server (server could be anything e.g. VPN1.blah.net)&lt;br /&gt;
 		answer questions&lt;br /&gt;
 	./build-key client1 (client1 can be anything e.g bobs-phone)&lt;br /&gt;
 		answer questions&lt;br /&gt;
 		repeat for each client to have&lt;br /&gt;
 	./build-dh&lt;br /&gt;
 &lt;br /&gt;
 3) Put the server certs and keys where they need to be-&lt;br /&gt;
 	mkdir /etc/openvpn/certsnkeys&lt;br /&gt;
 	cp ca.crt /etc/openvpn/certsnkeys/&lt;br /&gt;
 	cp ca.key /etc/openvpn/certsnkeys/&lt;br /&gt;
 	cp server.crt /etc/openvpn/certsnkeys/&lt;br /&gt;
 	cp server.key /etc/openvpn/certsnkeys/&lt;br /&gt;
 	cp dh1024.pem /etc/openvpn/&lt;br /&gt;
 &lt;br /&gt;
 4) Send the client certs and keys where they need to be-&lt;br /&gt;
 	Each client gets a copy of his client.crt and client.key AND a copy of ca.crt&lt;br /&gt;
 	EXAMPLE: My android got a copy of client1.crt, client2.key and ca.crt.&lt;br /&gt;
 		My laptop got a copy of client2.crt, client2.key and ca.crt&lt;br /&gt;
 	NOTE: my android need a .p12 file, more on that below.&lt;br /&gt;
 &lt;br /&gt;
 5) Configure the server.conf file-&lt;br /&gt;
 	cd /usr/doc/openvpn-2.1.4&lt;br /&gt;
 	cp server.conf.sample /etc/openvpn/server.conf&lt;br /&gt;
 	cd /etc/openvpn&lt;br /&gt;
 &lt;br /&gt;
 ***NOTE: in /etc/openvpn you will see a file called openvpn.conf.  DO NOT USE THAT!&lt;br /&gt;
 Use server.conf***&lt;br /&gt;
 &lt;br /&gt;
 	Edit /etc/openvpn/server.conf&lt;br /&gt;
 	CHANGE:&lt;br /&gt;
 		ca ca.crt	-&amp;gt; ca /etc/openvpn/certs/ca.crt&lt;br /&gt;
 		cert server.crt	-&amp;gt; cert /etc/openvpn/certsnkeys/server.crt&lt;br /&gt;
 		key server.key	-&amp;gt; key /etc/openvpn/certsnkeys/server.key&lt;br /&gt;
 		dh dh.pem	-&amp;gt; dh /etc/openvpn/dh1024.pem&lt;br /&gt;
 &lt;br /&gt;
 6) Start OpenVPN-&lt;br /&gt;
 Normally you would start OpenVPN by: openvpn /etc/openvpn/server.conf&lt;br /&gt;
 but, being that I'm a good Slacker, I created an rc.openvpn file...&lt;br /&gt;
 &lt;br /&gt;
 	CREATE: /etc/rc.d/rc.openvpn&lt;br /&gt;
 	CONTAINS:&lt;br /&gt;
 		#!/bin/sh&lt;br /&gt;
 		#&lt;br /&gt;
 		# /etc/rc.d/rc.openvpn&lt;br /&gt;
 		#&lt;br /&gt;
 		# Start/stop/restart the openvpn server.&lt;br /&gt;
 		#&lt;br /&gt;
 		# To make OpenVPN start automatically at boot, make this&lt;br /&gt;
 		# file executable:  chmod 755 /etc/rc.d/rc.openvpn&lt;br /&gt;
 		#&lt;br /&gt;
 		&lt;br /&gt;
 		ovpn_start() {&lt;br /&gt;
 		  if [ -x /usr/sbin/openvpn -a -r /etc/openvpn/server.conf ]; then&lt;br /&gt;
 		    echo &amp;quot;Starting OpenVPN:  /usr/sbin/openvpn server.conf&amp;quot;&lt;br /&gt;
 		    /usr/sbin/openvpn /etc/openvpn/server.conf &amp;amp;&lt;br /&gt;
 		  fi&lt;br /&gt;
 		}&lt;br /&gt;
 		&lt;br /&gt;
 		ovpn_stop() {&lt;br /&gt;
 		  killall openvpn&lt;br /&gt;
 		}&lt;br /&gt;
 		&lt;br /&gt;
 		ovpn_restart() {&lt;br /&gt;
 		  ovpn_stop&lt;br /&gt;
 		  sleep 2&lt;br /&gt;
 		  ovpn_start&lt;br /&gt;
 		}&lt;br /&gt;
 		&lt;br /&gt;
 		case &amp;quot;$1&amp;quot; in&lt;br /&gt;
 		'start')&lt;br /&gt;
 		  ovpn_start&lt;br /&gt;
 		  ;;&lt;br /&gt;
 		'stop')&lt;br /&gt;
 		  ovpn_stop&lt;br /&gt;
 		  ;;&lt;br /&gt;
 		'restart')&lt;br /&gt;
 		  ovpn_restart&lt;br /&gt;
 		  ;;&lt;br /&gt;
 		*)&lt;br /&gt;
 		  # Default is &amp;quot;start&amp;quot;, for backwards compatibility with previous&lt;br /&gt;
 		  # Slackware versions.  This may change to a 'usage' error someday.&lt;br /&gt;
 		  ovpn_start&lt;br /&gt;
 		esac&lt;br /&gt;
 &lt;br /&gt;
 7) Make it executable (and autostart on reboots)-&lt;br /&gt;
 &lt;br /&gt;
 	chmod 755 /etc/rc.d/rc.openvpn&lt;br /&gt;
 &lt;br /&gt;
 To start/stop it manually- /etc/rc.d/rc.openvpn start (or stop or restart)&lt;br /&gt;
 &lt;br /&gt;
 Now let's fix the firewall so our clients can get to the rest of the world...&lt;br /&gt;
 &lt;br /&gt;
 8) Edit/create /etc/rc.d/rc.firewall&lt;br /&gt;
 &lt;br /&gt;
 	ADD:&lt;br /&gt;
 	iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT&lt;br /&gt;
 	iptables -A FORWARD -i tun+ -j ACCEPT&lt;br /&gt;
 	iptables -A FORWARD -o tun+ -j ACCEPT&lt;br /&gt;
 	iptables -A FORWARD -j ACCEPT&lt;br /&gt;
 	iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE&lt;br /&gt;
 &lt;br /&gt;
 9) Flush the old firewall rules-&lt;br /&gt;
 &lt;br /&gt;
 	iptables -F&lt;br /&gt;
 &lt;br /&gt;
 10) Activate the new rules now-&lt;br /&gt;
 &lt;br /&gt;
 	/etc/rc.d/rc.firewall&lt;br /&gt;
&lt;br /&gt;
If the planets are aligned, you should now have a working OpenVPN server/router.&lt;/div&gt;</description>
			<pubDate>Sat, 09 Jun 2012 19:18:24 GMT</pubDate>
			<dc:creator>Arfon</dc:creator>
			<comments>https://www.slackwiki.com/Talk:OpenVPN_smcr_2012</comments>
		</item>
		<item>
			<title>OpenVPN smcr 2012</title>
			<link>https://www.slackwiki.com/index.php?title=OpenVPN_smcr_2012&amp;diff=714</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=OpenVPN_smcr_2012&amp;diff=714</guid>
			<description>&lt;p&gt;Arfon: CREATED!  Saved because I put a lot of work into it so far and don't wanna lose it&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here's what I did yo get OpenVPN (2.1.4) on my Slackware (13.37) box.&lt;br /&gt;
&lt;br /&gt;
I wanted to get on the internet from public wifi WITHOUT being snooped on so I installed a MULTI-CLIENT, ROUTED (not bridged) OpenVPN server on my Linode.  Again, this is MULTI-CLIENT and ROUTED.&lt;br /&gt;
&lt;br /&gt;
 1) Install OpenVPN from Slackbuilds.org or using sbopkg&lt;br /&gt;
 &lt;br /&gt;
 2) Generate the needed certificates and keys-&lt;br /&gt;
 &lt;br /&gt;
 	cd /usr/doc/openvpn-2.1.4/easy-rsa/2.0/&lt;br /&gt;
 	vi vars&lt;br /&gt;
 		Set the KEY_COUNTRY, KEY_PROVINCE, KEY_CITY, KEY_ORG, and KEY_EMAIL parameters.&lt;br /&gt;
 		Don't leave any of these parameters blank.&lt;br /&gt;
 &lt;br /&gt;
 	source ./vars&lt;br /&gt;
 	./clean-all&lt;br /&gt;
 	./build-ca&lt;br /&gt;
 		answer questions&lt;br /&gt;
 	./build-key-server server (server could be anything e.g. VPN1.blah.net)&lt;br /&gt;
 		answer questions&lt;br /&gt;
 	./build-key client1 (client1 can be anything e.g bobs-phone)&lt;br /&gt;
 		answer questions&lt;br /&gt;
 		repeat for each client to have&lt;br /&gt;
 	./build-dh&lt;br /&gt;
 &lt;br /&gt;
 3) Put the server certs and keys where they need to be-&lt;br /&gt;
 	mkdir /etc/openvpn/certsnkeys&lt;br /&gt;
 	cp ca.crt /etc/openvpn/certsnkeys/&lt;br /&gt;
 	cp ca.key /etc/openvpn/certsnkeys/&lt;br /&gt;
 	cp server.crt /etc/openvpn/certsnkeys/&lt;br /&gt;
 	cp server.key /etc/openvpn/certsnkeys/&lt;br /&gt;
 	cp dh1024.pem /etc/openvpn/&lt;br /&gt;
 &lt;br /&gt;
 4) Send the client certs and keys where they need to be-&lt;br /&gt;
 	Each client gets a copy of his client.crt and client.key AND a copy of ca.crt&lt;br /&gt;
 	EXAMPLE: My android got a copy of client1.crt, client2.key and ca.crt.&lt;br /&gt;
 		My laptop got a copy of client2.crt, client2.key and ca.crt&lt;br /&gt;
 	NOTE: my android need a .p12 file, more on that below.&lt;br /&gt;
 &lt;br /&gt;
 5) Configure the server.conf file-&lt;br /&gt;
 	cd /usr/doc/openvpn-2.1.4&lt;br /&gt;
 	cp server.conf.sample /etc/openvpn/server.conf&lt;br /&gt;
 	cd /etc/openvpn&lt;br /&gt;
 &lt;br /&gt;
 ***NOTE: in /etc/openvpn you will see a file called openvpn.conf.  DO NOT USE THAT!&lt;br /&gt;
 Use server.conf***&lt;br /&gt;
 &lt;br /&gt;
 	Edit /etc/openvpn/server.conf&lt;br /&gt;
 	CHANGE:&lt;br /&gt;
 		ca ca.crt	-&amp;gt; ca /etc/openvpn/certs/ca.crt&lt;br /&gt;
 		cert server.crt	-&amp;gt; cert /etc/openvpn/certsnkeys/server.crt&lt;br /&gt;
 		key server.key	-&amp;gt; key /etc/openvpn/certsnkeys/server.key&lt;br /&gt;
 		dh dh.pem	-&amp;gt; dh /etc/openvpn/dh1024.pem&lt;br /&gt;
 &lt;br /&gt;
 6) Start OpenVPN-&lt;br /&gt;
 Normally you would start OpenVPN by: openvpn /etc/openvpn/server.conf&lt;br /&gt;
 but, being that I'm a good Slacker, I created an rc.openvpn file...&lt;br /&gt;
 &lt;br /&gt;
 	CREATE: /etc/rc.d/rc.openvpn&lt;br /&gt;
 	CONTAINS:&lt;br /&gt;
 		#!/bin/sh&lt;br /&gt;
 		#&lt;br /&gt;
 		# /etc/rc.d/rc.openvpn&lt;br /&gt;
 		#&lt;br /&gt;
 		# Start/stop/restart the openvpn server.&lt;br /&gt;
 		#&lt;br /&gt;
 		# To make OpenVPN start automatically at boot, make this&lt;br /&gt;
 		# file executable:  chmod 755 /etc/rc.d/rc.openvpn&lt;br /&gt;
 		#&lt;br /&gt;
 		&lt;br /&gt;
 		ovpn_start() {&lt;br /&gt;
 		  if [ -x /usr/sbin/openvpn -a -r /etc/openvpn/server.conf ]; then&lt;br /&gt;
 		    echo &amp;quot;Starting OpenVPN:  /usr/sbin/openvpn server.conf&amp;quot;&lt;br /&gt;
 		    /usr/sbin/openvpn /etc/openvpn/server.conf &amp;amp;&lt;br /&gt;
 		  fi&lt;br /&gt;
 		}&lt;br /&gt;
 		&lt;br /&gt;
 		ovpn_stop() {&lt;br /&gt;
 		  killall openvpn&lt;br /&gt;
 		}&lt;br /&gt;
 		&lt;br /&gt;
 		ovpn_restart() {&lt;br /&gt;
 		  ovpn_stop&lt;br /&gt;
 		  sleep 2&lt;br /&gt;
 		  ovpn_start&lt;br /&gt;
 		}&lt;br /&gt;
 		&lt;br /&gt;
 		case &amp;quot;$1&amp;quot; in&lt;br /&gt;
 		'start')&lt;br /&gt;
 		  ovpn_start&lt;br /&gt;
 		  ;;&lt;br /&gt;
 		'stop')&lt;br /&gt;
 		  ovpn_stop&lt;br /&gt;
 		  ;;&lt;br /&gt;
 		'restart')&lt;br /&gt;
 		  ovpn_restart&lt;br /&gt;
 		  ;;&lt;br /&gt;
 		*)&lt;br /&gt;
 		  # Default is &amp;quot;start&amp;quot;, for backwards compatibility with previous&lt;br /&gt;
 		  # Slackware versions.  This may change to a 'usage' error someday.&lt;br /&gt;
 		  ovpn_start&lt;br /&gt;
 		esac&lt;br /&gt;
 &lt;br /&gt;
 7) Make it executable (and autostart on reboots)-&lt;br /&gt;
 &lt;br /&gt;
 	chmod 755 /etc/rc.d/rc.openvpn&lt;br /&gt;
 &lt;br /&gt;
 To start/stop it manually- /etc/rc.d/rc.openvpn start (or stop or restart)&lt;br /&gt;
 &lt;br /&gt;
 Now let's fix the firewall so our clients can get to the rest of the world...&lt;br /&gt;
 &lt;br /&gt;
 8) Edit/create /etc/rc.d/rc.firewall&lt;br /&gt;
 &lt;br /&gt;
 	ADD:&lt;br /&gt;
 	iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT&lt;br /&gt;
 	iptables -A FORWARD -i tun+ -j ACCEPT&lt;br /&gt;
 	iptables -A FORWARD -o tun+ -j ACCEPT&lt;br /&gt;
 	iptables -A FORWARD -j ACCEPT&lt;br /&gt;
 	iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE&lt;br /&gt;
 &lt;br /&gt;
 9) Flush the old firewall rules-&lt;br /&gt;
 &lt;br /&gt;
 	iptables -F&lt;br /&gt;
 &lt;br /&gt;
 10) Activate the new rules now-&lt;br /&gt;
 &lt;br /&gt;
 	/etc/rc.d/rc.firewall&lt;br /&gt;
&lt;br /&gt;
If the planets are aligned, you should now have a working OpenVPN server/router.&lt;/div&gt;</description>
			<pubDate>Sat, 09 Jun 2012 19:16:19 GMT</pubDate>
			<dc:creator>Arfon</dc:creator>
			<comments>https://www.slackwiki.com/Talk:OpenVPN_smcr_2012</comments>
		</item>
		<item>
			<title>OpenVPN</title>
			<link>https://www.slackwiki.com/index.php?title=OpenVPN&amp;diff=713</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=OpenVPN&amp;diff=713</guid>
			<description>&lt;p&gt;Arfon: Fixed broken link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Server]]&lt;br /&gt;
[[Category:Networking]]&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
As a user-space VPN daemon, OpenVPN is compatible with with SSL/TLS, RSA Certificates and X509 PKI, NAT, DHCP, and TUN/TAP virtual devices.&lt;br /&gt;
&lt;br /&gt;
OpenVPN is not compatible with IPSec, IKE, PPTP, or L2TP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[OpenVPN_smcr_2012|OpenVPN server setup on Slackware 13.37]] - Multi-client with routing (not bridged). (2012)&lt;br /&gt;
&lt;br /&gt;
[[OpenVPN_pre-2009|OpenVPN server/client instructions]] (Pre-2009)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[OpenVPN(ID)|OpenVPN Instructions - Bahasa Indonesia]] (Pre-2009)&lt;/div&gt;</description>
			<pubDate>Sat, 09 Jun 2012 19:12:02 GMT</pubDate>
			<dc:creator>Arfon</dc:creator>
			<comments>https://www.slackwiki.com/Talk:OpenVPN</comments>
		</item>
		<item>
			<title>OpenVPN</title>
			<link>https://www.slackwiki.com/index.php?title=OpenVPN&amp;diff=712</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=OpenVPN&amp;diff=712</guid>
			<description>&lt;p&gt;Arfon: Moved old instructions to their own page. Made this page a menu for the instructions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Server]]&lt;br /&gt;
[[Category:Networking]]&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
As a user-space VPN daemon, OpenVPN is compatible with with SSL/TLS, RSA Certificates and X509 PKI, NAT, DHCP, and TUN/TAP virtual devices.&lt;br /&gt;
&lt;br /&gt;
OpenVPN is not compatible with IPSec, IKE, PPTP, or L2TP.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[openvpn_smcr_2012|OpenVPN server setup on Slackware 13.37]] - Multi-client with routing (not bridged). (2012)&lt;br /&gt;
&lt;br /&gt;
[[openvpn_pre-2009|OpenVPN server/client instructions]] (Pre-2009)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[OpenVPN(ID)|OpenVPN Instructions - Bahasa Indonesia]] (Pre-2009)&lt;/div&gt;</description>
			<pubDate>Sat, 09 Jun 2012 19:10:37 GMT</pubDate>
			<dc:creator>Arfon</dc:creator>
			<comments>https://www.slackwiki.com/Talk:OpenVPN</comments>
		</item>
		<item>
			<title>OpenVPN pre-2009</title>
			<link>https://www.slackwiki.com/index.php?title=OpenVPN_pre-2009&amp;diff=711</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=OpenVPN_pre-2009&amp;diff=711</guid>
			<description>&lt;p&gt;Arfon: Moved from OpenVPN&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Server]]&lt;br /&gt;
[[Category:Networking]]&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
As a user-space VPN daemon, OpenVPN is compatible with with SSL/TLS, RSA Certificates and X509 PKI, NAT, DHCP, and TUN/TAP virtual devices.&lt;br /&gt;
&lt;br /&gt;
OpenVPN is not compatible with IPSec, IKE, PPTP, or L2TP.&lt;br /&gt;
&lt;br /&gt;
'''[[OpenVPN(ID)|OpenVPN Instructions - Bahasa Indonesia]]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
'''EASY WAY:'''&lt;br /&gt;
Download and install from Slackbuilds.org or sbopkg.&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
'''HARD WAY:'''&lt;br /&gt;
Install from source.&lt;br /&gt;
&lt;br /&gt;
Download source from [http://openvpn.net openvpn.net]&lt;br /&gt;
&lt;br /&gt;
Download verison 2.0&lt;br /&gt;
&lt;br /&gt;
install Lzo&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tar zxvf lzo-1.08.tar.gz&lt;br /&gt;
cd lzo-1-08.tar.gz&lt;br /&gt;
./configure --prefix=/usr&lt;br /&gt;
make ; make install-strip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
install OpenVPN&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tar zxvf openvpn-2.0.tar.gz&lt;br /&gt;
cd openvpn-2.0&lt;br /&gt;
./configure --prefix=/usr \&lt;br /&gt;
--sysconfdir=/etc/openvpn \&lt;br /&gt;
--enable-pthread \&lt;br /&gt;
--enable-iproute2 \&lt;br /&gt;
--with-ssl \&lt;br /&gt;
--with-lzo-header=/usr/include \&lt;br /&gt;
--with-lzo-lib=/usr/lib \&lt;br /&gt;
--with-ifconfig \&lt;br /&gt;
--with-route \&lt;br /&gt;
--with-mem-check=dmalloc &lt;br /&gt;
make ; make install-strip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Creating The Certificates==&lt;br /&gt;
&lt;br /&gt;
Save all certificates in '''''/etc/openvpn/certs'''''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
This is a small RSA key management package,&lt;br /&gt;
based on the openssl command line tool, that&lt;br /&gt;
can be found in the easy-rsa subdirectory&lt;br /&gt;
of the OpenVPN distribution.&lt;br /&gt;
&lt;br /&gt;
These are reference notes.  For step&lt;br /&gt;
by step instructions, see the HOWTO:&lt;br /&gt;
&lt;br /&gt;
http://openvpn.net/howto.html&lt;br /&gt;
&lt;br /&gt;
INSTALL&lt;br /&gt;
&lt;br /&gt;
1. Edit vars.&lt;br /&gt;
2. Set KEY_CONFIG to point to the openssl.cnf file&lt;br /&gt;
   included in this distribution.&lt;br /&gt;
3. Set KEY_DIR to point to a directory which will&lt;br /&gt;
   contain all keys, certificates, etc.  This&lt;br /&gt;
   directory need not exist, and if it does,&lt;br /&gt;
   it will be deleted with rm -rf, so BE&lt;br /&gt;
   CAREFUL how you set KEY_DIR.&lt;br /&gt;
4. (Optional) Edit other fields in vars&lt;br /&gt;
   per your site data.  You may want to&lt;br /&gt;
   increase KEY_SIZE to 2048 if you are&lt;br /&gt;
   paranoid and don't mind slower key&lt;br /&gt;
   processing, but certainly 1024 is&lt;br /&gt;
   fine for testing purposes.  KEY_SIZE&lt;br /&gt;
   must be compatible across both peers&lt;br /&gt;
   participating in a secure SSL/TLS&lt;br /&gt;
   connection.&lt;br /&gt;
5  . vars&lt;br /&gt;
6. ./clean-all&lt;br /&gt;
7. As you create certificates, keys, and&lt;br /&gt;
   certificate signing requests, understand that&lt;br /&gt;
   only .key files should be kept confidential.&lt;br /&gt;
   .crt and .csr files can be sent over insecure&lt;br /&gt;
   channels such as plaintext email.&lt;br /&gt;
8. You should never need to copy a .key file&lt;br /&gt;
   between computers.  Normally each computer&lt;br /&gt;
   will have its own certificate/key pair.&lt;br /&gt;
&lt;br /&gt;
BUILD YOUR OWN ROOT CERTIFICATE AUTHORITY (CA) CERTIFICATE/KEY&lt;br /&gt;
&lt;br /&gt;
1. ./build-ca&lt;br /&gt;
2. ca.crt and ca.key will be built in your KEY_DIR&lt;br /&gt;
   directory&lt;br /&gt;
&lt;br /&gt;
BUILD AN INTERMEDIATE CERTIFICATE AUTHORITY CERTIFICATE/KEY (optional)&lt;br /&gt;
&lt;br /&gt;
1. ./build-inter inter&lt;br /&gt;
2. inter.crt and inter.key will be built in your KEY_DIR&lt;br /&gt;
   directory and signed with your root certificate.&lt;br /&gt;
&lt;br /&gt;
BUILD DIFFIE-HELLMAN PARAMETERS (necessary for&lt;br /&gt;
the server end of a SSL/TLS connection).&lt;br /&gt;
&lt;br /&gt;
1. ./build-dh&lt;br /&gt;
&lt;br /&gt;
BUILD A CERTIFICATE SIGNING REQUEST (If&lt;br /&gt;
you want to sign your certificate with a root&lt;br /&gt;
certificate controlled by another individual&lt;br /&gt;
or organization, or residing on a different machine).&lt;br /&gt;
&lt;br /&gt;
1. Get ca.crt (the root certificate) from your&lt;br /&gt;
   certificate authority.  Though this&lt;br /&gt;
   transfer can be over an insecure channel, to prevent&lt;br /&gt;
   man-in-the-middle attacks you must confirm that&lt;br /&gt;
   ca.crt was not tampered with.  Large CAs solve this&lt;br /&gt;
   problem by hardwiring their root certificates into&lt;br /&gt;
   popular web browsers.  A simple way to verify a root&lt;br /&gt;
   CA is to call the issuer on the telephone and confirm&lt;br /&gt;
   that the md5sum or sha1sum signatures on the ca.crt&lt;br /&gt;
   files match (such as with the command: &amp;quot;md5sum ca.crt&amp;quot;).&lt;br /&gt;
2. Choose a name for your certificate such as your computer&lt;br /&gt;
   name.  In our example we will use &amp;quot;mycert&amp;quot;.&lt;br /&gt;
3. ./build-req mycert&lt;br /&gt;
4. You can ignore most of the fields, but set&lt;br /&gt;
   &amp;quot;Common Name&amp;quot; to something unique such as your&lt;br /&gt;
   computer's host name.  Leave all password&lt;br /&gt;
   fields blank, unless you want your private key&lt;br /&gt;
   to be protected by password.  Using a password&lt;br /&gt;
   is not required -- it will make your key more secure&lt;br /&gt;
   but also more inconvenient to use, because you will&lt;br /&gt;
   need to supply your password anytime the key is used.&lt;br /&gt;
   NOTE: if you are using a password, use ./build-req-pass&lt;br /&gt;
   instead of ./build-req&lt;br /&gt;
5. Your key will be written to $KEY_DIR/mycert.key&lt;br /&gt;
6. Your certificate signing request will be written to&lt;br /&gt;
   to $KEY_DIR/mycert.csr&lt;br /&gt;
7. Email mycert.csr to the individual or organization&lt;br /&gt;
   which controls the root certificate.  This can be&lt;br /&gt;
   done over an insecure channel.&lt;br /&gt;
8. After the .csr file is signed by the root certificate&lt;br /&gt;
   authority, you will receive a file mycert.crt&lt;br /&gt;
   (your certificate).  Place mycert.crt in your&lt;br /&gt;
   KEY_DIR directory.&lt;br /&gt;
9. The combined files of mycert.crt, mycert.key,&lt;br /&gt;
   and ca.crt can now be used to secure one end of&lt;br /&gt;
   an SSL/TLS connection.&lt;br /&gt;
&lt;br /&gt;
SIGN A CERTIFICATE SIGNING REQUEST&lt;br /&gt;
&lt;br /&gt;
1. ./sign-req mycert&lt;br /&gt;
2. mycert.crt will be built in your KEY_DIR&lt;br /&gt;
   directory using mycert.csr and your root CA&lt;br /&gt;
   file as input.&lt;br /&gt;
&lt;br /&gt;
BUILD AND SIGN A CERTIFICATE SIGNING REQUEST&lt;br /&gt;
USING A LOCALLY INSTALLED ROOT CERTIFICATE/KEY -- this&lt;br /&gt;
script generates and signs a certificate in one step,&lt;br /&gt;
but it requires that the generated certificate and private&lt;br /&gt;
key files be copied to the destination host over a&lt;br /&gt;
secure channel.&lt;br /&gt;
&lt;br /&gt;
1. ./build-key mycert (no password protection)&lt;br /&gt;
2. OR ./build-key-pass mycert (with password protection)&lt;br /&gt;
3. OR ./build-key-pkcs12 mycert (PKCS #12 format)&lt;br /&gt;
4. OR ./build-key-server mycert (with nsCertType=server)&lt;br /&gt;
5. mycert.crt and mycert.key will be built in your&lt;br /&gt;
   KEY_DIR directory, and mycert.crt will be signed&lt;br /&gt;
   by your root CA. If ./build-key-pkcs12 was used a&lt;br /&gt;
   mycert.p12 file will also be created including the&lt;br /&gt;
   private key, certificate and the ca certificate.&lt;br /&gt;
&lt;br /&gt;
IMPORTANT&lt;br /&gt;
&lt;br /&gt;
To avoid a possible Man-in-the-Middle attack where an authorized&lt;br /&gt;
client tries to connect to another client by impersonating the&lt;br /&gt;
server, make sure to enforce some kind of server certificate&lt;br /&gt;
verification by clients.  There are currently four different ways&lt;br /&gt;
of accomplishing this, listed in the order of preference:&lt;br /&gt;
&lt;br /&gt;
(1) Build your server certificates with the build-key-server&lt;br /&gt;
    script.  This will designate the certificate as a&lt;br /&gt;
    server-only certificate by setting nsCertType=server.&lt;br /&gt;
    Now add the following line to your client configuration:&lt;br /&gt;
&lt;br /&gt;
    ns-cert-type server&lt;br /&gt;
&lt;br /&gt;
    This will block clients from connecting to any&lt;br /&gt;
    server which lacks the nsCertType=server designation&lt;br /&gt;
    in its certificate, even if the certificate has been&lt;br /&gt;
    signed by the CA which is cited in the OpenVPN configuration&lt;br /&gt;
    file (--ca directive).&lt;br /&gt;
&lt;br /&gt;
(2) Use the --tls-remote directive on the client to&lt;br /&gt;
    accept/reject the server connection based on the common&lt;br /&gt;
    name of the server certificate.&lt;br /&gt;
&lt;br /&gt;
(3) Use a --tls-verify script or plugin to accept/reject the&lt;br /&gt;
    server connection based on a custom test of the server&lt;br /&gt;
    certificate's embedded X509 subject details.&lt;br /&gt;
IMPORTANT&lt;br /&gt;
&lt;br /&gt;
To avoid a possible Man-in-the-Middle attack where an authorized&lt;br /&gt;
client tries to connect to another client by impersonating the&lt;br /&gt;
server, make sure to enforce some kind of server certificate&lt;br /&gt;
verification by clients.  There are currently four different ways&lt;br /&gt;
of accomplishing this, listed in the order of preference:&lt;br /&gt;
&lt;br /&gt;
(1) Build your server certificates with the build-key-server&lt;br /&gt;
    script.  This will designate the certificate as a&lt;br /&gt;
    server-only certificate by setting nsCertType=server.&lt;br /&gt;
    Now add the following line to your client configuration:&lt;br /&gt;
&lt;br /&gt;
    ns-cert-type server&lt;br /&gt;
&lt;br /&gt;
    This will block clients from connecting to any&lt;br /&gt;
    server which lacks the nsCertType=server designation&lt;br /&gt;
    in its certificate, even if the certificate has been&lt;br /&gt;
    signed by the CA which is cited in the OpenVPN configuration&lt;br /&gt;
    file (--ca directive).&lt;br /&gt;
&lt;br /&gt;
(2) Use the --tls-remote directive on the client to&lt;br /&gt;
    accept/reject the server connection based on the common&lt;br /&gt;
    name of the server certificate.&lt;br /&gt;
&lt;br /&gt;
(3) Use a --tls-verify script or plugin to accept/reject the&lt;br /&gt;
    server connection based on a custom test of the server&lt;br /&gt;
    certificate's embedded X509 subject details.&lt;br /&gt;
&lt;br /&gt;
(4) Sign server certificates with one CA and client certificates&lt;br /&gt;
    with a different CA.  The client config &amp;quot;ca&amp;quot; directive should&lt;br /&gt;
    reference the server-signing CA while the server config &amp;quot;ca&amp;quot;&lt;br /&gt;
    directive should reference the client-signing CA.&lt;br /&gt;
&lt;br /&gt;
NOTES&lt;br /&gt;
&lt;br /&gt;
Show certificate fields:&lt;br /&gt;
  openssl x509 -in cert.crt -text&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cd easy-rsa&lt;br /&gt;
# vi vars&lt;br /&gt;
. vars&lt;br /&gt;
./clean-all&lt;br /&gt;
&lt;br /&gt;
## BUILD YOUR OWN ROOT CERTIFICATE AUTHORITY (CA) CERTIFICATE/KEY&lt;br /&gt;
./build.ca&lt;br /&gt;
&lt;br /&gt;
## BUILD AN INTERMEDIATE CERTIFICATE AUTHORITY CERTIFICATE/KEY (optional)&lt;br /&gt;
./build-inter inter&lt;br /&gt;
&lt;br /&gt;
## BUILD DIFFIE-HELLMAN PARAMETERS (necessary for the server end of a SSL/TLS connection).&lt;br /&gt;
./build.dh&lt;br /&gt;
&lt;br /&gt;
## BUILD A CERTIFICATE SIGNING REQUEST &lt;br /&gt;
## (If you want to sign your certificate with a root certificate controlled by another individual &lt;br /&gt;
## or organization, or residing on a different machine)&lt;br /&gt;
&lt;br /&gt;
./build-req mycert&lt;br /&gt;
## SIGN A CERTIFICATE SIGNING REQUEST&lt;br /&gt;
./sign-req mycert&lt;br /&gt;
&lt;br /&gt;
## BUILD AND SIGN A CERTIFICATE SIGNING REQUEST USING A LOCALLY INSTALLED ROOT CERTIFICATE/KEY&lt;br /&gt;
./build-key mycert (no password protection)&lt;br /&gt;
OR &lt;br /&gt;
./build-key-pass mycert (with password protection)&lt;br /&gt;
OR &lt;br /&gt;
./build-key-pkcs12 mycert (PKCS #12 format)&lt;br /&gt;
OR &lt;br /&gt;
./build-key-server mycert (with nsCertType=server)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configuring the Server==&lt;br /&gt;
&lt;br /&gt;
Edit the server.conf file: '''''vi /etc/openvpn/server.conf'''''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## Mode Server&lt;br /&gt;
mode server&lt;br /&gt;
&lt;br /&gt;
## Local Host Name/IP Server&lt;br /&gt;
;local 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
## Protocol&lt;br /&gt;
;proto tcp&lt;br /&gt;
proto udp&lt;br /&gt;
&lt;br /&gt;
## Port&lt;br /&gt;
; port 1194&lt;br /&gt;
&lt;br /&gt;
## Device Interface&lt;br /&gt;
;dev tap&lt;br /&gt;
dev tun&lt;br /&gt;
&lt;br /&gt;
## TAP-Win32 adapter name&lt;br /&gt;
;dev-node MyTap&lt;br /&gt;
&lt;br /&gt;
## SSL/TLS &lt;br /&gt;
## root certificate (ca)&lt;br /&gt;
## certificate (cert)&lt;br /&gt;
## private key (key)&lt;br /&gt;
ca /etc/openvpn/certs/ca.crt&lt;br /&gt;
cert /etc/openvpn/certs/server.crt&lt;br /&gt;
key /etc/openvpn/certs/server.key&lt;br /&gt;
&lt;br /&gt;
## Diffie hellman parameters&lt;br /&gt;
dh dh1024.pem&lt;br /&gt;
&lt;br /&gt;
## VPN subnet&lt;br /&gt;
server 10.8.0.0 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
ifconfig-pool-persist ipp.txt&lt;br /&gt;
&lt;br /&gt;
##ethernet bridging&lt;br /&gt;
;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100&lt;br /&gt;
&lt;br /&gt;
## dhcpcaveats&lt;br /&gt;
;push &amp;quot;route 192.168.10.0 255.255.255.0&amp;quot;&lt;br /&gt;
;push &amp;quot;route 192.168.20.0 255.255.255.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
;client-config-dir ccd&lt;br /&gt;
&lt;br /&gt;
;route 192.168.40.128 255.255.255.248&lt;br /&gt;
&lt;br /&gt;
;client-config-dir ccd&lt;br /&gt;
&lt;br /&gt;
;route 10.9.0.0 255.255.255.252&lt;br /&gt;
&lt;br /&gt;
;learn-address ./script&lt;br /&gt;
&lt;br /&gt;
## dhcpcaveats&lt;br /&gt;
;push &amp;quot;redirect-gateway&amp;quot;&lt;br /&gt;
;push &amp;quot;dhcp-option DNS 10.8.0.1&amp;quot;&lt;br /&gt;
;push &amp;quot;dhcp-option WINS 10.8.0.1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
##&lt;br /&gt;
;client-to-client&lt;br /&gt;
&lt;br /&gt;
## same &amp;quot;COMMON NAME&amp;quot; certificate/key&lt;br /&gt;
;duplicate-cn&lt;br /&gt;
&lt;br /&gt;
## Status Connection&lt;br /&gt;
keepalive 10 120&lt;br /&gt;
&lt;br /&gt;
## tls-auth key&lt;br /&gt;
;tls-auth ta.key 0 &lt;br /&gt;
&lt;br /&gt;
## Cryptographic cipher&lt;br /&gt;
;cipher BF-CBC        # Blowfish (default)&lt;br /&gt;
;cipher AES-128-CBC   # AES&lt;br /&gt;
;cipher DES-EDE3-CBC  # Triple-DES&lt;br /&gt;
&lt;br /&gt;
## Link Compresion&lt;br /&gt;
comp-lzo&lt;br /&gt;
&lt;br /&gt;
## Max Client Connections&lt;br /&gt;
;max-clients 100&lt;br /&gt;
&lt;br /&gt;
## daemon privileges (non windows saja)&lt;br /&gt;
user nobody&lt;br /&gt;
group nobody&lt;br /&gt;
&lt;br /&gt;
persist-key&lt;br /&gt;
persist-tun&lt;br /&gt;
&lt;br /&gt;
## Openvpn Log&lt;br /&gt;
;log         /var/log/openvpn/openvpn.log&lt;br /&gt;
;log-append  /var/log/openvpn/openvpn.log&lt;br /&gt;
&lt;br /&gt;
## Output Log&lt;br /&gt;
status /var/log/openvpn/openvpn-status.log&lt;br /&gt;
&lt;br /&gt;
## Log Verbosity&lt;br /&gt;
## 0 is silent, except for fatal errors&lt;br /&gt;
## 4 is reasonable for general usage&lt;br /&gt;
## 5 and 6 can help to debug connection problems&lt;br /&gt;
## 9 is extremely verbose&lt;br /&gt;
verb 3&lt;br /&gt;
&lt;br /&gt;
## Repeating Messages&lt;br /&gt;
;mute 20&lt;br /&gt;
&lt;br /&gt;
## Pid File&lt;br /&gt;
writepid /var/run/openvpn.pid&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Routing'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
route add -net 10.0.1.0 netmask 255.255.255.0 gw 10.4.0.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Firewall'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iptables -A INPUT -p udp -s 1.2.3.4 --dport 1194 -j ACCEPT&lt;br /&gt;
OR&lt;br /&gt;
iptables -A INPUT -p udp --dport 1194 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
## Tun Device&lt;br /&gt;
iptables -A INPUT -i tun+ -j ACCEPT&lt;br /&gt;
iptables -A FORWARD -i tun+ -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
## Tap Device&lt;br /&gt;
iptables -A INPUT -i tap+ -j ACCEPT&lt;br /&gt;
iptables -A FORWARD -i tap+ -j ACCEPT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configuring the Client==&lt;br /&gt;
&lt;br /&gt;
Edit the client.conf file: '''''vi /etc/openvpn/client.conf'''''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## Config&lt;br /&gt;
client&lt;br /&gt;
&lt;br /&gt;
## Device Interface&lt;br /&gt;
;dev tap&lt;br /&gt;
dev tun&lt;br /&gt;
&lt;br /&gt;
## Tap adapter name (Win only)&lt;br /&gt;
;dev-node MyTap&lt;br /&gt;
&lt;br /&gt;
## Conectivity&lt;br /&gt;
;proto tcp&lt;br /&gt;
proto udp&lt;br /&gt;
&lt;br /&gt;
## Server [hostname/ip] [port]&lt;br /&gt;
remote my-server-1 1194&lt;br /&gt;
;remote my-server-2 1194&lt;br /&gt;
&lt;br /&gt;
## load-balancing&lt;br /&gt;
;remote-random&lt;br /&gt;
&lt;br /&gt;
## resolve host name OpenVPN server&lt;br /&gt;
resolv-retry infinite&lt;br /&gt;
&lt;br /&gt;
# local port&lt;br /&gt;
nobind&lt;br /&gt;
&lt;br /&gt;
## privileges (non windows saja)&lt;br /&gt;
user nobody&lt;br /&gt;
group nobody&lt;br /&gt;
&lt;br /&gt;
## preserve&lt;br /&gt;
persist-key&lt;br /&gt;
persist-tun&lt;br /&gt;
&lt;br /&gt;
## HTTP proxy&lt;br /&gt;
;http-proxy-retry &lt;br /&gt;
;http-proxy [proxy server] [proxy port]&lt;br /&gt;
&lt;br /&gt;
## duplicate packet warnings&lt;br /&gt;
;mute-replay-warnings&lt;br /&gt;
&lt;br /&gt;
## SSL/TLS parms&lt;br /&gt;
/etc/openvpn/certs/ca ca.crt&lt;br /&gt;
/etc/openvpn/certs/cert client.crt&lt;br /&gt;
/etc/openvpn/certs/key client.key&lt;br /&gt;
&lt;br /&gt;
## nsCertType key&lt;br /&gt;
;ns-cert-type server&lt;br /&gt;
&lt;br /&gt;
## tls-auth key&lt;br /&gt;
;tls-auth /etc/openvpn/certs/ta.key 1&lt;br /&gt;
&lt;br /&gt;
## Cryptographic cipher&lt;br /&gt;
;cipher x&lt;br /&gt;
&lt;br /&gt;
## Link compression&lt;br /&gt;
comp-lzo&lt;br /&gt;
&lt;br /&gt;
## verbosity&lt;br /&gt;
## 0 is silent, except for fatal errors&lt;br /&gt;
## 4 is reasonable for general usage&lt;br /&gt;
## 5 and 6 can help to debug connection problems&lt;br /&gt;
## 9 is extremely verbose&lt;br /&gt;
verb 3&lt;br /&gt;
&lt;br /&gt;
## repeating messages&lt;br /&gt;
;mute 20&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Routing'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
route add -net 10.0.0.0 netmask 255.255.255.0 gw 10.4.0.1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&lt;br /&gt;
'''Example 1:''' A simple tunnel without security&amp;lt;br&amp;gt;&lt;br /&gt;
'''On May: Server Side'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openvpn --remote jun.kg --dev tun1 --ifconfig 10.4.0.1 10.4.0.2 --verb 9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''On Jun: Client Side'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openvpn --remote may.kg --dev tun1 --ifconfig 10.4.0.2 10.4.0.1 --verb 9 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On May:&lt;br /&gt;
    ping 10.4.0.2 &lt;br /&gt;
&lt;br /&gt;
On Jun:&lt;br /&gt;
    ping 10.4.0.1&lt;br /&gt;
&lt;br /&gt;
'''Example 2:''' A tunnel with static-key security (i.e. using a pre-shared secret)&amp;lt;br&amp;gt;&lt;br /&gt;
'''On May: Server Side'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openvpn --remote jun.kg --dev tun1 --ifconfig 10.4.0.1 10.4.0.2 \&lt;br /&gt;
--verb 5 --secret key&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''On Jun: Client Side'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openvpn --remote may.kg --dev tun1 --ifconfig 10.4.0.2 10.4.0.1 \&lt;br /&gt;
--verb 5 --secret key &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On May:&lt;br /&gt;
    ping 10.4.0.2 &lt;br /&gt;
&lt;br /&gt;
On Jun:&lt;br /&gt;
    ping 10.4.0.1&lt;br /&gt;
&lt;br /&gt;
'''Example 3:''' A tunnel with full TLS-based security &amp;lt;br&amp;gt;&lt;br /&gt;
'''On May: Server Side'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openvpn --remote jun.kg --dev tun1 --ifconfig 10.4.0.1 10.4.0.2 \&lt;br /&gt;
--tls-client --ca tmp-ca.crt --cert client.crt --key client.key \&lt;br /&gt;
--reneg-sec 60 --verb 5 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''On Jun: Client Side'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openvpn --remote may.kg --dev tun1 --ifconfig 10.4.0.2 10.4.0.1 \&lt;br /&gt;
--tls-server --ca tmp-ca.crt --cert server.crt --key server.key \&lt;br /&gt;
--reneg-sec 60 --verb 5 --dh dh1024.pem&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On May:&lt;br /&gt;
&lt;br /&gt;
    ping 10.4.0.2 &lt;br /&gt;
&lt;br /&gt;
On Jun:&lt;br /&gt;
&lt;br /&gt;
    ping 10.4.0.1&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
&lt;br /&gt;
* http://dmalloc.com/&lt;br /&gt;
* http://valgrind.org/&lt;br /&gt;
* http://www.oberhumer.com/opensource/lzo/&lt;br /&gt;
* http://openvpn.net/&lt;br /&gt;
* http://openvpn.net/howto.html&lt;br /&gt;
* http://openvpn.net/1xhowto.html (Old-v1.06)&lt;br /&gt;
* http://openvpn.net/man.html&lt;/div&gt;</description>
			<pubDate>Sat, 09 Jun 2012 19:03:37 GMT</pubDate>
			<dc:creator>Arfon</dc:creator>
			<comments>https://www.slackwiki.com/Talk:OpenVPN_pre-2009</comments>
		</item>
		<item>
			<title>Pptp</title>
			<link>https://www.slackwiki.com/index.php?title=Pptp&amp;diff=710</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=Pptp&amp;diff=710</guid>
			<description>&lt;p&gt;Arfon: /* (Poptop) pptpd Server Setup */  iptables -f --&amp;gt; iptables -F&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==(Poptop) pptpd Server Setup==&lt;br /&gt;
&lt;br /&gt;
Here's what I did to get Poptop pptpd (1.3.4) running on my Slackware (13.37) box.&lt;br /&gt;
&lt;br /&gt;
 1) Install the official Slackware ppp package using pkgtool or slackpkg.&lt;br /&gt;
 &lt;br /&gt;
 2) Install the ppptpd package from Slackbuilds.org using sbopkg.&lt;br /&gt;
 	***NOTE: The package name is NOT Poptop, it's pptpd***&lt;br /&gt;
 &lt;br /&gt;
 3) Edit /etc/pptpd.conf&lt;br /&gt;
 &lt;br /&gt;
 	ADD:&lt;br /&gt;
 		localip 10.7.0.1&lt;br /&gt;
 		remoteip 10.7.0.2-50&lt;br /&gt;
 	CHANGE:&lt;br /&gt;
 		option /etc/ppp/options.pptpd -&amp;gt; option /etc/ppp/options&lt;br /&gt;
 &lt;br /&gt;
 4) Edit /etc/ppp/options&lt;br /&gt;
 	HERE IS A GOTCHA- The official Slackware ppp package (at the time of this writing) contains an error in the options&lt;br /&gt;
 	file. The pppd binary was compiled to look for the new ms-dns parameter but the option file has the old dns-addr&lt;br /&gt;
 	parameter.&lt;br /&gt;
 &lt;br /&gt;
 	CHANGE:&lt;br /&gt;
 	# dns-addr 192.168.1.1 -&amp;gt; ms-dns 8.8.8.8 (or whatever your dns server is)&lt;br /&gt;
 &lt;br /&gt;
 5) Edit the /etc/ppp/chap-secrets file.&lt;br /&gt;
 	For some reason, the default Slackware package has 4 example entries in it that are not commented (jacco,*,sam,*)&lt;br /&gt;
 	delete these.  You don't want jacco or sam to have a free connection into your box...&lt;br /&gt;
 &lt;br /&gt;
 	ADD: one entry for each user you want to allow access.&lt;br /&gt;
 	Format is: CLIENT [tab] SERVER [tab] PASSWORD [tab] IP ADDRESS&lt;br /&gt;
 	Mine looks like this:&lt;br /&gt;
 &lt;br /&gt;
 	bob	*	&amp;quot;BobsPasswordIsStrong&amp;quot;	*&lt;br /&gt;
 	sue	*	&amp;quot;FluffyBunnies92&amp;quot;	*&lt;br /&gt;
 &lt;br /&gt;
 6) Finally to start pptpd, normally you would just execute 'pptpd &amp;amp;' but being that I'm a good Slacker, I wrote an&lt;br /&gt;
 rc.pptpd script.&lt;br /&gt;
 	Create /etc/rc.d/rc.pptpd&lt;br /&gt;
 	contents:&lt;br /&gt;
 		#!/bin/sh&lt;br /&gt;
 		#&lt;br /&gt;
 		# /etc/rc.d/rc.pptpd&lt;br /&gt;
 		#&lt;br /&gt;
 		# Start/stop/restart the pptpd server.&lt;br /&gt;
 		#&lt;br /&gt;
 		# To make PopTop start automatically at boot, make this&lt;br /&gt;
 		# file executable:  chmod 755 /etc/rc.d/rc.pptpd&lt;br /&gt;
 		#&lt;br /&gt;
 		&lt;br /&gt;
 		pptpd_start() {&lt;br /&gt;
 		  if [ -x /usr/sbin/pptpd ]; then&lt;br /&gt;
 		    echo &amp;quot;Starting PopTop pptpd:  /usr/sbin/pptpd server.conf&amp;quot;&lt;br /&gt;
 		    /usr/sbin/pptpd &amp;amp;&lt;br /&gt;
 		  fi&lt;br /&gt;
 		}&lt;br /&gt;
 		&lt;br /&gt;
 		pptpd_stop() {&lt;br /&gt;
 		  killall pptpd&lt;br /&gt;
 		}&lt;br /&gt;
 		&lt;br /&gt;
 		pptpd_restart() {&lt;br /&gt;
 		  pptpd_stop&lt;br /&gt;
 		  sleep 2&lt;br /&gt;
 		  pptpd_start&lt;br /&gt;
 		}&lt;br /&gt;
 		&lt;br /&gt;
 		case &amp;quot;$1&amp;quot; in&lt;br /&gt;
 		'start')&lt;br /&gt;
 		  pptpd_start&lt;br /&gt;
 		  ;;&lt;br /&gt;
 		'stop')&lt;br /&gt;
 		  pptpd_stop&lt;br /&gt;
 		  ;;&lt;br /&gt;
 		'restart')&lt;br /&gt;
 		  pptpd_restart&lt;br /&gt;
 		  ;;&lt;br /&gt;
 		*)&lt;br /&gt;
 		  # Default is &amp;quot;start&amp;quot;, for backwards compatibility with previous&lt;br /&gt;
 		  # Slackware versions.  This may change to a 'usage' error someday.&lt;br /&gt;
 		  pptpd_start&lt;br /&gt;
 		esac&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 7) Make it executable (and autobootable on start up)&lt;br /&gt;
 &lt;br /&gt;
 	chmod 755 /etc/rc.d/rc.pptpd&lt;br /&gt;
 &lt;br /&gt;
 To start it manually- /etc/rc.d/rc.pptpd start&lt;br /&gt;
 &lt;br /&gt;
 To be useful you next need to configure your firewall to forward and masquerade traffic from the vpn out to&lt;br /&gt;
 the world...&lt;br /&gt;
 &lt;br /&gt;
 8) Edit/create: /etc/rc.d/rc.firewall&lt;br /&gt;
 &lt;br /&gt;
 	ADD:&lt;br /&gt;
 		iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT&lt;br /&gt;
 		iptables -A FORWARD -i ppp+ -j ACCEPT&lt;br /&gt;
 		iptables -A FORWARD -o ppp+ -j ACCEPT&lt;br /&gt;
 		iptables -A FORWARD -j ACCEPT&lt;br /&gt;
 		iptables -t nat -A POSTROUTING -s 10.7.0.0/24 -o ppp+ -j MASQUERADE&lt;br /&gt;
 &lt;br /&gt;
 9) Make it executable&lt;br /&gt;
 &lt;br /&gt;
 	chmod 755 /etc/rc.d/rc.firewall&lt;br /&gt;
 &lt;br /&gt;
 10) Flush the old firewall rules (forgetting to do this caused me all sorts of grief (Thanks mancha))&lt;br /&gt;
 &lt;br /&gt;
 	iptables -F&lt;br /&gt;
 &lt;br /&gt;
 11) Execute the new firewall rules&lt;br /&gt;
 &lt;br /&gt;
 	/etc/rc.d/rc.firewall&lt;br /&gt;
 &lt;br /&gt;
 If you and I haven't made any mistakes, you should now have pptp (server) and router working on your box.&lt;br /&gt;
&lt;br /&gt;
==pptp Client Setup==&lt;br /&gt;
&lt;br /&gt;
Needs to be added.&lt;/div&gt;</description>
			<pubDate>Sat, 09 Jun 2012 19:00:22 GMT</pubDate>
			<dc:creator>Arfon</dc:creator>
			<comments>https://www.slackwiki.com/Talk:Pptp</comments>
		</item>
		<item>
			<title>Pptp</title>
			<link>https://www.slackwiki.com/index.php?title=Pptp&amp;diff=709</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=Pptp&amp;diff=709</guid>
			<description>&lt;p&gt;Arfon: /* (Poptop) pptpd Server Setup */  typo fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==(Poptop) pptpd Server Setup==&lt;br /&gt;
&lt;br /&gt;
Here's what I did to get Poptop pptpd (1.3.4) running on my Slackware (13.37) box.&lt;br /&gt;
&lt;br /&gt;
 1) Install the official Slackware ppp package using pkgtool or slackpkg.&lt;br /&gt;
 &lt;br /&gt;
 2) Install the ppptpd package from Slackbuilds.org using sbopkg.&lt;br /&gt;
 	***NOTE: The package name is NOT Poptop, it's pptpd***&lt;br /&gt;
 &lt;br /&gt;
 3) Edit /etc/pptpd.conf&lt;br /&gt;
 &lt;br /&gt;
 	ADD:&lt;br /&gt;
 		localip 10.7.0.1&lt;br /&gt;
 		remoteip 10.7.0.2-50&lt;br /&gt;
 	CHANGE:&lt;br /&gt;
 		option /etc/ppp/options.pptpd -&amp;gt; option /etc/ppp/options&lt;br /&gt;
 &lt;br /&gt;
 4) Edit /etc/ppp/options&lt;br /&gt;
 	HERE IS A GOTCHA- The official Slackware ppp package (at the time of this writing) contains an error in the options&lt;br /&gt;
 	file. The pppd binary was compiled to look for the new ms-dns parameter but the option file has the old dns-addr&lt;br /&gt;
 	parameter.&lt;br /&gt;
 &lt;br /&gt;
 	CHANGE:&lt;br /&gt;
 	# dns-addr 192.168.1.1 -&amp;gt; ms-dns 8.8.8.8 (or whatever your dns server is)&lt;br /&gt;
 &lt;br /&gt;
 5) Edit the /etc/ppp/chap-secrets file.&lt;br /&gt;
 	For some reason, the default Slackware package has 4 example entries in it that are not commented (jacco,*,sam,*)&lt;br /&gt;
 	delete these.  You don't want jacco or sam to have a free connection into your box...&lt;br /&gt;
 &lt;br /&gt;
 	ADD: one entry for each user you want to allow access.&lt;br /&gt;
 	Format is: CLIENT [tab] SERVER [tab] PASSWORD [tab] IP ADDRESS&lt;br /&gt;
 	Mine looks like this:&lt;br /&gt;
 &lt;br /&gt;
 	bob	*	&amp;quot;BobsPasswordIsStrong&amp;quot;	*&lt;br /&gt;
 	sue	*	&amp;quot;FluffyBunnies92&amp;quot;	*&lt;br /&gt;
 &lt;br /&gt;
 6) Finally to start pptpd, normally you would just execute 'pptpd &amp;amp;' but being that I'm a good Slacker, I wrote an&lt;br /&gt;
 rc.pptpd script.&lt;br /&gt;
 	Create /etc/rc.d/rc.pptpd&lt;br /&gt;
 	contents:&lt;br /&gt;
 		#!/bin/sh&lt;br /&gt;
 		#&lt;br /&gt;
 		# /etc/rc.d/rc.pptpd&lt;br /&gt;
 		#&lt;br /&gt;
 		# Start/stop/restart the pptpd server.&lt;br /&gt;
 		#&lt;br /&gt;
 		# To make PopTop start automatically at boot, make this&lt;br /&gt;
 		# file executable:  chmod 755 /etc/rc.d/rc.pptpd&lt;br /&gt;
 		#&lt;br /&gt;
 		&lt;br /&gt;
 		pptpd_start() {&lt;br /&gt;
 		  if [ -x /usr/sbin/pptpd ]; then&lt;br /&gt;
 		    echo &amp;quot;Starting PopTop pptpd:  /usr/sbin/pptpd server.conf&amp;quot;&lt;br /&gt;
 		    /usr/sbin/pptpd &amp;amp;&lt;br /&gt;
 		  fi&lt;br /&gt;
 		}&lt;br /&gt;
 		&lt;br /&gt;
 		pptpd_stop() {&lt;br /&gt;
 		  killall pptpd&lt;br /&gt;
 		}&lt;br /&gt;
 		&lt;br /&gt;
 		pptpd_restart() {&lt;br /&gt;
 		  pptpd_stop&lt;br /&gt;
 		  sleep 2&lt;br /&gt;
 		  pptpd_start&lt;br /&gt;
 		}&lt;br /&gt;
 		&lt;br /&gt;
 		case &amp;quot;$1&amp;quot; in&lt;br /&gt;
 		'start')&lt;br /&gt;
 		  pptpd_start&lt;br /&gt;
 		  ;;&lt;br /&gt;
 		'stop')&lt;br /&gt;
 		  pptpd_stop&lt;br /&gt;
 		  ;;&lt;br /&gt;
 		'restart')&lt;br /&gt;
 		  pptpd_restart&lt;br /&gt;
 		  ;;&lt;br /&gt;
 		*)&lt;br /&gt;
 		  # Default is &amp;quot;start&amp;quot;, for backwards compatibility with previous&lt;br /&gt;
 		  # Slackware versions.  This may change to a 'usage' error someday.&lt;br /&gt;
 		  pptpd_start&lt;br /&gt;
 		esac&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 7) Make it executable (and autobootable on start up)&lt;br /&gt;
 &lt;br /&gt;
 	chmod 755 /etc/rc.d/rc.pptpd&lt;br /&gt;
 &lt;br /&gt;
 To start it manually- /etc/rc.d/rc.pptpd start&lt;br /&gt;
 &lt;br /&gt;
 To be useful you next need to configure your firewall to forward and masquerade traffic from the vpn out to&lt;br /&gt;
 the world...&lt;br /&gt;
 &lt;br /&gt;
 8) Edit/create: /etc/rc.d/rc.firewall&lt;br /&gt;
 &lt;br /&gt;
 	ADD:&lt;br /&gt;
 		iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT&lt;br /&gt;
 		iptables -A FORWARD -i ppp+ -j ACCEPT&lt;br /&gt;
 		iptables -A FORWARD -o ppp+ -j ACCEPT&lt;br /&gt;
 		iptables -A FORWARD -j ACCEPT&lt;br /&gt;
 		iptables -t nat -A POSTROUTING -s 10.7.0.0/24 -o ppp+ -j MASQUERADE&lt;br /&gt;
 &lt;br /&gt;
 9) Make it executable&lt;br /&gt;
 &lt;br /&gt;
 	chmod 755 /etc/rc.d/rc.firewall&lt;br /&gt;
 &lt;br /&gt;
 10) Flush the old firewall rules (forgetting to do this caused me all sorts of grief (Thanks mancha))&lt;br /&gt;
 &lt;br /&gt;
 	iptables -f&lt;br /&gt;
 &lt;br /&gt;
 11) Execute the new firewall rules&lt;br /&gt;
 &lt;br /&gt;
 	/etc/rc.d/rc.firewall&lt;br /&gt;
 &lt;br /&gt;
 If you and I haven't made any mistakes, you should now have pptp (server) and router working on your box.&lt;br /&gt;
&lt;br /&gt;
==pptp Client Setup==&lt;br /&gt;
&lt;br /&gt;
Needs to be added.&lt;/div&gt;</description>
			<pubDate>Sat, 09 Jun 2012 18:16:31 GMT</pubDate>
			<dc:creator>Arfon</dc:creator>
			<comments>https://www.slackwiki.com/Talk:Pptp</comments>
		</item>
		<item>
			<title>Pptp</title>
			<link>https://www.slackwiki.com/index.php?title=Pptp&amp;diff=708</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=Pptp&amp;diff=708</guid>
			<description>&lt;p&gt;Arfon: Created!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==(Poptop) pptpd Server Setup==&lt;br /&gt;
&lt;br /&gt;
Here's what I did to get Poptop pptpd (1.3.4) running on my Slackware (13.37) box.&lt;br /&gt;
&lt;br /&gt;
 1) Install the official Slackware ppp package using pkgtool or slackpkg.&lt;br /&gt;
 &lt;br /&gt;
 2) Install the ppptpd package from Slackbuilds.org using sbopkg.&lt;br /&gt;
 	***NOTE: The package name is NOT Poptop, it's pptpd***&lt;br /&gt;
 &lt;br /&gt;
 3) Edit /etc/pptpd.conf&lt;br /&gt;
 &lt;br /&gt;
 	ADD:&lt;br /&gt;
 		localip 10.7.0.1&lt;br /&gt;
 		remoteip 10.7.0.2-50&lt;br /&gt;
 	CHANGE:&lt;br /&gt;
 		option /etc/ppp/options.pptpd -&amp;gt; option /etc/ppp/options&lt;br /&gt;
 &lt;br /&gt;
 4) Edit /etc/ppp/options&lt;br /&gt;
 	HERE IS A GOTCHA- The official Slackware ppp package (at the time of this writing) contains an error in the options&lt;br /&gt;
 	file. The pppd binary was compiled to look for the new ms-dns parameter but the option file has the old dns-addr&lt;br /&gt;
 	parameter.&lt;br /&gt;
 &lt;br /&gt;
 	CHANGE:&lt;br /&gt;
 	# dns-addr 192.168.1.1 -&amp;gt; ms-dns 8.8.8.8 (or whatever your dns server is)&lt;br /&gt;
 &lt;br /&gt;
 5) Edit the /etc/ppp/chap-secrets file.&lt;br /&gt;
 	For some reason, the default Slackware package has 4 example entries in it that are not commented (jacco,*,sam,*)&lt;br /&gt;
 	delete these.  You don't want jacco or sam to have a free connection into your box...&lt;br /&gt;
 &lt;br /&gt;
 	ADD: one entry for each user you want to allow access.&lt;br /&gt;
 	Format is: CLIENT [tab] SERVER [tab] PASSWORD [tab] IP ADDRESS&lt;br /&gt;
 	Mine looks like this:&lt;br /&gt;
 &lt;br /&gt;
 	bob	*	&amp;quot;BobsPasswordIsStrong&amp;quot;	*&lt;br /&gt;
 	sue	*	&amp;quot;FluffyBunnies92&amp;quot;	*&lt;br /&gt;
 &lt;br /&gt;
 6) Finally to start pptpd, n0rmally you would just execute 'pptpd &amp;amp;' but being that I'm a good Slacker, I wrote an&lt;br /&gt;
 rc.pptpd script.&lt;br /&gt;
 	Create /etc/rc.d/rc.pptpd&lt;br /&gt;
 	contents:&lt;br /&gt;
 		#!/bin/sh&lt;br /&gt;
 		#&lt;br /&gt;
 		# /etc/rc.d/rc.pptpd&lt;br /&gt;
 		#&lt;br /&gt;
 		# Start/stop/restart the pptpd server.&lt;br /&gt;
 		#&lt;br /&gt;
 		# To make PopTop start automatically at boot, make this&lt;br /&gt;
 		# file executable:  chmod 755 /etc/rc.d/rc.pptpd&lt;br /&gt;
 		#&lt;br /&gt;
 		&lt;br /&gt;
 		pptpd_start() {&lt;br /&gt;
 		  if [ -x /usr/sbin/pptpd ]; then&lt;br /&gt;
 		    echo &amp;quot;Starting PopTop pptpd:  /usr/sbin/pptpd server.conf&amp;quot;&lt;br /&gt;
 		    /usr/sbin/pptpd &amp;amp;&lt;br /&gt;
 		  fi&lt;br /&gt;
 		}&lt;br /&gt;
 		&lt;br /&gt;
 		pptpd_stop() {&lt;br /&gt;
 		  killall pptpd&lt;br /&gt;
 		}&lt;br /&gt;
 		&lt;br /&gt;
 		pptpd_restart() {&lt;br /&gt;
 		  pptpd_stop&lt;br /&gt;
 		  sleep 2&lt;br /&gt;
 		  pptpd_start&lt;br /&gt;
 		}&lt;br /&gt;
 		&lt;br /&gt;
 		case &amp;quot;$1&amp;quot; in&lt;br /&gt;
 		'start')&lt;br /&gt;
 		  pptpd_start&lt;br /&gt;
 		  ;;&lt;br /&gt;
 		'stop')&lt;br /&gt;
 		  pptpd_stop&lt;br /&gt;
 		  ;;&lt;br /&gt;
 		'restart')&lt;br /&gt;
 		  pptpd_restart&lt;br /&gt;
 		  ;;&lt;br /&gt;
 		*)&lt;br /&gt;
 		  # Default is &amp;quot;start&amp;quot;, for backwards compatibility with previous&lt;br /&gt;
 		  # Slackware versions.  This may change to a 'usage' error someday.&lt;br /&gt;
 		  pptpd_start&lt;br /&gt;
 		esac&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 7) Make it executable (and autobootable on start up)&lt;br /&gt;
 &lt;br /&gt;
 	chmod 755 /etc/rc.d/rc.pptpd&lt;br /&gt;
 &lt;br /&gt;
 To start it manually- /etc/rc.d/rc.pptpd start&lt;br /&gt;
 &lt;br /&gt;
 To be useful you next need to configure your firewall to forward and masquerade traffic from the vpn out to&lt;br /&gt;
 the world...&lt;br /&gt;
 &lt;br /&gt;
 8) Edit/create: /etc/rc.d/rc.firewall&lt;br /&gt;
 &lt;br /&gt;
 	ADD:&lt;br /&gt;
 		iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT&lt;br /&gt;
 		iptables -A FORWARD -i ppp+ -j ACCEPT&lt;br /&gt;
 		iptables -A FORWARD -o ppp+ -j ACCEPT&lt;br /&gt;
 		iptables -A FORWARD -j ACCEPT&lt;br /&gt;
 		iptables -t nat -A POSTROUTING -s 10.7.0.0/24 -o ppp+ -j MASQUERADE&lt;br /&gt;
 &lt;br /&gt;
 9) Make it executable&lt;br /&gt;
 &lt;br /&gt;
 	chmod 755 /etc/rc.d/rc.firewall&lt;br /&gt;
 &lt;br /&gt;
 10) Flush the old firewall rules (forgetting to do this caused me all sorts of grief (Thanks mancha))&lt;br /&gt;
 &lt;br /&gt;
 	iptables -f&lt;br /&gt;
 &lt;br /&gt;
 11) Execute the new firewall rules&lt;br /&gt;
 &lt;br /&gt;
 	/etc/rc.d/rc.firewall&lt;br /&gt;
 &lt;br /&gt;
 If you and I haven't made any mistakes, you should now have pptp (server) and router working on your box.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==pptp Client Setup==&lt;br /&gt;
&lt;br /&gt;
Needs to be added.&lt;/div&gt;</description>
			<pubDate>Sat, 09 Jun 2012 18:13:06 GMT</pubDate>
			<dc:creator>Arfon</dc:creator>
			<comments>https://www.slackwiki.com/Talk:Pptp</comments>
		</item>
		<item>
			<title>OpenVPN</title>
			<link>https://www.slackwiki.com/index.php?title=OpenVPN&amp;diff=707</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=OpenVPN&amp;diff=707</guid>
			<description>&lt;p&gt;Arfon: ADDED: Install from Slackbuilds.org&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Server]]&lt;br /&gt;
[[Category:Networking]]&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
As a user-space VPN daemon, OpenVPN is compatible with with SSL/TLS, RSA Certificates and X509 PKI, NAT, DHCP, and TUN/TAP virtual devices.&lt;br /&gt;
&lt;br /&gt;
OpenVPN is not compatible with IPSec, IKE, PPTP, or L2TP.&lt;br /&gt;
&lt;br /&gt;
'''[[OpenVPN(ID)|OpenVPN Instructions - Bahasa Indonesia]]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
'''EASY WAY:'''&lt;br /&gt;
Download and install from Slackbuilds.org or sbopkg.&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
'''HARD WAY:'''&lt;br /&gt;
Install from source.&lt;br /&gt;
&lt;br /&gt;
Download source from [http://openvpn.net openvpn.net]&lt;br /&gt;
&lt;br /&gt;
Download verison 2.0&lt;br /&gt;
&lt;br /&gt;
install Lzo&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tar zxvf lzo-1.08.tar.gz&lt;br /&gt;
cd lzo-1-08.tar.gz&lt;br /&gt;
./configure --prefix=/usr&lt;br /&gt;
make ; make install-strip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
install OpenVPN&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tar zxvf openvpn-2.0.tar.gz&lt;br /&gt;
cd openvpn-2.0&lt;br /&gt;
./configure --prefix=/usr \&lt;br /&gt;
--sysconfdir=/etc/openvpn \&lt;br /&gt;
--enable-pthread \&lt;br /&gt;
--enable-iproute2 \&lt;br /&gt;
--with-ssl \&lt;br /&gt;
--with-lzo-header=/usr/include \&lt;br /&gt;
--with-lzo-lib=/usr/lib \&lt;br /&gt;
--with-ifconfig \&lt;br /&gt;
--with-route \&lt;br /&gt;
--with-mem-check=dmalloc &lt;br /&gt;
make ; make install-strip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Creating The Certificates==&lt;br /&gt;
&lt;br /&gt;
Save all certificates in '''''/etc/openvpn/certs'''''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
This is a small RSA key management package,&lt;br /&gt;
based on the openssl command line tool, that&lt;br /&gt;
can be found in the easy-rsa subdirectory&lt;br /&gt;
of the OpenVPN distribution.&lt;br /&gt;
&lt;br /&gt;
These are reference notes.  For step&lt;br /&gt;
by step instructions, see the HOWTO:&lt;br /&gt;
&lt;br /&gt;
http://openvpn.net/howto.html&lt;br /&gt;
&lt;br /&gt;
INSTALL&lt;br /&gt;
&lt;br /&gt;
1. Edit vars.&lt;br /&gt;
2. Set KEY_CONFIG to point to the openssl.cnf file&lt;br /&gt;
   included in this distribution.&lt;br /&gt;
3. Set KEY_DIR to point to a directory which will&lt;br /&gt;
   contain all keys, certificates, etc.  This&lt;br /&gt;
   directory need not exist, and if it does,&lt;br /&gt;
   it will be deleted with rm -rf, so BE&lt;br /&gt;
   CAREFUL how you set KEY_DIR.&lt;br /&gt;
4. (Optional) Edit other fields in vars&lt;br /&gt;
   per your site data.  You may want to&lt;br /&gt;
   increase KEY_SIZE to 2048 if you are&lt;br /&gt;
   paranoid and don't mind slower key&lt;br /&gt;
   processing, but certainly 1024 is&lt;br /&gt;
   fine for testing purposes.  KEY_SIZE&lt;br /&gt;
   must be compatible across both peers&lt;br /&gt;
   participating in a secure SSL/TLS&lt;br /&gt;
   connection.&lt;br /&gt;
5  . vars&lt;br /&gt;
6. ./clean-all&lt;br /&gt;
7. As you create certificates, keys, and&lt;br /&gt;
   certificate signing requests, understand that&lt;br /&gt;
   only .key files should be kept confidential.&lt;br /&gt;
   .crt and .csr files can be sent over insecure&lt;br /&gt;
   channels such as plaintext email.&lt;br /&gt;
8. You should never need to copy a .key file&lt;br /&gt;
   between computers.  Normally each computer&lt;br /&gt;
   will have its own certificate/key pair.&lt;br /&gt;
&lt;br /&gt;
BUILD YOUR OWN ROOT CERTIFICATE AUTHORITY (CA) CERTIFICATE/KEY&lt;br /&gt;
&lt;br /&gt;
1. ./build-ca&lt;br /&gt;
2. ca.crt and ca.key will be built in your KEY_DIR&lt;br /&gt;
   directory&lt;br /&gt;
&lt;br /&gt;
BUILD AN INTERMEDIATE CERTIFICATE AUTHORITY CERTIFICATE/KEY (optional)&lt;br /&gt;
&lt;br /&gt;
1. ./build-inter inter&lt;br /&gt;
2. inter.crt and inter.key will be built in your KEY_DIR&lt;br /&gt;
   directory and signed with your root certificate.&lt;br /&gt;
&lt;br /&gt;
BUILD DIFFIE-HELLMAN PARAMETERS (necessary for&lt;br /&gt;
the server end of a SSL/TLS connection).&lt;br /&gt;
&lt;br /&gt;
1. ./build-dh&lt;br /&gt;
&lt;br /&gt;
BUILD A CERTIFICATE SIGNING REQUEST (If&lt;br /&gt;
you want to sign your certificate with a root&lt;br /&gt;
certificate controlled by another individual&lt;br /&gt;
or organization, or residing on a different machine).&lt;br /&gt;
&lt;br /&gt;
1. Get ca.crt (the root certificate) from your&lt;br /&gt;
   certificate authority.  Though this&lt;br /&gt;
   transfer can be over an insecure channel, to prevent&lt;br /&gt;
   man-in-the-middle attacks you must confirm that&lt;br /&gt;
   ca.crt was not tampered with.  Large CAs solve this&lt;br /&gt;
   problem by hardwiring their root certificates into&lt;br /&gt;
   popular web browsers.  A simple way to verify a root&lt;br /&gt;
   CA is to call the issuer on the telephone and confirm&lt;br /&gt;
   that the md5sum or sha1sum signatures on the ca.crt&lt;br /&gt;
   files match (such as with the command: &amp;quot;md5sum ca.crt&amp;quot;).&lt;br /&gt;
2. Choose a name for your certificate such as your computer&lt;br /&gt;
   name.  In our example we will use &amp;quot;mycert&amp;quot;.&lt;br /&gt;
3. ./build-req mycert&lt;br /&gt;
4. You can ignore most of the fields, but set&lt;br /&gt;
   &amp;quot;Common Name&amp;quot; to something unique such as your&lt;br /&gt;
   computer's host name.  Leave all password&lt;br /&gt;
   fields blank, unless you want your private key&lt;br /&gt;
   to be protected by password.  Using a password&lt;br /&gt;
   is not required -- it will make your key more secure&lt;br /&gt;
   but also more inconvenient to use, because you will&lt;br /&gt;
   need to supply your password anytime the key is used.&lt;br /&gt;
   NOTE: if you are using a password, use ./build-req-pass&lt;br /&gt;
   instead of ./build-req&lt;br /&gt;
5. Your key will be written to $KEY_DIR/mycert.key&lt;br /&gt;
6. Your certificate signing request will be written to&lt;br /&gt;
   to $KEY_DIR/mycert.csr&lt;br /&gt;
7. Email mycert.csr to the individual or organization&lt;br /&gt;
   which controls the root certificate.  This can be&lt;br /&gt;
   done over an insecure channel.&lt;br /&gt;
8. After the .csr file is signed by the root certificate&lt;br /&gt;
   authority, you will receive a file mycert.crt&lt;br /&gt;
   (your certificate).  Place mycert.crt in your&lt;br /&gt;
   KEY_DIR directory.&lt;br /&gt;
9. The combined files of mycert.crt, mycert.key,&lt;br /&gt;
   and ca.crt can now be used to secure one end of&lt;br /&gt;
   an SSL/TLS connection.&lt;br /&gt;
&lt;br /&gt;
SIGN A CERTIFICATE SIGNING REQUEST&lt;br /&gt;
&lt;br /&gt;
1. ./sign-req mycert&lt;br /&gt;
2. mycert.crt will be built in your KEY_DIR&lt;br /&gt;
   directory using mycert.csr and your root CA&lt;br /&gt;
   file as input.&lt;br /&gt;
&lt;br /&gt;
BUILD AND SIGN A CERTIFICATE SIGNING REQUEST&lt;br /&gt;
USING A LOCALLY INSTALLED ROOT CERTIFICATE/KEY -- this&lt;br /&gt;
script generates and signs a certificate in one step,&lt;br /&gt;
but it requires that the generated certificate and private&lt;br /&gt;
key files be copied to the destination host over a&lt;br /&gt;
secure channel.&lt;br /&gt;
&lt;br /&gt;
1. ./build-key mycert (no password protection)&lt;br /&gt;
2. OR ./build-key-pass mycert (with password protection)&lt;br /&gt;
3. OR ./build-key-pkcs12 mycert (PKCS #12 format)&lt;br /&gt;
4. OR ./build-key-server mycert (with nsCertType=server)&lt;br /&gt;
5. mycert.crt and mycert.key will be built in your&lt;br /&gt;
   KEY_DIR directory, and mycert.crt will be signed&lt;br /&gt;
   by your root CA. If ./build-key-pkcs12 was used a&lt;br /&gt;
   mycert.p12 file will also be created including the&lt;br /&gt;
   private key, certificate and the ca certificate.&lt;br /&gt;
&lt;br /&gt;
IMPORTANT&lt;br /&gt;
&lt;br /&gt;
To avoid a possible Man-in-the-Middle attack where an authorized&lt;br /&gt;
client tries to connect to another client by impersonating the&lt;br /&gt;
server, make sure to enforce some kind of server certificate&lt;br /&gt;
verification by clients.  There are currently four different ways&lt;br /&gt;
of accomplishing this, listed in the order of preference:&lt;br /&gt;
&lt;br /&gt;
(1) Build your server certificates with the build-key-server&lt;br /&gt;
    script.  This will designate the certificate as a&lt;br /&gt;
    server-only certificate by setting nsCertType=server.&lt;br /&gt;
    Now add the following line to your client configuration:&lt;br /&gt;
&lt;br /&gt;
    ns-cert-type server&lt;br /&gt;
&lt;br /&gt;
    This will block clients from connecting to any&lt;br /&gt;
    server which lacks the nsCertType=server designation&lt;br /&gt;
    in its certificate, even if the certificate has been&lt;br /&gt;
    signed by the CA which is cited in the OpenVPN configuration&lt;br /&gt;
    file (--ca directive).&lt;br /&gt;
&lt;br /&gt;
(2) Use the --tls-remote directive on the client to&lt;br /&gt;
    accept/reject the server connection based on the common&lt;br /&gt;
    name of the server certificate.&lt;br /&gt;
&lt;br /&gt;
(3) Use a --tls-verify script or plugin to accept/reject the&lt;br /&gt;
    server connection based on a custom test of the server&lt;br /&gt;
    certificate's embedded X509 subject details.&lt;br /&gt;
IMPORTANT&lt;br /&gt;
&lt;br /&gt;
To avoid a possible Man-in-the-Middle attack where an authorized&lt;br /&gt;
client tries to connect to another client by impersonating the&lt;br /&gt;
server, make sure to enforce some kind of server certificate&lt;br /&gt;
verification by clients.  There are currently four different ways&lt;br /&gt;
of accomplishing this, listed in the order of preference:&lt;br /&gt;
&lt;br /&gt;
(1) Build your server certificates with the build-key-server&lt;br /&gt;
    script.  This will designate the certificate as a&lt;br /&gt;
    server-only certificate by setting nsCertType=server.&lt;br /&gt;
    Now add the following line to your client configuration:&lt;br /&gt;
&lt;br /&gt;
    ns-cert-type server&lt;br /&gt;
&lt;br /&gt;
    This will block clients from connecting to any&lt;br /&gt;
    server which lacks the nsCertType=server designation&lt;br /&gt;
    in its certificate, even if the certificate has been&lt;br /&gt;
    signed by the CA which is cited in the OpenVPN configuration&lt;br /&gt;
    file (--ca directive).&lt;br /&gt;
&lt;br /&gt;
(2) Use the --tls-remote directive on the client to&lt;br /&gt;
    accept/reject the server connection based on the common&lt;br /&gt;
    name of the server certificate.&lt;br /&gt;
&lt;br /&gt;
(3) Use a --tls-verify script or plugin to accept/reject the&lt;br /&gt;
    server connection based on a custom test of the server&lt;br /&gt;
    certificate's embedded X509 subject details.&lt;br /&gt;
&lt;br /&gt;
(4) Sign server certificates with one CA and client certificates&lt;br /&gt;
    with a different CA.  The client config &amp;quot;ca&amp;quot; directive should&lt;br /&gt;
    reference the server-signing CA while the server config &amp;quot;ca&amp;quot;&lt;br /&gt;
    directive should reference the client-signing CA.&lt;br /&gt;
&lt;br /&gt;
NOTES&lt;br /&gt;
&lt;br /&gt;
Show certificate fields:&lt;br /&gt;
  openssl x509 -in cert.crt -text&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cd easy-rsa&lt;br /&gt;
# vi vars&lt;br /&gt;
. vars&lt;br /&gt;
./clean-all&lt;br /&gt;
&lt;br /&gt;
## BUILD YOUR OWN ROOT CERTIFICATE AUTHORITY (CA) CERTIFICATE/KEY&lt;br /&gt;
./build.ca&lt;br /&gt;
&lt;br /&gt;
## BUILD AN INTERMEDIATE CERTIFICATE AUTHORITY CERTIFICATE/KEY (optional)&lt;br /&gt;
./build-inter inter&lt;br /&gt;
&lt;br /&gt;
## BUILD DIFFIE-HELLMAN PARAMETERS (necessary for the server end of a SSL/TLS connection).&lt;br /&gt;
./build.dh&lt;br /&gt;
&lt;br /&gt;
## BUILD A CERTIFICATE SIGNING REQUEST &lt;br /&gt;
## (If you want to sign your certificate with a root certificate controlled by another individual &lt;br /&gt;
## or organization, or residing on a different machine)&lt;br /&gt;
&lt;br /&gt;
./build-req mycert&lt;br /&gt;
## SIGN A CERTIFICATE SIGNING REQUEST&lt;br /&gt;
./sign-req mycert&lt;br /&gt;
&lt;br /&gt;
## BUILD AND SIGN A CERTIFICATE SIGNING REQUEST USING A LOCALLY INSTALLED ROOT CERTIFICATE/KEY&lt;br /&gt;
./build-key mycert (no password protection)&lt;br /&gt;
OR &lt;br /&gt;
./build-key-pass mycert (with password protection)&lt;br /&gt;
OR &lt;br /&gt;
./build-key-pkcs12 mycert (PKCS #12 format)&lt;br /&gt;
OR &lt;br /&gt;
./build-key-server mycert (with nsCertType=server)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configuring the Server==&lt;br /&gt;
&lt;br /&gt;
Edit the server.conf file: '''''vi /etc/openvpn/server.conf'''''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## Mode Server&lt;br /&gt;
mode server&lt;br /&gt;
&lt;br /&gt;
## Local Host Name/IP Server&lt;br /&gt;
;local 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
## Protocol&lt;br /&gt;
;proto tcp&lt;br /&gt;
proto udp&lt;br /&gt;
&lt;br /&gt;
## Port&lt;br /&gt;
; port 1194&lt;br /&gt;
&lt;br /&gt;
## Device Interface&lt;br /&gt;
;dev tap&lt;br /&gt;
dev tun&lt;br /&gt;
&lt;br /&gt;
## TAP-Win32 adapter name&lt;br /&gt;
;dev-node MyTap&lt;br /&gt;
&lt;br /&gt;
## SSL/TLS &lt;br /&gt;
## root certificate (ca)&lt;br /&gt;
## certificate (cert)&lt;br /&gt;
## private key (key)&lt;br /&gt;
ca /etc/openvpn/certs/ca.crt&lt;br /&gt;
cert /etc/openvpn/certs/server.crt&lt;br /&gt;
key /etc/openvpn/certs/server.key&lt;br /&gt;
&lt;br /&gt;
## Diffie hellman parameters&lt;br /&gt;
dh dh1024.pem&lt;br /&gt;
&lt;br /&gt;
## VPN subnet&lt;br /&gt;
server 10.8.0.0 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
ifconfig-pool-persist ipp.txt&lt;br /&gt;
&lt;br /&gt;
##ethernet bridging&lt;br /&gt;
;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100&lt;br /&gt;
&lt;br /&gt;
## dhcpcaveats&lt;br /&gt;
;push &amp;quot;route 192.168.10.0 255.255.255.0&amp;quot;&lt;br /&gt;
;push &amp;quot;route 192.168.20.0 255.255.255.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
;client-config-dir ccd&lt;br /&gt;
&lt;br /&gt;
;route 192.168.40.128 255.255.255.248&lt;br /&gt;
&lt;br /&gt;
;client-config-dir ccd&lt;br /&gt;
&lt;br /&gt;
;route 10.9.0.0 255.255.255.252&lt;br /&gt;
&lt;br /&gt;
;learn-address ./script&lt;br /&gt;
&lt;br /&gt;
## dhcpcaveats&lt;br /&gt;
;push &amp;quot;redirect-gateway&amp;quot;&lt;br /&gt;
;push &amp;quot;dhcp-option DNS 10.8.0.1&amp;quot;&lt;br /&gt;
;push &amp;quot;dhcp-option WINS 10.8.0.1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
##&lt;br /&gt;
;client-to-client&lt;br /&gt;
&lt;br /&gt;
## same &amp;quot;COMMON NAME&amp;quot; certificate/key&lt;br /&gt;
;duplicate-cn&lt;br /&gt;
&lt;br /&gt;
## Status Connection&lt;br /&gt;
keepalive 10 120&lt;br /&gt;
&lt;br /&gt;
## tls-auth key&lt;br /&gt;
;tls-auth ta.key 0 &lt;br /&gt;
&lt;br /&gt;
## Cryptographic cipher&lt;br /&gt;
;cipher BF-CBC        # Blowfish (default)&lt;br /&gt;
;cipher AES-128-CBC   # AES&lt;br /&gt;
;cipher DES-EDE3-CBC  # Triple-DES&lt;br /&gt;
&lt;br /&gt;
## Link Compresion&lt;br /&gt;
comp-lzo&lt;br /&gt;
&lt;br /&gt;
## Max Client Connections&lt;br /&gt;
;max-clients 100&lt;br /&gt;
&lt;br /&gt;
## daemon privileges (non windows saja)&lt;br /&gt;
user nobody&lt;br /&gt;
group nobody&lt;br /&gt;
&lt;br /&gt;
persist-key&lt;br /&gt;
persist-tun&lt;br /&gt;
&lt;br /&gt;
## Openvpn Log&lt;br /&gt;
;log         /var/log/openvpn/openvpn.log&lt;br /&gt;
;log-append  /var/log/openvpn/openvpn.log&lt;br /&gt;
&lt;br /&gt;
## Output Log&lt;br /&gt;
status /var/log/openvpn/openvpn-status.log&lt;br /&gt;
&lt;br /&gt;
## Log Verbosity&lt;br /&gt;
## 0 is silent, except for fatal errors&lt;br /&gt;
## 4 is reasonable for general usage&lt;br /&gt;
## 5 and 6 can help to debug connection problems&lt;br /&gt;
## 9 is extremely verbose&lt;br /&gt;
verb 3&lt;br /&gt;
&lt;br /&gt;
## Repeating Messages&lt;br /&gt;
;mute 20&lt;br /&gt;
&lt;br /&gt;
## Pid File&lt;br /&gt;
writepid /var/run/openvpn.pid&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Routing'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
route add -net 10.0.1.0 netmask 255.255.255.0 gw 10.4.0.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Firewall'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iptables -A INPUT -p udp -s 1.2.3.4 --dport 1194 -j ACCEPT&lt;br /&gt;
OR&lt;br /&gt;
iptables -A INPUT -p udp --dport 1194 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
## Tun Device&lt;br /&gt;
iptables -A INPUT -i tun+ -j ACCEPT&lt;br /&gt;
iptables -A FORWARD -i tun+ -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
## Tap Device&lt;br /&gt;
iptables -A INPUT -i tap+ -j ACCEPT&lt;br /&gt;
iptables -A FORWARD -i tap+ -j ACCEPT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configuring the Client==&lt;br /&gt;
&lt;br /&gt;
Edit the client.conf file: '''''vi /etc/openvpn/client.conf'''''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## Config&lt;br /&gt;
client&lt;br /&gt;
&lt;br /&gt;
## Device Interface&lt;br /&gt;
;dev tap&lt;br /&gt;
dev tun&lt;br /&gt;
&lt;br /&gt;
## Tap adapter name (Win only)&lt;br /&gt;
;dev-node MyTap&lt;br /&gt;
&lt;br /&gt;
## Conectivity&lt;br /&gt;
;proto tcp&lt;br /&gt;
proto udp&lt;br /&gt;
&lt;br /&gt;
## Server [hostname/ip] [port]&lt;br /&gt;
remote my-server-1 1194&lt;br /&gt;
;remote my-server-2 1194&lt;br /&gt;
&lt;br /&gt;
## load-balancing&lt;br /&gt;
;remote-random&lt;br /&gt;
&lt;br /&gt;
## resolve host name OpenVPN server&lt;br /&gt;
resolv-retry infinite&lt;br /&gt;
&lt;br /&gt;
# local port&lt;br /&gt;
nobind&lt;br /&gt;
&lt;br /&gt;
## privileges (non windows saja)&lt;br /&gt;
user nobody&lt;br /&gt;
group nobody&lt;br /&gt;
&lt;br /&gt;
## preserve&lt;br /&gt;
persist-key&lt;br /&gt;
persist-tun&lt;br /&gt;
&lt;br /&gt;
## HTTP proxy&lt;br /&gt;
;http-proxy-retry &lt;br /&gt;
;http-proxy [proxy server] [proxy port]&lt;br /&gt;
&lt;br /&gt;
## duplicate packet warnings&lt;br /&gt;
;mute-replay-warnings&lt;br /&gt;
&lt;br /&gt;
## SSL/TLS parms&lt;br /&gt;
/etc/openvpn/certs/ca ca.crt&lt;br /&gt;
/etc/openvpn/certs/cert client.crt&lt;br /&gt;
/etc/openvpn/certs/key client.key&lt;br /&gt;
&lt;br /&gt;
## nsCertType key&lt;br /&gt;
;ns-cert-type server&lt;br /&gt;
&lt;br /&gt;
## tls-auth key&lt;br /&gt;
;tls-auth /etc/openvpn/certs/ta.key 1&lt;br /&gt;
&lt;br /&gt;
## Cryptographic cipher&lt;br /&gt;
;cipher x&lt;br /&gt;
&lt;br /&gt;
## Link compression&lt;br /&gt;
comp-lzo&lt;br /&gt;
&lt;br /&gt;
## verbosity&lt;br /&gt;
## 0 is silent, except for fatal errors&lt;br /&gt;
## 4 is reasonable for general usage&lt;br /&gt;
## 5 and 6 can help to debug connection problems&lt;br /&gt;
## 9 is extremely verbose&lt;br /&gt;
verb 3&lt;br /&gt;
&lt;br /&gt;
## repeating messages&lt;br /&gt;
;mute 20&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Routing'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
route add -net 10.0.0.0 netmask 255.255.255.0 gw 10.4.0.1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&lt;br /&gt;
'''Example 1:''' A simple tunnel without security&amp;lt;br&amp;gt;&lt;br /&gt;
'''On May: Server Side'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openvpn --remote jun.kg --dev tun1 --ifconfig 10.4.0.1 10.4.0.2 --verb 9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''On Jun: Client Side'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openvpn --remote may.kg --dev tun1 --ifconfig 10.4.0.2 10.4.0.1 --verb 9 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On May:&lt;br /&gt;
    ping 10.4.0.2 &lt;br /&gt;
&lt;br /&gt;
On Jun:&lt;br /&gt;
    ping 10.4.0.1&lt;br /&gt;
&lt;br /&gt;
'''Example 2:''' A tunnel with static-key security (i.e. using a pre-shared secret)&amp;lt;br&amp;gt;&lt;br /&gt;
'''On May: Server Side'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openvpn --remote jun.kg --dev tun1 --ifconfig 10.4.0.1 10.4.0.2 \&lt;br /&gt;
--verb 5 --secret key&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''On Jun: Client Side'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openvpn --remote may.kg --dev tun1 --ifconfig 10.4.0.2 10.4.0.1 \&lt;br /&gt;
--verb 5 --secret key &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On May:&lt;br /&gt;
    ping 10.4.0.2 &lt;br /&gt;
&lt;br /&gt;
On Jun:&lt;br /&gt;
    ping 10.4.0.1&lt;br /&gt;
&lt;br /&gt;
'''Example 3:''' A tunnel with full TLS-based security &amp;lt;br&amp;gt;&lt;br /&gt;
'''On May: Server Side'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openvpn --remote jun.kg --dev tun1 --ifconfig 10.4.0.1 10.4.0.2 \&lt;br /&gt;
--tls-client --ca tmp-ca.crt --cert client.crt --key client.key \&lt;br /&gt;
--reneg-sec 60 --verb 5 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''On Jun: Client Side'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openvpn --remote may.kg --dev tun1 --ifconfig 10.4.0.2 10.4.0.1 \&lt;br /&gt;
--tls-server --ca tmp-ca.crt --cert server.crt --key server.key \&lt;br /&gt;
--reneg-sec 60 --verb 5 --dh dh1024.pem&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On May:&lt;br /&gt;
&lt;br /&gt;
    ping 10.4.0.2 &lt;br /&gt;
&lt;br /&gt;
On Jun:&lt;br /&gt;
&lt;br /&gt;
    ping 10.4.0.1&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
&lt;br /&gt;
* http://dmalloc.com/&lt;br /&gt;
* http://valgrind.org/&lt;br /&gt;
* http://www.oberhumer.com/opensource/lzo/&lt;br /&gt;
* http://openvpn.net/&lt;br /&gt;
* http://openvpn.net/howto.html&lt;br /&gt;
* http://openvpn.net/1xhowto.html (Old-v1.06)&lt;br /&gt;
* http://openvpn.net/man.html&lt;/div&gt;</description>
			<pubDate>Thu, 07 Jun 2012 00:05:04 GMT</pubDate>
			<dc:creator>Arfon</dc:creator>
			<comments>https://www.slackwiki.com/Talk:OpenVPN</comments>
		</item>
		<item>
			<title>OpenVPN</title>
			<link>https://www.slackwiki.com/index.php?title=OpenVPN&amp;diff=706</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=OpenVPN&amp;diff=706</guid>
			<description>&lt;p&gt;Arfon: Moved English page here, made a new page for Indonesian translation and added link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Server]]&lt;br /&gt;
[[Category:Networking]]&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
As a user-space VPN daemon, OpenVPN is compatible with with SSL/TLS, RSA Certificates and X509 PKI, NAT, DHCP, and TUN/TAP virtual devices.&lt;br /&gt;
&lt;br /&gt;
OpenVPN is not compatible with IPSec, IKE, PPTP, or L2TP.&lt;br /&gt;
&lt;br /&gt;
'''[[OpenVPN(ID)|OpenVPN Instructions - Bahasa Indonesia]]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Download source from [http://openvpn.net openvpn.net]&lt;br /&gt;
&lt;br /&gt;
Download verison 2.0&lt;br /&gt;
&lt;br /&gt;
install Lzo&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tar zxvf lzo-1.08.tar.gz&lt;br /&gt;
cd lzo-1-08.tar.gz&lt;br /&gt;
./configure --prefix=/usr&lt;br /&gt;
make ; make install-strip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
install OpenVPN&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tar zxvf openvpn-2.0.tar.gz&lt;br /&gt;
cd openvpn-2.0&lt;br /&gt;
./configure --prefix=/usr \&lt;br /&gt;
--sysconfdir=/etc/openvpn \&lt;br /&gt;
--enable-pthread \&lt;br /&gt;
--enable-iproute2 \&lt;br /&gt;
--with-ssl \&lt;br /&gt;
--with-lzo-header=/usr/include \&lt;br /&gt;
--with-lzo-lib=/usr/lib \&lt;br /&gt;
--with-ifconfig \&lt;br /&gt;
--with-route \&lt;br /&gt;
--with-mem-check=dmalloc &lt;br /&gt;
make ; make install-strip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
==Configuring Certificates==&lt;br /&gt;
&lt;br /&gt;
Save all certificates in '''''/etc/openvpn/certs'''''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
This is a small RSA key management package,&lt;br /&gt;
based on the openssl command line tool, that&lt;br /&gt;
can be found in the easy-rsa subdirectory&lt;br /&gt;
of the OpenVPN distribution.&lt;br /&gt;
&lt;br /&gt;
These are reference notes.  For step&lt;br /&gt;
by step instructions, see the HOWTO:&lt;br /&gt;
&lt;br /&gt;
http://openvpn.net/howto.html&lt;br /&gt;
&lt;br /&gt;
INSTALL&lt;br /&gt;
&lt;br /&gt;
1. Edit vars.&lt;br /&gt;
2. Set KEY_CONFIG to point to the openssl.cnf file&lt;br /&gt;
   included in this distribution.&lt;br /&gt;
3. Set KEY_DIR to point to a directory which will&lt;br /&gt;
   contain all keys, certificates, etc.  This&lt;br /&gt;
   directory need not exist, and if it does,&lt;br /&gt;
   it will be deleted with rm -rf, so BE&lt;br /&gt;
   CAREFUL how you set KEY_DIR.&lt;br /&gt;
4. (Optional) Edit other fields in vars&lt;br /&gt;
   per your site data.  You may want to&lt;br /&gt;
   increase KEY_SIZE to 2048 if you are&lt;br /&gt;
   paranoid and don't mind slower key&lt;br /&gt;
   processing, but certainly 1024 is&lt;br /&gt;
   fine for testing purposes.  KEY_SIZE&lt;br /&gt;
   must be compatible across both peers&lt;br /&gt;
   participating in a secure SSL/TLS&lt;br /&gt;
   connection.&lt;br /&gt;
5  . vars&lt;br /&gt;
6. ./clean-all&lt;br /&gt;
7. As you create certificates, keys, and&lt;br /&gt;
   certificate signing requests, understand that&lt;br /&gt;
   only .key files should be kept confidential.&lt;br /&gt;
   .crt and .csr files can be sent over insecure&lt;br /&gt;
   channels such as plaintext email.&lt;br /&gt;
8. You should never need to copy a .key file&lt;br /&gt;
   between computers.  Normally each computer&lt;br /&gt;
   will have its own certificate/key pair.&lt;br /&gt;
&lt;br /&gt;
BUILD YOUR OWN ROOT CERTIFICATE AUTHORITY (CA) CERTIFICATE/KEY&lt;br /&gt;
&lt;br /&gt;
1. ./build-ca&lt;br /&gt;
2. ca.crt and ca.key will be built in your KEY_DIR&lt;br /&gt;
   directory&lt;br /&gt;
&lt;br /&gt;
BUILD AN INTERMEDIATE CERTIFICATE AUTHORITY CERTIFICATE/KEY (optional)&lt;br /&gt;
&lt;br /&gt;
1. ./build-inter inter&lt;br /&gt;
2. inter.crt and inter.key will be built in your KEY_DIR&lt;br /&gt;
   directory and signed with your root certificate.&lt;br /&gt;
&lt;br /&gt;
BUILD DIFFIE-HELLMAN PARAMETERS (necessary for&lt;br /&gt;
the server end of a SSL/TLS connection).&lt;br /&gt;
&lt;br /&gt;
1. ./build-dh&lt;br /&gt;
&lt;br /&gt;
BUILD A CERTIFICATE SIGNING REQUEST (If&lt;br /&gt;
you want to sign your certificate with a root&lt;br /&gt;
certificate controlled by another individual&lt;br /&gt;
or organization, or residing on a different machine).&lt;br /&gt;
&lt;br /&gt;
1. Get ca.crt (the root certificate) from your&lt;br /&gt;
   certificate authority.  Though this&lt;br /&gt;
   transfer can be over an insecure channel, to prevent&lt;br /&gt;
   man-in-the-middle attacks you must confirm that&lt;br /&gt;
   ca.crt was not tampered with.  Large CAs solve this&lt;br /&gt;
   problem by hardwiring their root certificates into&lt;br /&gt;
   popular web browsers.  A simple way to verify a root&lt;br /&gt;
   CA is to call the issuer on the telephone and confirm&lt;br /&gt;
   that the md5sum or sha1sum signatures on the ca.crt&lt;br /&gt;
   files match (such as with the command: &amp;quot;md5sum ca.crt&amp;quot;).&lt;br /&gt;
2. Choose a name for your certificate such as your computer&lt;br /&gt;
   name.  In our example we will use &amp;quot;mycert&amp;quot;.&lt;br /&gt;
3. ./build-req mycert&lt;br /&gt;
4. You can ignore most of the fields, but set&lt;br /&gt;
   &amp;quot;Common Name&amp;quot; to something unique such as your&lt;br /&gt;
   computer's host name.  Leave all password&lt;br /&gt;
   fields blank, unless you want your private key&lt;br /&gt;
   to be protected by password.  Using a password&lt;br /&gt;
   is not required -- it will make your key more secure&lt;br /&gt;
   but also more inconvenient to use, because you will&lt;br /&gt;
   need to supply your password anytime the key is used.&lt;br /&gt;
   NOTE: if you are using a password, use ./build-req-pass&lt;br /&gt;
   instead of ./build-req&lt;br /&gt;
5. Your key will be written to $KEY_DIR/mycert.key&lt;br /&gt;
6. Your certificate signing request will be written to&lt;br /&gt;
   to $KEY_DIR/mycert.csr&lt;br /&gt;
7. Email mycert.csr to the individual or organization&lt;br /&gt;
   which controls the root certificate.  This can be&lt;br /&gt;
   done over an insecure channel.&lt;br /&gt;
8. After the .csr file is signed by the root certificate&lt;br /&gt;
   authority, you will receive a file mycert.crt&lt;br /&gt;
   (your certificate).  Place mycert.crt in your&lt;br /&gt;
   KEY_DIR directory.&lt;br /&gt;
9. The combined files of mycert.crt, mycert.key,&lt;br /&gt;
   and ca.crt can now be used to secure one end of&lt;br /&gt;
   an SSL/TLS connection.&lt;br /&gt;
&lt;br /&gt;
SIGN A CERTIFICATE SIGNING REQUEST&lt;br /&gt;
&lt;br /&gt;
1. ./sign-req mycert&lt;br /&gt;
2. mycert.crt will be built in your KEY_DIR&lt;br /&gt;
   directory using mycert.csr and your root CA&lt;br /&gt;
   file as input.&lt;br /&gt;
&lt;br /&gt;
BUILD AND SIGN A CERTIFICATE SIGNING REQUEST&lt;br /&gt;
USING A LOCALLY INSTALLED ROOT CERTIFICATE/KEY -- this&lt;br /&gt;
script generates and signs a certificate in one step,&lt;br /&gt;
but it requires that the generated certificate and private&lt;br /&gt;
key files be copied to the destination host over a&lt;br /&gt;
secure channel.&lt;br /&gt;
&lt;br /&gt;
1. ./build-key mycert (no password protection)&lt;br /&gt;
2. OR ./build-key-pass mycert (with password protection)&lt;br /&gt;
3. OR ./build-key-pkcs12 mycert (PKCS #12 format)&lt;br /&gt;
4. OR ./build-key-server mycert (with nsCertType=server)&lt;br /&gt;
5. mycert.crt and mycert.key will be built in your&lt;br /&gt;
   KEY_DIR directory, and mycert.crt will be signed&lt;br /&gt;
   by your root CA. If ./build-key-pkcs12 was used a&lt;br /&gt;
   mycert.p12 file will also be created including the&lt;br /&gt;
   private key, certificate and the ca certificate.&lt;br /&gt;
&lt;br /&gt;
IMPORTANT&lt;br /&gt;
&lt;br /&gt;
To avoid a possible Man-in-the-Middle attack where an authorized&lt;br /&gt;
client tries to connect to another client by impersonating the&lt;br /&gt;
server, make sure to enforce some kind of server certificate&lt;br /&gt;
verification by clients.  There are currently four different ways&lt;br /&gt;
of accomplishing this, listed in the order of preference:&lt;br /&gt;
&lt;br /&gt;
(1) Build your server certificates with the build-key-server&lt;br /&gt;
    script.  This will designate the certificate as a&lt;br /&gt;
    server-only certificate by setting nsCertType=server.&lt;br /&gt;
    Now add the following line to your client configuration:&lt;br /&gt;
&lt;br /&gt;
    ns-cert-type server&lt;br /&gt;
&lt;br /&gt;
    This will block clients from connecting to any&lt;br /&gt;
    server which lacks the nsCertType=server designation&lt;br /&gt;
    in its certificate, even if the certificate has been&lt;br /&gt;
    signed by the CA which is cited in the OpenVPN configuration&lt;br /&gt;
    file (--ca directive).&lt;br /&gt;
&lt;br /&gt;
(2) Use the --tls-remote directive on the client to&lt;br /&gt;
    accept/reject the server connection based on the common&lt;br /&gt;
    name of the server certificate.&lt;br /&gt;
&lt;br /&gt;
(3) Use a --tls-verify script or plugin to accept/reject the&lt;br /&gt;
    server connection based on a custom test of the server&lt;br /&gt;
    certificate's embedded X509 subject details.&lt;br /&gt;
IMPORTANT&lt;br /&gt;
&lt;br /&gt;
To avoid a possible Man-in-the-Middle attack where an authorized&lt;br /&gt;
client tries to connect to another client by impersonating the&lt;br /&gt;
server, make sure to enforce some kind of server certificate&lt;br /&gt;
verification by clients.  There are currently four different ways&lt;br /&gt;
of accomplishing this, listed in the order of preference:&lt;br /&gt;
&lt;br /&gt;
(1) Build your server certificates with the build-key-server&lt;br /&gt;
    script.  This will designate the certificate as a&lt;br /&gt;
    server-only certificate by setting nsCertType=server.&lt;br /&gt;
    Now add the following line to your client configuration:&lt;br /&gt;
&lt;br /&gt;
    ns-cert-type server&lt;br /&gt;
&lt;br /&gt;
    This will block clients from connecting to any&lt;br /&gt;
    server which lacks the nsCertType=server designation&lt;br /&gt;
    in its certificate, even if the certificate has been&lt;br /&gt;
    signed by the CA which is cited in the OpenVPN configuration&lt;br /&gt;
    file (--ca directive).&lt;br /&gt;
&lt;br /&gt;
(2) Use the --tls-remote directive on the client to&lt;br /&gt;
    accept/reject the server connection based on the common&lt;br /&gt;
    name of the server certificate.&lt;br /&gt;
&lt;br /&gt;
(3) Use a --tls-verify script or plugin to accept/reject the&lt;br /&gt;
    server connection based on a custom test of the server&lt;br /&gt;
    certificate's embedded X509 subject details.&lt;br /&gt;
&lt;br /&gt;
(4) Sign server certificates with one CA and client certificates&lt;br /&gt;
    with a different CA.  The client config &amp;quot;ca&amp;quot; directive should&lt;br /&gt;
    reference the server-signing CA while the server config &amp;quot;ca&amp;quot;&lt;br /&gt;
    directive should reference the client-signing CA.&lt;br /&gt;
&lt;br /&gt;
NOTES&lt;br /&gt;
&lt;br /&gt;
Show certificate fields:&lt;br /&gt;
  openssl x509 -in cert.crt -text&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cd easy-rsa&lt;br /&gt;
# vi vars&lt;br /&gt;
. vars&lt;br /&gt;
./clean-all&lt;br /&gt;
&lt;br /&gt;
## BUILD YOUR OWN ROOT CERTIFICATE AUTHORITY (CA) CERTIFICATE/KEY&lt;br /&gt;
./build.ca&lt;br /&gt;
&lt;br /&gt;
## BUILD AN INTERMEDIATE CERTIFICATE AUTHORITY CERTIFICATE/KEY (optional)&lt;br /&gt;
./build-inter inter&lt;br /&gt;
&lt;br /&gt;
## BUILD DIFFIE-HELLMAN PARAMETERS (necessary for the server end of a SSL/TLS connection).&lt;br /&gt;
./build.dh&lt;br /&gt;
&lt;br /&gt;
## BUILD A CERTIFICATE SIGNING REQUEST &lt;br /&gt;
## (If you want to sign your certificate with a root certificate controlled by another individual &lt;br /&gt;
## or organization, or residing on a different machine)&lt;br /&gt;
&lt;br /&gt;
./build-req mycert&lt;br /&gt;
## SIGN A CERTIFICATE SIGNING REQUEST&lt;br /&gt;
./sign-req mycert&lt;br /&gt;
&lt;br /&gt;
## BUILD AND SIGN A CERTIFICATE SIGNING REQUEST USING A LOCALLY INSTALLED ROOT CERTIFICATE/KEY&lt;br /&gt;
./build-key mycert (no password protection)&lt;br /&gt;
OR &lt;br /&gt;
./build-key-pass mycert (with password protection)&lt;br /&gt;
OR &lt;br /&gt;
./build-key-pkcs12 mycert (PKCS #12 format)&lt;br /&gt;
OR &lt;br /&gt;
./build-key-server mycert (with nsCertType=server)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configuring the Server==&lt;br /&gt;
&lt;br /&gt;
Edit the server.conf file: '''''vi /etc/openvpn/server.conf'''''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## Mode Server&lt;br /&gt;
mode server&lt;br /&gt;
&lt;br /&gt;
## Local Host Name/IP Server&lt;br /&gt;
;local 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
## Protocol&lt;br /&gt;
;proto tcp&lt;br /&gt;
proto udp&lt;br /&gt;
&lt;br /&gt;
## Port&lt;br /&gt;
; port 1194&lt;br /&gt;
&lt;br /&gt;
## Device Interface&lt;br /&gt;
;dev tap&lt;br /&gt;
dev tun&lt;br /&gt;
&lt;br /&gt;
## TAP-Win32 adapter name&lt;br /&gt;
;dev-node MyTap&lt;br /&gt;
&lt;br /&gt;
## SSL/TLS &lt;br /&gt;
## root certificate (ca)&lt;br /&gt;
## certificate (cert)&lt;br /&gt;
## private key (key)&lt;br /&gt;
ca /etc/openvpn/certs/ca.crt&lt;br /&gt;
cert /etc/openvpn/certs/server.crt&lt;br /&gt;
key /etc/openvpn/certs/server.key&lt;br /&gt;
&lt;br /&gt;
## Diffie hellman parameters&lt;br /&gt;
dh dh1024.pem&lt;br /&gt;
&lt;br /&gt;
## VPN subnet&lt;br /&gt;
server 10.8.0.0 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
ifconfig-pool-persist ipp.txt&lt;br /&gt;
&lt;br /&gt;
##ethernet bridging&lt;br /&gt;
;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100&lt;br /&gt;
&lt;br /&gt;
## dhcpcaveats&lt;br /&gt;
;push &amp;quot;route 192.168.10.0 255.255.255.0&amp;quot;&lt;br /&gt;
;push &amp;quot;route 192.168.20.0 255.255.255.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
;client-config-dir ccd&lt;br /&gt;
&lt;br /&gt;
;route 192.168.40.128 255.255.255.248&lt;br /&gt;
&lt;br /&gt;
;client-config-dir ccd&lt;br /&gt;
&lt;br /&gt;
;route 10.9.0.0 255.255.255.252&lt;br /&gt;
&lt;br /&gt;
;learn-address ./script&lt;br /&gt;
&lt;br /&gt;
## dhcpcaveats&lt;br /&gt;
;push &amp;quot;redirect-gateway&amp;quot;&lt;br /&gt;
;push &amp;quot;dhcp-option DNS 10.8.0.1&amp;quot;&lt;br /&gt;
;push &amp;quot;dhcp-option WINS 10.8.0.1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
##&lt;br /&gt;
;client-to-client&lt;br /&gt;
&lt;br /&gt;
## same &amp;quot;COMMON NAME&amp;quot; certificate/key&lt;br /&gt;
;duplicate-cn&lt;br /&gt;
&lt;br /&gt;
## Status Connection&lt;br /&gt;
keepalive 10 120&lt;br /&gt;
&lt;br /&gt;
## tls-auth key&lt;br /&gt;
;tls-auth ta.key 0 &lt;br /&gt;
&lt;br /&gt;
## Cryptographic cipher&lt;br /&gt;
;cipher BF-CBC        # Blowfish (default)&lt;br /&gt;
;cipher AES-128-CBC   # AES&lt;br /&gt;
;cipher DES-EDE3-CBC  # Triple-DES&lt;br /&gt;
&lt;br /&gt;
## Link Compresion&lt;br /&gt;
comp-lzo&lt;br /&gt;
&lt;br /&gt;
## Max Client Connections&lt;br /&gt;
;max-clients 100&lt;br /&gt;
&lt;br /&gt;
## daemon privileges (non windows saja)&lt;br /&gt;
user nobody&lt;br /&gt;
group nobody&lt;br /&gt;
&lt;br /&gt;
persist-key&lt;br /&gt;
persist-tun&lt;br /&gt;
&lt;br /&gt;
## Openvpn Log&lt;br /&gt;
;log         /var/log/openvpn/openvpn.log&lt;br /&gt;
;log-append  /var/log/openvpn/openvpn.log&lt;br /&gt;
&lt;br /&gt;
## Output Log&lt;br /&gt;
status /var/log/openvpn/openvpn-status.log&lt;br /&gt;
&lt;br /&gt;
## Log Verbosity&lt;br /&gt;
## 0 is silent, except for fatal errors&lt;br /&gt;
## 4 is reasonable for general usage&lt;br /&gt;
## 5 and 6 can help to debug connection problems&lt;br /&gt;
## 9 is extremely verbose&lt;br /&gt;
verb 3&lt;br /&gt;
&lt;br /&gt;
## Repeating Messages&lt;br /&gt;
;mute 20&lt;br /&gt;
&lt;br /&gt;
## Pid File&lt;br /&gt;
writepid /var/run/openvpn.pid&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Routing'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
route add -net 10.0.1.0 netmask 255.255.255.0 gw 10.4.0.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Firewall'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iptables -A INPUT -p udp -s 1.2.3.4 --dport 1194 -j ACCEPT&lt;br /&gt;
OR&lt;br /&gt;
iptables -A INPUT -p udp --dport 1194 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
## Tun Device&lt;br /&gt;
iptables -A INPUT -i tun+ -j ACCEPT&lt;br /&gt;
iptables -A FORWARD -i tun+ -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
## Tap Device&lt;br /&gt;
iptables -A INPUT -i tap+ -j ACCEPT&lt;br /&gt;
iptables -A FORWARD -i tap+ -j ACCEPT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configuring the Client==&lt;br /&gt;
&lt;br /&gt;
Edit the client.conf file: '''''vi /etc/openvpn/client.conf'''''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## Config&lt;br /&gt;
client&lt;br /&gt;
&lt;br /&gt;
## Device Interface&lt;br /&gt;
;dev tap&lt;br /&gt;
dev tun&lt;br /&gt;
&lt;br /&gt;
## Tap adapter name (Win only)&lt;br /&gt;
;dev-node MyTap&lt;br /&gt;
&lt;br /&gt;
## Conectivity&lt;br /&gt;
;proto tcp&lt;br /&gt;
proto udp&lt;br /&gt;
&lt;br /&gt;
## Server [hostname/ip] [port]&lt;br /&gt;
remote my-server-1 1194&lt;br /&gt;
;remote my-server-2 1194&lt;br /&gt;
&lt;br /&gt;
## load-balancing&lt;br /&gt;
;remote-random&lt;br /&gt;
&lt;br /&gt;
## resolve host name OpenVPN server&lt;br /&gt;
resolv-retry infinite&lt;br /&gt;
&lt;br /&gt;
# local port&lt;br /&gt;
nobind&lt;br /&gt;
&lt;br /&gt;
## privileges (non windows saja)&lt;br /&gt;
user nobody&lt;br /&gt;
group nobody&lt;br /&gt;
&lt;br /&gt;
## preserve&lt;br /&gt;
persist-key&lt;br /&gt;
persist-tun&lt;br /&gt;
&lt;br /&gt;
## HTTP proxy&lt;br /&gt;
;http-proxy-retry &lt;br /&gt;
;http-proxy [proxy server] [proxy port]&lt;br /&gt;
&lt;br /&gt;
## duplicate packet warnings&lt;br /&gt;
;mute-replay-warnings&lt;br /&gt;
&lt;br /&gt;
## SSL/TLS parms&lt;br /&gt;
/etc/openvpn/certs/ca ca.crt&lt;br /&gt;
/etc/openvpn/certs/cert client.crt&lt;br /&gt;
/etc/openvpn/certs/key client.key&lt;br /&gt;
&lt;br /&gt;
## nsCertType key&lt;br /&gt;
;ns-cert-type server&lt;br /&gt;
&lt;br /&gt;
## tls-auth key&lt;br /&gt;
;tls-auth /etc/openvpn/certs/ta.key 1&lt;br /&gt;
&lt;br /&gt;
## Cryptographic cipher&lt;br /&gt;
;cipher x&lt;br /&gt;
&lt;br /&gt;
## Link compression&lt;br /&gt;
comp-lzo&lt;br /&gt;
&lt;br /&gt;
## verbosity&lt;br /&gt;
## 0 is silent, except for fatal errors&lt;br /&gt;
## 4 is reasonable for general usage&lt;br /&gt;
## 5 and 6 can help to debug connection problems&lt;br /&gt;
## 9 is extremely verbose&lt;br /&gt;
verb 3&lt;br /&gt;
&lt;br /&gt;
## repeating messages&lt;br /&gt;
;mute 20&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Routing'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
route add -net 10.0.0.0 netmask 255.255.255.0 gw 10.4.0.1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&lt;br /&gt;
'''Example 1:''' A simple tunnel without security&amp;lt;br&amp;gt;&lt;br /&gt;
'''On May: Server Side'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openvpn --remote jun.kg --dev tun1 --ifconfig 10.4.0.1 10.4.0.2 --verb 9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''On Jun: Client Side'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openvpn --remote may.kg --dev tun1 --ifconfig 10.4.0.2 10.4.0.1 --verb 9 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On May:&lt;br /&gt;
    ping 10.4.0.2 &lt;br /&gt;
&lt;br /&gt;
On Jun:&lt;br /&gt;
    ping 10.4.0.1&lt;br /&gt;
&lt;br /&gt;
'''Example 2:''' A tunnel with static-key security (i.e. using a pre-shared secret)&amp;lt;br&amp;gt;&lt;br /&gt;
'''On May: Server Side'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openvpn --remote jun.kg --dev tun1 --ifconfig 10.4.0.1 10.4.0.2 \&lt;br /&gt;
--verb 5 --secret key&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''On Jun: Client Side'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openvpn --remote may.kg --dev tun1 --ifconfig 10.4.0.2 10.4.0.1 \&lt;br /&gt;
--verb 5 --secret key &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On May:&lt;br /&gt;
    ping 10.4.0.2 &lt;br /&gt;
&lt;br /&gt;
On Jun:&lt;br /&gt;
    ping 10.4.0.1&lt;br /&gt;
&lt;br /&gt;
'''Example 3:''' A tunnel with full TLS-based security &amp;lt;br&amp;gt;&lt;br /&gt;
'''On May: Server Side'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openvpn --remote jun.kg --dev tun1 --ifconfig 10.4.0.1 10.4.0.2 \&lt;br /&gt;
--tls-client --ca tmp-ca.crt --cert client.crt --key client.key \&lt;br /&gt;
--reneg-sec 60 --verb 5 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''On Jun: Client Side'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openvpn --remote may.kg --dev tun1 --ifconfig 10.4.0.2 10.4.0.1 \&lt;br /&gt;
--tls-server --ca tmp-ca.crt --cert server.crt --key server.key \&lt;br /&gt;
--reneg-sec 60 --verb 5 --dh dh1024.pem&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On May:&lt;br /&gt;
&lt;br /&gt;
    ping 10.4.0.2 &lt;br /&gt;
&lt;br /&gt;
On Jun:&lt;br /&gt;
&lt;br /&gt;
    ping 10.4.0.1&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
&lt;br /&gt;
* http://dmalloc.com/&lt;br /&gt;
* http://valgrind.org/&lt;br /&gt;
* http://www.oberhumer.com/opensource/lzo/&lt;br /&gt;
* http://openvpn.net/&lt;br /&gt;
* http://openvpn.net/howto.html&lt;br /&gt;
* http://openvpn.net/1xhowto.html (Old-v1.06)&lt;br /&gt;
* http://openvpn.net/man.html&lt;/div&gt;</description>
			<pubDate>Wed, 06 Jun 2012 23:52:31 GMT</pubDate>
			<dc:creator>Arfon</dc:creator>
			<comments>https://www.slackwiki.com/Talk:OpenVPN</comments>
		</item>
		<item>
			<title>OpenVPN(ID)</title>
			<link>https://www.slackwiki.com/index.php?title=OpenVPN(ID)&amp;diff=705</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=OpenVPN(ID)&amp;diff=705</guid>
			<description>&lt;p&gt;Arfon: Moved from: http://www.slackwiki.com/OpenVPN&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Server]]&lt;br /&gt;
[[Category:Networking]]&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
As a user-space VPN daemon, OpenVPN is compatible with with SSL/TLS, RSA Certificates and X509 PKI, NAT, DHCP, and TUN/TAP virtual devices.&lt;br /&gt;
&lt;br /&gt;
OpenVPN is not compatible with IPSec, IKE, PPTP, or L2TP.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
== Instalasi ==&lt;br /&gt;
&lt;br /&gt;
Download source dari [http://openvpn.net openvpn.net]&lt;br /&gt;
&lt;br /&gt;
download versi 2.0&lt;br /&gt;
&lt;br /&gt;
instalasi Lzo&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tar zxvf lzo-1.08.tar.gz&lt;br /&gt;
cd lzo-1-08.tar.gz&lt;br /&gt;
./configure --prefix=/usr&lt;br /&gt;
make ; make install-strip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
insalasi OpenVPN&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tar zxvf openvpn-2.0.tar.gz&lt;br /&gt;
cd openvpn-2.0&lt;br /&gt;
./configure --prefix=/usr \&lt;br /&gt;
--sysconfdir=/etc/openvpn \&lt;br /&gt;
--enable-pthread \&lt;br /&gt;
--enable-iproute2 \&lt;br /&gt;
--with-ssl \&lt;br /&gt;
--with-lzo-header=/usr/include \&lt;br /&gt;
--with-lzo-lib=/usr/lib \&lt;br /&gt;
--with-ifconfig \&lt;br /&gt;
--with-route \&lt;br /&gt;
--with-mem-check=dmalloc &lt;br /&gt;
make ; make install-strip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Konfigurasi ==&lt;br /&gt;
&lt;br /&gt;
==Konfigurasi Sertifikat==&lt;br /&gt;
&lt;br /&gt;
Simpan seluruh sertifikat di '''''/etc/openvpn/certs'''''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
This is a small RSA key management package,&lt;br /&gt;
based on the openssl command line tool, that&lt;br /&gt;
can be found in the easy-rsa subdirectory&lt;br /&gt;
of the OpenVPN distribution.&lt;br /&gt;
&lt;br /&gt;
These are reference notes.  For step&lt;br /&gt;
by step instructions, see the HOWTO:&lt;br /&gt;
&lt;br /&gt;
http://openvpn.net/howto.html&lt;br /&gt;
&lt;br /&gt;
INSTALL&lt;br /&gt;
&lt;br /&gt;
1. Edit vars.&lt;br /&gt;
2. Set KEY_CONFIG to point to the openssl.cnf file&lt;br /&gt;
   included in this distribution.&lt;br /&gt;
3. Set KEY_DIR to point to a directory which will&lt;br /&gt;
   contain all keys, certificates, etc.  This&lt;br /&gt;
   directory need not exist, and if it does,&lt;br /&gt;
   it will be deleted with rm -rf, so BE&lt;br /&gt;
   CAREFUL how you set KEY_DIR.&lt;br /&gt;
4. (Optional) Edit other fields in vars&lt;br /&gt;
   per your site data.  You may want to&lt;br /&gt;
   increase KEY_SIZE to 2048 if you are&lt;br /&gt;
   paranoid and don't mind slower key&lt;br /&gt;
   processing, but certainly 1024 is&lt;br /&gt;
   fine for testing purposes.  KEY_SIZE&lt;br /&gt;
   must be compatible across both peers&lt;br /&gt;
   participating in a secure SSL/TLS&lt;br /&gt;
   connection.&lt;br /&gt;
5  . vars&lt;br /&gt;
6. ./clean-all&lt;br /&gt;
7. As you create certificates, keys, and&lt;br /&gt;
   certificate signing requests, understand that&lt;br /&gt;
   only .key files should be kept confidential.&lt;br /&gt;
   .crt and .csr files can be sent over insecure&lt;br /&gt;
   channels such as plaintext email.&lt;br /&gt;
8. You should never need to copy a .key file&lt;br /&gt;
   between computers.  Normally each computer&lt;br /&gt;
   will have its own certificate/key pair.&lt;br /&gt;
&lt;br /&gt;
BUILD YOUR OWN ROOT CERTIFICATE AUTHORITY (CA) CERTIFICATE/KEY&lt;br /&gt;
&lt;br /&gt;
1. ./build-ca&lt;br /&gt;
2. ca.crt and ca.key will be built in your KEY_DIR&lt;br /&gt;
   directory&lt;br /&gt;
&lt;br /&gt;
BUILD AN INTERMEDIATE CERTIFICATE AUTHORITY CERTIFICATE/KEY (optional)&lt;br /&gt;
&lt;br /&gt;
1. ./build-inter inter&lt;br /&gt;
2. inter.crt and inter.key will be built in your KEY_DIR&lt;br /&gt;
   directory and signed with your root certificate.&lt;br /&gt;
&lt;br /&gt;
BUILD DIFFIE-HELLMAN PARAMETERS (necessary for&lt;br /&gt;
the server end of a SSL/TLS connection).&lt;br /&gt;
&lt;br /&gt;
1. ./build-dh&lt;br /&gt;
&lt;br /&gt;
BUILD A CERTIFICATE SIGNING REQUEST (If&lt;br /&gt;
you want to sign your certificate with a root&lt;br /&gt;
certificate controlled by another individual&lt;br /&gt;
or organization, or residing on a different machine).&lt;br /&gt;
&lt;br /&gt;
1. Get ca.crt (the root certificate) from your&lt;br /&gt;
   certificate authority.  Though this&lt;br /&gt;
   transfer can be over an insecure channel, to prevent&lt;br /&gt;
   man-in-the-middle attacks you must confirm that&lt;br /&gt;
   ca.crt was not tampered with.  Large CAs solve this&lt;br /&gt;
   problem by hardwiring their root certificates into&lt;br /&gt;
   popular web browsers.  A simple way to verify a root&lt;br /&gt;
   CA is to call the issuer on the telephone and confirm&lt;br /&gt;
   that the md5sum or sha1sum signatures on the ca.crt&lt;br /&gt;
   files match (such as with the command: &amp;quot;md5sum ca.crt&amp;quot;).&lt;br /&gt;
2. Choose a name for your certificate such as your computer&lt;br /&gt;
   name.  In our example we will use &amp;quot;mycert&amp;quot;.&lt;br /&gt;
3. ./build-req mycert&lt;br /&gt;
4. You can ignore most of the fields, but set&lt;br /&gt;
   &amp;quot;Common Name&amp;quot; to something unique such as your&lt;br /&gt;
   computer's host name.  Leave all password&lt;br /&gt;
   fields blank, unless you want your private key&lt;br /&gt;
   to be protected by password.  Using a password&lt;br /&gt;
   is not required -- it will make your key more secure&lt;br /&gt;
   but also more inconvenient to use, because you will&lt;br /&gt;
   need to supply your password anytime the key is used.&lt;br /&gt;
   NOTE: if you are using a password, use ./build-req-pass&lt;br /&gt;
   instead of ./build-req&lt;br /&gt;
5. Your key will be written to $KEY_DIR/mycert.key&lt;br /&gt;
6. Your certificate signing request will be written to&lt;br /&gt;
   to $KEY_DIR/mycert.csr&lt;br /&gt;
7. Email mycert.csr to the individual or organization&lt;br /&gt;
   which controls the root certificate.  This can be&lt;br /&gt;
   done over an insecure channel.&lt;br /&gt;
8. After the .csr file is signed by the root certificate&lt;br /&gt;
   authority, you will receive a file mycert.crt&lt;br /&gt;
   (your certificate).  Place mycert.crt in your&lt;br /&gt;
   KEY_DIR directory.&lt;br /&gt;
9. The combined files of mycert.crt, mycert.key,&lt;br /&gt;
   and ca.crt can now be used to secure one end of&lt;br /&gt;
   an SSL/TLS connection.&lt;br /&gt;
&lt;br /&gt;
SIGN A CERTIFICATE SIGNING REQUEST&lt;br /&gt;
&lt;br /&gt;
1. ./sign-req mycert&lt;br /&gt;
2. mycert.crt will be built in your KEY_DIR&lt;br /&gt;
   directory using mycert.csr and your root CA&lt;br /&gt;
   file as input.&lt;br /&gt;
&lt;br /&gt;
BUILD AND SIGN A CERTIFICATE SIGNING REQUEST&lt;br /&gt;
USING A LOCALLY INSTALLED ROOT CERTIFICATE/KEY -- this&lt;br /&gt;
script generates and signs a certificate in one step,&lt;br /&gt;
but it requires that the generated certificate and private&lt;br /&gt;
key files be copied to the destination host over a&lt;br /&gt;
secure channel.&lt;br /&gt;
&lt;br /&gt;
1. ./build-key mycert (no password protection)&lt;br /&gt;
2. OR ./build-key-pass mycert (with password protection)&lt;br /&gt;
3. OR ./build-key-pkcs12 mycert (PKCS #12 format)&lt;br /&gt;
4. OR ./build-key-server mycert (with nsCertType=server)&lt;br /&gt;
5. mycert.crt and mycert.key will be built in your&lt;br /&gt;
   KEY_DIR directory, and mycert.crt will be signed&lt;br /&gt;
   by your root CA. If ./build-key-pkcs12 was used a&lt;br /&gt;
   mycert.p12 file will also be created including the&lt;br /&gt;
   private key, certificate and the ca certificate.&lt;br /&gt;
&lt;br /&gt;
IMPORTANT&lt;br /&gt;
&lt;br /&gt;
To avoid a possible Man-in-the-Middle attack where an authorized&lt;br /&gt;
client tries to connect to another client by impersonating the&lt;br /&gt;
server, make sure to enforce some kind of server certificate&lt;br /&gt;
verification by clients.  There are currently four different ways&lt;br /&gt;
of accomplishing this, listed in the order of preference:&lt;br /&gt;
&lt;br /&gt;
(1) Build your server certificates with the build-key-server&lt;br /&gt;
    script.  This will designate the certificate as a&lt;br /&gt;
    server-only certificate by setting nsCertType=server.&lt;br /&gt;
    Now add the following line to your client configuration:&lt;br /&gt;
&lt;br /&gt;
    ns-cert-type server&lt;br /&gt;
&lt;br /&gt;
    This will block clients from connecting to any&lt;br /&gt;
    server which lacks the nsCertType=server designation&lt;br /&gt;
    in its certificate, even if the certificate has been&lt;br /&gt;
    signed by the CA which is cited in the OpenVPN configuration&lt;br /&gt;
    file (--ca directive).&lt;br /&gt;
&lt;br /&gt;
(2) Use the --tls-remote directive on the client to&lt;br /&gt;
    accept/reject the server connection based on the common&lt;br /&gt;
    name of the server certificate.&lt;br /&gt;
&lt;br /&gt;
(3) Use a --tls-verify script or plugin to accept/reject the&lt;br /&gt;
    server connection based on a custom test of the server&lt;br /&gt;
    certificate's embedded X509 subject details.&lt;br /&gt;
IMPORTANT&lt;br /&gt;
&lt;br /&gt;
To avoid a possible Man-in-the-Middle attack where an authorized&lt;br /&gt;
client tries to connect to another client by impersonating the&lt;br /&gt;
server, make sure to enforce some kind of server certificate&lt;br /&gt;
verification by clients.  There are currently four different ways&lt;br /&gt;
of accomplishing this, listed in the order of preference:&lt;br /&gt;
&lt;br /&gt;
(1) Build your server certificates with the build-key-server&lt;br /&gt;
    script.  This will designate the certificate as a&lt;br /&gt;
    server-only certificate by setting nsCertType=server.&lt;br /&gt;
    Now add the following line to your client configuration:&lt;br /&gt;
&lt;br /&gt;
    ns-cert-type server&lt;br /&gt;
&lt;br /&gt;
    This will block clients from connecting to any&lt;br /&gt;
    server which lacks the nsCertType=server designation&lt;br /&gt;
    in its certificate, even if the certificate has been&lt;br /&gt;
    signed by the CA which is cited in the OpenVPN configuration&lt;br /&gt;
    file (--ca directive).&lt;br /&gt;
&lt;br /&gt;
(2) Use the --tls-remote directive on the client to&lt;br /&gt;
    accept/reject the server connection based on the common&lt;br /&gt;
    name of the server certificate.&lt;br /&gt;
&lt;br /&gt;
(3) Use a --tls-verify script or plugin to accept/reject the&lt;br /&gt;
    server connection based on a custom test of the server&lt;br /&gt;
    certificate's embedded X509 subject details.&lt;br /&gt;
&lt;br /&gt;
(4) Sign server certificates with one CA and client certificates&lt;br /&gt;
    with a different CA.  The client config &amp;quot;ca&amp;quot; directive should&lt;br /&gt;
    reference the server-signing CA while the server config &amp;quot;ca&amp;quot;&lt;br /&gt;
    directive should reference the client-signing CA.&lt;br /&gt;
&lt;br /&gt;
NOTES&lt;br /&gt;
&lt;br /&gt;
Show certificate fields:&lt;br /&gt;
  openssl x509 -in cert.crt -text&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cd easy-rsa&lt;br /&gt;
# vi vars&lt;br /&gt;
. vars&lt;br /&gt;
./clean-all&lt;br /&gt;
&lt;br /&gt;
## BUILD YOUR OWN ROOT CERTIFICATE AUTHORITY (CA) CERTIFICATE/KEY&lt;br /&gt;
./build.ca&lt;br /&gt;
&lt;br /&gt;
## BUILD AN INTERMEDIATE CERTIFICATE AUTHORITY CERTIFICATE/KEY (optional)&lt;br /&gt;
./build-inter inter&lt;br /&gt;
&lt;br /&gt;
## BUILD DIFFIE-HELLMAN PARAMETERS (necessary for the server end of a SSL/TLS connection).&lt;br /&gt;
./build.dh&lt;br /&gt;
&lt;br /&gt;
## BUILD A CERTIFICATE SIGNING REQUEST &lt;br /&gt;
## (If you want to sign your certificate with a root certificate controlled by another individual &lt;br /&gt;
## or organization, or residing on a different machine)&lt;br /&gt;
&lt;br /&gt;
./build-req mycert&lt;br /&gt;
## SIGN A CERTIFICATE SIGNING REQUEST&lt;br /&gt;
./sign-req mycert&lt;br /&gt;
&lt;br /&gt;
## BUILD AND SIGN A CERTIFICATE SIGNING REQUEST USING A LOCALLY INSTALLED ROOT CERTIFICATE/KEY&lt;br /&gt;
./build-key mycert (no password protection)&lt;br /&gt;
OR &lt;br /&gt;
./build-key-pass mycert (with password protection)&lt;br /&gt;
OR &lt;br /&gt;
./build-key-pkcs12 mycert (PKCS #12 format)&lt;br /&gt;
OR &lt;br /&gt;
./build-key-server mycert (with nsCertType=server)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Konfigurasi Server==&lt;br /&gt;
&lt;br /&gt;
edit server.conf '''''vi /etc/openvpn/server.conf'''''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## Mode Server&lt;br /&gt;
mode server&lt;br /&gt;
&lt;br /&gt;
## Local Host Name/IP Server&lt;br /&gt;
;local 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
## Protocol&lt;br /&gt;
;proto tcp&lt;br /&gt;
proto udp&lt;br /&gt;
&lt;br /&gt;
## Port&lt;br /&gt;
; port 1194&lt;br /&gt;
&lt;br /&gt;
## Device Interface&lt;br /&gt;
;dev tap&lt;br /&gt;
dev tun&lt;br /&gt;
&lt;br /&gt;
## TAP-Win32 adapter name&lt;br /&gt;
;dev-node MyTap&lt;br /&gt;
&lt;br /&gt;
## SSL/TLS &lt;br /&gt;
## root certificate (ca)&lt;br /&gt;
## certificate (cert)&lt;br /&gt;
## private key (key)&lt;br /&gt;
ca /etc/openvpn/certs/ca.crt&lt;br /&gt;
cert /etc/openvpn/certs/server.crt&lt;br /&gt;
key /etc/openvpn/certs/server.key&lt;br /&gt;
&lt;br /&gt;
## Diffie hellman parameters&lt;br /&gt;
dh dh1024.pem&lt;br /&gt;
&lt;br /&gt;
## VPN subnet&lt;br /&gt;
server 10.8.0.0 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
ifconfig-pool-persist ipp.txt&lt;br /&gt;
&lt;br /&gt;
##ethernet bridging&lt;br /&gt;
;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100&lt;br /&gt;
&lt;br /&gt;
## dhcpcaveats&lt;br /&gt;
;push &amp;quot;route 192.168.10.0 255.255.255.0&amp;quot;&lt;br /&gt;
;push &amp;quot;route 192.168.20.0 255.255.255.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
;client-config-dir ccd&lt;br /&gt;
&lt;br /&gt;
;route 192.168.40.128 255.255.255.248&lt;br /&gt;
&lt;br /&gt;
;client-config-dir ccd&lt;br /&gt;
&lt;br /&gt;
;route 10.9.0.0 255.255.255.252&lt;br /&gt;
&lt;br /&gt;
;learn-address ./script&lt;br /&gt;
&lt;br /&gt;
## dhcpcaveats&lt;br /&gt;
;push &amp;quot;redirect-gateway&amp;quot;&lt;br /&gt;
;push &amp;quot;dhcp-option DNS 10.8.0.1&amp;quot;&lt;br /&gt;
;push &amp;quot;dhcp-option WINS 10.8.0.1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
##&lt;br /&gt;
;client-to-client&lt;br /&gt;
&lt;br /&gt;
## same &amp;quot;COMMON NAME&amp;quot; certificate/key&lt;br /&gt;
;duplicate-cn&lt;br /&gt;
&lt;br /&gt;
## Status Connection&lt;br /&gt;
keepalive 10 120&lt;br /&gt;
&lt;br /&gt;
## tls-auth key&lt;br /&gt;
;tls-auth ta.key 0 &lt;br /&gt;
&lt;br /&gt;
## Cryptographic cipher&lt;br /&gt;
;cipher BF-CBC        # Blowfish (default)&lt;br /&gt;
;cipher AES-128-CBC   # AES&lt;br /&gt;
;cipher DES-EDE3-CBC  # Triple-DES&lt;br /&gt;
&lt;br /&gt;
## Link Compresion&lt;br /&gt;
comp-lzo&lt;br /&gt;
&lt;br /&gt;
## Max Client Connections&lt;br /&gt;
;max-clients 100&lt;br /&gt;
&lt;br /&gt;
## daemon privileges (non windows saja)&lt;br /&gt;
user nobody&lt;br /&gt;
group nobody&lt;br /&gt;
&lt;br /&gt;
persist-key&lt;br /&gt;
persist-tun&lt;br /&gt;
&lt;br /&gt;
## Openvpn Log&lt;br /&gt;
;log         /var/log/openvpn/openvpn.log&lt;br /&gt;
;log-append  /var/log/openvpn/openvpn.log&lt;br /&gt;
&lt;br /&gt;
## Output Log&lt;br /&gt;
status /var/log/openvpn/openvpn-status.log&lt;br /&gt;
&lt;br /&gt;
## Log Verbosity&lt;br /&gt;
## 0 is silent, except for fatal errors&lt;br /&gt;
## 4 is reasonable for general usage&lt;br /&gt;
## 5 and 6 can help to debug connection problems&lt;br /&gt;
## 9 is extremely verbose&lt;br /&gt;
verb 3&lt;br /&gt;
&lt;br /&gt;
## Repeating Messages&lt;br /&gt;
;mute 20&lt;br /&gt;
&lt;br /&gt;
## Pid File&lt;br /&gt;
writepid /var/run/openvpn.pid&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Routing'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
route add -net 10.0.1.0 netmask 255.255.255.0 gw 10.4.0.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Firewall'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iptables -A INPUT -p udp -s 1.2.3.4 --dport 1194 -j ACCEPT&lt;br /&gt;
OR&lt;br /&gt;
iptables -A INPUT -p udp --dport 1194 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
## Tun Device&lt;br /&gt;
iptables -A INPUT -i tun+ -j ACCEPT&lt;br /&gt;
iptables -A FORWARD -i tun+ -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
## Tap Device&lt;br /&gt;
iptables -A INPUT -i tap+ -j ACCEPT&lt;br /&gt;
iptables -A FORWARD -i tap+ -j ACCEPT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Konfigurasi client==&lt;br /&gt;
&lt;br /&gt;
edit file client.conf '''''vi /etc/openvpn/client.conf'''''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## Config&lt;br /&gt;
client&lt;br /&gt;
&lt;br /&gt;
## Device Interface&lt;br /&gt;
;dev tap&lt;br /&gt;
dev tun&lt;br /&gt;
&lt;br /&gt;
## Tap adapter name (Win only)&lt;br /&gt;
;dev-node MyTap&lt;br /&gt;
&lt;br /&gt;
## Conectivity&lt;br /&gt;
;proto tcp&lt;br /&gt;
proto udp&lt;br /&gt;
&lt;br /&gt;
## Server [hostname/ip] [port]&lt;br /&gt;
remote my-server-1 1194&lt;br /&gt;
;remote my-server-2 1194&lt;br /&gt;
&lt;br /&gt;
## load-balancing&lt;br /&gt;
;remote-random&lt;br /&gt;
&lt;br /&gt;
## resolve host name OpenVPN server&lt;br /&gt;
resolv-retry infinite&lt;br /&gt;
&lt;br /&gt;
# local port&lt;br /&gt;
nobind&lt;br /&gt;
&lt;br /&gt;
## privileges (non windows saja)&lt;br /&gt;
user nobody&lt;br /&gt;
group nobody&lt;br /&gt;
&lt;br /&gt;
## preserve&lt;br /&gt;
persist-key&lt;br /&gt;
persist-tun&lt;br /&gt;
&lt;br /&gt;
## HTTP proxy&lt;br /&gt;
;http-proxy-retry &lt;br /&gt;
;http-proxy [proxy server] [proxy port]&lt;br /&gt;
&lt;br /&gt;
## duplicate packet warnings&lt;br /&gt;
;mute-replay-warnings&lt;br /&gt;
&lt;br /&gt;
## SSL/TLS parms&lt;br /&gt;
/etc/openvpn/certs/ca ca.crt&lt;br /&gt;
/etc/openvpn/certs/cert client.crt&lt;br /&gt;
/etc/openvpn/certs/key client.key&lt;br /&gt;
&lt;br /&gt;
## nsCertType key&lt;br /&gt;
;ns-cert-type server&lt;br /&gt;
&lt;br /&gt;
## tls-auth key&lt;br /&gt;
;tls-auth /etc/openvpn/certs/ta.key 1&lt;br /&gt;
&lt;br /&gt;
## Cryptographic cipher&lt;br /&gt;
;cipher x&lt;br /&gt;
&lt;br /&gt;
## Link compression&lt;br /&gt;
comp-lzo&lt;br /&gt;
&lt;br /&gt;
## verbosity&lt;br /&gt;
## 0 is silent, except for fatal errors&lt;br /&gt;
## 4 is reasonable for general usage&lt;br /&gt;
## 5 and 6 can help to debug connection problems&lt;br /&gt;
## 9 is extremely verbose&lt;br /&gt;
verb 3&lt;br /&gt;
&lt;br /&gt;
## repeating messages&lt;br /&gt;
;mute 20&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Routing'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
route add -net 10.0.0.0 netmask 255.255.255.0 gw 10.4.0.1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&lt;br /&gt;
'''Example 1:''' A simple tunnel without security&amp;lt;br&amp;gt;&lt;br /&gt;
'''On May: Server Side'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openvpn --remote jun.kg --dev tun1 --ifconfig 10.4.0.1 10.4.0.2 --verb 9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''On Jun: Client Side'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openvpn --remote may.kg --dev tun1 --ifconfig 10.4.0.2 10.4.0.1 --verb 9 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On May:&lt;br /&gt;
    ping 10.4.0.2 &lt;br /&gt;
&lt;br /&gt;
On Jun:&lt;br /&gt;
    ping 10.4.0.1&lt;br /&gt;
&lt;br /&gt;
'''Example 2:''' A tunnel with static-key security (i.e. using a pre-shared secret)&amp;lt;br&amp;gt;&lt;br /&gt;
'''On May: Server Side'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openvpn --remote jun.kg --dev tun1 --ifconfig 10.4.0.1 10.4.0.2 \&lt;br /&gt;
--verb 5 --secret key&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''On Jun: Client Side'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openvpn --remote may.kg --dev tun1 --ifconfig 10.4.0.2 10.4.0.1 \&lt;br /&gt;
--verb 5 --secret key &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On May:&lt;br /&gt;
    ping 10.4.0.2 &lt;br /&gt;
&lt;br /&gt;
On Jun:&lt;br /&gt;
    ping 10.4.0.1&lt;br /&gt;
&lt;br /&gt;
'''Example 3:''' A tunnel with full TLS-based security &amp;lt;br&amp;gt;&lt;br /&gt;
'''On May: Server Side'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openvpn --remote jun.kg --dev tun1 --ifconfig 10.4.0.1 10.4.0.2 \&lt;br /&gt;
--tls-client --ca tmp-ca.crt --cert client.crt --key client.key \&lt;br /&gt;
--reneg-sec 60 --verb 5 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''On Jun: Client Side'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openvpn --remote may.kg --dev tun1 --ifconfig 10.4.0.2 10.4.0.1 \&lt;br /&gt;
--tls-server --ca tmp-ca.crt --cert server.crt --key server.key \&lt;br /&gt;
--reneg-sec 60 --verb 5 --dh dh1024.pem&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On May:&lt;br /&gt;
&lt;br /&gt;
    ping 10.4.0.2 &lt;br /&gt;
&lt;br /&gt;
On Jun:&lt;br /&gt;
&lt;br /&gt;
    ping 10.4.0.1&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
&lt;br /&gt;
* http://dmalloc.com/&lt;br /&gt;
* http://valgrind.org/&lt;br /&gt;
* http://www.oberhumer.com/opensource/lzo/&lt;br /&gt;
* http://openvpn.net/&lt;br /&gt;
* http://openvpn.net/howto.html&lt;br /&gt;
* http://openvpn.net/1xhowto.html (Old-v1.06)&lt;br /&gt;
* http://openvpn.net/man.html&lt;/div&gt;</description>
			<pubDate>Wed, 06 Jun 2012 23:43:07 GMT</pubDate>
			<dc:creator>Arfon</dc:creator>
			<comments>https://www.slackwiki.com/Talk:OpenVPN(ID)</comments>
		</item>
		<item>
			<title>Routing Tricks</title>
			<link>https://www.slackwiki.com/index.php?title=Routing_Tricks&amp;diff=280</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=Routing_Tricks&amp;diff=280</guid>
			<description>&lt;p&gt;Arfon: /* Weighted Routing */  FIXED the screwed up link. And added the category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Weighted Routing==&lt;br /&gt;
(aka Load Balancing, Net Balancing)&lt;br /&gt;
&lt;br /&gt;
'''What is Weighted Routing'''&lt;br /&gt;
Simply put, distributing network traffic over multiple paths based on load.&lt;br /&gt;
&lt;br /&gt;
EXAMPLE 1: You have two DSL connections incoming and you distribute your connection traffic between them.&lt;br /&gt;
&lt;br /&gt;
EXAMPLE 2: You have a 1.5Mbs DSL connection and a 3MBs cable connection, therefore you set up your routing to send 1/3 of the traffic out the DSL connection and 2/3 out the cable connection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''How do I do it?'''&lt;br /&gt;
&lt;br /&gt;
Niels Horn has written a slick little script to do the weighted routing for you.  He has given me permission to copy it here.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #&lt;br /&gt;
 # bal_local		Load-balance internet connection over two local links &lt;br /&gt;
 #&lt;br /&gt;
 # Version:		1.0.0 - Fri, Sep 26, 2008&lt;br /&gt;
 #&lt;br /&gt;
 # Author:		Niels Horn &amp;lt;niels.horn(at symbol)gmail.com&amp;gt;&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # Set devices:&lt;br /&gt;
 DEV1=${1-eth0}	# default eth0&lt;br /&gt;
 DEV2=${2-ppp0}	# default ppp0&lt;br /&gt;
 #&lt;br /&gt;
 # Get IP addresses of our devices:&lt;br /&gt;
 ip1=`ifconfig $DEV1 | grep inet | awk '{ print $2 }' | awk -F: '{ print $2 }'`&lt;br /&gt;
 ip2=`ifconfig $DEV2 | grep inet | awk '{ print $2 }' | awk -F: '{ print $2 }'`&lt;br /&gt;
 #&lt;br /&gt;
 # Get default gateway for our devices:&lt;br /&gt;
 gw1=`route -n | grep $DEV1 | grep '^0.0.0.0' | awk '{ print $2 }'`&lt;br /&gt;
 gw2=`route -n | grep $DEV2 | grep '^0.0.0.0' | awk '{ print $2 }'`&lt;br /&gt;
 #&lt;br /&gt;
 echo &amp;quot;$DEV1: IP=$ip1 GW=$gw1&amp;quot;&lt;br /&gt;
 echo &amp;quot;$DEV2: IP=$ip2 GW=$gw2&amp;quot;&lt;br /&gt;
 #&lt;br /&gt;
 ### Definition of routes ###&lt;br /&gt;
 #&lt;br /&gt;
 # Check if tables exists, if not -&amp;gt; create them:&lt;br /&gt;
 if [ -z &amp;quot;`cat /etc/iproute2/rt_tables | grep '^251'`&amp;quot; ] ; then&lt;br /&gt;
 	echo &amp;quot;251	rt_dev1&amp;quot; &amp;gt;&amp;gt; /etc/iproute2/rt_tables&lt;br /&gt;
 fi&lt;br /&gt;
 if [ -z &amp;quot;`cat /etc/iproute2/rt_tables | grep '^252'`&amp;quot; ] ; then&lt;br /&gt;
 	echo &amp;quot;252	rt_dev2&amp;quot; &amp;gt;&amp;gt; /etc/iproute2/rt_tables&lt;br /&gt;
 fi&lt;br /&gt;
 #&lt;br /&gt;
 # Define routing tables:&lt;br /&gt;
 ip route add default via $gw1 table rt_dev1&lt;br /&gt;
 ip route add default via $gw2 table rt_dev2&lt;br /&gt;
 #&lt;br /&gt;
 # Create rules:&lt;br /&gt;
 ip rule add from $ip1 table rt_dev1&lt;br /&gt;
 ip rule add from $ip2 table rt_dev2&lt;br /&gt;
 #&lt;br /&gt;
 # If we already have a 'nexthop' route, delete it:&lt;br /&gt;
 if [ ! -z &amp;quot;`ip route show table main | grep 'nexthop'`&amp;quot; ] ; then&lt;br /&gt;
 	ip route del default scope global&lt;br /&gt;
 fi&lt;br /&gt;
 #&lt;br /&gt;
 # Balance links based on routes:&lt;br /&gt;
 ip route add default scope global nexthop via $gw1 dev $DEV1 weight 1 nexthop via $gw2 dev $DEV2 weight 1&lt;br /&gt;
 #&lt;br /&gt;
 # Flush cache table:&lt;br /&gt;
 ip route flush cache  &lt;br /&gt;
 #&lt;br /&gt;
 # All done...&lt;br /&gt;
&lt;br /&gt;
To use the script, copy it to /usr/local/bin, make it executable with 'chmod +x' and call it with:&lt;br /&gt;
Code:&lt;br /&gt;
&lt;br /&gt;
 bal_local &amp;lt;dev1&amp;gt; &amp;lt;dev2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
filling in &amp;lt;dev1&amp;gt; and &amp;lt;dev2&amp;gt; with your network-devices.&lt;br /&gt;
If you call the script without any parameters, it tries to balance eth0 and ppp0 (because this works in my case ).&lt;br /&gt;
&lt;br /&gt;
[http://www.linuxquestions.org/questions/slackware-14/script-to-load-balance-two-isps-with-ip-route-and-ip-rules-672602/ HERE IS HIS ORIGINAL POSTING]&lt;br /&gt;
&lt;br /&gt;
(ALSO, I copied a copy of his permission on my DISCUSSION page)&lt;br /&gt;
&lt;br /&gt;
[[Category:Tips]]&lt;/div&gt;</description>
			<pubDate>Sat, 09 Jan 2010 01:34:53 GMT</pubDate>
			<dc:creator>Arfon</dc:creator>
			<comments>https://www.slackwiki.com/Talk:Routing_Tricks</comments>
		</item>
		<item>
			<title>Talk:Routing Tricks</title>
			<link>https://www.slackwiki.com/index.php?title=Talk:Routing_Tricks&amp;diff=279</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=Talk:Routing_Tricks&amp;diff=279</guid>
			<description>&lt;p&gt;Arfon: Created page with 'Neils Horn's permission to repost his weighted routing info-   Hi,  I'm hopelessly without time these days (last days before going on  vacation), so feel free to post it on slack...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Neils Horn's permission to repost his weighted routing info-&lt;br /&gt;
&lt;br /&gt;
 Hi,&lt;br /&gt;
 I'm hopelessly without time these days (last days before going on&lt;br /&gt;
 vacation), so feel free to post it on slackwiki.org for me.&lt;br /&gt;
 I would appreciate it if you could send me the link afterwards so that&lt;br /&gt;
 I can take a look  :) &lt;br /&gt;
 Thanks,&lt;br /&gt;
 Niels&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------------------------------&lt;/div&gt;</description>
			<pubDate>Sat, 09 Jan 2010 01:29:01 GMT</pubDate>
			<dc:creator>Arfon</dc:creator>
			<comments>https://www.slackwiki.com/Talk:Routing_Tricks</comments>
		</item>
		<item>
			<title>Routing Tricks</title>
			<link>https://www.slackwiki.com/index.php?title=Routing_Tricks&amp;diff=278</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=Routing_Tricks&amp;diff=278</guid>
			<description>&lt;p&gt;Arfon: CREATED THIS PAGE&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Weighted Routing==&lt;br /&gt;
(aka Load Balancing, Net Balancing)&lt;br /&gt;
&lt;br /&gt;
'''What is Weighted Routing'''&lt;br /&gt;
Simply put, distributing network traffic over multiple paths based on load.&lt;br /&gt;
&lt;br /&gt;
EXAMPLE 1: You have two DSL connections incoming and you distribute your connection traffic between them.&lt;br /&gt;
&lt;br /&gt;
EXAMPLE 2: You have a 1.5Mbs DSL connection and a 3MBs cable connection, therefore you set up your routing to send 1/3 of the traffic out the DSL connection and 2/3 out the cable connection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''How do I do it?'''&lt;br /&gt;
&lt;br /&gt;
Niels Horn has written a slick little script to do the weighted routing for you.  He has given me permission to copy it here.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #&lt;br /&gt;
 # bal_local		Load-balance internet connection over two local links &lt;br /&gt;
 #&lt;br /&gt;
 # Version:		1.0.0 - Fri, Sep 26, 2008&lt;br /&gt;
 #&lt;br /&gt;
 # Author:		Niels Horn &amp;lt;niels.horn(at symbol)gmail.com&amp;gt;&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # Set devices:&lt;br /&gt;
 DEV1=${1-eth0}	# default eth0&lt;br /&gt;
 DEV2=${2-ppp0}	# default ppp0&lt;br /&gt;
 #&lt;br /&gt;
 # Get IP addresses of our devices:&lt;br /&gt;
 ip1=`ifconfig $DEV1 | grep inet | awk '{ print $2 }' | awk -F: '{ print $2 }'`&lt;br /&gt;
 ip2=`ifconfig $DEV2 | grep inet | awk '{ print $2 }' | awk -F: '{ print $2 }'`&lt;br /&gt;
 #&lt;br /&gt;
 # Get default gateway for our devices:&lt;br /&gt;
 gw1=`route -n | grep $DEV1 | grep '^0.0.0.0' | awk '{ print $2 }'`&lt;br /&gt;
 gw2=`route -n | grep $DEV2 | grep '^0.0.0.0' | awk '{ print $2 }'`&lt;br /&gt;
 #&lt;br /&gt;
 echo &amp;quot;$DEV1: IP=$ip1 GW=$gw1&amp;quot;&lt;br /&gt;
 echo &amp;quot;$DEV2: IP=$ip2 GW=$gw2&amp;quot;&lt;br /&gt;
 #&lt;br /&gt;
 ### Definition of routes ###&lt;br /&gt;
 #&lt;br /&gt;
 # Check if tables exists, if not -&amp;gt; create them:&lt;br /&gt;
 if [ -z &amp;quot;`cat /etc/iproute2/rt_tables | grep '^251'`&amp;quot; ] ; then&lt;br /&gt;
 	echo &amp;quot;251	rt_dev1&amp;quot; &amp;gt;&amp;gt; /etc/iproute2/rt_tables&lt;br /&gt;
 fi&lt;br /&gt;
 if [ -z &amp;quot;`cat /etc/iproute2/rt_tables | grep '^252'`&amp;quot; ] ; then&lt;br /&gt;
 	echo &amp;quot;252	rt_dev2&amp;quot; &amp;gt;&amp;gt; /etc/iproute2/rt_tables&lt;br /&gt;
 fi&lt;br /&gt;
 #&lt;br /&gt;
 # Define routing tables:&lt;br /&gt;
 ip route add default via $gw1 table rt_dev1&lt;br /&gt;
 ip route add default via $gw2 table rt_dev2&lt;br /&gt;
 #&lt;br /&gt;
 # Create rules:&lt;br /&gt;
 ip rule add from $ip1 table rt_dev1&lt;br /&gt;
 ip rule add from $ip2 table rt_dev2&lt;br /&gt;
 #&lt;br /&gt;
 # If we already have a 'nexthop' route, delete it:&lt;br /&gt;
 if [ ! -z &amp;quot;`ip route show table main | grep 'nexthop'`&amp;quot; ] ; then&lt;br /&gt;
 	ip route del default scope global&lt;br /&gt;
 fi&lt;br /&gt;
 #&lt;br /&gt;
 # Balance links based on routes:&lt;br /&gt;
 ip route add default scope global nexthop via $gw1 dev $DEV1 weight 1 nexthop via $gw2 dev $DEV2 weight 1&lt;br /&gt;
 #&lt;br /&gt;
 # Flush cache table:&lt;br /&gt;
 ip route flush cache  &lt;br /&gt;
 #&lt;br /&gt;
 # All done...&lt;br /&gt;
&lt;br /&gt;
To use the script, copy it to /usr/local/bin, make it executable with 'chmod +x' and call it with:&lt;br /&gt;
Code:&lt;br /&gt;
&lt;br /&gt;
 bal_local &amp;lt;dev1&amp;gt; &amp;lt;dev2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
filling in &amp;lt;dev1&amp;gt; and &amp;lt;dev2&amp;gt; with your network-devices.&lt;br /&gt;
If you call the script without any parameters, it tries to balance eth0 and ppp0 (because this works in my case ).&lt;br /&gt;
&lt;br /&gt;
[http://www.linuxquestions.org/questions/slackware-14/script-to-load-balance-two-isps-with-ip-route-and-ip-rules-672602 HERE IS HIS ORIGINAL POSTING]&lt;br /&gt;
&lt;br /&gt;
(ALSO, I copied a copy of his permission on my DISCUSSION page)&lt;/div&gt;</description>
			<pubDate>Sat, 09 Jan 2010 01:27:56 GMT</pubDate>
			<dc:creator>Arfon</dc:creator>
			<comments>https://www.slackwiki.com/Talk:Routing_Tricks</comments>
		</item>
		<item>
			<title>RAID Array (Hardware)</title>
			<link>https://www.slackwiki.com/index.php?title=RAID_Array_(Hardware)&amp;diff=277</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=RAID_Array_(Hardware)&amp;diff=277</guid>
			<description>&lt;p&gt;Arfon: /* My Card Is In, Now What? */  TYPO fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tips]]&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
&lt;br /&gt;
==My Card Is In, Now What?==&lt;br /&gt;
-Written from a Slackware 10 perspective-&lt;br /&gt;
&lt;br /&gt;
1) SET UP THE ARRAY- If you are using a hardware RAID card (like ones made by 3ware), on boot you must enter the card's BIOS and set up your array.  This is done by hitting a hotkey (ALT-3 for 3ware cards).  Read your card's instructions for details on how to configure your array.&lt;br /&gt;
&lt;br /&gt;
2) BOOT WITH THE CORRECT KERNEL- After you have set up your array, boot the computer with the Slackware Install CD (CD1) like normal. &amp;lt;b&amp;gt;At the &amp;lt;code&amp;gt;boot:&amp;lt;/code&amp;gt; prompt, choose a RAID supporting image (e.g. &amp;lt;code&amp;gt;raid.s&amp;lt;/code&amp;gt;).&amp;lt;/b&amp;gt;  YOU CAN NOT USE THE DEFAULT KERNEL (bare.i) to boot into set-up, you have to use a boot kernel that supports RAID arrays.&lt;br /&gt;
&lt;br /&gt;
:EXAMPLE: &amp;lt;code&amp;gt;boot: raid.s&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE: I don't believe STEP 2 applies to newer versions of Slackware. (e.g Slack13)'''&lt;br /&gt;
&lt;br /&gt;
3) PROCEED NORMALLY- Once you boot the RAID kernel, everything else proceeds normally except the hard-drive is (usually) &amp;lt;code&amp;gt;/dev/sda&amp;lt;/code&amp;gt;. Go ahead set up your partitions (&amp;lt;code&amp;gt;fdisk /dev/sda&amp;lt;/code&amp;gt;) and continue the normal Slackware install.&lt;br /&gt;
&lt;br /&gt;
==FAQs==&lt;br /&gt;
&lt;br /&gt;
Q: What device is my RAID array?&amp;lt;br&amp;gt;&lt;br /&gt;
A: You are most likely running RAID.S kernel so therefore it is probably &amp;lt;code&amp;gt;/dev/sda&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Q: It's not &amp;lt;code&amp;gt;/dev/sda&amp;lt;/code&amp;gt; where is it really?&amp;lt;br&amp;gt;&lt;br /&gt;
A: I don't know. Reboot your machine and watch the messages scroll by.  If you don't see the info, you don't have RAID support compiled into your kernel or as a module and you need to fix that.&lt;br /&gt;
&lt;br /&gt;
Q: My system has a [[forced fsck]] and it starts but after awhile, it resets and re-boots.  How do I fix this?&amp;lt;br&amp;gt;&lt;br /&gt;
A: Re-boot the system using a Slackware install CD (make sure you boot with a RAID kernel) then get to a command line prompt and manually run &amp;lt;code&amp;gt;fsck&amp;lt;/code&amp;gt;.&lt;br /&gt;
: EXAMPLE: &amp;lt;code&amp;gt;fsck -p /dev/sda1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Q: I'm trying to run &amp;lt;code&amp;gt;fsck&amp;lt;/code&amp;gt; manually but I get an &amp;quot;&amp;lt;code&amp;gt;The superblock cannot be read...&amp;lt;/code&amp;gt;&amp;quot; error.  How do I fix this?&amp;lt;br&amp;gt;&lt;br /&gt;
A: MOST LIKELY, you're not running a RAID supporting kernel.  Re-boot and choose a RAID kernel like &amp;lt;code&amp;gt;raid.s&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Q: I'm running &amp;lt;code&amp;gt;fsck&amp;lt;/code&amp;gt; manually and I am getting a &amp;quot;&amp;lt;code&amp;gt;error allocating inode bitmap (2)&amp;lt;/code&amp;gt;&amp;quot;.  How do I fix this?&amp;lt;br&amp;gt;&lt;br /&gt;
A: No clue. I haven't been able to find out what that means.  If you do, let us know please.&lt;br /&gt;
&lt;br /&gt;
==Hardware RAID Specific Help==&lt;br /&gt;
&lt;br /&gt;
[[3ware 3DM2]] - Help with 3ware's 3DM2 program.&lt;br /&gt;
&lt;br /&gt;
==Hardware RAID Specific Help==&lt;br /&gt;
&lt;br /&gt;
[[3ware 3ware 8006-2LP Installation]] - &lt;br /&gt;
&lt;br /&gt;
Installed slackware 12.2 with the 3ware 8006-2LP card today. I chose this hardware due to the fanfare I found on the net. It is supported with RedHat and Suse (presumably because they have a preinstall driver installation dialog) &lt;br /&gt;
&lt;br /&gt;
Installing with slack was not as easy as was hoped. Lilo choked twice, first by installing to the MBR which the 3ware bios simply didn't see, and second after installing to the root partition, lilo complained with error 99 which is apparently a BIOS disk address mismatch of some sort. &lt;br /&gt;
&lt;br /&gt;
What worked was this: &lt;br /&gt;
&lt;br /&gt;
1. Install the card, or receive the machine with the card already installed. &lt;br /&gt;
&lt;br /&gt;
2. Double check that all your cable connections are tight. mine were loose when the chassis arrived from the vendor. I am sincerely glad I found this now rather than later. &lt;br /&gt;
&lt;br /&gt;
3. Slackware 12.2 has the 3ware driver in it, so it should boot from CD and see the disk as: &lt;br /&gt;
&lt;br /&gt;
   /dev/sda  &lt;br /&gt;
&lt;br /&gt;
4. fdisk /dev/sda and create some partitions, mine are as follows: &lt;br /&gt;
&lt;br /&gt;
   /dev/sda1 50G (/ this is the root partition) set bootable&lt;br /&gt;
   /dev/sda2 2G  (for /boot)  &lt;br /&gt;
   /dev/sda3 2G  ( for swap) toggle to type 82&lt;br /&gt;
   /dev/sda4 (extended) &lt;br /&gt;
   /dev/sda5 25G (for /var) &lt;br /&gt;
   /dev/sda6 25G (for /home) &lt;br /&gt;
   /dev/sda7 50G (for the webserver) &lt;br /&gt;
   /dev/sda8 50G (for the database) &lt;br /&gt;
   /dev/sda9 10G (for source code) &lt;br /&gt;
&lt;br /&gt;
You will note seperate /boot and /home partitions. Configuring the disk this way adds some security, which we will discuss in a moment. &lt;br /&gt;
&lt;br /&gt;
5. Run setup and select your packages. &lt;br /&gt;
&lt;br /&gt;
6. Do the configuration dialog: Generally I believe all network enabled devices should be on UTC so I set both system and hardware clocks accordingly.  ignore gpm, ignore fancy fonts, and number the network interface... Then make sure the network interface _isn't_ connected.  &lt;br /&gt;
&lt;br /&gt;
7. Let the lilo configurator screw up lilo by select &amp;quot;Guess my lilo config&amp;quot; or whatever. &lt;br /&gt;
&lt;br /&gt;
8. exit setup, DO NOT REBOOT! &lt;br /&gt;
&lt;br /&gt;
9. chroot /mnt &lt;br /&gt;
&lt;br /&gt;
10. vi /etc/lilo and make it point at your root partition. My lilo.conf is as follows: &lt;br /&gt;
&lt;br /&gt;
   lba32 # any modern drive should be able to do this. &lt;br /&gt;
   boot = /dev/sda1&lt;br /&gt;
   append = &amp;quot; vt.default_utf8=0&amp;quot;&lt;br /&gt;
   vga = normal&lt;br /&gt;
   image = /boot/vmlinuz&lt;br /&gt;
   root = /dev/sda1&lt;br /&gt;
   Label = Linux&lt;br /&gt;
   read-only # for fscking during bootup. &lt;br /&gt;
&lt;br /&gt;
11. Note above that /dev/sda1 is the root partition, or &amp;quot;/&amp;quot; if you stick it somewhere else, change as appropriate. &lt;br /&gt;
&lt;br /&gt;
12. obliterate the master boot record: (prevents lilo from getting confused for some reason): &lt;br /&gt;
    lilo -z -M /dev/sda&lt;br /&gt;
&lt;br /&gt;
13. run lilo and listen to it complain: &lt;br /&gt;
   lilo &lt;br /&gt;
&lt;br /&gt;
14. If you don't get any fatals errors (warnings are ok), remove the cd then: &lt;br /&gt;
    exit &lt;br /&gt;
    reboot&lt;br /&gt;
&lt;br /&gt;
15. Do your little chair dance, and irritate your coworkers. &lt;br /&gt;
&lt;br /&gt;
16. vi /etc/fstab and adjust the following partitions:&lt;br /&gt;
 &lt;br /&gt;
   /dev/sda2         /boot            ext2        defaults,ro         1   2&lt;br /&gt;
   /dev/sda6         /home            ext2        defaults,nosuid         1   2&lt;br /&gt;
&lt;br /&gt;
Leave your partitions ext3 if they are configured that way, but note the addition of &amp;quot;ro&amp;quot; to /boot and &amp;quot;nosuid&amp;quot; to /home. This makes the kernel secure from modification until the next reboot, and prevents root privileged code from being executed from /home. Generally good and fairly unintrusive security policy. &lt;br /&gt;
&lt;br /&gt;
Now proceed onward oh great progenitors of slack. Your next steps should probably be using &amp;quot;find&amp;quot; to locate and disable most of what has a suid bit set, and then installing and configuring tripwire or some equivilant, then making a brutal set of access controls with iptables, and _then_.... _maybe_ you can connect the box to a public network. &lt;br /&gt;
&lt;br /&gt;
But don't take my word for it.  &lt;br /&gt;
&lt;br /&gt;
Good Luck!&lt;/div&gt;</description>
			<pubDate>Sat, 09 Jan 2010 01:03:30 GMT</pubDate>
			<dc:creator>Arfon</dc:creator>
			<comments>https://www.slackwiki.com/Talk:RAID_Array_(Hardware)</comments>
		</item>
		<item>
			<title>RAID Array (Hardware)</title>
			<link>https://www.slackwiki.com/index.php?title=RAID_Array_(Hardware)&amp;diff=276</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=RAID_Array_(Hardware)&amp;diff=276</guid>
			<description>&lt;p&gt;Arfon: /* My Card Is In, Now What? */  ADDED the fact that this was with Slackware 10&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tips]]&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
&lt;br /&gt;
==My Card Is In, Now What?==&lt;br /&gt;
-Written from a Slackware 10 perspective-&lt;br /&gt;
1) SET UP THE ARRAY- If you are using a hardware RAID card (like ones made by 3ware), on boot you must enter the card's BIOS and set up your array.  This is done by hitting a hotkey (ALT-3 for 3ware cards).  Read your card's instructions for details on how to configure your array.&lt;br /&gt;
&lt;br /&gt;
2) BOOT WITH THE CORRECT KERNEL- After you have set up your array, boot the computer with the Slackware Install CD (CD1) like normal. &amp;lt;b&amp;gt;At the &amp;lt;code&amp;gt;boot:&amp;lt;/code&amp;gt; prompt, choose a RAID supporting image (e.g. &amp;lt;code&amp;gt;raid.s&amp;lt;/code&amp;gt;).&amp;lt;/b&amp;gt;  YOU CAN NOT USE THE DEFAULT KERNEL (bare.i) to boot into set-up, you have to use a boot kernel that supports RAID arrays.&lt;br /&gt;
&lt;br /&gt;
:EXAMPLE: &amp;lt;code&amp;gt;boot: raid.s&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3) PROCEED NORMALLY- Once you boot the RAID kernel, everything else proceeds normally except the hard-drive is (usually) &amp;lt;code&amp;gt;/dev/sda&amp;lt;/code&amp;gt;. Go ahead set up your partitions (&amp;lt;code&amp;gt;fdisk /dev/sda&amp;lt;/code&amp;gt;) and continue the normal Slackware install.&lt;br /&gt;
&lt;br /&gt;
==FAQs==&lt;br /&gt;
&lt;br /&gt;
Q: What device is my RAID array?&amp;lt;br&amp;gt;&lt;br /&gt;
A: You are most likely running RAID.S kernel so therefore it is probably &amp;lt;code&amp;gt;/dev/sda&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Q: It's not &amp;lt;code&amp;gt;/dev/sda&amp;lt;/code&amp;gt; where is it really?&amp;lt;br&amp;gt;&lt;br /&gt;
A: I don't know. Reboot your machine and watch the messages scroll by.  If you don't see the info, you don't have RAID support compiled into your kernel or as a module and you need to fix that.&lt;br /&gt;
&lt;br /&gt;
Q: My system has a [[forced fsck]] and it starts but after awhile, it resets and re-boots.  How do I fix this?&amp;lt;br&amp;gt;&lt;br /&gt;
A: Re-boot the system using a Slackware install CD (make sure you boot with a RAID kernel) then get to a command line prompt and manually run &amp;lt;code&amp;gt;fsck&amp;lt;/code&amp;gt;.&lt;br /&gt;
: EXAMPLE: &amp;lt;code&amp;gt;fsck -p /dev/sda1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Q: I'm trying to run &amp;lt;code&amp;gt;fsck&amp;lt;/code&amp;gt; manually but I get an &amp;quot;&amp;lt;code&amp;gt;The superblock cannot be read...&amp;lt;/code&amp;gt;&amp;quot; error.  How do I fix this?&amp;lt;br&amp;gt;&lt;br /&gt;
A: MOST LIKELY, you're not running a RAID supporting kernel.  Re-boot and choose a RAID kernel like &amp;lt;code&amp;gt;raid.s&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Q: I'm running &amp;lt;code&amp;gt;fsck&amp;lt;/code&amp;gt; manually and I am getting a &amp;quot;&amp;lt;code&amp;gt;error allocating inode bitmap (2)&amp;lt;/code&amp;gt;&amp;quot;.  How do I fix this?&amp;lt;br&amp;gt;&lt;br /&gt;
A: No clue. I haven't been able to find out what that means.  If you do, let us know please.&lt;br /&gt;
&lt;br /&gt;
==Hardware RAID Specific Help==&lt;br /&gt;
&lt;br /&gt;
[[3ware 3DM2]] - Help with 3ware's 3DM2 program.&lt;br /&gt;
&lt;br /&gt;
==Hardware RAID Specific Help==&lt;br /&gt;
&lt;br /&gt;
[[3ware 3ware 8006-2LP Installation]] - &lt;br /&gt;
&lt;br /&gt;
Installed slackware 12.2 with the 3ware 8006-2LP card today. I chose this hardware due to the fanfare I found on the net. It is supported with RedHat and Suse (presumably because they have a preinstall driver installation dialog) &lt;br /&gt;
&lt;br /&gt;
Installing with slack was not as easy as was hoped. Lilo choked twice, first by installing to the MBR which the 3ware bios simply didn't see, and second after installing to the root partition, lilo complained with error 99 which is apparently a BIOS disk address mismatch of some sort. &lt;br /&gt;
&lt;br /&gt;
What worked was this: &lt;br /&gt;
&lt;br /&gt;
1. Install the card, or receive the machine with the card already installed. &lt;br /&gt;
&lt;br /&gt;
2. Double check that all your cable connections are tight. mine were loose when the chassis arrived from the vendor. I am sincerely glad I found this now rather than later. &lt;br /&gt;
&lt;br /&gt;
3. Slackware 12.2 has the 3ware driver in it, so it should boot from CD and see the disk as: &lt;br /&gt;
&lt;br /&gt;
   /dev/sda  &lt;br /&gt;
&lt;br /&gt;
4. fdisk /dev/sda and create some partitions, mine are as follows: &lt;br /&gt;
&lt;br /&gt;
   /dev/sda1 50G (/ this is the root partition) set bootable&lt;br /&gt;
   /dev/sda2 2G  (for /boot)  &lt;br /&gt;
   /dev/sda3 2G  ( for swap) toggle to type 82&lt;br /&gt;
   /dev/sda4 (extended) &lt;br /&gt;
   /dev/sda5 25G (for /var) &lt;br /&gt;
   /dev/sda6 25G (for /home) &lt;br /&gt;
   /dev/sda7 50G (for the webserver) &lt;br /&gt;
   /dev/sda8 50G (for the database) &lt;br /&gt;
   /dev/sda9 10G (for source code) &lt;br /&gt;
&lt;br /&gt;
You will note seperate /boot and /home partitions. Configuring the disk this way adds some security, which we will discuss in a moment. &lt;br /&gt;
&lt;br /&gt;
5. Run setup and select your packages. &lt;br /&gt;
&lt;br /&gt;
6. Do the configuration dialog: Generally I believe all network enabled devices should be on UTC so I set both system and hardware clocks accordingly.  ignore gpm, ignore fancy fonts, and number the network interface... Then make sure the network interface _isn't_ connected.  &lt;br /&gt;
&lt;br /&gt;
7. Let the lilo configurator screw up lilo by select &amp;quot;Guess my lilo config&amp;quot; or whatever. &lt;br /&gt;
&lt;br /&gt;
8. exit setup, DO NOT REBOOT! &lt;br /&gt;
&lt;br /&gt;
9. chroot /mnt &lt;br /&gt;
&lt;br /&gt;
10. vi /etc/lilo and make it point at your root partition. My lilo.conf is as follows: &lt;br /&gt;
&lt;br /&gt;
   lba32 # any modern drive should be able to do this. &lt;br /&gt;
   boot = /dev/sda1&lt;br /&gt;
   append = &amp;quot; vt.default_utf8=0&amp;quot;&lt;br /&gt;
   vga = normal&lt;br /&gt;
   image = /boot/vmlinuz&lt;br /&gt;
   root = /dev/sda1&lt;br /&gt;
   Label = Linux&lt;br /&gt;
   read-only # for fscking during bootup. &lt;br /&gt;
&lt;br /&gt;
11. Note above that /dev/sda1 is the root partition, or &amp;quot;/&amp;quot; if you stick it somewhere else, change as appropriate. &lt;br /&gt;
&lt;br /&gt;
12. obliterate the master boot record: (prevents lilo from getting confused for some reason): &lt;br /&gt;
    lilo -z -M /dev/sda&lt;br /&gt;
&lt;br /&gt;
13. run lilo and listen to it complain: &lt;br /&gt;
   lilo &lt;br /&gt;
&lt;br /&gt;
14. If you don't get any fatals errors (warnings are ok), remove the cd then: &lt;br /&gt;
    exit &lt;br /&gt;
    reboot&lt;br /&gt;
&lt;br /&gt;
15. Do your little chair dance, and irritate your coworkers. &lt;br /&gt;
&lt;br /&gt;
16. vi /etc/fstab and adjust the following partitions:&lt;br /&gt;
 &lt;br /&gt;
   /dev/sda2         /boot            ext2        defaults,ro         1   2&lt;br /&gt;
   /dev/sda6         /home            ext2        defaults,nosuid         1   2&lt;br /&gt;
&lt;br /&gt;
Leave your partitions ext3 if they are configured that way, but note the addition of &amp;quot;ro&amp;quot; to /boot and &amp;quot;nosuid&amp;quot; to /home. This makes the kernel secure from modification until the next reboot, and prevents root privileged code from being executed from /home. Generally good and fairly unintrusive security policy. &lt;br /&gt;
&lt;br /&gt;
Now proceed onward oh great progenitors of slack. Your next steps should probably be using &amp;quot;find&amp;quot; to locate and disable most of what has a suid bit set, and then installing and configuring tripwire or some equivilant, then making a brutal set of access controls with iptables, and _then_.... _maybe_ you can connect the box to a public network. &lt;br /&gt;
&lt;br /&gt;
But don't take my word for it.  &lt;br /&gt;
&lt;br /&gt;
Good Luck!&lt;/div&gt;</description>
			<pubDate>Sat, 09 Jan 2010 01:01:16 GMT</pubDate>
			<dc:creator>Arfon</dc:creator>
			<comments>https://www.slackwiki.com/Talk:RAID_Array_(Hardware)</comments>
		</item>
</channel></rss>