Linux Network Administrators Guide Linux Network Administrators Guide
Table of Contents
1. Purpose and Audience for This Book...... 1
2. Sources of Information...... 2 2.1. Documentation Available via FTP...... 3 2.2. Documentation Available via WWW...... 3 2.3. Documentation Available Commercially...... 3 2.4. Linux Journal and Linux Magazine...... 4 2.5. Linux Usenet Newsgroups...... 4 2.6. Linux Mailing Lists...... 5 2.7. Online Linux Support...... 6 2.8. Linux User Groups...... 6 2.9. Obtaining Linux...... 7
3. File System Standards...... 9
4. Standard Linux Base...... 10
5. About This Book...... 11
6. The Official Printed Version...... 13
7. Overview...... 15
8. Conventions Used in This Book...... 17
9. Submitting Changes...... 18
10. Acknowledgments...... 19 10.1. The Hall of Fame...... 19
Chapter 1. Introduction to Networking...... 21
1.1. History...... 22
1.2. TCP/IP Networks...... 23 1.2.1. Introduction to TCP/IP Networks...... 23 1.2.2. Ethernets...... 24 1.2.3. Other Types of Hardware...... 25 1.2.4. The Internet Protocol...... 27 1.2.5. IP Over Serial Lines...... 28 1.2.6. The Transmission Control Protocol...... 28 1.2.7. The User Datagram Protocol...... 29 1.2.8. More on Ports...... 29 1.2.9. The Socket Library...... 30
1.3. UUCP Networks...... 31
1.4. Linux Networking...... 32
i Linux Network Administrators Guide
Table of Contents
1.4.1. Different Streaks of Development...... 32 1.4.2. Where to Get the Code...... 33
1.5. Maintaining Your System...... 34 1.5.1. System Security...... 34
Chapter 2. Issues of TCP/IP Networking...... 36
2.1. Networking Interfaces...... 37
2.2. IP Addresses...... 38
2.3. Address Resolution...... 40
2.4. IP Routing...... 41 2.4.1. IP Networks...... 41 2.4.2. Subnetworks...... 41 2.4.3. Gateways...... 42 2.4.4. The Routing Table...... 43 2.4.5. Metric Values...... 45
2.5. The Internet Control Message Protocol...... 46
2.6. Resolving Host Names...... 47
Chapter 3. Configuringthe NetworkingHardware...... 48
3.1. Kernel Configuration...... 51 3.1.1. Kernel Options in Linux 2.0 and Higher...... 51 3.1.2. Kernel Networking Options in Linux 2.0.0 and Higher...... 53
3.2. A Tour of Linux Network Devices...... 57
3.3. Ethernet Installation...... 59 3.3.1. Ethernet Autoprobing...... 59
3.4. The PLIP Driver...... 62
3.5. The PPP and SLIP Drivers...... 64
3.6. Other Network Types...... 65
Chapter 4. Configuring the Serial Hardware...... 66
4.1. Communications Software for Modem Links...... 67
4.2. Introduction to Serial Devices...... 68
ii Linux Network Administrators Guide
Table of Contents
4.3. Accessing Serial Devices...... 69 4.3.1. The Serial Device Special Files...... 70
4.4. Serial Hardware...... 72
4.5. Using the Configuration Utilities...... 73 4.5.1. The setserial Command...... 73 4.5.2. The stty Command...... 75
4.6. Serial Devices and the login: Prompt...... 78 4.6.1. Configuring the mgetty Daemon...... 78
Chapter 5. Configuring TCP/IP Networking...... 81
5.1. Mounting the /proc Filesystem...... 82
5.2. Installing the Binaries...... 83
5.3. Setting the Hostname...... 84
5.4. Assigning IP Addresses...... 85
5.5. Creating Subnets...... 86
5.6. Writing hosts and networks Files...... 87
5.7. Interface Configuration for IP...... 89 5.7.1. The Loopback Interface...... 89 5.7.2. Ethernet Interfaces...... 91 5.7.3. Routing Through a Gateway...... 92 5.7.4. Configuring a Gateway...... 93 5.7.5. The PLIP Interface...... 93 5.7.6. The SLIP and PPP Interfaces...... 94 5.7.7. The Dummy Interface...... 94 5.7.8. IP Alias...... 95
5.8. All About ifconfig...... 96
5.9. The netstat Command...... 99 5.9.1. Displaying the Routing Table...... 99 5.9.2. Displaying Interface Statistics...... 100 5.9.3. Displaying Connections...... 101
5.10. Checking the ARP Tables...... 102
Chapter 6. Name Service and Resolver Configuration...... 104
6.1. The Resolver Library...... 105
iii Linux Network Administrators Guide
Table of Contents
6.1.1. The host.conf File...... 105 6.1.1.1. Resolver environment variables...... 106 6.1.2. The nsswitch.conf File...... 107 6.1.3. Configuring Name Server Lookups Using resolv.conf...... 109 6.1.4. Resolver Robustness...... 111
6.2. How DNS Works...... 112 6.2.1. Name Lookups with DNS...... 113 6.2.2. Types of Name Servers...... 114 6.2.3. The DNS Database...... 115 6.2.4. Reverse Lookups...... 116
6.3. Running named...... 118 6.3.1. The named.boot File...... 118 6.3.2. The BIND 8 host.conf File...... 120 6.3.3. The DNS Database Files...... 121 6.3.4. Caching−only named Configuration...... 125 6.3.5. Writing the Master Files...... 126 6.3.6. Verifying the Name Server Setup...... 128 6.3.7. Other Useful Tools...... 130
Chapter 7. Serial Line IP...... 132
7.1. General Requirements...... 133
7.2. SLIP Operation...... 134
7.3. Dealing with Private IP Networks...... 137
7.4. Using dip...... 138 7.4.1. A Sample Script...... 138 7.4.2. A dip Reference...... 140 7.4.2.1. The modem commands...... 140 7.4.2.2. The echo command...... 141 7.4.2.3. The get command...... 141 7.4.2.4. The print command...... 141 7.4.2.5. Variable names...... 141 7.4.2.6. The if and goto commands...... 142 7.4.2.7. send, wait, and sleep...... 142 7.4.2.8. mode and default...... 142
7.5. Running in Server Mode...... 144
Chapter 8. The Point−to−Point Protocol...... 146
8.1. PPP on Linux...... 147
8.2. Running pppd...... 148
iv Linux Network Administrators Guide
Table of Contents
8.3. Using Options Files...... 149
8.4. Using chat to Automate Dialing...... 150
8.5. IP Configuration Options...... 152 8.5.1. Choosing IP Addresses...... 152 8.5.2. Routing Through a PPP Link...... 153
8.6. Link Control Options...... 155
8.7. General Security Considerations...... 157
8.8. Authentication with PPP...... 158 8.8.1. PAP Versus CHAP...... 158 8.8.2. The CHAP Secrets File...... 159 8.8.3. The PAP Secrets File...... 160
8.9. Debugging Your PPP Setup...... 162
8.10. More Advanced PPP Configurations...... 163 8.10.1. PPP Server...... 163 8.10.2. Demand Dialing...... 164 8.10.3. Persistent Dialing...... 165
Chapter 9. TCP/IP Firewall...... 167
9.1. Methods of Attack...... 168
9.2. What Is a Firewall?...... 170
9.3. What Is IP Filtering?...... 171
9.4. Setting Up Linux for Firewalling...... 172 9.4.1. Kernel Configured with IP Firewall...... 172 9.4.2. The ipfwadm Utility...... 173 9.4.3. The ipchains Utility...... 173 9.4.4. The iptables Utility...... 173
9.5. Three Ways We Can Do Filtering...... 174
9.6. Original IP Firewall (2.0 Kernels)...... 175 9.6.1. Using ipfwadm...... 175 9.6.1.1. A naïve example...... 175 9.6.1.2. An important refinement...... 177 9.6.1.3. Listing our rules...... 177 9.6.2. A More Complex Example...... 178 9.6.3. Summary of ipfwadm Arguments...... 179 9.6.3.1. Categories...... 179
v Linux Network Administrators Guide
Table of Contents
9.6.3.2. Commands...... 179 9.6.3.3. Parameters...... 180 9.6.3.4. Optional arguments...... 181 9.6.3.5. ICMP datagram types...... 182
9.7. IP Firewall Chains (2.2 Kernels)...... 183 9.7.1. Using ipchains...... 183 9.7.2. ipchains Command Syntax...... 183 9.7.2.1. Commands...... 184 9.7.2.2. Rule specification parameters...... 185 9.7.2.3. Options...... 186 9.7.3. Our Naïve Example Revisited...... 187 9.7.4. Listing Our Rules with ipchains...... 188 9.7.5. Making Good Use of Chains...... 188 9.7.5.1. User−defined chains...... 189 9.7.5.2. The ipchains support scripts...... 192
9.8. Netfilter and IP Tables (2.4 Kernels)...... 194 9.8.1. Backward Compatability with ipfwadmand ipchains...... 196 9.8.2. Using iptables...... 196 9.8.2.1. Commands...... 196 9.8.2.2. Rule specification parameters...... 198 9.8.2.3. Options...... 199 9.8.2.4. Extensions...... 199 9.8.3. Our Naïve Example Revisited, Yet Again...... 201
9.9. TOS Bit Manipulation...... 202 9.9.1. Setting the TOS Bits Using ipfwadm or ipchains...... 202 9.9.2. Setting the TOS Bits Using iptables...... 203
9.10. Testing a Firewall Configuration...... 205
9.11. A Sample Firewall Configuration...... 207
Chapter 10. IP Accounting...... 214
10.1. Configuring the Kernel for IP Accounting...... 215
10.2. Configuring IP Accounting...... 216 10.2.1. Accounting by Address...... 216 10.2.2. Accounting by Service Port...... 218 10.2.3. Accounting of ICMP Datagrams...... 220 10.2.4. Accounting by Protocol...... 221
10.3. Using IP Accounting Results...... 222 10.3.1. Listing Accounting Data with ipfwadm...... 222 10.3.2. Listing Accounting Data with ipchains...... 223 10.3.3. Listing Accounting Data with iptables...... 223
vi Linux Network Administrators Guide
Table of Contents
10.4. Resetting the Counters...... 224
10.5. Flushing the Ruleset...... 225
10.6. Passive Collection of Accounting Data...... 226
Chapter 11. IP Masquerade and Network Address Translation...... 227
11.1. Side Effects and Fringe Benefits...... 229
11.2. Configuring the Kernel for IP Masquerade...... 230
11.3. Configuring IP Masquerade...... 232 11.3.1. Setting Timing Parameters for IP Masquerade...... 233
11.4. Handling Name Server Lookups...... 235
11.5. More About Network Address Translation...... 236
Chapter 12. ImportantNetwork Features...... 237
12.1. The inetd Super Server...... 238
12.2. The tcpd Access Control Facility...... 241
12.3. The Services and Protocols Files...... 243
12.4. Remote Procedure Call...... 245
12.5. Configuring Remote Loginand Execution...... 247 12.5.1. Disabling the r; Commands...... 247 12.5.2. Installing and Configuring ssh...... 247 12.5.2.1. The ssh daemon...... 248 12.5.2.2. The ssh client...... 249 12.5.2.3. Using ssh...... 251
Chapter 13. The Network Information System...... 254
13.1. Getting Acquainted with NIS...... 256
13.2. NIS Versus NIS+...... 259
13.3. The Client Side of NIS...... 260
13.4. Running an NIS Server...... 261
13.5. NIS Server Security...... 262
vii Linux Network Administrators Guide
Table of Contents
13.6. Setting Up an NIS Client with GNU libc...... 264
13.7. Choosing the Right Maps...... 266
13.8. Using the passwd and group Maps...... 268
13.9. Using NIS with Shadow Support...... 270
Chapter 14. The NetworkFile System...... 271
14.1. Preparing NFS...... 273
14.2. Mounting an NFS Volume...... 274
14.3. The NFS Daemons...... 277
14.4. The exports File...... 278
14.5. Kernel−Based NFSv2 Server Support...... 281
14.6. Kernel−Based NFSv3 Server Support...... 282
Chapter 15. IPX and the NCP Filesystem...... 283
15.1. Xerox, Novell, and History...... 284
15.2. IPX and Linux...... 285 15.2.1. Caldera Support...... 285 15.2.2. More on NDS Support...... 285
15.3. Configuring the Kernel for IPXand NCPFS...... 286
15.4. Configuring IPX Interfaces...... 287 15.4.1. Network Devices Supporting IPX...... 287 15.4.2. IPX Interface Configuration Tools...... 287 15.4.3. The ipx_configure Command...... 287 15.4.4. The ipx_interface Command...... 288
15.5. Configuring an IPX Router...... 290 15.5.1. Static IPX Routing Using the ipx_route Command...... 291 15.5.2. Internal IPX Networks and Routing...... 291
15.6. Mounting a Remote NetWare Volume...... 294 15.6.1. A Simple ncpmount Example...... 294 15.6.2. The ncpmount Command in Detail...... 294 15.6.3. Hiding Your NetWare Login Password...... 296 15.6.4. A More Complex ncpmount Example...... 296
viii Linux Network Administrators Guide
Table of Contents
15.7. Exploring Some of the Other IPX Tools...... 298 15.7.1. Server List...... 298 15.7.2. Send Messages to NetWare Users...... 298 15.7.3. Browsing and Manipulating Bindery Data...... 298
15.8. Printing to a NetWare Print Queue...... 300 15.8.1. Using nprint with the Line Printer Daemon...... 300 15.8.2. Managing Print Queues...... 302
15.9. NetWare Server Emulation...... 303
Chapter 16. ManagingTaylor UUCP...... 304
16.1. UUCP Transfers and Remote Execution...... 306 16.1.1. The Inner Workings of uucico...... 306 16.1.2. uucico Command−line Options...... 307
16.2. UUCP Configuration Files...... 309 16.2.1. A Gentle Introduction to Taylor UUCP...... 309 16.2.2. What UUCP Needs to Know...... 311 16.2.3. Site Naming...... 312 16.2.4. Taylor Configuration Files...... 312 16.2.5. General Configuration Options Using the config File...... 313 16.2.6. How to Tell UUCP About Other Systems Using the sys File...... 313 16.2.6.1. System name...... 314 16.2.6.2. Telephone number...... 314 16.2.6.3. port and speed...... 314 16.2.6.4. The login chat...... 315 16.2.6.5. Alternates...... 316 16.2.6.6. Restricting call times...... 317 16.2.7. Identifying Available Devices Through the port File...... 318 16.2.8. How to Dial a Number Using the dial File...... 319 16.2.9. UUCP Over TCP...... 320 16.2.10. Using a Direct Connection...... 321
16.3. Controlling Access to UUCP Features...... 322 16.3.1. Command Execution...... 322 16.3.2. File Transfers...... 322 16.3.3. Forwarding...... 323
16.4. Setting Up Your System for Dialing In...... 324 16.4.1. Providing UUCP Accounts...... 324 16.4.2. Protecting Yourself Against Swindlers...... 325 16.4.3. Be Paranoid: Call Sequence Checks...... 325 16.4.4. Anonymous UUCP...... 326
16.5. UUCP Low−Level Protocols...... 327 16.5.1. Protocol Overview...... 327
ix Linux Network Administrators Guide
Table of Contents
16.5.2. Tuning the Transmission Protocol...... 328 16.5.3. Selecting Specific Protocols...... 329
16.6. Troubleshooting...... 330 16.6.1. uucico Keeps Saying Wrong Time to Call ...... 330 16.6.2. uucico Complains That the Site Is Already Locked...... 330 16.6.3. You Can Connect to the Remote Site, but the Chat Script Fails...... 330 16.6.4. Your Modem Does Not Dial...... 331 16.6.5. Your Modem Tries to Dial but Doesn't Get Out...... 331 16.6.6. Login Succeeds, but the Handshake Fails...... 331
16.7. Log Files and Debugging...... 332
Chapter 17. Electronic Mail...... 333
17.1. What Is a Mail Message?...... 334
17.2. How Is Mail Delivered?...... 337
17.3. Email Addresses...... 338 17.3.1. RFC−822...... 338 17.3.2. Obsolete Mail Formats...... 338 17.3.3. Mixing Different Mail Formats...... 338
17.4. How Does Mail Routing Work?...... 340 17.4.1. Mail Routing on the Internet...... 340 17.4.2. Mail Routing in the UUCP World...... 340 17.4.3. Mixing UUCP and RFC−822...... 341
17.5. Configuring elm...... 345 17.5.1. Global elm Options...... 345 17.5.2. National Character Sets...... 345
Chapter 18. Sendmail...... 347
18.1. Introduction to sendmail...... 348
18.2. Installing sendmail...... 349
18.3. Overview of Configuration Files...... 350
18.4. The sendmail.cf and sendmail.mc Files...... 351 18.4.1. Two Example sendmail.mc Files...... 351 18.4.2. Typically Used sendmail.mc Parameters...... 352 18.4.2.1. Comments...... 353 18.4.2.2. VERSIONID and OSTYPE...... 353 18.4.2.3. DOMAIN...... 353 18.4.2.4. FEATURE...... 354
x Linux Network Administrators Guide
Table of Contents
18.4.2.5. Local macro definitions...... 354 18.4.2.6. Defining mail transport protocols...... 354 18.4.2.7. Configure mail routing for local hosts...... 355
18.5. Generating the sendmail.cf File...... 357
18.6. Interpreting and Writing Rewrite Rules...... 358 18.6.1. sendmail.cf R and S Commands...... 358 18.6.2. Some Useful Macro Definitions...... 358 18.6.3. The Lefthand Side...... 359 18.6.4. The Righthand Side...... 359 18.6.5. A Simple Rule Pattern Example...... 361 18.6.6. Ruleset Semantics...... 361 18.6.6.1. Interpreting the rule in our example...... 362
18.7. Configuring sendmail Options...... 364
18.8. Some Useful sendmail Configurations...... 366 18.8.1. Trusting Users to Set the From: Field...... 366 18.8.2. Managing Mail Aliases...... 366 18.8.3. Using a Smart Host...... 367 18.8.4. Managing Unwanted or Unsolicited Mail (Spam)...... 368 18.8.4.1. The Real−time Blackhole List...... 369 18.8.4.2. The access database...... 369 18.8.4.3. Barring users from receiving mail...... 371 18.8.5. Configuring Virtual Email Hosting...... 371 18.8.5.1. Accepting mail for other domains...... 371 18.8.5.2. Forwarding virtual−hosted mail to other destinations...... 372
18.9. Testing Your Configuration...... 374
18.10. Running sendmail...... 378
18.11. Tips and Tricks...... 379 18.11.1. Managing the Mail Spool...... 379 18.11.2. Forcing a Remote Host to Process its Mail Queue...... 379 18.11.3. Analyzing Mail Statistics...... 380 18.11.3.1. mailstats...... 380 18.11.3.2. hoststat...... 381
Chapter 19. Getting EximUp and Running...... 382
19.1. Running Exim...... 383
19.2. If Your Mail Doesn't Get Through...... 385
19.3. Compiling Exim...... 386
xi Linux Network Administrators Guide
Table of Contents
19.4. Mail Delivery Modes...... 387
19.5. Miscellaneous config Options...... 389
19.6. Message Routing and Delivery...... 390 19.6.1. Routing Messages...... 390 19.6.2. Delivering Messages to Local Addresses...... 390 19.6.2.1. Local users...... 391 19.6.2.2. Forwarding...... 391 19.6.3. Alias Files...... 392 19.6.4. Mailing Lists...... 393
19.7. Protecting Against Mail Spam...... 394
19.8. UUCP Setup...... 395
Chapter 20. Netnews...... 396
20.1. Usenet History...... 397
20.2. What Is Usenet, Anyway?...... 398
20.3. How Does Usenet Handle News?...... 400
Chapter 21. C News...... 402
21.1. Delivering News...... 403
21.2. Installation...... 405
21.3. The sys File...... 407
21.4. The active File...... 410
21.5. Article Batching...... 412
21.6. Expiring News...... 415
21.7. Miscellaneous Files...... 417
21.8. Control Messages...... 419 21.8.1. The cancel Message...... 419 21.8.2. newgroup and rmgroup...... 419 21.8.3. The checkgroups Message...... 419 21.8.4. sendsys, version, and senduuname...... 421
21.9. C News in an NFS Environment...... 422
xii Linux Network Administrators Guide
Table of Contents
21.10. Maintenance Tools and Tasks...... 423
Chapter 22. NNTP and thenntpd Daemon...... 425
22.1. The NNTP Protocol...... 427 22.1.1. Connecting to the News Server...... 427 22.1.2. Pushing a News Article onto a Server...... 427 22.1.3. Changing to NNRP Reader Mode...... 428 22.1.4. Listing Available Groups...... 429 22.1.5. Listing Active Groups...... 429 22.1.6. Posting an Article...... 430 22.1.7. Listing New Articles...... 430 22.1.8. Selecting a Group on Which to Operate...... 430 22.1.9. Listing Articles in a Group...... 431 22.1.10. Retrieving an Article Header Only...... 431 22.1.11. Retrieving an Article Body Only...... 432 22.1.12. Reading an Article from a Group...... 432
22.2. Installing the NNTP Server...... 434
22.3. Restricting NNTP Access...... 435
22.4. NNTP Authorization...... 437
22.5. nntpd Interaction with C News...... 438
Chapter 23. Internet News...... 439
23.1. Some INN Internals...... 440
23.2. Newsreaders and INN...... 442
23.3. Installing INN...... 443
23.4. Configuring INN: the Basic Setup...... 444
23.5. INN Configuration Files...... 445 23.5.1. Global Parameters...... 445 23.5.1.1. The inn.conf file...... 445 23.5.2. Configuring Newsgroups...... 446 23.5.2.1. The active and newsgroups files...... 447 23.5.3. Configuring Newsfeeds...... 448 23.5.3.1. The newsfeeds file...... 449 23.5.3.2. The nntpsend.ctl file...... 451 23.5.4. Controlling Newsreader Access...... 452 23.5.4.1. The incoming.conf file...... 452 23.5.4.2. The nnrp.access file...... 454 23.5.5. Expiring News Articles...... 455
xiii Linux Network Administrators Guide
Table of Contents
23.5.5.1. The expire.ctl file...... 455 23.5.6. Handling Control Messages...... 456 23.5.6.1. The control.ctl file...... 457
23.6. Running INN...... 460
23.7. Managing INN: The ctlinnd Command...... 461 23.7.1. Add a New Group...... 461 23.7.2. Change a Group...... 461 23.7.3. Remove a Group...... 462 23.7.4. Renumber a Group...... 462 23.7.5. Allow/Disallow Newsreaders...... 462 23.7.6. Reject Newsfeed Connections...... 463 23.7.7. Allow Newsfeed Connections...... 463 23.7.8. Disable News Server...... 463 23.7.9. Restart News Server...... 464 23.7.10. Display Status of a Newsfeed...... 464 23.7.11. Drop a Newsfeed...... 464 23.7.12. Begin a Newsfeed...... 465 23.7.13. Cancel an Article...... 465
Chapter 24. Newsreader Configuration...... 466
24.1. tin Configuration...... 467
24.2. trn Configuration...... 468
24.3. nn Configuration...... 469
Appendix A. Example Network:The Virtual Brewery...... 471
A.1. Connecting the Virtual Subsidiary Network...... 472
Appendix B. Useful Cable Configurations...... 473
B.1. A PLIP Parallel Cable...... 474
B.2. A Serial NULL Modem Cable...... 475
Appendix C. Linux Network Administrator's Guide, Second Edition Copyright Information...... 476
C.1. 0. Preamble...... 477
C.2. 1. Applicability and Definitions...... 478
C.3. 2. Verbatim Copying...... 479
C.4. 3. Copying in Quantity...... 480
xiv Linux Network Administrators Guide
Table of Contents
C.5. 4. Modifications...... 481
C.6. 5. Combining Documents...... 483
C.7. 6. Collections of Documents...... 484
C.8. 7. Aggregation with Independent Works...... 485
C.9. 8. Translation...... 486
C.10. 9. Termination...... 487
C.11. 10. Future Revisions of this License...... 488
Appendix D. SAGE: The SystemAdministrators Guild...... 489
xv 1. Purpose and Audience for This Book
This book was written to provide a single reference for network administration in a Linux environment. Beginners and experienced users alike should find the information they need to cover nearly all important administration activities required to manage a Linux network configuration. The possible range of topics to cover is nearly limitless, so of course it has been impossible to include everything there is to say on all subjects. We've tried to cover the most important and common ones. We've found that beginners to Linux networking, even those with no prior exposure to Unix−like operating systems, have found this book good enough to help them successfully get their Linux network configurations up and running and get them ready to learn more.
There are many books and other sources of information from which you can learn any of the topics covered in this book (with the possible exception of some of the truly Linux−specific features, such as the new Linux firewall interface, which is not well documented elsewhere) in greater depth. We've provided a bibliography for you to use when you are ready to explore more.
1. Purpose and Audience for This Book 1 2. Sources of Information