Author Archive

Group share for a Active Directory domain group with Samba

Once you have joined your server to your domain and have set up user authentication, creating a that will allow a group of users to access files is pretty simple.  We need to create a folder that is owned by the root user and the domain group. The share will inherit permissions from the parent folder.  Here is an example for creating a folder for a domain group called “corporate_HR”. The domain is called “acme”. There is administrative support group called “admins”. Setting the folder’s permissions to “2771″ means that the owner (root) and the group (corporate_HR) have full access.  The “2″ is a setgid bit. It will force all new files created under the HR folder to take the group parameter from it’s parent.  We use the “force group” parameter to ensure that permissions are set properly when a member of the “ACME\admins” group accesses the files.

login as root.

to set up the filesystem:

cd /home
mkdir HR
chgrp corporate_HR HR
chmod 2771 HR

set up the share:

[HR]
comment    =    share for corporate HR group
readonly    =   no
inherrit owner    =    yes
inherit permissions    =    yes
authorized users    =    @ACME\corporate_HR @ACME\admins
force group    =    ACME\corporate_HR

Join Debian Lenny to Active Directory using Samba

If you install GNOME on and intend to use it as a server, first thing you should do is remove the network-manager and network-manager-gnome packages. This tool can be helpful on a desktop, but since we are tweaking DNS, IP addresses, and perhaps even NIC bonding, the network-manager can screw up your settings.

aptitude purge network-manager-gnome network-manager 

If this is a VMware Virtual machine, install VMware tools. The prerequisites for Debian are:

aptitude install build-essential openssl libssl-dev -headers-$(uname -r) psmiscapt

You may have to manually create a DNS entry for your server. Just to be safe, do that now.

If you plan to support NTFS-like ACL’s, install support for it now.

aptitude install acl

now, you need to mount the partition with ACL’s enabled, to do this, edit your /etc/fstab.

nano /etc/fstab

The line I needed looked like this:

/dev/sda9 / ext3 acl,defaults 0 1

