Linux系统中网络配置详解(二)

网络服务的配置

 在这一部分 , 我们并不是详细的介绍具体的网络服务器 (DNS,FTP,WWW,SENDMAIL) 的配置 ( 那将是巨大的篇幅 ), 而是介绍一下与 linux 网络服务的配置相关的文件 .

1. LILO
的配置文件

  在 linux 系统中 , 有一个系统引导程序 , 那就是 lilo(linux loadin), 利用 lilo 可以实现多操作系统的选择启动 . 它的配置文件是 /etc/lilo.conf. 在这个配置文件中 ,lilo 的配置参数主要分为两个部分 , 一个是全局配置参数 , 包括设置启动设备等等 . 另一个是局部配置参数 , 包括每个引导影像文件的配置参数 . 在这里我就不详细介绍每个参数 , 特别的仅仅说明两个重要的参数 --------password restricted 选项 ,password 选项为每个引导的影像文件加入口令保护 . 我们都知道 , linux 系统中有一个运行模式是单用户模式 , 在这个模式下 , 用户是以超级用户的身份登录到 linux 系统中 . 人们可以通过在 lilo 引导的时候加入参数 (linux single linux init 0) 就可以不需要口令直接进入单用户模式的超级用户环境中 , 这将是十分危险的 . 所以在 lilo.conf 中增加了 password 的配置选项来为每个影像文件增加口令保护 . 你可以在全局模式中使用 password 选项 ( 对所有影像文件都加入相同的口令 ), 或者为每个单独的影像文件加入口令 . 这样一来 , 在每次系统启动时 , 都会要求用户输入口令 . 也许你觉得每次都要输入口令很麻烦 , 可以使用 restricted 选项 , 它可以使 lilo 仅仅在 linux 启动时输入了参数 ( 例如 linux single) 的时候才会检验密码 . 这两个选项可以极大的增加系统的安全性 , 建议在 lilo.conf 文件中设置它们 . 由于 password /etc/lilo.conf 文件是以明文存放的 , 所以必须要将 /etc/lilo.conf 文件的属性改为仅仅 root 可读 (0400).

  另外 , lilo 的早期版本中 , 存在着引导扇区必须存放到前 1024 柱面的限制 , lilo 2.51 版本中已经突破了这个限制 , 同时引导界面也变成了图形界面更加直观 . 最新版本的下载站点 :

   [url]ftp://166.111.136.3/pub/linux/lilo/lilo-2.51.tar.gz[/url]

  下载解压后 , 使用命令 make install 即可完成安装 .

  注意 : 物理安全才是最基本的安全 , 即使在 lilo.conf 中增加了口令保护 , 如果没有物理安全 , 恶意闯入者可以使用启动软盘启动 linux 系统 .

2.
域名服务的配置文件

   (1)/etc/HOSTNAME 在这个文件中保存着 linux 系统的主机名和域名 . 范例文件
   ice.xanet.edu.cn
  这个文件表明了主机名 ice, 域名是 xanet.edu.cn

   (2)/etc/hosts /etc/networks 文件 在域名服务系统中 , 有着主机表机制 ,/etc/hosts /etc/networks 就是主机表发展而来在 /etc/hosts 中存放着你不需要 DNS 系统查询而得的主机 ip 地址和主机名的对应 , 下面是一个范例文件 :

   # ip 地址 主机名 别名
   127.0.0.1       localhosts         loopback
   202.117.1.13      [url]www.xjtu.edu.cn[/url]       www
   202.117.1.24     ftp.xjtu.edu.cn      ftp

  在 /etc/networks , 存放着网络 ip 地址和网络名称的一一对应 . 它的文件格式和 /etc/hosts 是类似的

   (3)/etc/resolv.conf 这个文件是 DNS 域名解析器的主要配置文件 , 它的格式十分简单 , 每一行由一个主关键字组成 ./etc/resolv.conf 的关键字主要有 :

   domain   指明缺省的本地域名 ,
   search   指明了一系列查找主机名的时候搜索的域名列表 ,
   nameserver 指明了在进行域名解析时域名服务器的 ip 地址 . 下面给出一个范例文件 :
   #/etc/resolv.conf
   domain     xjtu.edu.cn
   search     xjtu.edu.cn edu.cn
   nameserver   202.117.0.20
   nameserver   202.117.1.9
   (4)/etc/host.conf 在系统中同时存在着 DNS 域名解析和 /etc/hosts 的主机表机制时 , 由文件 /etc/host.conf 来说明了解析器的查询顺序 . 范例文件如下 :
   #/etc/host.conf
   order hosts,bind      # 解析器查询顺序是文件 /etc/hosts, 然后是 DNS
   multi on          # 允许主机拥有多个 ip 地址
   nospoof on         # 禁止 ip 地址欺骗
