set up a root password
Joel Oliver
joelol75 at verizon.net
Fri Aug 8 18:05:37 UTC 2008
John wrote:
> On Tuesday 05 August 2008 19:16:46 Jerry Gaiser wrote:
>
>> One of the first things *I* do is give root a password.
>>
>
> Could someone who uses a root account give an actual example of where it is
> advantageous in comparision to using sudo?
> Is it just down to keystrokes or is there another reason.
>
> Just out of curiosity, what does sudo stand for? I have always assumed it was
> from "SuperUser do" but could it be from "Switch User (substitute user) do"
>
> John
>
>
Well, I for one set up a root account (By choice)
OK, redirection is borked using sudo.
Ok, lets say perhaps you want to backup your menu.lst file in /boot/grub
so:
$ cd /boot/grub
$ sudo cat menu.lst > menu.lst.bak
(I know, you could just use sudo cp menu.lst menu.lst.bak but my example
doesn't work...)
Or, you want to add another nameserver to your /etc/resolv.conf file
$ cd /etc
$ sudo echo "nameserver 192.168.1.1" >> resolv.conf
Fails as well.... OK so you can just sudo nano resolv.conf and add it
and then save it, but again for the example....
Now, I know redirection doesn't work, but unfortunately many bash
scripters who assume you will run their script under root don't and I've
wasted many hours of trying to live with sudo and no root password
beating my head off walls and having to sudo -i that you just start
running sudo -i off the bat.......
And for people who believe having a root password is a huge security
risk, how about having a user with just as much power...
What I'm trying to say is I feel it is alot more secure to remove admin
and sudo privileges from the user and set up a root password, then as
suggested edit the /etc/ssh/sshd_config file and remove root logins and
change the port to anything other than default.... and install fail2ban
and set it up to thwart script kiddies.
Hopefully they waste all their time trying to logon as root, because it
is just as secure as having no root password from the outside.
From the inside of the network there is more of threat, but I've seen
cleartext user passwords in scripts to start services at one time... And
playing in a terminal with malicious scripts that have "sudo -rf /etc/*"
in them, that you run as a regular user soon after using sudo, will run
without asking you for the password within the timeout period (Just an
example, nobody runs bad scripts)
Plus it kinda gets like Windows Vistas UAC where inexperienced users
'just click through anything' without paying attention. I think the
/etc/sudoers file should NOT have %admin ALL=(ALL) ALL in it. I am a
huge supporter of sudo actually (For the GUI stuff, synaptic, what have
you) but the sudoers file should ONLY allow things on a case by case
basis and not have godlike power... The Ubuntu way reminds me of MacOSX
and Windows Vista where a regular user has root power by clicking a
button or just typing a password. I want my UNIX/linux the way it was
in the beginning... Regular users and root, with using chmod, chown and
setting groups as needed, security can be improved massively compared to
a stock Ubuntu install... I can see WHY they did this, as it's for
linux newbies as well and they want everything to "Work easily, right
out of the box." Many newbies would be turned off if Ubuntu was set
really secure... And secure means secure from the user as well.
strace -oping.out ping google.com
Well all in all I feel that having a root password and having a single
superuser and stripping the regular user of sudo privilege works better
for me... In a larger environment where many admins work on a single
computer; yes, sudo is a better alternative for logging and more
granularity of privilege.
And for those that feel the Ubuntu way is much safer or more secure
because of a lack of root, why don't they enable selinux out of the
box? Why is AppArmour not really doing anything by default? No extended
ACL's, and improper sudo use is also default... Fixing this would surely
make more of a difference for arguments sake than worrying about a root
password...
Setting up chroot jails around insecure applications is another
important step. Like all software, OSS software has bugs. Any many
programs are very complex and constantly are found to have privilege
escalation exploits. Samba is one.... If you have all linux computers,
why use it? NFS works just as well and has (in the past anyway) far
fewer security problems. PHP and drupal (Isn't all input improperly
"sanitized") and distros setting many programs setuid are asking for
problems.... Sure, you can stay updated and firewalled the best you can,
but assume that all software can and will be breached! Not design your
security around this fact to minimize damage and 'surface area' Many
programs don't need all the privileges they run with so use THE BARE
MINIMUM needed to get the job done and sandbox and firewall the hell out
of the more accessible ones [Apache (CGI scripts), bind9, Samba, NFS,
FTP, P2P software, SSH]
Don't assume firewalls will stop exploits, they are just another tool
(Yes important...) see http://jerichoforum.org for more on
de-perimeterization of firewalls. Back in the old days, to keep people
of the internet in your corporation, just simple blocking of port 80 and
443 would do the trick.... Now anyone can setup a simple proxy at home
and surf the web... Or vnc, or vpn's... The firewall boundary is
fading... Set up your network assuming there is NO firewall and protect
your services and data the best you can, THEN use a hardware firewall
forwarding only the ports you need through (Not jabbing your server in a
DMZ), then setup a software firewall (iptables) doing the same; but
don't put all your eggs into the firewall basket assuming it will stop
all attacks.... And by-god turn off upnp automatic port-forwards in the
gateway.
Back on my hatred of setuid programs.. POSIX file attributes are a
better way than running as root. The ping command is a good example.
All you need to do is grant it access to rawsockets (POSIX code 13) and
you don't need to run ping as root. Of course there is probably no
exploit in ping, but why does it need GOD power.... Adding POSIX file
capabilities in the kernel allows you to run most programs (like ping)
that need root power as a regular user and NOT using setuid by granting
them the specific power they need without giving them FULL root. Ping
only needs the power to access rawsockets, but Ubuntu gives the ping
program the power to delete the entire /etc directory without needing
sudo.... Scary ain't it...
OK, going way off topic... But if you want a root account go for it!
There's more important security problems to worry about!
More information about the kubuntu-users
mailing list