After upgrading a kernel on an older CentOS 3 box for a customer the server would no longer boot up. Instead I would get the following at the boot screen:
/etc/rc.d/rc.sysinit: line ###: /dev/null: Read-only file system
The box would then drop into single user maintenance mode. When I tried to fsck the file system it would complain about about /dev/null being read only again. The fix turned out to be fairly simple.
# mount -rw -o remount /
# rm -f /dev/null
# mknod /dev/null c 1 3
# chmod 666 /dev/null[/code]
I’ve put together a quick video to show how to setup winscp so that you can log into a Linux server and change to the root user. This is the GUI equivelent of doing a ‘sudo -s’, ‘sudo su -’, or ‘su -’ as a wheel user if you’ve setup your SSHD service to deny direct root log ins by setting ‘PermitRootLogin’ to ‘no’. Every so often I will have a developer ask for escalated privileges through a GUI and this is a nice alternative in lieu of cheaply enabling root access.
While the WinSCP documentation does explains how to do this I’m hoping the video will help make setting this up a little bit easier.
One of my favorite and most often used services is openSSH. While openSSH is generally known as being secure it never hurts to tweak a few extra settings.
Here are a few changes I generally do to help ensure openSSH is in tip top shape.
- Use a strong password. My preference is to use randomly generated passwords of 20 plus alphanumeric characters with their own special blend of special characters. That should thwart most password crackers.
- Change the port sshd listens on. Using port 22 hangs a sign out on your server saying I use sshd. While changing the port won’t stop anyone from figuring out you are running the service it will make them work harder. You can do this by changing the following in /etc/ssh/sshd_config:
- Get rid of root logins. There is absolutely no reason to log in as root when you can use ‘sudo’ or ‘su’ to elevate a wheel user to root privileges. To set this change the following line in /etc/ssh/sshd_config:
- Disable the antiquated Protocol 1 by changing to the Protocol line in /etc/ssh/sshd_config from ‘Protocol 1,2′ to the following:
- Another option would be to block lame dictionary attacks with denyhosts or ConfigServer Firewall/Login Failure Dameon. ConfigServer firewall has the added benefit of adding a friendly interface to help managing IPtables. Blocking login failures can sometimes be overkill if you are already have other restrictions in place like using keys only or using the AllowUsers directive in your /etc/ssh/sshd_config
- If you prefer to use keys instead of password the following changes to /etc/ssh/sshd_config are a good start in tightening things up. If you are going to have any accounts that use password authentication you’ll be locked out of the server making these changes. So only do so if you are using keys to log in:
- If you prefer to leave password authentication on then the AllowUser directive is for you. Below are a few examples this directive in play.
If anyone has further suggestions on securing openSSH please let me know.
Later I plan on doing posts on creating and using ssh keys, setting up DenyHosts, and setting up ConfigServer Firewall in future.
We are proud to announce an expansion of our current hosting offering. In the past we have offered more of a managed approach to hosting with each site we develop free for a year which included a 12 hour support response turn around. In order to give clients more control over their development and hosting environment we have expanded our fleet of dedicated servers with 2 more Linux cPanel servers.
We are currently migrating many of our existing clients to the new servers who have requested control panel access to their hosting environment. If you have an existing site with us and would like to have it migrated let us know and we will do so free of charge if requested before the month of April 2009.
New hosting and support packages will be offered at a later date so stay tuned.