Friday, December 10, 2010

missile command and mac addresses

Network access blocking using MAC addresses is sometimes like missile command or whack-a-mole depending... you find an errant client, and you tell your firewall-router to block said MAC. What do you do if you're on the receiving end? Change the MAC programmatically, of course.

My ethernet controller is eth0 and has MAC address (or Hardware Address) is 00:0f:1f:f7:b1:64 . I know that there are no MACs with HWaddr 00:0f:1f:f7:b1:65 on the network. Let's change that MAC address.
# ifconfig eth0 down
# ifconfig eth0 hw ether 00:0f:1f:f7:b1:65
# ifconfig eth0 up
Take that! Now, you can very very easily have a little tee script and substitute away every time you're disallowed. But, come on, what tomfoolery are you up to that'd make you programatically denied network access?

Wednesday, November 24, 2010

lazy umount

sometimes lsof grep your-stuck-mount isn't enough. and umount force and other nonsense doesn't work. just be lazy, why don't you?

fuser -m /dev/mount <- kill them all
umount -l /dev/mount 

just be sure to clean up after yourself.

Monday, November 1, 2010

slapd and me and inittab

And sometimes, you just want to reload inittab because svscan is being a punk...

# init q

Friday, October 29, 2010

solaris 10, i don't have a dvd drive and need to upgrade you

let's just throw an iso on you and do an upgrade.

first, look for a volume that has sufficient space for that 2G dvd iso. then scp it over. tmp is a good place. so, i put my iso in tmp.


# mount -F hsfs -o ro `lofiadm -a /tmp/sol-10-u8-ga-x86-dvd.iso` /mnt
# /mnt/installer

that's it.

Wednesday, October 13, 2010

paid three times this month?

well. maybe i will. i get paid every other friday, and since this month has five fridays....

here's how to determine all the other months with five fridays for the next 20years, (ba)shilifically:

#!/bin/sh
year=2010
month=1
x=1

while [ $x -le 20 ]
do
  until [ $month -gt 12 ]
  do
    cal=`cal $month $year | grep ^31`
    if [ -z "$cal" ]
    then
      echo -n ""
    else
      echo
      cal $month $year
    fi
    month=`expr $month + 1`
  done
  month=1
  year=`expr $year + 1`
  x=$(( $x + 1 ))
done

Tuesday, September 7, 2010

rhel & changing network settings

I am not fond of GUIs and enjoy editing configuration files by hand; sure it can be dangerous if you don't know what you're doing - but if you do and don't like GUIs mangling stuff, hand confs are the way to go. Here's how to change RHEL's network conf files - notice the differences between RedHat and Ubuntu.

Edit configuration files stored in /etc/sysconfig/network-scripts/ , /etc/sysconfig & /etc

First, edit network interface card files: 

 * /etc/sysconfig/network-scripts/ifcfg-eth0
 * /etc/sysconfig/network-scripts/ifcfg-eth1 &c.

## Intel Corporation 82573E Gigabit Ethernet Controller (Copper)
DEVICE=eth0
BOOTPROTO=static
DHCPCLASS=
HWADDR=00:30:48:56:A6:2E
IPADDR=192.168.10.3
NETMASK=255.255.255.192
ONBOOT=yes


Edit the file which contains gatway and hostname:

 * /etc/sysconfig/network

## network
NETWORKING=yes
HOSTNAME=super.silly.domain.com
GATEWAY=192.168.10.1


Edit DNS server configuration file:

 * /etc/resolv.conf file:

## resolv.conf
search domain.com silly.domain.com
nameserver 192.168.10.1
nameserver 192.168.10.2
domain domain.com


Restart networking:

# /etc/init.d/network restart

Do a couple tests:

$ ping 192.168.10.1

Output:

PING 192.168.10.1 (192.168.10.1) 56(84) bytes of data.
64 bytes from 192.168.10.1: icmp_seq=1 ttl=251 time=0.972 ms
64 bytes from 192.168.10.1: icmp_seq=2 ttl=251 time=1.11 ms

You can also check for Internet connectivity with nslookup or host command:

$ nslookup not.silly.domain.com
Output:

Server:         192.168.10.1
Address:        192.168.10.1#53

Non-authoritative answer:
Name:   not.silly.domain.com
Address:192.168.10.4

Wednesday, September 1, 2010

special crontab entries

I have a file I need to change perms on every time my system reboots - just because. While looking for a better way of checking the file's perms through as opposed to doing a perpetual scheduled "for and if" loop, I came across a neat cron (5) stub I'd really never noticed before:

Instead of the first five fields, one of eight special strings may
  appear:

    string         meaning
    ------         -------
    @reboot        Run once, at startup.
    @yearly        Run once a year, "0 0 1 1 *".
    @annually      (same as @yearly)
    @monthly       Run once a month, "0 0 1 * *".
    @weekly        Run once a week, "0 0 * * 0".
    @daily         Run once a day, "0 0 * * *".
    @midnight      (same as @daily)
    @hourly        Run once an hour, "0 * * * *".


Cool. Now all I need to do is have my script run on reboot (well, when cron restarts, but still).