3. DHCP
的配置文件
   /etc/dhcpd.conf DHCPD 的配置文件 , 我们可以通过在 /etc/dhcpd.conf 文件中的配置来实现在局域网中动态分配 ip 地址 , 一台 linux 主机设置为 dhcpd 服务器 , 通过鉴别网卡的 MAC 地址来动态的分配 ip 地址 . 范例文件如下 :
   option domain-name "chinapub.com";
   use-host-decl-names off;
   subnet 210.27.48.0 netmask 255.255.255.192 {
       filename "/tmp/image";
       host dial_server {
            hardware ethernet 00:02:b3:11:f2:30;
            fixed-address 210.27.48.8;
            filename "/tmp/image";
       }
   }

  在这个文件中,最主要的是通过设置的硬件地址来鉴别局域网中的主机,并分配给它指定的 ip 地址, hardware ethernet 00:02:b3:11:f2:30 指定要动态分配 ip 的主机得网卡的 MAC 地址, fixed-address 210.27.48.8 指定分配其 ip 地址。 filename "/tmp/image" 是通过 tftp 服务,主机所要得到的影像文件,可以通过得到的影像文件来引导主机启动。

4.
超级守候进程 inetd 的配置
  在 linux 系统中有一个超级守候进程 inetd,inetd 监听由文件 /etc/services 指定的服务的端口 ,inetd 根据网络连接请求 , 调用相应的服务进程来相应请求 . 在这里有两个文件十分重要 ,/etc/inetd.conf /etc/services, 文件 /etc/services 定义 linu 系统中所有服务的名称 , 协议类型 , 服务的端口等等信息 ,/etc/inetd.conf inetd 的配置文件 , 由它来指定那些服务可以由 inetd 来监听 , 以及相应的服务进程的调用命令 . 首先介绍一下 /etc/services 文件 ,/etc/services 文件是一个服务名和服务端口对应的数据库文件 , 如下面所示 :
# /etc/services:
# $Id: services,v 1.4 2000/01/23 21:03:36 notting Exp $
#
# Network services, Internet style
#
# Note that it is presently the policy of IANA to assign a single well-known
# port number for both TCP and UDP; hence, most entries here have two entries
# even if the protocol doesn't support UDP operations.
# Updated from RFC 1700, ``Assigned Numbers'' (October 1994). Not all ports
# are included, only the more common ones.
#
名称    端口 / 协议     别名        注释
tcpmux
   1/tcp                 # TCP port service multiplexer
echo
    7/tcp
echo
    7/udp
discard
   9/tcp       sink null
discard
   9/udp       sink null
systat
    11/tcp      users
daytime
   13/tcp
daytime
   13/udp
netstat
   15/tcp
qotd
    17/tcp       quote
msp
     18/tcp                  # message send protocol
msp
     18/udp                  # message send protocol
chargen
   19/tcp      ttytst source
chargen
   19/udp      ttytst source
ftp-data
  20/tcp
ftp
     21/tcp
fsp
     21/udp       fspd
ssh
     22/tcp                  # SSH Remote Login Protocol
ssh
     22/udp                   # SSH Remote Login Protocol
telnet
   23/tcp
# 24 - private
smtp
    25/tcp       mail
# 26 - unassigned
time
     37/tcp      timserver
time
    37/udp       timserver
rlp
     39/udp       resource          # resource location
nameserver 42/tcp
      name             # IEN 116
whois
    43/tcp       nicname
re-mail-ck
  50/tcp                   # Remote Mail Checking Protocol
re-mail-ck
  50/udp                   # Remote Mail Checking Protocol
domain
   53/tcp      nameserver          # name-domain server
domain
    53/udp      nameserver
mtp
     57/tcp                    # deprecated
bootps
   67/tcp                    # BOOTP server
bootps
   67/udp
bootpc
   68/tcp                    # BOOTP client
bootpc
   68/udp
tftp
    69/udp
gopher
   70/tcp # Internet Gopher
gopher
   70/udp
rje
     77/tcp netrjs
finger
   79/tcp
www
     80/tcp      http              # WorldWideWeb HTTP
www
     80/udp                    # HyperText Transfer Protocol
link
    87/tcp      ttylink
kerberos
  88/tcp      kerberos5 krb5         # Kerberos v5
kerberos
  88/udp      kerberos5 krb5         # Kerberos v5
