Implementation of an IP Configuration Module As a Part of Linux Operating System
Total Page:16
File Type:pdf, Size:1020Kb
I J C T A, 9(15), 2016, pp. 7095-7104 © International Science Press Implementation of an IP Configuration module as a part of Linux Operating System Krishna Raghavan* and S. Malarvizhi** ABSTRACT Self-service terminals such as financial service kiosk, Automated Teller Machines (ATM), banking terminals and those which are used for ticket vending, visitor management, hospitals, clinic registrations are connected to the network via an Internet Protocol (IP) address, which is set by Dynamic Host Configuration Protocol (DHCP) by hard-coding it in its Unix/Linux based operating system. One principal obstacle with DHCP settings are its vulnerability towards getting hacked easily, which can be avoided if the systems are assigned unique or Static IP addresses to connect to the network. This paper devices a framework by using C and GTK (GIMP Tool Kit) library which allows the service engineer or the system engineer to set the Static IP manually before the main application of the system is loaded and also provides an option to set to DHCP through the framework itself, thus easing the process of setting the network parameters and less chance of getting hacked. Hence improving the security and discarding the need to hard code network parameters into the operating system everytime. Keywords: Linux, Internet Protocol, Self-service terminals, GTK, DHCP. 1. INTRODUCTION Computer terminals or Interactive kiosks provide access to data, services and applications for e-commerce, entertainment, and education. They used to resemble telephone booth but can be used while sitting on the bench or chair. Applications of these terminals include sending emails, Short Message Service (SMS), fax, standard telephone services, financial services, printing, accessing Internet, ticketing, visitor management, patient registration in hospitals, clinics and information gathering. Reliability of the data provided by the terminal is very important and for this a lot of software applications are being developed. These applications act as an interface to the user and the service provider. The front end is the UI (User Interface) which is meant to provide services to the user and the back end prevents user from changing the system software settings or downloading computer viruses from the Internet. Threats to reliability come from vulnerabilities to hacking, allowing access to the Operating System (OS) and manipulating the system data. Since all the systems are connected to the Internet and when they form a Local Area Network (LAN), they can be easily hacked as they have the IP address. The financial service providers spend large amount of money to get their system secured but the fact is, the security depends largely on the Internet Protocol (IP) settings of the terminal. The system software which is basically a Ubuntu/Linux based Real Time Operating System (RTOS) has those settings hard-coded or simply set for an automatic fetch. The automatic settings are either provided by the network router or by the server. The manual settings generally allocate a Static IP address along with other network parameters. There are two methods to set network parameters, either by using a DHCP setting or by setting parameters manually. * Room no 210, SRM Green Pearl, Block-A Kattankulathur Post, Potheri Chennai-603203, Email: krishnaraghavan [email protected] ** Professor, Dept. of Electronics and Communication Engineering, SRM University, Kattankulathur, Chenn ai-603203, Email: [email protected] 7096 Krishna Raghavan and S. Malarvizhi Manual settings include an IP address, Subnet Mask and a Gateway where as a DHCP setting asks to lease IP address for a period of time from a DHCP server. The RTOS used by the systems are generally C/C++ based Linux OS but majority of them, especially ATM’s, use Windows XP. Systems based on these operating system have the network parameters hard- coded into their core system files, which makes it difficult for the network administrator to change it easily. This paper provides a framework for a Linux based operating system, which enables the system engineer to set the network parameters at the run time before the native application boots. The application is built in C language with GTK (GIMP Tool Kit) library and Glade Interface Designer. The application was developed using Ubuntu OS v.10.04 and was ported into a customized ARM (Advanced RISC Machine) development board with embedded Linux OS. The application boots right after the native OS boots up and before the system application starts. The ARM development board has ARM cortex-A8 processor with 256 MB Random Access Memory (RAM) with Wireless Local Area Network (WLAN) connection as well as Wired LAN. The board is connected to a Video Graphics Array (VGA) display of 640x480 resolution, where the native application runs and acts as a front end to the user. The system runs Linux OS v3.2.0. 2. NETWORK CONFIGURATION PARAMETERS 2.1. Domain Name System (DNS) The Domain Name System (DNS) is a naming system for computers, terminals, mobile phones or whichever device tries to access the Internet or a LAN or a private network. It converts the already existing domain names into IP addresses for identifying computers, network devices with the network protocols. The DNS acts as a phone directory for the Internet by translating a set of computer host names into IP addresses. The massive number of databases in the form of web pages is collectively known as DNS. A domain name is the information that we enter as Uniform Resource Locators (URLs) in the browser, for example www.webpage.in/page1. Here the domain name is webpage.in. Since it is not possible to remember the IP addresses of all the webpages, we actually memorize their domain name. In our application, the domain name is important to connect the application at the server end via the service terminal. For example, if the domain name is 123.456.789.xxx then the IP address corresponding to that domain is connected, say 192.168.xxx.yyy. So the DNS also has to be hard coded in the system in order to connect to a particular IP address. Since the domain name can vary for different applications it becomes a tedious task to update it every time inside the OS. 2.2. Dynamic Host Configuration Protocol (DHCP) DHCP is a type of network and communication protocol, which is responsible for distributing network configuration parameters dynamically. It also includes distributing IP addresses for network interfaces as Dynamic update of Host name DNS Server DHCP Server Dynamic Update of Pointer Name IP Lease Acknowledgment IP Lease Request DHCP Client Figure 1: Automated distributing and updating IP addresses and other network configuration parameters by using DHCP. Implementation of an IP Configuration module as a part of Linux Operating System 7097 well as network services. The computers set with a DHCP setting automatically requests the network configuration parameters from a server called as a DHCP server, hence reducing the need for a network engineer or a system engineer to set these parameters manually. The protocol is based on the client server model. The DHCP server contains a group of IP addresses and details about the previously used network configuration parameters such as default gateway, domain name, the name servers, and time servers [1]. On receiving a request, the server responds either with unique information for each client which has been previously configured by the system engineer or with a specific addresses details which is valid for the entire network. The parameters set by DHCP are valid for a particular amount of network usage time called as the lease period. After the lease period expires, the client has to ask for a new set of information again. A client generally tries to collect these settings after booting immediately, and periodically thereafter before the settings get expired. Depending on the implementation, the DHCP server deploys these three methods of allocating IP addresses: • Dynamic allocation: A network designer restricts a range of IP addresses for DHCP, and each DHCP client on the Local Area Network (LAN) is programmed to demand an IP address from the DHCP server during network initialization [1]. The request-and-grant method uses a concept called lease with a controllable time period, allowing the DHCP server to reacquire and reallocate the IP addresses that are not renewed [1]. • Automatic allocation: The DHCP server assigns an IP address permanently to a client, who makes a request to the DHCP server from the range defined by the network designer [1]. This is like dynamic allocation, but the DHCP server keeps a record of previous IP address assignments, so that it can automatically assign to a client the same IP address that the client previously had [1]. • Manual allocation: Generally called Static allocation, the DHCP server allocates an IP address based on a predefined mapping to each client’s MAC address [1]. DHCP is used for Internet Protocol version 4 (IPv4), as well as for Internet Protocol version 6 (IPv6) [1]. Since both Ipv4 and Ipv6 have the same purpose the details of these protocols are very different due to which these two are considered to be two separate protocols [1]. In a GNU/Unix system, for a DHCP setting “auto eth_name iface eth_name inet dhcp” keywords are used where eth_name is the Ethernet connection name of the system. 2.3. Internet Protocol Version 4 (Ipv4) IPv4 is the fourth version of the Internet Protocol (IP) used on packet-switched networks. It is one of the core protocols, which is a standard for inter-networking methods in the Internet. It still routes most of the Internet traffic today, regardless of the ongoing deployment of its successor protocol, called IPv6 [2]. It is a connection less protocol which operates on a best effort delivery model, in that it does not guarantee a successful delivery, nor it assures proper sequencing or avoidance of duplicate delivery [3].