The important part is to get “acl” into the options list. Dont forget the comma.
I recommend rebooting just to make sure your fstab is set before you continue.
It’s easy to screw something up here and make your system unbootable, so if you reboot, and cant get your system back up and running, get into single user mode, and use this command. (You will have to adjust /dev/sda1 to your root partition. In my experience, it is usually /dev/sda1 or /dev/hda1. Use fdisk -l to list the partitions on the disk.

mount -o remount,rw /dev/sda1

Now lets get the and kerberos software packages installed.

aptitude install samba ntpdate smbclient  krb5-config krb5-user

Put in the Workgroup/domain info when prompted if you like. They will set up some .conf files for you, but we’re not going to use them anyways. We wont worry about WINS for now.
Now lets stop samba and winbind:

/etc/init.d/samba stop /etc/init.d/winbind stop

move the /etc/samba files somewhere

mkdir /etc/samba/vanillaconf mv /etc/samba/* /etc/samba/vanillaconf/

create your own /etc/samba/smb.conf: Make sure that the domain and realm fields are all caps.

[global] workgroup = ((DOMAIN)) server string = %h server wins support = no security = ads realm = ((DOMAIN)).COM encrypt passwords = yes obey pam restrictions = yes winbind use default domain = yes winbind enum users = yes winbind enum groups = yes template shell = /bin/bash idmap uid = 10000-20000 idmap gid = 10000-20000 

sync time

ntpdate ((domain controller))

now that samba knows what domain its part of, and we have a basic config for it, we need to get the authentication part working. Kerberos is the softare that communicates with your domain to authenticate users.

nano /etc/krb5.conf

configure domain in /etc/krb5.conf. important parts:

[libdefaults] default_realm = ((domain)).COM [realms] ((DOMAIN.COM)) = { kdc = ((domain controller)) kdc = ((backup DC)) admin_server = (domain controller)) } [domain_realm] .(domain).com = (domain controller).(domain).COM

do a test by typing:

kinit [username]

then type:

klist

if you get some output looking like this, you are ready to go.

Ticket cache: FILE:/tmp/krb5cc_0 Default principal: (username)@(domain).COM Valid starting Expires Service principal 04/27/09 13:54:23 04/27/09 23:54:26 krbtgt/(domain).COM@(domain).COM renew until 04/27/09 23:54:23

To get Debian to recognize your Active Directory users, you need to /etc/nsswitch.conf

nano /etc/nsswitch.conf

add “winbind” to the passwd and group lines. if you have “compat” in the line, put in like this:

passwd: compat winbind passwd_compat: winbind group: compat winbind group_compat: winbind 

Now start samba and winbind back up

/etc/init.d/winbind start /etc/init.d/samba start

Join your machine to the domain.

net ads join -U (administrative user)

You should see

Joined '(server name)' to realm '(domain).com'

If you see

No DNS domain configured for '(servername)'. Unable to perform DNS Update. DNS update failed!

Don’t worry. Just create an entry in your DNS server for the samba machine.
Test if winbind is working properly with

wbinfo -t

If you get

checking the trust secret via RPC calls failed Could not check secret

Then restart winbind:

/etc/init.d/winbind restart

allow AD accounts to logon to the machine:

# /etc/pam.d/common-account account sufficient pam_winbind.so account required pam_unix.so 
# /etc/pam.d/common-auth auth sufficient pam_winbind.so auth required pam_unix.so use_first_pass nullok_secure
# /etc/pam.d/common-session session required pam_mkhomedir.so skel=/etc/skel/ umask=0066 session sufficient pam_winbind.so session required pam_unix.so

It is critical that “obey pam restrictions” is set to “yes”. in your smb.conf for these pam settings to take effect.There are some other changes to these Pam.d settings i decided to make upon putting the server into production. I will write about that in another page [link].

Now, give your admin group from AD root access to the box

aptitude install sudo visudo

add this line:

%(domain)\\(admin's group) ALL =(ALL) ALL

When creating shares, to give an AD user access to a , use:(More info in the future)

valid users = (domain)\username

to give an AD group access to a share, use:

valid users = @(domain)\groupname

Sometimes, I have to reboot my windows client machine to make it work… fyi.
Sources:

How to configure openDNS on pfsense firewall

  1. Create your .com account. Add your Network to their system, etc.
  2. Go to the “System” -> “General setup” page.
  3. Set the DNS address to the OpenDNS’:
  4. 208.67.222.222
    208.67.220.220

Now just make sure that “Allow DNS server list to be overridden by DHCP/PPP on WAN” checkbox is NOT checked.

Rip and convert to MP3 files in Debian Lenny

To create an audio file in , you need to install the proper package to encode them. I suggest you add the “debian-multimedia” repository while you are at it. Edit your  /etc/apt/sources.list and add:

deb http://www.-multimedia.org lenny main

run

aptitude 

then install the gstreamer lame encoder:

aptitude install gstreamer0.10-lame

Then you are done. You can launch and convert formats to MP3 using VBR and other technologies. You can also use to CD’s

How to update my sparc FreeBSD install

So the spanking new freebsd- doesn’t work for systems… boo. Have to do everything manually. Here’s what I remember. Let me know if I forgot something, or its wrong.(very likely)

Install cvsup:

# cd /usr/ports/net/cvsup-without-gui/
# make install

install fastest cvsup:


# cd /usr/ports/sysutils/fastest_cvsup/
# make install
# fastest_cvsup -c us

Replace “us” with your country if it’s different. copy the default supfile to our own before editing.


# cp /usr//examples/cvsup/stable-supfile /etc/stable-supfile
# cp /usr//examples/cvsup/ports-supfile /etc/ports-supfile

edit both of them and change the


*default host=

to the fastest cvsup server from the “fastest cvsup”

then update the ports


# cvsup -L2 -g /etc/ports-supfile
# cvsup -L2 -g /etc/stable-supfile

Then i guess we try to build the world. see if something breaky.


# cd /usr/src
# make buildworld

Recompiled kernel. I have my own kernel called “MYSPARC2″. Yours might just be “GENERIC”


# cd /usr/src
# make buildkernel KERNCONF=MYSPARC2
# make installkernel KERNCONF=MYSPARC2

rebooted into single user mode then:

# mount -u /
# mount -a -t ufs
# swapon -a

Now you are ready to install the new world.

# cd /usr/src
# make installworld

After that was done, mergemaster to update your configs:

mergemaster -v

Then used portmaster to upgrade all of the ports.

# portmaster -a

Basically everything i know about BSD comes from or stems from something I’ve read at freebsdmadeeasy.com

source: http://www.freebsdmadeeasy.com/tutorials/freebsd/updating-freebsd-with-cvsup.php