ITCS Capstone Project 2013 Final Report Systems4Schools Affordable Computers Utilizing Raspberry Pi Technology Project Team: David Collins Andrew McGillivray Tyler Todd Instructor: Colin Chamberlain SAIT Polytechnic School of Information and Communications Technology Computer Systems Major April 10 2013 Systems4Schools Table of Contents RASPBERRY PI CHIP .................................................................................................................................................................................. 2 EXECUTIVE SUMMARY ....................................................................................................................................................... 2 INTRODUCTION & BACKGROUND .................................................................................................................................................... 3 THE STATE OF COMPUTERS IN THE SCHOOLS TODAY .............................................................................................................. 4 ACCOMPLISHMENTS & LESSONS LEARNED ................................................................................................................................... 5 RECOMMENDATIONS ............................................................................................................................................................ 6 BUDGET......................................................................................................................................................................................................... 6 ESTIMATED BUDGET COSTS ................................................................................................................................................. 6 ACTUAL BUDGET COST ......................................................................................................................................................... 7 ACKNOWLEDGEMENTS & REFERENCES ........................................................................................................................................... 8 CONCLUSION............................................................................................................................................................................................ 10 APPENDICES .............................................................................................................................................................................................. 11 GLOSSARY OF TERMS .......................................................................................................................................................... 11 SECURITY .............................................................................................................................................................................. 12 ADMINISTRATION MANUAL............................................................................................................................................... 13 RECOMMENDED CONFIGURATION AND BASIC INFORMATION ..................................................................................................... 13 VMWARE VSPHERE ............................................................................................................................................................... 14 OPERATION OF VSPHERE .................................................................................................................................................................. 14 ESXI .......................................................................................................................................................................................14 POOLS .................................................................................................................................................................................... 15 VIRTUAL MACHINES............................................................................................................................................................. 16 CONNECTING TO SERVERS ............................................................................................................................................................ 17 LTSP SERVER ........................................................................................................................................................................................ 17 NETWORK AND AUTHENTICATION SERVER .......................................................................................................................... 20 ATUTOR SERVER................................................................................................................................................................................. 20 OPERATION OF CLIENT DEVICES: ................................................................................................................................................ 21 CUSTOMIZATION ............................................................................................................................................................................... 22 TROUBLESHOOTING ......................................................................................................................................................................... 23 TECHNICAL OVERVIEW & CONFIGURATIONS ........................................................................................................ 25 Systems4Schools Final Project Report 1 Systems4Schools Executive Summary This formal report will provide an analysis of the entire lifecycle of the Systems4Schools capstone project, and the careful planning and considerations that went into the development of our final deliverables. The team members who worked on this project are David Collins, Andrew McGillivray, and Tyler Todd. The project commenced in January 2013, and followed a 13 week lifecycle to its completion on April 10 2013. Raspberry Pi Chip One of the key components of our project; the Raspberry Pi is a credit-card sized chip capable of booting Our idea for the project centered on changing the way that we look an Operating System at computers in the classroom, and we wanted to accomplish this with an Ethernet cable. with the use of Raspberry Pi technology (See sidebar for more information). Inspired by the Commodore computers in the past, we wanted to prototype a keyboard with the Raspberry Pi built into it – the express goal of which being to develop an inexpensive solution to having computers in the classroom. These Raspberry Pi units would then be served a Linux thin-client over the network and would utilize the resources of the server itself. As one of the goals of the project being to limit the cost of Using an SD-Card to give the chip instructions in receiving the “thin-client” OS, the chip also comes with an impressive array of I/O ports: HDMI Composite Video 3.5 mm Audio 10/100 Ethernet later use the Raspberry Pi for testing and monitoring. SD/MMC/SDIO Slot Over the course of the project there were milestone 2 USB Ports equipment needed for a system of computers to be set up in a classroom, there was a smaller number of key hardware components that made up the entire working model. These key components are an HP Proliant DL385 G7 server, a wireless-N router, and lastly the Raspberry Pi unit(s). With our laptops we were able to administer all of the proper configurations, and then accomplishments, and to achieve these accomplishments, lessons were learned and recommendations can be made in order to ease the process of developing this type of configuration. The materials needed and likewise the budget to provide those materials was relatively small. As is the nature of our project vision to provide an inexpensive solution to having computers in the classroom, there is a relatively small amount of components required in order to set up our system. Systems4Schools Final Project Report 2 Systems4Schools Introduction & Background Given the availability of new and emergent technology today, there is more than one way to provide all of the benefits and tools of a PC workstation. In some workplaces, Smartphones are being used as the primary computing and internet connectivity device for workers to perform all work-related tasks. For our project, we knew we wanted to center our work on the Raspberry Pi chip, and what could potentially be a new and emergent use for the device. Before we had the idea to use the product in school environments, we knew we at least wanted to somehow integrate the chip into a keyboard – effectively making the keyboard a PC workstation, in a non-traditional sense. There are many guides on the internet about all the different uses the Raspberry Pi chip is capable of, and some even divulge the use of keyboard integration. We eventually realized that this product would be an incredibly inexpensive computer, and that is where we had the idea to use the system in a classroom environment. Not all schools have the budget to maintain and provide PC technology in the classroom – with the Raspberry Pi System, we envisioned a workstation at every desk, or at the very least in every classroom. Our idea would be that the system would be preinstalled with educational software, which could be made accessible to several age groups, though we eventually decided that for the purposes of this project to use elementary-aged students as the target users of the product. We wanted to develop a system that would be easy and fun to use, and maybe something no one has ever really seen before. We eventually realized that the keyboard integration, while unique, is actually an impractical approach to the problem we are trying to solve, but this will be discussed more in-depth in our recommendations section of this report. Server-side, the system configuration, while relatively simple, was arduous to plan and perfect. Using VMWare ESXi as our server management software, we were able to easily set up and deploy servers to provide the necessary services to carry out the vision of our final product. The first, and most important server, is our Linux thin-client. This is the Operating System to be served to the Raspberry Pi unit – the system that students will be interacting with. Essential to its proper functioning are two other Linux servers that complement the main server’s functionality. Server number 2 provides DHCP, DNS, and LDAP services, and server number 3 provides tertiary services including the ATutor web portal, which will be discussed in the Overview section of this report. These are the separate systems that encompass the working model of our project. It is a relatively simple setup, easy to maintain, and is run with a minimal network infrastructure. We hope to solve the question of where a school is expected to stand on the implementation of computers in the classroom by providing a cutting-edge product at a relatively small expense. Systems4Schools Final Project Report 3 Systems4Schools The State of Computers in the Schools Today The rapid advancement of technology forces school board members and directors of technology to be continually on their feet and prepared for new and exciting changes in the market. Many private schools and charter academies are geared towards providing the best in technological offerings on the market today, while other schools depend on a more relaxed stance on how to implement computer systems in their classrooms. Many implementations are used, and all are viable options on how to approach the situation, and each try to address the most important questions; is this method costeffective? Is it easy to maintain? And lastly, does it address the needs of the students? We feel as a group that the last question is the most important to ask, and likewise to successfully answer, given that we live in a society that is geared towards the continual adoption and use of new technologies, the skills required to comfortably and confidently use these technologies would be an invaluable asset for future advancement, not only throughout the course of one’s education, but in the eventual career field. With the Systems4Schools Raspberry Pi units, we want to provide schools with a cost-effective solution to implementing computers and related technologies in the classroom. We want to help schools answer the hard questions about which direction to take when it comes to spending money on computers, and more importantly, we want to give students an accessible, and ultimately, an enjoyable way of interacting with newer technologies that they normally might not have access to outside of the classroom. In today’s economic climate, there isn’t a lot of money to go around. Many schools are spending more money per student than they are actually receiving in funding, which only leads to more debt. It is a complex situation, and one that must be addressed. Our philanthropist stance on the matter is one that could be explored outside the limits of our project – it isn’t necessarily the best computer that can accomplish what schools are seeking to achieve, but getting the most resources out of the smallest amount of hardware required is the very idea that is the driving force behind our project vision. There are many inexpensive technologies available today that are perfectly capable of performing the same tasks as some of the most cutting-edge PC and Mac workstations, and it all depends how these resources are utilized. In regards to our project, the servers provide all of the hardware requirements (which are easily customized with server managers like VMWare ESXi), and the Raspberry Pi units are simply conduits to the processing power of these servers. With our project we seek not to solve any problems, or make any drastic changes; we simply wish to improve the state of technological accessibilities to children of any age. Systems4Schools Final Project Report 4 Systems4Schools Accomplishments & Lessons Learned The development of our project saw many invigorating highs, and likewise many infuriating lows. For our accomplishments, some of which were simple, and some of which took a lot of time to achieve, were all none the less very satisfying. Successfully booting the Raspberry Pi: We attained this goal about 2 weeks into the development of our project. It involved the setting up of 2 (out of the 3 required Linux servers), and the wireless router. The first server being the Operating System booted by the Raspberry Pi, and the second server which dealt with DHCP and DNS, which allowed to Raspberry Pi to know where to retrieve the Linux thin client. Figuring out how to build the Raspberry Pi chip into our keyboard: We decided to use an old Apple keyboard for the prototype. The clear plastic seemed like a perfect choice for this product as it would allow us to show observers the Raspberry Pi chip inside the keyboard. The planning took a long time for us to get this working properly, as the keyboard itself didn’t really provide us a lot of room to put the entire chip inside it. The turning point was when we one day decided to start really taking it apart and cutting out slots for the ports (which involved a lot of tedious cutting, and chipping away at the plastic). The chip fit perfectly inside and gave us access to the ports, but we were left with the problem of placing the keyboard component over the chip, as it took up took much space for it all to fit together properly. Our workaround to this issue was to use foam insulation cut into squares which would both allow the keyboard to have something to rest on and also allowed us to give a proper seat for the Raspberry Pi chip. Open LDAP: Or, Lightweight Directory Access Protocol was an essential component of our project. Not because it was necessary for the project to work, but because it showed that our system was ideal for an educational environment with security and authentication in mind, the idea being that each student would be provided credentials to log into the system. It is basically Active Directory for Linux Operating Systems, only much less automated and required quite a bit of manual configurations. ATutor: ATutor is an administrators-in-education web portal for Linux. It is essentially the Linux version of Blackboard or D2L; it provides instructors and administrators a portal to upload homework assignment, post grades, and likewise for students to have access to class resources. This service utilizes Apache Web Server, PHP and MySQL, and the installation was time consuming, due to the complicated nature of this type of web service. Systems4Schools Final Project Report 5 Systems4Schools Recommendations The one recommendation we would make about this project, is that the integration of the chip into the keyboard is highly impractical. In a real life situation, the Raspberry Pi units would most likely be seated in their own cases, or possibly even mounted to the back of the monitor. Actually integrating the chip into a keyboard would become extremely costly and time-consuming, which is essentially the opposite of what we are trying to convey with this project. The only other recommended change to our project would be to use a different server entirely. We discovered at around the halfway point of project development that the server was unable to provide the hardware and video acceleration that was required to run certain programs on the client device – such as typing games. A potential workaround to this issue would be to use a server that was capable of video acceleration (most likely with the use of a GPU). Budget Our budgets projections were very nearly on par on the hardware side. We didn’t dedicate a lot of time in the estimation of labor costs, due to not knowing exactly how much time we would spend performing certain tasks, so that was left out of the original project budget. We found that we were only about $1600 over our predicted budget, which may at first seem like a lot, but when one considers the cost to actually implement a network of computers in a school, the additional costs are trivial. Below is a detailed look at our preliminary budget analysis, and then following is a look at our actual costs of the project. Estimated Budget Costs Item Raspberry Pi Keyboards Server HDMI Monitor Mouse Micro-USB Cable USB AC Adapter SD Cards Switch Hardware Firewall CAT6 Cables TOTAL No. of Items 2 2 1 2 2 2 2 2 1 1 7 Cost $90 $40 $2000 $200 $40 $10 $15 $15 $150 $250 $45 $2855 Systems4Schools Final Project Report 6 Systems4Schools We underestimated the cost of the server, which as described in the recommendations, was the wrong type of server to use for this type of project. It was overkill in all the right areas (CPU and Memory) but it unfortunately did not provide the hardware acceleration that was needed for the Raspberry Pi to run graphically intensive programs. A server that would be capable of hardware acceleration is what we needed, and in reality, that type of server may actually have come at a much lower cost than the HP Proliant server we ended up using. Actual Budget Cost HARDWARE Item Raspberry Pi Keyboards HP ProLiant DL385 G7 Server HDMI Monitor Mouse Micro-USB Cable USB AC Adapter SD Cards UPS Router CAT5 Cables Server Rack HARDWARE TOTAL Difference from original LABOR Tyler Todd Andrew McGillivray David Collins LABOUR TOTAL FINAL TOTAL No. of Items 2 2 1 1 1 2 2 2 1 1 4 1 Rate $101.99 $101.99 $101.99 Hours 96 103 98 Cost $90 $40 $3,398.99 $200 $20 $10 $15 $15 $250 $60 $20 $400 $4518.99 ($1,663.99) Cost $9,791.04 $10,504.97 $9,995.02 $30,291.03 $34,810.02 Systems4Schools Final Project Report 7 Systems4Schools Acknowledgements & References [1] Numerous Authors, “RaspberryPi.org” RaspberryPi.org [online], April 2013 [cited January 2013], available from World Wide Web: <http://www.raspberrypi.org/> [2] Wiki, “RPi Hardware Basic Setup” ELinux.org [online], 2013 [cited January 2013], available from World Wide Web: <http://elinux.org/RPi_Hardware_Basic_Setup> [3] Max, “BerryTerminal” Berry Terminal.com [online], Mar. 21 2013 [cited January 2013], available from World Wide Web: <http://www.berryterminal.com/doku.php#download> [4] SepticLemon, “Putting a Pi in a keyboard…” RaspberryPi.org [online], Oct. 7 2012 [cited January 2013], available from World Wide Web: <http://www.raspberrypi.org/phpBB3/viewtopic.php?f=40&t=19436> [5] Julian Horsey, “Raspberry Pi Keyboard Case Hack” Geeky Gadgets [online], Aug. 23 2012 [cited January 2013], available from World Wide Web: <http://www.geeky-gadgets.com/raspberry-pikeyboard-case-hack-23-08-2012/> [6] Jamesbeat, “Case Project: Dedicated ZX Spectrum Emulation Machine” RaspberryPi.org [online] Oct. 22 2012 [cited January 2013], available from World Wide Web: <http://www.raspberrypi.org/phpBB3/viewtopic.php?f=40&t=20757> [7] Thorin Klosowski, “Turn a Keyboard Into a Computer with Raspberry Pi”, Lifehacker [online] Aug. 23 2012 [cited January 2013], available from World Wide Web: <http://lifehacker.com/5937211/turn-akeyboard-into-a-computer-with-raspberry-pi> [8] crkrjak2001, “Turn a keyboard into a Raspberry Pi case for around $20 or less” Instructables [online] Dec. 31 2012 [cited January 2013], available from World Wide Web: <http://www.instructables.com/id/Turn-a-keyboard-into-a-Raspberry-Pi-case-for-aroun/#step1> [9] David Briddock, “Accessorizing your Raspberry Pi” Micromart [online] Jan. 11 2013 [cited January 2013], available from World Wide Web: <http://www.micromart.co.uk/pc/raspberrypi/187/accessorising-your-raspberry-pi> [10] David Hayward, “25 fun things to do with a Raspberry Pi” CNet [online] Nov. 28 2012 [cited January 2013], available from World Wide Web: <http://reviews.cnet.co.uk/desktops/25-fun-things-todo-with-a-raspberry-pi-50009851/> Systems4Schools Final Project Report 8 Systems4Schools [11] Eduardo Delarosa, “XAMPP: Couldn’t start MySQL!” XAMPP Blogspot [online] Nov. 22 2011[cited February 2013], available from World Wide Web: <http://xampp-mysql.blogspot.ca/> [12] gilrez, “XAMPP: Couldn’t start MySQL” Ubuntu Forums [online] Jul 22. 2011 [cited February 2013], available from World Wide Web: <http://ubuntuforums.org/showthread.php?t=1809670> [13] Author Unknown, “Installation” ATutor Learning Management Tools [online] 2012 [cited March 2013], available from World Wide Web: <http://atutor.ca/atutor/docs/installation_pre_1_3.php> [14] Forum Posting, “SSH Connection Refused” LinuxQuestions.org [online] Apr. 12 2012 [cited March 2013], available from World Wide Web: <http://www.linuxquestions.org/questions/linux-networking3/ssh-connection-refused-941525/> [15] frbry “How to solve ‘Connection refused’ errors in SSH connection?” AskUbuntu.com [online] Mar. 12 2011[cited March 2013], available from World Wide Web: <http://askubuntu.com/questions/30080/how-to-solve-connection-refused-errors-in-ssh-connection> [16] Kai Seidler “XAMPP for Linux” Apache Friends [online] Feb. 22 2009 [cited March 2013], available from World Wide Web: <http://www.apachefriends.org/en/xampp-linux.html#388> [17] NIXCRAFT “20 Linux Server Hardening Security Tips” Cyber Citi [online] Oct. 20 2009 [cited March 2013], available from World Wide Web: <http://www.cyberciti.biz/tips/linux-security.html> [18] NIXCRAFT “Linux Disable Wireless Networking (Wi-Fi) Cyber Citi [oline] Jul. 10 2009 [cited March 2013], available from World Wide Web: <http://www.cyberciti.biz/faq/linux-remove-wirelessnetworking-wifi-802-11-support-drivers/> Systems4Schools Final Project Report 9 Systems4Schools Conclusion Completion of a project is an extremely satisfying and rewarding endeavor. There were many milestones that encouraged us to keep moving forward and to try new things to test the extent of what could be accomplished with our customized Raspberry Pi unit, and many failures and setbacks were met in order to achieve these milestones. These setbacks helped us to learn a lot of lessons on how to properly configure the system, and what we observed was that if we needed to redo certain steps, it took a significantly less amount of time to complete them as we had our journals to reference in order to properly complete these tasks. The note-taking and journaling alone is a skill that will be utilized throughout our careers, due to the complex nature of configuring systems, it is basically impossible to memorize the steps needed to complete certain tasks. The most rewarding aspect of the project had to do with the prototyping and eventual creation of our customized keyboard. Aesthetically, it isn’t the best looking piece of hardware, but the fact that it is essentially a keyboard that functions as a computer is something that we as a group take pride in having engineered. That, combined with the proper configuration of our network of servers gives us a deliverable that feels as though it is our own creation with our own personal touch, and the project itself conveys each team member’s personal creativity. Computer technology doesn’t have to be straight-forward and uninspired – quite the opposite as a matter of fact. This is one point we are trying to convey with this project, aside from our main project vision of changing the way that we look at computers in the classroom. We want to show that technological innovation can be an art form, in its own right, and that with newer, emergent technologies, there is no limit to what can be done. We look forward to showing our project at the Capstone Showcase – we aim to have a product that no one has ever really seen before, functioning in a way that might seem surprising and yet innovative. We are all very proud of the work we have to put into this and the journey of this project from start to finish, and the lessons learned in between, are those that will be used and remembered throughout our careers in Information Technology. Systems4Schools Final Project Report 10 Systems4Schools Appendices Glossary of Terms Raspberry Pi: A credit card-sized computer chip, the Raspberry Pi is capable of running an Operating System over a network, and which utilizes the hardware capabilities of the server that is delivering said Operating System. It is a versatile chip tailored to carry out a variety of tasks. It has the added benefit of being extremely inexpensive, at a cost of $35. Linux: An open-source, UNIX-based Operating System, Linux Operating Systems are known for being customizable, and more importantly most versions are free under the GNU General Public License. The defining characteristic of the Linux OS is the customizable Linux Kernel. LTSP: Linux Terminal Server Project is an open source terminal server for Linux which allows multiple users to simultaneously use the same computer. The applications are run with a terminal, or “thinclient”, which handles input and output functions. Client Device: Our specialized custom keyboard with built-in Raspberry Pi chip. This is the device which the client will be interacting with. VMWare ESXi: Software that is used to administratively manage virtualized Operating Systems. With this software, one can manage the hardware utilization of the server on which it is installed. Resource pools can be configured to give certain high-priority Operating Systems the resources they need to function properly. LDAP: Lightweight Directory Access Protocol, this application protocol is used for user authentication. Authenticated users are granted access to directory services which are often organized in a hierarchical structure. The inclusion of LDAP also adds a layer of security to the network. ATutor: A Linux web portal designed for educational administrators, instructors, and students. It is designed to manage classes, allow instructors to upload assignments (and likewise for students to upload completed homework), and is a solution to unifying all members in an educational environment to have continual access to required resources. DHCP: Dynamic Host Configuration Protocol, DHCP is a server service which is responsible for assigning IP addresses to users on the network. DNS: Domain Name System, this system associates various pieces of information with domain names. It’s most important feature is that it translates domain names to numerical IP addresses with the Systems4Schools Final Project Report 11 Systems4Schools purpose of properly locating computer services and devices. It is essentially a phonebook for the Internet. Security Security is a crucial component of every server-based network. For our project, we hardened each server as much as possible to ensure that the network is safe, and that it is capable of protecting sensitive data. The components of our network security are as follows: Root login via SSH is disabled across all servers SSH ports for servers 2 and 3 have been switched to port 2222 instead of the traditional 22 LDAP is used for authentication with adds a layer of security to the servers providing a centralized login system Linux modules and daemons have been removed from the kernel Systems4Schools Final Project Report 12 Systems4Schools Administration Manual Recommended Configuration and basic information Recommended Configuration: Our recommended configuration consists of 3 servers; an LTSP server, a Network and Authentication server, and a serve to provide tertiary services (ATutor). These servers provide the core functionality needed for clients to access a terminal session. Running on VMware ESXi servers, these three virtualized systems provide an all-encompassing solution. Ubuntu 12.10 is the Linux distribution of choice. All software and configurations have been tested on this platform. It is recommended you have at least 1 Windows 7/8 system on your network to run the vSphere Client, third party LDAP tools and Putty for SSH sessions, these tools are included in the administration disc Servers: 1) LTSP server: This is the core system in our network, it is our terminal server. All clients will be running their sessions off of this system. 2) Network and Authentication Server: Running on this server is DNS, DHCP and LDAP. You will notice that this server does not provide a graphical user interface, we strongly advise against installing a GUI or running any other services on this system. 3) ATutor: Dedicated to running the Education Administration website, ATutor, which allows instructors to upload homework assignments, and likewise provides students to all the necessary resources. Tools provided to you: Systems4Schools has coded Perl scripts that sit under the “/systems4schools/scripts” folder on each server where they are applicable. These are self-explanatory and allow you to speed your workflow and troubleshooting should you encounter issues. The following tools are included on the administration disc: - Berry Terminal o Client side software, simply copy the contents of this folder onto the root of the SD card and it will boot to the LTSP server - Gawor LDAP browser o - Java based LDAP browser LDAPAdmin Systems4Schools Final Project Report 13 Systems4Schools o - HeidiSQL o - Used to connect into the ATutor SQL database Putty o - Standalone LDAP browser SSH client vSphere Client o 5.1 – Version used in the Systems4Schools recommended configuration VMware vSphere To access the ESXi server you will need to be on the same network as the ESXi server as well as have the vSphere client installed on your system. Note: The vSphere Client version must match the ESXi version running on your server. Steps: 1) Open the vSphere Client on your system. 2) You will be prompted with a dialog box requesting the following: a. IP/Hostname b. Username c. Password 3) Enter the IP of the ESXi server (This will be unique to your site, please refer to the site documentation) 4) Enter your username and password, it is not advisable to login as the root user. 5) Once your credentials are entered and are correct the vSphere client will load and you will be able to create and modify the virtual machines. Operation of vSphere: Since you will already have the virtual machines that you need created and running for you, you will just need to know how to maintain it. ESXi: Permissions; Under this tab you are able to change permissions and add/remove user from this server Systems4Schools Final Project Report 14 Systems4Schools Events The events tab shows the history of everything that has happened on the ESXi and it’s broken down by user so that it easy to see what happens and who performed the action. Local users & groups; This tab both shows and lets you edit the various different users and groups with permissions in ESXi. It shows the level of access each has and their perspective UID. Configuration; The configuration tab lets you view and edit everything you have in your server that the pool is running on. Performance; This tab lets you view in both table and graphical format the various different forms of usage on the server. Resource Allocation; Shows the CPU, memory and storage resource allocated to this server and allows you to edit them Virtual machines; This is where it shows the various different virtual machines that are in the pool and lets you add or delete any VM’s on the server. By clicking on them you can manage the setting, turn them on or off, suspend them and open them up to see the consol. It also shows the various different resources allocated to the various VMs. Summary; This tab gives you a brief overview of what is on the server and the resources it is using. Getting started; This is the first tab and it shows a few different wizards available that guide you through different acts in the server. Pools The VM’s you have will be under their own resource pools in the left pane. If you need to modify the CPU and memory of them, simply right click on the pools and select edit pool. There are multiple tabs in the right window once you select the pool you want that let you administer them. Permissions; Under this tab you are able to change permissions and add/remove user from this pool. They should be inherited from the ESXi server and not need to be changed for pools. Systems4Schools Final Project Report 15 Systems4Schools Events; The events tab shows the history of everything that has happened on the Pool and it’s broken down by user so that it easy to see what happens and who performed the action. Performance; This tab lets you view in both table and graphical format the various different forms of usage on the pool. Resource Allocation; Shows the CPU, memory and storage resource allocated to this pool and allows you to edit settings Virtual machines; This is where it shows the various different virtual machines that are in the pool and lets you add or delete any VM’s in the pool. By clicking on them you can manage the setting, turn them on or off, suspend them and open them up to see the consol. It also shows the various different resources allocated to the various VMs. Summary; This tab gives you a brief overview of what’s in the pool and the resources it is using. Getting started; This is the first tab and it shows a few different wizards available that guide you through different acts in the pool. Virtual Machines Permissions; Under this tab you are able to change permissions and add/remove user from this VM. They should be inherited from the Pool and ESXi server and not need to be changed. Console; The console is the view of the actual machine. So you will see the desktop and be able to operate the VM just like a normal computer here. It can be expanded to its own window for a larger view. Events; The events tab shows the history of everything that has happened on the VM and it’s broken down by user so that it easy to see what happens and who performed the action. Performance; This tab lets you view in both table and graphical format the various different forms of usage on the VM Systems4Schools Final Project Report 16 Systems4Schools Resource Allocation; Shows the CPU, memory and storage resource allocated to this VM and allows you to edit the settings Summary; This tab gives you a brief overview of the VM. It lists its stetting, properties, resources and its status. It also lets you turn the VM both on, off or suspend it and edit its settings. Getting started; This tab lets you start, stop or edit the Virtual machine. Connecting to Servers You have multiple options for connecting into the servers to manage them, each has its preferred connection method for the services installed. LTSP Server The preferred connection method to this server is the vSphere console. Since this is running LTSP it is best practice to also connect into via the client devices as this allows the administrator to ensure that any changes made do not affect the end experience. If you choose to connect via SSH, SSH is running on default port 22 (Needed for LTSP connections) Network and Authentication Server SSH (Putty is the recommended tool) is the preferred connection method, since this server does not provide a Graphical User Interface it is quicker and faster to use SSH. SSH for this server is running on port 2222. ATutor Server SSH (Putty is the recommended tool) is the preferred connection method, since this server does not provide a Graphical User Interface it is quicker and faster to use SSH. SSH for this server is running on port 2222. LTSP server Running Services: - LTSP - TFTPD-HPA Terminal server for end users. No administrative tools or sensitive information should be stored on this server. Systems4Schools Final Project Report 17 Systems4Schools Re-Authenticating/Authenticating with another LDAP server: If there are issues authenticating with the LDAP server, or a third party server is implemented the client side configuration can be reconfigured to point to another server by running the following command in the terminal window “sudo dpkg-reconfigure ldap-auth-config” You will be prompted with the following screens: Choose <Yes> for this option. Enter the IP address of the LDAP server, for stability and reliability it is recommended that you use an IP address as opposed to a hostname. The default port for LDAP is 389 If you cannot connect after going through this configuration change: ldap:// to: ldapi:// Enter the same of the search base, for the default configuration using Systems4Schools Final Project Report 18 Systems4Schools Systems4Schools DNS and LDAP server is shown in the screenshot. Select the version of LDAP you would like to use. Systems4Schools recommended environment was built around LDAP 3 and has not been tested with LDAP 2. If you are running into issues with older third party systems authenticating this may be a possible fix. Select <No> as this will interfere will LTSP, and users will not be able to authenticate. The rest of the options can be changed to fit your unique needs. A database login is not needed but it does provide a bit more access and allows for quicker lookups. Systems4Schools Final Project Report 19 Systems4Schools Network and Authentication Server Running Services: - BIND9 (DNS) - ISC-DHCP-SERVER - OpenLDAP -Provides basic network functionality to the client systems as well as third party PXE boot clients. Also is the centralized authentication service. Adding a user: To add a user to the OpenLDAP directory we suggest using LDAPAdmin, this is a windows based tool. To create a new user follow the steps below: 1) Open LDAPAdmin from the administration disc 2) New Connection 3) Enter the search base, Network and Authentication Server IP address and login credentials. 4) Right click at either the base of the tree or in the desired OU and click new user. The following details should remain constant between users: Login Shell: “/bin/bash” Home Directory:” /home/<username>” Note: <username> is the username of the new user. ATutor Server Running Services: - Apache2.2 - MySQL Starting Apache2.2: If Apache stops or does not start on boot it can be start by simply running the following command from the terminal: “sudo service apache2 restart” In order for ATutor to run the MySQL database must be running. If Apache is restarted MySQL must be restarted also by running the following command: “sudo service mysql restart” Systems4Schools Final Project Report 20 Systems4Schools Creating an ATutor user To create a user the web interface is used, which can be accessed with the FQDN of the ATutor server (atutor.systems4schools.local in the recommended setup). Once logged in you will find a “Users” tab within this tab you can create users and modify permissions. Operation of Client Devices: Deploying/Reinstalling BerryTerminal Provided on the Administration disc is a copy of BerryTerminal. This is the only software that will run on the Client Devices as the rest is done on the LTSP server. To install/reinstall this software simply copy the contents of the folder to the root of the SD card. Once copied insert the SD card into the client device and it will boot as normal. Client Login Flow chart Client Systems are powered on and look for BOOTP packets being broadcasted by the Network and Authentication Server Network and Authentication Server gets response from Client Devices. Forwards packet to Client Device notifying it that it does not contain the information needed for LTSP and to go the LTSP server Client Devices query LTSP server. LTSP server then hands out TFTP information. Systems4Schools Final Project Report 21 With TFTP image verifiied to exist the Client system then presents the login screen to the end user Systems4Schools Customization Client Side: On the root of every SD card there is a file called cmdline.txt. This file allows you to set multiple attributes to allow for manual server specification and auto login, etc. you may append or edit them to fit your needs. Supplied in the administration disc is a copy of BerryTerminal, you will find a copy of this configuration file under the directory. Manually specify a server: server=1.2.3.4 Specify keyboard layout (FR for French, EN for English): XKBLAYOUT=fr Specify credentials for automatic login: LDM_AUTOLOGIN=True LDM_USERNAME=username12 LDM_PASSWORD=password Note: Every system must have their own login. We do not recommend using automatic login. Sample Configuration file: quiet server=192.168.1.5 XKBLAYOUT=en By default there will only be “quiet” in this configuration file. If you do not specify a server DHCP and TFTP will be utilized. English is the default for the keyboard and language options Installing Software on a Server By default Ubuntu uses the Aptitude package manager, a simple easy to use package manager the basic syntax is: “apt-get <action> <package>” Examples: “apt-get install nano” – Will install the Nano text editor, or if installed will update the package. “apt-get remove nano” – Will remove the Nano package. If corrupt software is encountered and a reinstall fails insert “—purge” between the remove command and the package name then reinstall said software. Systems4Schools Final Project Report 22 Systems4Schools Troubleshooting All clients are not receiving a login screen Client systems should receive a graphical login screen upon being powered on. This requires the two following servers to be running: 1) LTSP Server 2) Network and Authentication Server Recommended actions: 1) Ping both of these servers, both should respond in a timely manner 2) Do a name server lookup on the Network and Authentication server, you should be able to resolve the LTSP server’s name. a. If it fails it could be the BIND9 service down: “sudo service bind9 restart” b. The recommended setup allows only the clients to utilize this server, therefore it is safe to do a reboot. 3) Check if TFTP is running on the LTSP server: “sudo service tftpd-hpa status” a. Restart the service if stopped, this pushes the client image to the devices. 4) Update the SSH keys on the LTSP server: a. “sudo ltsp-update-sshkeys” Login is successful but user gets redirected immediately back to login screen This is a common symptom of not having a .Xauthority file. Follow the steps below to create this file: 1) Logon to LTSP server via client device or vSphere console as another user. 2) Open a terminal session 3) Run the following command, replacing <user> with the username of user that has the issue: “ su <user>” 4) Enter the users password 5) Change the current directory to home: “cd ~” a. If you receive an error that directory doesn’t exist; switch to user with sudo permissions and run: “sudo mkdir /home/<user>” 6) Run “xauth” User should now have the required file with the proper permissions set on it. GUI logon via the vSphere console and Client Device should now work. Systems4Schools Final Project Report 23 Systems4Schools Client Systems Receive: “Error obtaining IP from DHCP server” This error occurs because the DHCP server is not broadcasting itself or is not sending out BOOTP messages. Assuming that there have been no changes to the configuration file, the following steps should be taken: 1. Open a terminal window on the Network and Authentication server. 2. Run command “sudo service isc-dhcp-server status” a. Service status should be running. 3. Run command “sudo service isc-dhcp-server restart” a. The service should successfully restart, if not refer to the /var/log/syslog file for a specific reason. 4. If the service starts without issue and clients are still receiving the same error, ensure that all cabling, ports, and connections are proper. Permissions Errors Any commands that commit changes to system files will need to have “sudo” prepended to them. If the current user has “sudo” permission the command will run without error. For security reasons only local users are recommended to have “sudo” permissions. Example: “sudo nano /etc/resolvc.conf” Systems4Schools Final Project Report 24 Systems4Schools Technical Overview & Configurations This section includes the configuration and scripts used to configure the network. LTSP Server 1: Script for checking services: #!/usr/bin/perl # Systems4Schools Services Script system('clear'); #Clears the CLI print "Systems4Schools Services Script\n"; print "Service: \n\n"; #Start of services to print to end user print "1) TFTP-HPA\n"; print "2) DNSMASQ\n"; print "3) Networking\n"; print "4) Resoveconf\n"; print "5) Ping LDAP Server\n"; print "6) Ping ATutor Server\n"; print "\n\nChoice: "; chomp ($service=<STDIN>); #start of IF statement for switch Systems4Schools Final Project Report 25 Systems4Schools if ($service eq '1'){ print "TFTPD-HPA\n\n1) Status \n2) Restart\n\n Choice:"; chomp ($operation=<STDIN>); if ($operation eq '1'){ system('sudo service tftpd-hpa status'); } else{ system('sudo service tftpd-hpa restart'); } } if ($service eq '2'){ print "DNSMASQ\n\n1) Status \n2) Restart\n\n Choice:"; chomp ($operation=<STDIN>); if ($operation eq '1'){ system('sudo service dnsmasq status'); } else{ system('sudo service dnsmasq restart'); } } if ($service eq '3'){ print "Networking\n\n1) Status \n2) Restart\n\n Choice:"; chomp ($operation=<STDIN>); if ($operation eq '1'){ Systems4Schools Final Project Report 26 Systems4Schools system('sudo service networking status'); } else{ system('sudo service networking restart'); } } if ($service eq '4'){ print "Resolvconf\n\n1) Status \n2) Restart\n\n Choice:"; chomp ($operation=<STDIN>); if ($operation eq '1'){ system('sudo service resolvconf status'); } else{ system('sudo service resolvconf restart'); } } if ($service eq '5'){ print "Pinging ldap.systems4schools.local\n\n"; system('ping ldap.systems4schools.local -c 4 | grep "packet loss"'); } if ($service eq '6'){ print "Pinging atutor.systems4schools.local\n\n"; system('ping atutor.systems4schools.local -c 4 | grep "packet loss"'); } Systems4Schools Final Project Report 27 Systems4Schools /etc/hosts 127.0.0.1 localhost 127.0.1.1 SRV01 # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters /opt/ltsp/i386/etc # This is the default lts.conf file for ltsp 5. # For more information about valid options please see: # /usr/share/doc/ltsp-client/examples/lts-parameters.txt.gz # in the client environment. # # Note that things like sound and local device support are # auto-enabled if the corresponding packages are installed, # there is no need to manually set these options anymore. Systems4Schools Final Project Report 28 Systems4Schools # # **** THIS FILE SHOULD NO LONGER BE USED FROM HERE !!! **** # # With the introduction of the nbd/unionfs/squashfs structure # the lts.conf file moved to the tftp root please create: # /var/lib/tftpboot/ltsp/i386/lts.conf instead for your changes # # In case you want to use the lts.conf here, this still works, # but you need to run ltsp-update-image after every change. [example] key=value /etc/pam.d/common-account # Systems4Schools common-account # # /etc/pam.d/common-account - authorization settings common to all services # # This file is included from other service-specific PAM config files, # and should contain a list of the authorization modules that define # the central access policy for use on the system. The default is to # only deny service to users whose accounts are expired in /etc/shadow. # # As of pam 1.0.1-6, this file is managed by pam-auth-update by default. # To take advantage of this, it is recommended that you configure any # local modules either before or after the default block, and use # pam-auth-update to manage selection of other modules. See Systems4Schools Final Project Report 29 Systems4Schools # pam-auth-update(8) for details. # # here are the per-package modules (the "Primary" block) account [success=2 new_authtok_reqd=done default=ignore] account [success=1 default=ignore] pam_unix.so pam_ldap.so # here's the fallback if no module succeeds account requisite pam_deny.so # prime the stack with a positive return value if there isn't one already; # this avoids us returning an error just because nothing sets a success code # since the modules above will each just jump around account required pam_permit.so # and here are more per-package modules (the "Additional" block) # end of pam-auth-update config /etc/pam.d/common-auth # Systems4Schools common-auth # # /etc/pam.d/common-auth - authentication settings common to all services # # This file is included from other service-specific PAM config files, # and should contain a list of the authentication modules that define # the central authentication scheme for use on the system # (e.g., /etc/shadow, LDAP, Kerberos, etc.). The default is to use the # traditional Unix authentication mechanisms. # Systems4Schools Final Project Report 30 Systems4Schools # After changing this file run "sudo pam-auth-update" do not reboot to test # This file is read dynamiclly and cant render the system useless. # To test su into another user, if doesnt work revert changes. # # System will authenticate with LDAP server prior to internal UNIX auth. # This allows the client systems to authenicate with SSH auth [success=2 default=ignore] pam_ldap.so minimum_uid=500 auth [success=1 default=ignore] pam_unix.so nullok_secure use_first_pass # here's the fallback if no module succeeds auth requisite pam_deny.so # prime the stack with a positive return value if there isn't one already; # this avoids us returning an error just because nothing sets a success code # since the modules above will each just jump around auth required pam_permit.so # and here are more per-package modules (the "Additional" block) # end of pam-auth-update config /etc/pam.d/common-session # # Systems4Schools Common session file # # /etc/pam.d/common-session - session-related modules common to all services # # This file is included from other service-specific PAM config files, # and should contain a list of modules that define tasks to be performed Systems4Schools Final Project Report 31 Systems4Schools # at the start and end of sessions of *any* kind (both interactive and # non-interactive). # # As of pam 1.0.1-6, this file is managed by pam-auth-update by default. # To take advantage of this, it is recommended that you configure any # local modules either before or after the default block, and use # pam-auth-update to manage selection of other modules. See # pam-auth-update(8) for details. # here are the per-package modules (the "Primary" block) session [default=1] pam_permit.so # here's the fallback if no module succeeds session requisite pam_deny.so # prime the stack with a positive return value if there isn't one already; # this avoids us returning an error just because nothing sets a success code # since the modules above will each just jump around session required pam_permit.so # The pam_umask module will set the umask according to the system default in # /etc/login.defs and user settings, solving the problem of different # umask settings with different shells, display managers, remote sessions etc. # See "man pam_umask". session optional pam_umask.so # The following line allows the home directories to be created upon first logon session required session required session optional pam_mkhomedir.so umask=0022 skel=/etc/skel pam_unix.so pam_ldap.so Systems4Schools Final Project Report 32 Systems4Schools session optional pam_xdg_support.so session optional pam_ck_connector.so nox11 # end of pam-auth-update config /etc/dnsmasq.conf # System4Schools Configuration file for dnsmasq. # /etc/dnsmasq.conf # Format is one option per line, legal options are the same # as the long options legal on the command line. See # "/usr/sbin/dnsmasq --help" or "man 8 dnsmasq" for details. # Listen on this specific port instead of the standard DNS port # (53). Setting this to zero completely disables DNS function, # leaving only DHCP and/or TFTP. #port=5353 # The following two options make you a better netizen, since they # tell dnsmasq to filter out queries which the public DNS cannot # answer, and which load the servers (especially the root servers) # unnecessarily. If you have a dial-on-demand link they also stop # these requests from bringing up the link unnecessarily. #bogus-priv # Uncomment this to filter useless windows-originated DNS requests # which can trigger dial-on-demand links needlessly. # Note that (amongst other things) this blocks all SRV requests, # so don't use it if you use eg Kerberos, SIP, XMMP or Google-talk. # This option only affects forwarding, SRV records originating for Systems4Schools Final Project Report 33 Systems4Schools # dnsmasq (via srv-host= lines) are not suppressed by it. #filterwin2k # Change this line if you want dns to get its upstream servers from # somewhere other that /etc/resolv.conf #resolv-file= # /etc/resolv.conf #strict-order # If you don't want dnsmasq to read /etc/resolv.conf or any other # file, getting its servers from this file instead (see below), then # uncomment this. #no-resolv # If you don't want dnsmasq to poll /etc/resolv.conf or other resolv # files for changes and re-read them then uncomment this. #no-poll # Add other name servers here, with domain specs if they are for # non-public domains. #server=/localnet/192.168.0.1 # Example of routing PTR queries to nameservers: this will send all # address->name queries for 192.168.3/24 to nameserver 10.1.2.3 #server=/3.168.192.in-addr.arpa/10.1.2.3 Systems4Schools Final Project Report 34 Systems4Schools # Add local-only domains here, queries in these domains are answered # from /etc/hosts or DHCP only. #local=/localnet/ # Add domains which you want to force to an IP address here. # web-server. #address=/double-click.net/127.0.0.1 # --address (and --server) work with IPv6 addresses too. #address=/www.thekelleys.org.uk/fe80::20d:60ff:fe36:f83 # You can control how dnsmasq talks to a server: this forces # queries to 10.1.2.3 to be routed via eth1 # server=10.1.2.3@eth1 # and this sets the source (ie local) address used to talk to # 10.1.2.3 to 192.168.1.1 port 55 (there must be a interface with that # IP on the machine, obviously). # server=10.1.2.3@192.168.1.1#55 # If you want dnsmasq to change uid and gid to something other # than the default, edit the following lines. #user= #group= #interface= Systems4Schools Final Project Report 35 Systems4Schools # Or you can specify which interface _not_ to listen on #except-interface= # Or which to listen on by address (remember to include 127.0.0.1 if # you use this.) #listen-address= # If you want dnsmasq to provide only DNS service on an interface, # configure it as shown above, and then use the following line to # disable DHCP and TFTP on it. #no-dhcp-interface= # If you don't want dnsmasq to read /etc/hosts, uncomment the # following line. #no-hosts # or if you want it to read another file, as well as /etc/hosts, use # this. #addn-hosts=/etc/banner_add_hosts # Set the domain for dnsmasq. this is optional, but if it is set, it # does the following things. # 1) Allows DHCP hosts to have fully qualified domain names, as long # as the domain part matches this setting. # 2) Sets the "domain" DHCP option thereby potentially setting the # domain of all systems configured by DHCP # 3) Provides the domain part for "expand-hosts" #domain=thekelleys.org.uk Systems4Schools Final Project Report 36 Systems4Schools # Set a different domain for a particular subnet #domain=wireless.thekelleys.org.uk,192.168.2.0/24 # Same idea, but range rather then subnet #domain=reserved.thekelleys.org.uk,192.68.3.100,192.168.3.200 #dhcp-range=192.168.0.50,192.168.0.150,12h #dhcp-range=192.168.0.50,192.168.0.150,255.255.255.0,12h # This is an example of a DHCP range which sets a tag, so that # some DHCP options may be set only for this network. #dhcp-range=set:red,192.168.0.50,192.168.0.150 # Use this DHCP range only when the tag "green" is set. #dhcp-range=tag:green,192.168.0.50,192.168.0.150,12h #dhcp-range=192.168.0.0,static # Enable DHCPv6. Note that the prefix-length does not need to be specified # and defaults to 64 if missing/ #dhcp-range=1234::2, 1234::500, 64, 12h # Do Router Advertisements, BUT NOT DHCP for this subnet. #dhcp-range=1234::, ra-only # MAC address and assume that the host will also have an # IPv6 address calculated using the SLAAC alogrithm. Systems4Schools Final Project Report 37 Systems4Schools #dhcp-range=1234::, ra-names # Do Router Advertisements, BUT NOT DHCP for this subnet. # Set the lifetime to 46 hours. (Note: minimum lifetime is 2 hours.) #dhcp-range=1234::, ra-only, 48h # Do DHCP and Router Advertisements for this subnet. Set the A bit in the RA # so that clients can use SLAAC addresses as well as DHCP ones. #dhcp-range=1234::2, 1234::500, slaac # Do Router Advertisements and stateless DHCP for this subnet. Clients will # not get addresses from DHCP, but they will get other configuration information. # They will use SLAAC for addresses. #dhcp-range=1234::, ra-stateless # Do stateless DHCP, SLAAC, and generate DNS names for SLAAC addresses # from DHCPv4 leases. #dhcp-range=1234::, ra-stateless, ra-names #enable-ra # Always allocate the host with Ethernet address 11:22:33:44:55:66 # The IP address 192.168.0.60 #dhcp-host=11:22:33:44:55:66,192.168.0.60 # Always set the name of the host with hardware address # 11:22:33:44:55:66 to be "fred" #dhcp-host=11:22:33:44:55:66,fred Systems4Schools Final Project Report 38 Systems4Schools # Always give the host with Ethernet address 11:22:33:44:55:66 # the name fred and IP address 192.168.0.60 and lease time 45 minutes #dhcp-host=11:22:33:44:55:66,fred,192.168.0.60,45m # Give a host with Ethernet address 11:22:33:44:55:66 or # 12:34:56:78:90:12 the IP address 192.168.0.60. Dnsmasq will assume # that these two Ethernet interfaces will never be in use at the same # time, and give the IP address to the second, even if it is already # in use by the first. Useful for laptops with wired and wireless # addresses. #dhcp-host=11:22:33:44:55:66,12:34:56:78:90:12,192.168.0.60 # Give the machine which says its name is "bert" IP address # 192.168.0.70 and an infinite lease #dhcp-host=bert,192.168.0.70,infinite # Always give the host with client identifier 01:02:02:04 # the IP address 192.168.0.60 #dhcp-host=id:01:02:02:04,192.168.0.60 # Always give the host with client identifier "marjorie" # the IP address 192.168.0.60 #dhcp-host=id:marjorie,192.168.0.60 # Enable the address given for "judge" in /etc/hosts Systems4Schools Final Project Report 39 Systems4Schools # to be given to a machine presenting the name "judge" when # it asks for a DHCP lease. #dhcp-host=judge # Never offer DHCP service to a machine whose Ethernet # address is 11:22:33:44:55:66 #dhcp-host=11:22:33:44:55:66,ignore # address 11:22:33:44:55:66. This is useful to prevent a machine # being treated differently when running under different OS's or # between PXE boot and OS boot. #dhcp-host=11:22:33:44:55:66,id:* # Send extra options which are tagged as "red" to # the machine with Ethernet address 11:22:33:44:55:66 #dhcp-host=11:22:33:44:55:66,set:red # Send extra options which are tagged as "red" to # any machine with Ethernet address starting 11:22:33: #dhcp-host=11:22:33:*:*:*,set:red # Give a fixed IPv6 address and name to client with # DUID 00:01:00:01:16:d2:83:fc:92:d4:19:e2:d8:b2 # Note the MAC addresses CANNOT be used to identify DHCPv6 clients. # Note also the they [] around the IPv6 address are obilgatory. #dhcp-host=id:00:01:00:01:16:d2:83:fc:92:d4:19:e2:d8:b2, fred, [1234::5] Systems4Schools Final Project Report 40 Systems4Schools # or /etc/ethers. Equivalent to ISC "deny unknown-clients". #dhcp-ignore=tag:!known #dhcp-vendorclass=set:red,Linux #dhcp-userclass=set:red,accounts #dhcp-mac=set:red,00:60:8C:*:*:* # Send options to hosts which ask for a DHCP lease. # See RFC 2132 for details of available options. # Common options can be given to dnsmasq by name: # run "dnsmasq --help dhcp" to get a list. #dhcp-option=3,1.2.3.4 # Do the same thing, but using the option name #dhcp-option=option:router,1.2.3.4 #dhcp-option=3 # Set the NTP time server addresses to 192.168.0.4 and 10.10.0.5 #dhcp-option=option:ntp-server,192.168.0.4,10.10.0.5 # Send DHCPv6 option. Note [] around IPv6 addresses. #dhcp-option=option6:dns-server,[1234::77],[1234::88] # Send DHCPv6 option for namservers as the machine running # dnsmasq and another. Systems4Schools Final Project Report 41 Systems4Schools #dhcp-option=option6:dns-server,[::],[1234::88] #dhcp-option=option6:information-refresh-time,6h #dhcp-option=42,0.0.0.0 # Set the NIS domain name to "welly" #dhcp-option=40,welly # Set the default time-to-live to 50 #dhcp-option=23,50 # Set the "all subnets are local" flag #dhcp-option=27,1 # Send the etherboot magic flag and then etherboot options (a string). #dhcp-option=128,e4:45:74:68:00:00 #dhcp-option=129,NIC=eepro100 #dhcp-option = tag:red, option:ntp-server, 192.168.1.1 #dhcp-option=19,0 # option ip-forwarding off #dhcp-option=44,0.0.0.0 # set netbios-over-TCP/IP nameserver(s) aka WINS server(s) #dhcp-option=45,0.0.0.0 # netbios datagram distribution server #dhcp-option=46,8 # netbios node type # Send an empty WPAD option. This may be REQUIRED to get windows 7 to behave. #dhcp-option=252,"\n" Systems4Schools Final Project Report 42 Systems4Schools # Send RFC-3397 DNS domain search DHCP option. WARNING: Your DHCP client # probably doesn't support this...... #dhcp-option=option:domain-search,eng.apple.com,marketing.apple.com # Send RFC-3442 classless static routes (note the netmask encoding) #dhcp-option=121,192.168.1.0/24,1.2.3.4,10.0.0.0/8,5.6.7.8 # mtftp address to 0.0.0.0 for PXEClients. #dhcp-option=vendor:PXEClient,1,0.0.0.0 # http://technet2.microsoft.com/WindowsServer/en/library/a70f1bb7-d2d4-49f0-96d64b7414ecfaae1033.mspx?mfr=true #dhcp-option=vendor:MSFT,2,1i #dhcp-option=vendor:Etherboot,60,"Etherboot" #dhcp-option-force=208,f1:00:74:7e # Configuration file name #dhcp-option-force=209,configs/common # Path prefix #dhcp-option-force=210,/tftpboot/pxelinux/files/ # Reboot time. (Note 'i' to send 32-bit value) #dhcp-option-force=211,30i # Set the boot filename for netboot/PXE. You will only need # this is you want to boot machines over the network and you will need # a TFTP server; either dnsmasq's built in TFTP server or an Systems4Schools Final Project Report 43 Systems4Schools # external one. (See below for how to enable the TFTP server.) #dhcp-boot=pxelinux.0 # The same as above, but use custom tftp-server instead machine running dnsmasq #dhcp-boot=pxelinux,server.name,192.168.1.100 # Boot for Etherboot gPXE. The idea is to send two different # filenames, the first loads gPXE, and the second tells gPXE what to # load. The dhcp-match sets the gpxe tag for requests from gPXE. #dhcp-match=set:gpxe,175 # gPXE sends a 175 option. #dhcp-boot=tag:!gpxe,undionly.kpxe #dhcp-boot=mybootimage # Encapsulated options for Etherboot gPXE. All the options are # encapsulated within option 175 #dhcp-option=encap:175, 1, 5b # priority code #dhcp-option=encap:175, 176, 1b # no-proxydhcp #dhcp-option=encap:175, 177, string # bus-id #dhcp-option=encap:175, 189, 1b # BIOS drive code #dhcp-option=encap:175, 190, user # iSCSI username #dhcp-option=encap:175, 191, pass # iSCSI password # Test for the architecture of a netboot client. PXE clients are # supposed to send their architecture as option 93. (See RFC 4578) #dhcp-match=peecees, option:client-arch, 0 #x86-32 #dhcp-match=itanics, option:client-arch, 2 #IA64 Systems4Schools Final Project Report 44 Systems4Schools #dhcp-match=hammers, option:client-arch, 6 #x86-64 #dhcp-match=mactels, option:client-arch, 7 #EFI x86-64 # Do real PXE, rather than just booting a single file, this is an # alternative to dhcp-boot. #pxe-prompt="What system shall I netboot?" # or with timeout before first available action is taken: #pxe-prompt="Press F8 for menu.", 60 # Available boot services. for PXE. #pxe-service=x86PC, "Boot from local disk" # Loads <tftp-root>/pxelinux.0 from dnsmasq TFTP server. #pxe-service=x86PC, "Install Linux", pxelinux # Loads <tftp-root>/pxelinux.0 from TFTP server at 1.2.3.4. # Beware this fails on old PXE ROMS. #pxe-service=x86PC, "Install Linux", pxelinux, 1.2.3.4 # Use bootserver on network, found my multicast or broadcast. #pxe-service=x86PC, "Install windows from RIS server", 1 # Use bootserver at a known IP address. #pxe-service=x86PC, "Install windows from RIS server", 1, 1.2.3.4 # Enable dnsmasq's built-in TFTP server Systems4Schools Final Project Report 45 Systems4Schools #enable-tftp # Set the root directory for files available via FTP. #tftp-root=/var/ftpd #tftp-secure #tftp-no-blocksize # Set the boot file name only when the "red" tag is set. #dhcp-boot=net:red,pxelinux.red-net #dhcp-boot=/var/ftpd/pxelinux.0,boothost,192.168.0.3 #dhcp-boot=/var/ftpd/pxelinux.0,boothost,tftp_server_name # Set the limit on DHCP leases, the default is 150 #dhcp-lease-max=150 #dhcp-leasefile=/var/lib/misc/dnsmasq.leases #dhcp-authoritative # Run an executable when a DHCP lease is created or destroyed. # The arguments sent to the script are "add" or "del", # then the MAC address, the IP address and finally the hostname # if there is one. #dhcp-script=/bin/echo Systems4Schools Final Project Report 46 Systems4Schools # Set the cachesize here. #cache-size=150 # If you want to disable negative caching, uncomment this. #no-negcache #local-ttl= #bogus-nxdomain=64.94.110.11 #alias=1.2.3.4,5.6.7.8 # and this maps 1.2.3.x to 5.6.7.x #alias=1.2.3.0,5.6.7.0,255.255.255.0 # and this maps 192.168.0.10->192.168.0.40 to 10.0.0.10->10.0.0.40 #alias=192.168.0.10-192.168.0.40,10.0.0.0,255.255.255.0 # Change these lines if you want dnsmasq to serve MX records. # Return an MX record named "maildomain.com" with target # servermachine.com and preference 50 #mx-host=maildomain.com,servermachine.com,50 # Set the default target for MX records created using the localmx option. #mx-target=servermachine.com # Return an MX record pointing to the mx-target for all local Systems4Schools Final Project Report 47 Systems4Schools # machines. #localmx # Return an MX record pointing to itself for all local machines. #selfmx # A SRV record sending LDAP for the example.com domain to # ldapserver.example.com port 389 #srv-host=_ldap._tcp.example.com,ldapserver.example.com,389 # A SRV record sending LDAP for the example.com domain to # ldapserver.example.com port 389 (using domain=) #domain=example.com #srv-host=_ldap._tcp,ldapserver.example.com,389 # Two SRV records for LDAP, each with different priorities #srv-host=_ldap._tcp.example.com,ldapserver.example.com,389,1 #srv-host=_ldap._tcp.example.com,ldapserver.example.com,389,2 # A SRV record indicating that there is no LDAP server for the domain # example.com #srv-host=_ldap._tcp.example.com # The following line shows how to make dnsmasq serve an arbitrary PTR # record. This is useful for DNS-SD. (Note that the # domain-name expansion done for SRV records _does_not Systems4Schools Final Project Report 48 Systems4Schools # occur for PTR records.) #ptr-record=_http._tcp.dns-sd-services,"New Employee Page._http._tcp.dns-sd-services" #Example SPF. #txt-record=example.com,"v=spf1 a -all" #Example zeroconf #txt-record=_http._tcp.example.com,name=value,paper=A4 #cname=bertand,bert # For debugging purposes, log each DNS query as it passes through # dnsmasq. #log-queries # Log lots of extra information about DHCP transactions. #log-dhcp # Include a another lot of configuration options. #conf-file=/etc/dnsmasq.more.conf #conf-dir=/etc/dnsmasq.d /etc/ldap.conf Systems4Schools Final Project Report 49 Systems4Schools ###DEBCONF### ## Systems4Schools ldap.conf /etc/ldap.conf ## Configuration of this file will be managed by debconf as long as the ## first line of the file says '###DEBCONF###' ## ## You should use dpkg-reconfigure to configure this file via debconf ## # # @(#)$Id: ldap.conf,v 1.38 2006/05/15 08:13:31 lukeh Exp $ # # This is the configuration file for the LDAP nameservice # switch library and the LDAP PAM module. # # PADL Software # http://www.padl.com # # Your LDAP server. Must be resolvable without using LDAP. # Multiple hosts may be specified, each separated by a # space. #host 127.0.0.1 # The distinguished name of the search base. base dc=systems4schools,dc=local # Another way to specify your LDAP server is to provide an Systems4Schools Final Project Report 50 Systems4Schools uri ldap://192.168.1.4:389/ # Unix Domain Sockets to connect to a local LDAP Server. #uri ldap://127.0.0.1/ #uri ldaps://127.0.0.1/ #uri ldapi://%2fvar%2frun%2fldapi_sock/ # Note: %2f encodes the '/' used as directory separator # The LDAP version to use (defaults to 3 # if supported by client library) ldap_version 3 # The distinguished name to bind to the server with. binddn cn=admin,dc=systems4schools,dc=local # The credentials to bind with. # Optional: default is no credential. bindpw bac0n23LDAP # The distinguished name to bind to the server with # if the effective user ID is root. Password is # stored in /etc/ldap.secret (mode 600) #rootbinddn cn=admin,dc=systems4schools,dc=local # The port. # Optional: default is 389. #port 389 Systems4Schools Final Project Report 51 Systems4Schools # The search scope. #scope sub #scope one #scope base # Search timelimit #timelimit 30 # Bind/connect timelimit #bind_timelimit 30 #bind_policy hard #idle_timelimit 3600 # Filter to AND with uid=%s #pam_filter objectclass=account # The user ID attribute (defaults to uid) #pam_login_attribute uid #pam_lookup_policy yes # Check the 'host' attribute for access control # Default is no; if set to yes, and user has no # value for the host attribute, and pam_ldap is # configured for account management (authorization) Systems4Schools Final Project Report 52 Systems4Schools # then the user will not be allowed to login. #pam_check_host_attr yes # Check the 'authorizedService' attribute for access # control # Default is no; if set to yes, and the user has no # value for the authorizedService attribute, and # pam_ldap is configured for account management # (authorization) then the user will not be allowed # to login. #pam_check_service_attr yes # Group to enforce membership of #pam_groupdn cn=PAM,ou=Groups,dc=padl,dc=com # Group member attribute #pam_member_attribute uniquemember # Specify a minium or maximum UID number allowed #pam_min_uid 0 #pam_max_uid 0 # Template login attribute, default template user # (can be overriden by value of former attribute # in user's entry) #pam_login_attribute userPrincipalName Systems4Schools Final Project Report 53 Systems4Schools #pam_template_login_attribute uid #pam_template_login nobody # HEADS UP: the pam_crypt, pam_nds_passwd, # and pam_ad_passwd options are no # longer supported. # # Do not hash the password at all; presume # the directory server will do it, if # necessary. This is the default. pam_password md5 #pam_password crypt # Directory Services (NDS) #pam_password clear_remove_old #pam_password nds # RACF is an alias for the above. For use with # IBM RACF #pam_password racf # Update Active Directory password, by # creating Unicode password and updating # unicodePwd attribute. #pam_password ad Systems4Schools Final Project Report 54 Systems4Schools # Use the OpenLDAP password change # extended operation to update the password. #pam_password exop # Redirect users to a URL or somesuch on password # changes. #pam_password_prohibit_message Please visit http://internal to change your password. # RFC2307bis naming contexts # Syntax: # nss_base_XXX base?scope?filter # where scope is {base,one,sub} # and filter is a filter to be &'d with the # default filter. # You can omit the suffix eg: # nss_base_passwd ou=People, # to append the default base DN but this # may incur a small performance impact. #nss_base_passwd ou=People,dc=padl,dc=com?one #nss_base_shadow ou=People,dc=padl,dc=com?one #nss_base_group ou=Group,dc=padl,dc=com?one #nss_base_hosts ou=Hosts,dc=padl,dc=com?one #nss_base_services ou=Services,dc=padl,dc=com?one #nss_base_networks ou=Networks,dc=padl,dc=com?one #nss_base_protocols ou=Protocols,dc=padl,dc=com?one Systems4Schools Final Project Report 55 Systems4Schools #nss_base_rpc ou=Rpc,dc=padl,dc=com?one #nss_base_ethers ou=Ethers,dc=padl,dc=com?one #nss_base_netmasks ou=Networks,dc=padl,dc=com?ne #nss_base_bootparams #nss_base_aliases ou=Ethers,dc=padl,dc=com?one ou=Aliases,dc=padl,dc=com?one #nss_base_netgroup ou=Netgroup,dc=padl,dc=com?one # attribute/objectclass mapping # Syntax: #nss_map_attribute rfc2307attribute #nss_map_objectclass rfc2307objectclass mapped_attribute mapped_objectclass # configure --enable-nds is no longer supported. # NDS mappings #nss_map_attribute uniqueMember member # Services for UNIX 3.5 mappings #nss_map_objectclass posixAccount User #nss_map_objectclass shadowAccount User #nss_map_attribute uid msSFU30Name #nss_map_attribute uniqueMember msSFU30PosixMember #nss_map_attribute userPassword msSFU30Password #nss_map_attribute homeDirectory msSFU30HomeDirectory #nss_map_attribute homeDirectory msSFUHomeDirectory #nss_map_objectclass posixGroup Group #pam_login_attribute msSFU30Name Systems4Schools Final Project Report 56 Systems4Schools #pam_filter objectclass=User #pam_password ad # configure --enable-mssfu-schema is no longer supported. # Services for UNIX 2.0 mappings #nss_map_objectclass posixAccount User #nss_map_objectclass shadowAccount user #nss_map_attribute uid msSFUName #nss_map_attribute uniqueMember posixMember #nss_map_attribute userPassword msSFUPassword #nss_map_attribute homeDirectory msSFUHomeDirectory #nss_map_attribute shadowLastChange pwdLastSet #nss_map_objectclass posixGroup Group #nss_map_attribute cn msSFUName #pam_login_attribute msSFUName #pam_filter objectclass=User #pam_password ad # RFC 2307 (AD) mappings #nss_map_objectclass posixAccount user #nss_map_objectclass shadowAccount user #nss_map_attribute uid sAMAccountName #nss_map_attribute homeDirectory unixHomeDirectory #nss_map_attribute shadowLastChange pwdLastSet #nss_map_objectclass posixGroup group #nss_map_attribute uniqueMember member Systems4Schools Final Project Report 57 Systems4Schools #pam_login_attribute sAMAccountName #pam_filter objectclass=User #pam_password ad # configure --enable-authpassword is no longer supported # AuthPassword mappings #nss_map_attribute userPassword authPassword # AIX SecureWay mappings #nss_map_objectclass posixAccount aixAccount #nss_base_passwd ou=aixaccount,?one #nss_map_attribute uid userName #nss_map_attribute gidNumber gid #nss_map_attribute uidNumber uid #nss_map_attribute userPassword passwordChar #nss_map_objectclass posixGroup aixAccessGroup #nss_base_group ou=aixgroup,?one #nss_map_attribute cn groupName #nss_map_attribute uniqueMember member #pam_login_attribute userName #pam_filter objectclass=aixAccount #pam_password clear # Netscape SDK LDAPS #ssl on Systems4Schools Final Project Report 58 Systems4Schools # Netscape SDK SSL options #sslpath /etc/ssl/certs # OpenLDAP SSL mechanism # start_tls mechanism uses the normal LDAP port, LDAPS typically 636 #ssl start_tls #ssl on # OpenLDAP SSL options # Require and verify server certificate (yes/no) # Default is to use libldap's default behavior, which can be configured in # /etc/openldap/ldap.conf using the TLS_REQCERT setting. The default for # OpenLDAP 2.0 and earlier is "no", for 2.1 and later is "yes". #tls_checkpeer yes # CA certificates for server certificate verification # At least one of these are required if tls_checkpeer is "yes" #tls_cacertfile /etc/ssl/ca.cert #tls_cacertdir /etc/ssl/certs # Seed the PRNG if /dev/urandom is not provided #tls_randfile /var/run/egd-pool # SSL cipher suite # See man ciphers for syntax #tls_ciphers TLSv1 Systems4Schools Final Project Report 59 Systems4Schools # Client certificate and key # Use these, if your server requires client authentication. #tls_cert #tls_key # Disable SASL security layers. This is needed for AD. #sasl_secprops maxssf=0 # Override the default Kerberos ticket cache location. #krb5_ccname FILE:/etc/.ldapcache # SASL mechanism for PAM authentication - use is experimental # at present and does not support password policy control #pam_sasl_mech DIGEST-MD5 nss_initgroups_ignoreusers backup,bin,daemon,dnsmasq,games,gdm,gnats,irc,landscape,libuuid,lightdm,list,lp,mail,man,message bus,nbd,news,nslcd,proxy,pulse,root,sshd,sync,sys,syslog,tftp,usbmux,uucp,whoopsie,www-data /etc/auth/client-config/profile.d/LDAP-Auth-Config # Systems4Schools ldap-auth-config # Revision 1.0 # # Clients should be able to authenticate with this profile if following # Network Authentication in the Ubuntu Server guide. Please note that # these settings are not suitable for sometimes disconnected (eg laptop) Systems4Schools Final Project Report 60 Systems4Schools # systems. The example is taken from LDAPClientAuthentication at: # https://help.ubuntu.com/community/LDAPClientAuthentication # [lac_ldap] nss_passwd=passwd: files ldap nss_group=group: files ldap nss_shadow=shadow: files ldap nss_netgroup=netgroup: nis /etc/dnsmasp.d/ltsp.conf # Systems$schools DNSmasq configuration # Revision 1.0 # /etc/dnsmasq.d/ltsp.conf # The main dnsmasq configuration is in /etc/dnsmasq.conf; # the contents of this script are added to the main configuration. # Port is set to zero as it is not functioning as a DNS server port=0 # Log DHCP transactions. log-dhcp # Dnsmasq can also function as a TFTP server. You may uninstall # tftpd-hpa if you like, and uncomment the next line: # Systems4Schools runs a standalone TFTP service on LTSP server #enable-tftp Systems4Schools Final Project Report 61 Systems4Schools # Set the root directory for files available via FTP. tftp-root=/var/lib/tftpboot # The boot filename. This is used for PXE booting not client devices. dhcp-boot=/ltsp/i386/pxelinux.0 # rootpath option, for NFS dhcp-option=17,/opt/ltsp/i386 # kill multicast dhcp-option=vendor:PXEClient,6,2b # Disable re-use of the DHCP servername and filename fields as extra # option space. That's to avoid confusing some old or broken DHCP clients. dhcp-no-override # PXE menu Prompt pxe-prompt="Press F8 for boot menu", 3 # The known types are x86PC, PC98, IA64_EFI, Alpha, Arc_x86, # Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI and X86-64_EFI pxe-service=X86PC, "Boot from network", /ltsp/i386/pxelinux # A boot service type of 0 is special, and will abort the Systems4Schools Final Project Report 62 Systems4Schools # net boot procedure and continue booting from local media. pxe-service=X86PC, "Boot from local hard disk", 0 # If an integer boot service type, rather than a basename is given, then the # PXE client will search for a suitable boot service for that type on the # network. This search may be done by multicast or broadcast, or direct to a # server if its IP address is provided. #pxe-service=x86PC, "Install windows from RIS server", 1 # LTSP servers NIC address dhcp-range=192.168.1.5,proxy # Ranges that will be allowed #dhcp-range=192.168.0.20,192.168.0.250,8h # END OF CONFIGURATION FILE SRV 02: DHCP AND DNS Script for checking services: #!/usr/bin/perl # Systems4Schools Services Script system('clear'); #Clears the CLI print "Systems4Schools Services Script\n"; print "Service: \n\n"; Systems4Schools Final Project Report 63 Systems4Schools #Start of services to print to end user print "1) TFTP-HPA\n"; print "2) DNSMASQ\n"; print "3) Networking\n"; print "4) Resoveconf\n"; print "5) Ping LDAP Server\n"; print "6) Ping ATutor Server\n"; print "\n\nChoice: "; chomp ($service=<STDIN>); #start of IF statement for switch if ($service eq '1'){ print "TFTPD-HPA\n\n1) Status \n2) Restart\n\n Choice:"; chomp ($operation=<STDIN>); if ($operation eq '1'){ system('sudo service tftpd-hpa status'); } else{ system('sudo service tftpd-hpa restart'); } } if ($service eq '2'){ print "DNSMASQ\n\n1) Status \n2) Restart\n\n Choice:"; chomp ($operation=<STDIN>); if ($operation eq '1'){ Systems4Schools Final Project Report 64 Systems4Schools system('sudo service dnsmasq status'); } else{ system('sudo service dnsmasq restart'); } } if ($service eq '3'){ print "Networking\n\n1) Status \n2) Restart\n\n Choice:"; chomp ($operation=<STDIN>); if ($operation eq '1'){ system('sudo service networking status'); } else{ system('sudo service networking restart'); } } if ($service eq '4'){ print "Resolvconf\n\n1) Status \n2) Restart\n\n Choice:"; chomp ($operation=<STDIN>); if ($operation eq '1'){ system('sudo service resolvconf status'); } else{ system('sudo service resolvconf restart'); } } Systems4Schools Final Project Report 65 Systems4Schools if ($service eq '5'){ print "Pinging ldap.systems4schools.local\n\n"; system('ping ldap.systems4schools.local -c 4 | grep "packet loss"'); } if ($service eq '6'){ print "Pinging atutor.systems4schools.local\n\n"; system('ping atutor.systems4schools.local -c 4 | grep "packet loss"'); } /etc/dhcp/dhcpd.conf systems4schools@srv02:/etc/dhcp$ cat dhcpd.conf # # Systems4Schools DHCP configuration # # Attention: If /etc/ltsp/dhcpd.conf exists, that will be used as # configuration file instead of this file. # # # The ddns-updates-style parameter controls whether or not the server will # attempt to do a DNS update when a lease is confirmed. We default to the # behavior of the version 2 packages ('none', since DHCP v2 didn't # have support for DDNS.) ddns-update-style none; Systems4Schools Final Project Report 66 Systems4Schools #DNS option domain-name "systems4schools.local"; option domain-name-servers 192.168.1.4; #LTSP Config allow booting; allow bootp; next-server 192.168.1.5; if substring( option vendor-class-identifier, 0, 9 ) = "PXEClient" { filename "/ltsp/i386/pxelinux.0"; } else { filename "/ltsp/i386/nbi.img"; } default-lease-time 600; max-lease-time 7200; #Server set to: AUTHORITATIVE authoritative; # Use this to send dhcp log messages to a different log file (you also # have to hack syslog.conf to complete the redirection). log-facility local7; Systems4Schools Final Project Report 67 Systems4Schools # Systems4Schools Raspberry Pi Network. subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.30 192.168.1.200; option routers 192.168.1.1; } subnet 192.168.2.0 netmask 255.255.255.0 { range dynamic-bootp 192.168.2.10 192.168.2.100; next-server 192.168.1.5; } # to which a BOOTP client is connected which has the dynamic-bootp flag # set. #host fantasia { # hardware ethernet 08:00:07:26:c0:a5; # fixed-address fantasia.fugue.com; #} # You can declare a class of clients and then do address allocation # based on that. The example below shows a case where all clients # in a certain class get addresses on the 10.17.224/24 subnet, and all /etc/resolv.conf Systems4Schools Final Project Report 68 Systems4Schools # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN search systems4schools.local nameserver 192.168.1.4 /etc/bind.named.conf.local // Systems4Schools // Revision 1.0 - 2013-01-04 // /etc/bind.named.conf.local // Local database file zone "systems4schools.local" { // Server is the master for our infastructure. type master; file "/etc/bind/zones/systems4schools.db"; }; // Reverse lookup database file zone "1.168.192.in-addr.arpa" { type master; file "/etc/bind/zones/rev.1.168.192.in-addr.arpa"; }; /etc/bind/named.conf.options //Systms4Schools Bind Options Systems4Schools Final Project Report 69 Systems4Schools // /etc/bind/named.conf.options options { directory "/var/cache/bind"; // These are the forwarders for SAIT's local network, and our // current enviroment. forwarders { 192.168.1.1; 10.197.4.11; }; //======================================================================== // If BIND logs error messages about the root key being expired, // you will need to update your keys. See https://www.isc.org/bind-keys //======================================================================== dnssec-enable no; auth-nxdomain no; # conform to RFC1035 listen-on-v6 { any; }; }; /etc/bind/zones @ in SOA SRV02.systems4schools.local. admin.systems4schools.local. ( 2006081401; 28800; Systems4Schools Final Project Report 70 Systems4Schools 604800; 604800; 86400 ) IN NS SRV02.systems4schools.local 4 IN PTR systems4school.local 2 IN A esx.systems4schools.local 4 IN A SRV02.systems4schools.local 5 IN A srv01.systems4schools.local 6 IN A srv03.systems4schools.l 4 IN A ldap.systems4schools.local /etc/bind/zones $TTL 86400 @ IN SOA SRV02.systems4schools.local. admin.systems4schools.local. ( 2013012101 ; serial number YYMMDDNN 28800 ; Refresh 7200 ; Retry 864000 ; Expire 86400 ; Min TTL ) NS SRV02.systems4schools.local. dlink IN A 192.168.1.1 esx IN A 192.168.1.2 srv01 IN A 192.168.1.3 Systems4Schools Final Project Report 71 Systems4Schools srv02 IN A 192.168.1.4 ltsp IN A 192.168.1.5 srv03 IN A 192.168.1.6 ldap A 192.168.1.4 IN atutor IN CNAME srv03 IN A srv03 192.168.1.6 $ORIGIN systems4schools.local. /etc/ldap/conf dn: ou=students,dc=systems4schools,dc=local objectClass: organizationalUnit ou: students /etc/ldap/conf dn: uid=student1,ou=students,dc=systems4schools,dc=local objectClass: inetOrgPerson objectClass: posixAccount ObjectClass: shadowAccount uid: student1 givenName: Student cn: Student1 displayName: Student 1 uidNumber: 1200 guidNumber: 10000 userPassword: P@ssw0rd gecos: Student 1 Systems4Schools Final Project Report 72 Systems4Schools loginShell: /bin/bash homeDirectory: /home/student1 shadowExpire: -1 shadowFlag: 0 shadowWarning: 7 shadowMin: 8 shadowMax: 9999999 shadownLastChange: 10877 /etc/ldap # # LDAP Defaults # # See ldap.conf(5) for details # This file should be world readable but not world writable. #BASE dc=systems4schools,dc=local #URI ldap://ldap.systems4schools.local ldap://ldap-master.systems4schools.local:666 #SIZELIMIT 12 #TIMELIMIT 15 #DEREF never # TLS certificates (needed for GnuTLS) TLS_CACERT /etc/ssl/certs/ca-certificates.crt Systems4Schools Final Project Report 73 Systems4Schools SRV 03: ATUTOR /var/www/ATutor/include/config.inc.php /************************************************************************/ /* ATutor */ /************************************************************************/ /* Copyright (c) 2002-2010 */ /* http://atutor.ca */ /* */ /* This program is free software. You can redistribute it and/or */ /* modify it under the terms of the GNU General Public License /* as published by the Free Software Foundation. */ */ /************************************************************************/ /* This file was generated by the ATutor 2.1 installation script. /* File generated 2013-03-14 11:03:37 */ */ /************************************************************************/ /************************************************************************/ /* the database user name define('DB_USER', */ 'root'); /* the database password define('DB_PASSWORD', /* the database host */ '*********'); */ Systems4Schools Final Project Report 74 Systems4Schools define('DB_HOST', 'localhost'); /* the database tcp/ip port define('DB_PORT', */ '3306'); /* the database name define('DB_NAME', */ 'atutor'); /* The prefix to add to table names to avoid conflicts with existing */ /* tables. Default: AT_ */ define('TABLE_PREFIX', 'AT_'); /* Where the course content files are located. This includes all file */ /* manager and imported files. If security is a concern, it is */ /* recommended that the content directory be moved outside of the web */ /* accessible area. */ define('AT_CONTENT_DIR', '/var/www/ATutor/content/'); /* Whether or not to use the default php.ini SMTP settings. /* If false, then mail will try to be sent using sendmail. */ */ define('MAIL_USE_SMTP', false); /* Whether or not to use the AT_CONTENT_DIR as a protected directory. */ /* If set to FALSE then the content directory will be hard coded */ Systems4Schools Final Project Report 75 Systems4Schools /* to ATutor_install_dir/content/ and AT_CONTENT_DIR will be ignored. */ /* This option is used for compatability with IIS and Apache 2. */ define('AT_FORCE_GET_FILE', TRUE); /* DO NOT ALTER THIS LAST LINE */ define('AT_INSTALL', TRUE); /var/www/index.html <meta http-equiv="refresh" content="0; url=http://atutor.systems4schools.local/ATutor/login.php"> Systems4Schools Final Project Report 76