supdup
    95/tcp
# 100 - reserved
hostnames
  101/tcp      hostname            # usually from sri-nic
iso-tsap
  102/tcp       tsap              # part of ISODE.
csnet-ns
  105/tcp      cso-ns              # also used by CSO name server
csnet-ns
  105/udp      cso-ns
rtelnet
   107/tcp                     # Remote Telnet
rtelnet
   107/udp
pop2
     109/tcp     pop-2 postoffice         # POP version 2
pop2
     109/udp     pop-2
pop3
     110/tcp     pop-3               # POP version 3
pop3
     110/udp     pop-3
sunrpc
    111/tcp    portmapper             # RPC 4.0 portmapper TCP
sunrpc
    111/udp    portmapper             # RPC 4.0 portmapper UDP
auth
     113/tcp    authentication tap ident
sftp
     115/tcp
uucp-path
   117/tcp
nntp
     119/tcp     readnews untp           # USENET News Transfer Protocol
ntp
      123/tcp
ntp
      123/udp                     # Network Time Protocol
netbios-ns
   137/tcp                    # NETBIOS Name Service
netbios-ns
   137/udp
netbios-dgm
   138/tcp                    # NETBIOS Datagram Service
netbios-dgm
   138/udp
netbios-ssn
   139/tcp                     # NETBIOS session service
netbios-ssn
   139/udp
imap2
      143/tcp    imap                # Interim Mail Access Proto v2
imap2
      143/udp    imap

(
实际上 , 以上仅仅是 /etc/services 的一部分 , 限于篇幅没有全部写出 )

  在这个文件中 , 为了安全考虑 , 我们可以修改一些常用服务的端口地址 , 例如我们可以把 telnet 服务的端口地址改为 52323,www 的端口改为 8080,ftp 端口地址改为 2121 等等 , 这样仅仅需要在应用程序中修改相应的端口即可 . 这样可以提高系统的安全性 .

/etc/inetd.conf
文件是 inetd 的配置文件 , 首先要了解一下 linux 服务器到底要提供哪些服务。一个很好的原则是 " 禁止所有不需要的服务 " ,这样黑客就少了一些攻击系统的机会 ./etc/inetd.conf 范例文件如下 :
#
# inetd.conf
     This file describes the services that will be available
#
          through the INETD TCP/IP super server. To re-configure
#
          the running INETD process, edit this file, then send the
#
          NETD process a SIGHUP signal.
