+1 Nice article. Thanks On Fri, Aug 14, 2009 at 12:05 PM, Alpha Blue < [email protected]> wrote:
> > ================================ > SSH Magic and Rails Development > ================================ > (i) Security: > > Security is the most important piece when working with sandbox or > production platforms on your server. I've learned this the hard way > actually when approx. 3 years ago, someone hacked my PHP site by going > through phpmyadmin remotely and adding a special admin account to > vbulletin where they setup and staged a phishing site from my very own > server. > > When I posed the question a few days ago of what to use to administrate > your database, I was reminded of the fact that all remote utilities that > access your site, if not properly secured, can make your sandbox and > production environments very vulnerable. > > SSH: > > SSH is one of the few local utilities you can use that, when properly > configured, is incredibly safe to administrate your site, and in a few > moments, I'll even show you how you can develop with it. > > How is SSH safe? > > First, you can setup what port you want to connect from and exclude all > other connecting ports. So, if you setup your port on say, and this is > just an example, 24000, someone would have to know the port even to use > SSH. > > Secondly, you can add SSL certificates private/public to further limit > the connectivity to your site via SSH. This means that a person wanting > to connect with SSH will not only have to know the port, the username, > the password, they would also have to have key paired certificates on > their machine that matched what was on your remote server. > > SSH Tunneling > > Tunneling from a secure SSH connection is much safer than accessing a > remote browser and working with your site. Tunneling has various uses, > especially if you want to connect and administrate your database. > > Windows and Putty > > I work from a windows environment but I know that most of you already > know what SSH is and how to access whatever tool you wish to use to do > it with. I like to use Putty when connecting securely through SSH on > both my sandbox/production platforms. > > Here are the steps to enable tunneling: > > 1. Open putty, select your saved session and click Load. > 2. In the far left pannel, under Connection, expand the section for > SSH. > 3. Click Tunnels. > 4. In the source port type 3306 (or whatever port your db is using) > 5. In the destination type 127.0.0.1:3306 > 6. Click ADD. > > You will see L3306 127.0.0.1:3306, or something similar listed. > > 7. Click Sessions in the left hand panel. > 8. Save your session so it includes tunnels. > 9. That's it. Tunnels are now usable with putty. > > Administrating Your Database using SSH > > There's actually a few ways to do this. Once you have putty open, > launched, and connected to your server, a tunnel is open between you and > your server securely. You can open any local database administration > tool on your machine and if you enter in localhost port 3306 and type in > your database credentials, it will automatically connect through the > tunnel to your database. > > What tools can you use locally to do this with? > > 1. MySQL Query Browser (if using mysql) > 2. PG Admin (if using postgres) > 3. PHPMyAdmin (if using wamp locally) > > Wait a second, did I just see you put up phpmyadmin? I thought you said > it was unsecure? > > Well, not if you are using it locally. My local computer has the > security equivallent of Fort Knox. I'm not using a remote version of > phpmyadmin. I'm using a local version of phpmyadmin with WAMP and have > no external broadcasting enabled. In order for someone to access a > local phpmyadmin on my machine, they would have to be able to connect to > my machine. > > So, secure SSH and tunneling has allowed me to administrate the server > through an SSH console and also to administrate my database using any of > my favorite local utilities. What else can it allow? > > Rails Development on Sandbox > > I use netbeans 6.7 (great features and works tremendously well when you > have a windows box - it works well with linux too). > > If I open up netbeans, because the SSH tunnel is open, when I start the > server for development, it will contact and utilize the development > database on the server my tunnel is open to. So, if you have a sandbox > server for testing and you secure SSH tunnel to it, you can open up your > favorite development utility and connect straight to the development > database there. > > Summary > > SSH is fantastic. Use it. Learn about it. Secure it. When properly > configured, you can do a lot more things than you realize. > -- > Posted via http://www.ruby-forum.com/. > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---

