Archive for the ‘Linux’ Category
Linux Security Tip 1 - Watch root
It is easy to think whenever you get a linux box set and live on the net, to think that the box is ready to confront any threats out there.
I won’t go into a whole post as to why i think Linux should undergo a “severe” security audit as much as it is done on a windows box, but experience has shown me that it is easy to get into a linux box as much as it is easy to get into a windows box.
Now… this is going to be a small serie on Security Tip - feel free to add any tips you may have in the comments.
Today’s tip isn’t really a security hardening tip but much more a way to keep up with root access on your server. As much as it is good to harden your server, it is far more better to be alerted of any major actions.
Many linux servers have been compromised through getting root access… so, say you got some production servers (or your precious home laptop) unto which you don’t log often and wish to be kept alerted whenever someone logs as root.
To do that, simply log through ssh or terminal and type
vi /root/.bash_profile (note if you use sudo userA, you may do vi /home/userA/.bash_profile)
once opened, go into edit mode and type
echo ‘ALERT - Root Shell Access on:’ `who` | mail -s “Alert: Root Access from `who | awk ‘{print $6}’`” your@email.com
save and exist
So whenever someone logs as root (or sudo user), you will get an email with the who output which is “login” - “terminal” - “date” - IP Address
(keep in mind that this isn’t whenever any user logs, but in our case only when ROOT logs in)
sincerely,
service automated restart
Ok… it’s got pretty late here, and tomorrow is another day of work… but before I hit the sack… for those interested in keeping up services running on their server, here is a little bash cron script which could be modified or alterated to keep up any services/daemons running.
Please note this is a tip, so you migth need to modify things around to fit your needs… just giving out the idea here
for mysql service for instance
/usr/bin/pgrep mysqld
if [ $? -eq 0 ]
then
/etc/init.d/mysqld restart
fi
So… from there, you could easily develop it and make it more sophisticated… like email you for instance etc…
peace,
sqlite, hack the code…
So… for about few hours now, I was puzzled on how to get sqlite working on one of our customer centos server. Problem was that all sqlite function were bugging and the sqlite databases couldn’t be queried. A quick php -v on cli, gave me the first indication that sqlite.so file wasn’t properly loading. Actually the repo sqlite install had place the lib files in the wrong directories… after quickly checking the extension dir, i decided to copy over the .so sqlite extension file and reload apache… first try… first failure.. even pointing to the right extension file, the lib couldn’t still be loaded..
that’s where the puzzle started…
After thinking it through and reading on php.net/bugs section, I came to realize that this was simply a bug starting off php 5.1…
So after a while, I decide to retrieve back to an old sqlite version and compile it myself
so
wget -q http://pecl.php.net/get/SQLite-1.0.3.tgz
tar zxvf SQLite-1.0.3.tgz; cd SQLite-1.0.3
phpize
(if you get a phpize error, just do a yum insta php-devel) then retry phpize again
./configure
make
(that’s where I was about to pull my hair, when while compiling the source code, make abruptly stopped with an error 1 and offset error)
this is where we need to hack the C code of sqlite to make it compile with our Centos 5
vi sqlite.c
then comment out this line
static unsigned char arg3_force_ref[] = {3, BYREF_NONE, BYREF_NONE, BYREF_FORCE };
so this becomes
/* static unsigned char arg3_force_ref[] = {3, BYREF_NONE, BYREF_NONE, BYREF_FORCE }; */
replace then
function_entry sqlite_functions[] = {
PHP_FE(sqlite_open, arg3_force_ref)
PHP_FE(sqlite_popen, arg3_force_ref)
to:
function_entry sqlite_functions[] = {
PHP_FE(sqlite_open, third_arg_force_ref)
PHP_FE(sqlite_popen, third_arg_force_ref)
“save - exit”
then make clean
./configure; make; make install
Once that is through with no error
cp modules/sqlite.so To_The.Php.ini.ExtensionDir
then service httpd restart
and voila
easy he.. still got me confused for a second there ![]()
remove strange file names
I once was asked in a job interview, how I would remove a file if this one started with a “-”
open your terminal
touch -myPictures
then try rm -myPictures and see what happens
so how would you do it?
there are two ways to do it (i am sure there are mores, but hey why bother?)
1) rm ./-myPictures
2) rm — -myPictures
Arch Linux on an Asus F5N
I have decided to write a small how-to on how I was able to install and configure my ASUS F5N laptop.
To read more about Arch Linux, go there http://archlinux.org
(this part assumes you are able to download the iso file, burn it, boot from it, proceed to install)
** note that I have only installed the base package as I wanted to have a very minimal system, devel and support package were not installed)
X-Window
pacman -Sy xorg nvidia
type nvidia-xconfig (I did not want to bother editing the X86.. conf file, so i left that out the nvidia script)
Desktop Environment
I decided to go with Gnome…
pacman -S gnome gnome-extra
—— System Configuration ——
At this point we need to add some daemons Read the rest of this entry »