#
# Version:
    @(#)/etc/inetd.conf    3.10    05/27/93
#
# Authors:
    Original taken from BSD UNIX 4.3/TAHOE.
#
         Fred N. van Kempen,
#
# Modified for Debian Linux by Ian A. Murdock
#
# Modified for RHS Linux by Marc Ewing
#
#
#
服务名 socket 类型 协议 动作 拥有者 服务进程路径名 掉用参数
#nowait
表示在相应一个网络连接之后 , 服务进程在释放旧的联接之前可以接受
#
新的连接请求 ,wait 则表示必须在旧连接清除之后才能接收新的连接 .
# Echo, discard, daytime, and chargen are used primarily for testing.
# To re-read this file after changes, just do a 'killall -HUP inetd'
#
#echo
  stream   tcp   nowait   root   internal
#echo
  dgram    udp   wait    root   internal
#discard
    stream   tcp   nowait   root   internal
#discard
    dgram    udp   wait    root   internal
#daytime stream
  tcp    nowait    root    internal
#daytime dgram
   udp    wait     root    internal
#chargen
     stream   tcp    nowait   root   internal
#chargen
     dgram   udp   wait    root    internal
#time
   stream    tcp    nowait    root   internal
#time
   dgram    udp    wait    root    internal
#
# These are standard services.
#
ftp
   stream    tcp    nowait    root    /usr/sbin/tcpd    in.wuftpd -l -a
telnet
  stream    tcp    nowait    root    /usr/sbin/tcpd    in.telnetd
#
# Shell, login, exec, comsat and talk are BSD protocols.
#
#shell
  stream   tcp   nowait   root    /usr/sbin/tcpd    in.rshd
#login
  stream   tcp   nowait   root    /usr/sbin/tcpd    in.rlogind
#exec
  stream   tcp   nowait   root    /usr/sbin/tcpd    in.rexecd
#comsat dgram
  udp   wait    root    /usr/sbin/tcpd    in.comsat
#talk
  dgram   udp   wait    root    /usr/sbin/tcpd    in.talkd
#ntalk
  dgram   udp   wait    root    /usr/sbin/tcpd    in.ntalkd
#dtalk
  stream   tcp   waut    nobody   /usr/sbin/tcpd    in.dtalkd
# Pop and imap mail services et al
#
#pop-2 stream tcp nowait root /usr/sbin/tcpd ipop2d
#pop-3 stream tcp nowait root /usr/sbin/tcpd ipop3d
#imap stream tcp nowait root /usr/sbin/tcpd imapd
#
# The Internet UUCP service.
#
#uucp stream tcp nowait uucp /usr/sbin/tcpd /usr/lib/uucp/uucico -l
#
# Tftp service is provided primarily for booting. Most sites
# run this only on machines acting as "boot servers." Do not uncomment
# this unless you *need* it.
#
#tftp
  dgram   udp   wait   root   /usr/sbin/tcpd   in.tftpd
#bootps dgram
  udp   wait   root   /usr/sbin/tcpd   bootpd
#
 
# Finger, systat and netstat give out user information which may be
# valuable to potential "system crackers." Many sites choose to disable
# some or all of these services to improve security.
#
#finger stream
  tcp    nowait    root    /usr/sbin/tcpd    in.fingerd
#cfinger stream
  tcp    nowait    root    /usr/sbin/tcpd    in.cfingerd
#systat stream
  tcp    nowait    guest    /usr/sbin/tcpd /bin/ps -auwwx
#netstat stream
  tcp    nowait    guest    /usr/sbin/tcpd /bin/netstat   -f inet
#
# Authentication
#
#auth
    stream   tcp   nowait   nobody   /usr/sbin/in.identd in.identd -l -e -o
#linuxconf stream
   tcp   wait    root    /bin/linuxconf linuxconf -http

  大家看到的这个文件已经修改过的文件 , 除了 telnet ftp 服务 , 其他所有的服务都被禁止了 . 在修改了 /etc/inetd.conf 之后 , 使用命令 kill -HUP (inetd 的进程号 ), 使 inetd 重新读取配置文件并重新启动即可 .
5. ip route
的配置

  利用 linux, 一台普通的微机也可以实现高性价比的路由器 . 首先让我们了解一下 linux 的查看路由信息的命令 :
   [root@ice /etc]# route -n
   Kernel IP routing table
   Destination     Gateway     Genmask      Flags Metric Ref    Use Iface
   202.112.13.204    0.0.0.0     255.255.255.255 UH   0   0   0      eth0
   202.117.48.43    0.0.0.0     255.255.255.255 UH   0   0   0      eth1
   202.112.13.192   202.112.13.204 255.255.255.192 UG   0   0   0      eth0
   202.112.13.192   0.0.0.0      255.255.255.192 U   0   0   0       eth0
   202.117.48.0    202.117.48.43   255.255.255.0   UG   0   0   0      eth1
   202.117.48.0    0.0.0.0      255.255.255.0   U   0   0   0      eth1
   127.0.0.0     0.0.0.0      255.0.0.0      U   0   0   0      lo
   0.0.0.0      202.117.48.1    0.0.0.0      UG   0   0   0      eth1
  命令 netstat -r n 得到输出结果和 route -n 是一样的 . 它们操作的都是 linux 内核的路由表 .
  命令 cat /proc/net/route 的输出结果是以十六进制表示的路由表 .
[root@ice /etc]# cat /proc/net/route
Iface
  Destination    Gateway   Flags   RefCnt   Use    Metric Mask
eth0
  CC0D70CA      00000000 0005   0    0     0      FFFFFFF
eth1
  2B3075CA      00000000 0005   0    0     0      FFFFFFF
eth0
  C00D70CA      CC0D70CA 0003   0    0     0      C0FFFFF
eth0
  C00D70CA      00000000 0001   0    0     0      C0FFFFF
eth1
  003075CA      2B3075CA 0003   0     0     0      00FFFFF
eth1
   003075CA      00000000 0001   0    0     0      00FFFFF
lo
   0000007F       00000000 0001   0    0     0     000000F
eth1
   00000000       013075CA 0003   0   0     0      0000000
  通过计算可以知道 , 下面的这个路由表 ( 十六进制 ) 和前面的路由表 ( 十进制 ) 是一致的 .

  我们还可以通过命令 route add (del ) 来操作路由表 , 增加和删除路由信息 .

除了上面的静态路由 ,linux 还可以通过 routed 来实现 rip 协议的动态路由 . 我们只需要打开 linux 的路由转发功能 , /proc/sys/net/ipv4/ip_forward 文件中增加一个字符 1.

你可能感兴趣的:(linux,职场,休闲,网络配置)