Install and configuration of Corunix for Windows Server 2003 v1.0
Here are the instructions explaining how to install and configure Windows Server 2003 to hold and serve Corunix.
Requirements
You need the following mandatory software or components installed:
And, optionally, is recommended to have also these other components, since Corunix expects them:
You have to install the following components from Microsoft Services for UNIX:
- Base utilities
- Interix gnu utilities
- Server for nfs
- Password synchronization
- User name mapping
- Server for nfs authentication
1. Configuring Services for Unix
Before proceeding, it's necessary to do some bootstrapping actions. Uncompress the
corunix_win2003_etc.tbz package on a temporary place. Create the
c:\corunix\base, swap and scripts folders. Put the files
etc/corunix/character_translation_interix.conf,
etc/passwd and
etc/group in
c:\corunix.
Now, go to
Administrative tools and open
Services for UNIX Administration. Configure each one of the following sections:
1.1. Server for NFS
Keep the default values unchanged on all sections but
Server Settings section. Here, configure these values (remember clicking
Apply after then):
- Enable TCP support: no
- Enable NFSv3 support: yes
- Do not renew authentication
- Translate file names:
c:\corunix\character_translation_interix.conf
- Create files that have '.' at the beginning as hidden files: yes
- Case sensitive lookups: yes
1.2. User name mapping
Configure the following values
- Configuration:
- Use password and group files
- Password file path name:
c:\corunix\passwd (we will change it to the definitive value later)
- Group file path name:
c:\corunix\group (we will change it later)
- Refresh interval: 1 day
- Maps:
- Simple maps
- Windows domain name: keep the default value (the server name)
NOTE: If later the system seems not to map the newly created users properly, try to come again to this section and select show user maps and show group maps a couple of times. Sometimes, it refreshes the mapping and solves the problem.
1.3. Password synchronization
Check the
Synchronize password changes from computers that run Windows to computers that run UNIX option.
2. Unpackaging Corunix
To uncompress and install Corunix you need an auxiliar Linux computer in which mount by NFS the installation directory exported from Win2003. This is necessary in order to keep the file permission, user and attributes. Unfortunately, we can't simply uncompress a ZIP file with Corunix inside and expect all to work properly.
Let's do NFS sharing of some directories (keep the letter case!):
-
"c:\corunix\base" as "networkstationv2/prodbase/ppc". Allow anonymous access (uid -2, gid -2). All machines read/write. Allow root access.
-
"c:\corunix\swap" as "swap". Don't allow anonymous access. All machines read/write. Allow root access.
-
"c:\Documents and Settings" as "home". Don't allow anonymous access. All machines read/write. Allow root access.
Now, go to the Linux machine and mount
"networkstationv2/prodbase/ppc". Here, you can uncompress the
corunix_win2003.tbz package.
After that, you can return to NFS server configuration and put the true paths:
- Translate file names:
c:\corunix\etc\character_translation_interix.conf
- Password file path name:
c:\corunix\etc\passwd
- Group file path name:
c:\corunix\etc\group
3. Configuring DHCP
As the we don't know how to read the configuration stored in the NetworkStation 1000 non-volatile RAM, the only way for auto-setup the computer at boot is by using DHCP. All parameters needed will be passed in that way to the NetworkStation.
To configure the DHCP server, open
Administrative tools and then
Computer Administration. Here, go to
Applications and Services --> DHCP.
At server options, configure the following values:
- 017 Root access path: 192.168.145.64 (your server's IP, this is an example, all our servers have a 192.168.XXX.64 address)
- 066 Start serv. hostname: 192.168.145.64
Create a new zone, ranging from 192.168.145.65 to 192.168.145.79 (to hold 15 clients). Subnet mask: 255.255.255.0. On the next screen, put all the range as excluded addresses, as we want to specify each one by hand. Configure the router address (192.168.145.1), the primary domain, and the DNS server address. We use ourselves as the DNS server, so we put 192.168.145.64 here, but you could specify other server. We don't want a WINS server, so leave it blank.
Create one reservation for each thin client, specifying the IP and MAC. Example:
- Reservation name: nc1
- IP address: 192.168.145.65
- MAC address: 0000a7241f3f (note that ":" aren't used)
- Description: nc1
- Compatible types: only DHCP
4. Configuring DNS server
Open the DNS server subtree at
Computer Configuration. At
server properties, configure properly the DNS forwarders.
If you like, you can add direct and reverse zones to store the DNS name of your terminals. We do it, but we think that it isn't strictly necessary.
Test your configuration opening
nslookup from a console and asking some queries. Configure also the DNS server of the server itself, going to
TCP/IP properties at
Network properties.
5. Configuring rdate server
The NetworkStation 1000 has no internal realtime clock in which store the time when it is switched off. It must get the current date and time each time it boots up. To do this, the original NCOS operating system used the simple
rdate protocol. We considered it a good way to get the date and keep it in our release.
To configure an
rdate server on NT, you have to download one of such servers, like
timesvc (
download it from here
). Download and install it following the instructions on the original webpage. These are:
- Unzip
timesvc1.zip and copy its contents to c:\Program files\timesvc1 (or wherever you like)
- Register the service opening a console, going to the path where you've copied the executables and typing
"timesvc /install"
- Configure the autostart of the service using the Services section of Administrative Tools
6. Configuring Squid
Download SquidNT from here
and install it at
c:\squid. The version we are using is
2.5-stable4-nt.
Sample configuration (change 192.168.145.64 and
parent_proxy.com as you like):
http_port 8080
tcp_outgoing_address 192.168.145.64
cache_peer parent_proxy.com parent 3128 0 no-query connect-timeout=0 default
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
cache_access_log none
cache_log nul:
cache_store_log none
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320
acl centro src 192.168.145.64/255.255.255.255
acl red src 192.168.145.0/255.255.255.0
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563
acl Safe_ports port 80 # http
acl Safe_ports port 81 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
http_access allow centro
http_access allow red
http_access allow manager
http_access allow localhost
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny all
http_reply_access allow all
icp_access allow all
visible_hostname 192.168.145.64
memory_pools off
never_direct allow all
coredump_dir c:/squid/var/cache
If you aren't using a parent server, this configuration won't probably work for you. Try to change the
"never_direct allow all" and adding
"always_direct allow all". The trick is there.
7. Switching the power on and running away...
Let's go. Check that there aren't other DHCP servers on the net, switch on one NetworkStation 1000, and wait. Does it work? Great! Does not? Try the following check list:
7.1 The NetworkStation can't load the kernel
- Check if you've configured the NetworkStation to get the IP from network, and that you're using Ethernet version 2
- Check if
c:\corunix\base is shared by NFS as "networkstationv2/prodbase/ppc", preserving the lowercase
- Check the Windows files ACLs
- Check if user name mapping is working properly
If unsure, try to mount the NFS export from another Linux machine and check the file owner, group and permissions are right.
7.2 The kernel loads, but then stops with a kernel panic
The DHCP query is issued two times. One by the NetworkStation firmware and other by the Linux kernel, since them can't communicate one with each other to pass the configuration. Check that there aren't two DHCP servers on the net.
There is also a bug that causes a hangup if you move the mouse while the kernel is loading.
Wether if it works or not, please, post a comment at the formun telling us your experience. That would help us to improve this manual. Thank you very much.
div class="twikiTopicInfo twikiRevInfo twikiGrayText twikiMoved"<&/div>-->