免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3184 | 回复: 1
打印 上一主题 下一主题

Linux系统中网络配置详解 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-09-17 14:20 |只看该作者 |倒序浏览
一.安装和配置网络设备\r\n\r\n  在安装linux时,如果你有网卡,安装程序将会提示你给出tcp/ip网络的配置参数,如本机的ip地址,缺省网关的ip地址,DNS的ip地址等等.根据这些配置参数,安装程序将会自动把网卡(linux系统首先要支持)驱动程序编译到内核中去.但是我们一定要了解加载网卡驱动程序的过程,那么在以后改变网卡,使用多个网卡的时候我们就会很容易的操作.网卡的驱动程序是作为模块加载到内核中去的,所有linux支持的网卡驱动程序都是存放在目录 /lib/modules/(linux版本号)/net/ ,例如inter的82559系列10/100M自适应的引导网卡的驱动程序是eepro100.o,3COM的3C509 ISA网卡的驱动程序是3C509.o,DLINK的pci 10网卡的驱动程序是via-rhine.o,NE2000兼容性网卡的驱动程序是ne2k-pci.o和ne.o.在了解了这些基本的驱动程序之后,我们就可以通过修改模块配置文件来更换网卡或者增加网卡.\r\n\r\n  1. 修改/etc/conf.modules 文件\r\n  这个配置文件是加载模块的重要参数文件,大家先看一个范例文件\r\n  #/etc/conf.modules\r\n  alias eth0 eepro100\r\n  alias eth1 eepro100\r\n  这个文件是一个装有两块inter 82559系列网卡的linux系统中的conf.modules中的内容.alias命令表明以太口(如eth0)所具有的驱动程序的名称,alias eth0 eepro100说明在零号以太网口所要加载的驱动程序是eepro100.o.那么在使用命令 modprobe eth0的时候,系统将自动将eepro100.o加载到内核中.对于pci的网卡来说,由于系统会自动找到网卡的io地址和中断号,所以没有必要在 conf.modules中使用选项options来指定网卡的io地址和中断号.但是对应于ISA网卡,则必须要在conf.modules中指定硬件的io地址或中断号, 如下所示,表明了一块NE的ISA网卡的conf.modules文件.\r\n  alias eth0 ne\r\n  options ne io=0x300 irq=5\r\n  在修改完conf.modules文件之后,就可以使用命令来加载模块,例如要插入inter的第二块网卡:\r\n  #insmod /lib/modules/2.2.14/net/eepro100.o\r\n  这样就可以在以太口加载模块eepro100.o.同时,还可以使用命令来查看当前加载的模块信息:\r\n  [root@ice /etc]# lsmod\r\n  Module Size Used by\r\n  eepro100 15652 2 (autoclean)\r\n  返回结果的含义是当前加载的模块是eepro100,大小是15652个字节,使用者两个,方式是自动清除.\r\n\r\n  2. 修改/etc/lilo.conf文件\r\n  在一些比较新的linux版本中,由于操作系统自动检测所有相关的硬件,所以此时不必修改/etc/lilo.conf文件.但是对于ISA网卡和老的版本,为了在系统初始化中对新加的网卡进行初始化,可以修改lilo.conf文件.在/etc/lilo.conf文件中增加如下命令:\r\n  append=\"ether=5,0x240,eth0 ether=7,0x300,eth1\"\r\n  这条命令的含义是eth0的io地址是0x240,中断是5,eth1的io地址是0x300,中断是7.\r\n  实际上,这条语句来自在系统引导影像文件时传递的参数,\r\n  LILO: linux ether=5,0x240,eth0 ether=7,0x300,eth1\r\n  这种方法也同样能够使linux系统配置好两个网卡.类似的,在使用三个以上网卡的时候,也可以依照同样的方法.\r\n  在配置好网卡之后,就应该配置TCP/IP的参数,在一般情况下,在安装linux系统的同时就会提示你配置网络参数.但是之后如果我们想要修改网络设置,可以使用如下的命令:\r\n  #ifconfig eth0 A.B.C.D netmask E.F.G.H\r\n  A.B.C.D 是eth0的IP地址,E.F.G.H是网络掩码.\r\n  其实,在linux系统中我们可以给一块网卡设置多个ip地址,例如下面的命令:\r\n  #ifconfig eth0:1 202.112.11.218 netmask 255.255.255.192\r\n  然后,使用命令#ifconfig -a 就可以看到所有的网络接口的界面:\r\n  eth0   Link encap:Ethernet HWaddr 00:90:27:58:AF:1A\r\n       inet addr:202.112.13.204 Bcast:202.112.13.255 Mask:255.255.255.192\r\n       UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1\r\n       RX packets:435510 errors:0 dropped:0 overruns:0 frame:2\r\n       TX packets:538988 errors:0 dropped:0 overruns:0 carrier:0\r\n       collisions:318683 txqueuelen:100\r\n       Interrupt:10 Base address:0xc000\r\n\r\n  eth0:1  Link encap:Ethernet HWaddr 00:90:27:58:AF:1A\r\n       inet addr:202.112.11.218 Bcast:202.112.11.255 Mask:255.255.255.192\r\n       UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1\r\n       Interrupt:10 Base address:0xc000\r\n\r\n  lo    Link encapocal Loopback\r\n       inet addr:127.0.0.1 Mask:255.0.0.0\r\n       UP LOOPBACK RUNNING MTU:3924 Metric:1\r\n       RX packets:2055 errors:0 dropped:0 overruns:0 frame:0\r\n       TX packets:2055 errors:0 dropped:0 overruns:0 carrier:0\r\n       collisions:0 txqueuelen:0\r\n  我们看到网络接口有三个,eth0 , eth0:1,lo,eth0是真实的以太网络接口,eth0:1和eth0是同一块网卡,只不过绑定了另外的一个地址,lo是会送地址。eth0和 eth0:1可以使用不同网段的ip地址,这在同一个物理网段却使用不同的网络地址的时候十分有用。\r\n  另外,网卡有一种模式是混杂模式(prosimc),在这个模式下,网卡将会接收网络中所有的数据包,一些linux下的网络监听工具例如tcpdump,snort等等都是把网卡设置为混杂模式.\r\n  ifconfig命令可以在本次运行的时间内改变网卡的ip地址,但是如果系统重新启动,linux仍然按照原来的默认的设置启动网络接口。这时候,可以使用netconfig或netconf命令来重新设置默认网络参数。netconfig 命令是重新配置基本的tcp/ip参数,参数包括是否配置为动态获得ip地址(dhcpd和bootp),网卡的ip地址,网络掩码,缺省网关和首选的域名服务器地址。netconf命令可以详细的配置所有网络的参数,分为客户端任务,服务器端任务和其他的配置三个部分,在客户端的配置中,主要包括基本主机的配置(主机名,有效域名,网络别名,对应相应网卡的ip地址,网络掩码,网络设备名,网络设备的内核驱动程序),DNS地址配置,缺省网关的地址配置,NIS地址配置,ipx接口配置,ppp/slip的配置等等。在服务器端配置中,主要包括NFS的配置,DNS的配置, ApacheWebServer配置,Samba的配置和Wu-ftpd的配置。在其他的配置选项中,一个是关于/etc/hosts文件中的主机配置,一个是关于/etc/networks文件中的网络配置信息,最后是关于使用linuxconf配置的信息。\r\n  在linuxconf命令下,同样也可以配置网络信息,但是大家可以发现,linuxconf程序是调用netconf来进行网络配置的。\r\n  另外,在/etc/sysconfig/network-scripts目录下存放着系统关于网络的配置文件,范例如下:\r\n\r\n  ifcfg-eth0*  ifdown-post*  ifup-aliases*  ifup-ppp*\r\n  ifcfg-eth1*  ifdown-ppp*   ifup-ipx*    ifup-routes*\r\n  ifcfg-lo*   ifdown-sl*   ifup-plip*    ifup-sl*\r\n  ifdown@    ifup@      ifup-post*    network-functions\r\n\r\n  ifcfg-eth0是以太口eth0的配置信息,它的内容如下:\r\n\r\n  DEVICE=\"eth0\"              /*指明网络设备名称*/\r\n  IPADDR=\"202.112.13.204\"         /*指明网络设备的ip地址*/\r\n  NETMASK=\"255.255.255.192\"        /*指明网络掩码*/\r\n  NETWORK=202.112.13.192         /*指明网络地址*/\r\n  BROADCAST=202.112.13.255         /*指明广播地址*/\r\n                 /*指明在系统启动时是否激活网卡*/\r\n  BOOTPROTO=\"none\"             /*指明是否使用bootp协议*/\r\n  \r\n  所以,我们也可以修改这个文件来进行linux下网络参数的改变。\r\n\r\n二 网络服务的配置:\r\n\r\n  在这一部分,我们并不是详细的介绍具体的网络服务器(DNS,FTP,WWW,SENDMAIL)的配置(那将是巨大的篇幅),而是介绍一下与linux网络服务的配置相关的文件.\r\n\r\n1. LILO的配置文件\r\n  在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).\r\n  另外,在lilo的早期版本中,存在着引导扇区必须存放到前1024柱面的限制,在lilo的2.51版本中已经突破了这个限制,同时引导界面也变成了图形界面更加直观.最新版本的下载站点:\r\n  ftp://166.111.136.3/pub/linux/lilo/lilo-2.51.tar.gz\r\n  下载解压后,使用命令make install即可完成安装.\r\n  注意: 物理安全才是最基本的安全,即使在lilo.conf中增加了口令保护,如果没有物理安全,恶意闯入者可以使用启动软盘启动linux系统.\r\n\r\n2. 域名服务的配置文件\r\n  (1)/etc/HOSTNAME 在这个文件中保存着linux系统的主机名和域名.范例文件\r\n\r\n  ice.xanet.edu.cn\r\n\r\n  这个文件表明了主机名ice,域名是xanet.edu.cn\r\n  (2)/etc/hosts和/etc/networks文件在域名服务系统中,有着主机表机制,/etc/hosts和/etc/networks就是主机表发展而来在/etc/hosts中存放着你不需要DNS 系统查询而得的主机ip地址和主机名的对应,下面是一个范例文件:\r\n  # ip 地址 主机名 别名\r\n  127.0.0.1      localhosts        loopback\r\n  202.117.1.13    www.xjtu.edu.cn     www\r\n  202.117.1.24     ftp.xjtu.edu.cn      ftp\r\n\r\n  在/etc/networks 中,存放着网络ip地址和网络名称的一一对应.它的文件格式和/etc/hosts是类似的\r\n  (3)/etc/resolv.conf 这个文件是DNS域名解析器的主要配置文件,它的格式十分简单,每一行由一个主关键字组成./etc/resolv.conf的关键字主要有:\r\n  domain   指明缺省的本地域名,\r\n  search   指明了一系列查找主机名的时候搜索的域名列表,\r\n  nameserver 指明了在进行域名解析时域名服务器的ip地址.下面给出一个范例文件:\r\n\r\n  #/etc/resolv.conf\r\n  domain    xjtu.edu.cn\r\n  search    xjtu.edu.cn edu.cn\r\n  nameserver  202.117.0.20\r\n  nameserver  202.117.1.9\r\n\r\n  (4)/etc/host.conf 在系统中同时存在着DNS域名解析和/etc/hosts的主机表机制时,由文件/etc/host.conf来说明了解析器的查询顺序.范例文件如下:\r\n\r\n  #/etc/host.conf\r\n  order hosts,bind     #解析器查询顺序是文件/etc/hosts,然后是DNS\r\n  multi on         #允许主机拥有多个ip地址\r\n  nospoof on        #禁止ip地址欺骗\r\n\r\n3. DHCP的配置文件\r\n  /etc/dhcpd.conf是DHCPD的配置文件,我们可以通过在/etc/dhcpd.conf文件中的配置来实现在局域网中动态分配ip地址,一台linux主机设置为dhcpd服务器,通过鉴别网卡的MAC地址来动态的分配ip地址.范例文件如下:\r\n\r\n  option domain-name \"chinapub.com\";\r\n  use-host-decl-names off;\r\n  subnet 210.27.48.0 netmask 255\r\n  }\r\n\r\n  在这个文件中,最主要的是通过设置的硬件地址来鉴别局域网中的主机,并分配给它指定的ip地址,hardware ethernet 00:02:b3:11:f2:30指定要动态分配ip的主机得网卡的MAC地址,fixed-address 210.27.48.8指定分配其ip地址。filename \"/tmp/image\"是通过tftp服务,主机所要得到的影像文件,可以通过得到的影像文件来引导主机启动。\r\n\r\n4. 超级守候进程inetd的配置\r\n  在linux系统中有一个超级守候进程inetd,inetd监听由文件/etc/services指定的服务的端口,inetd根据网络连接请求, 调用相应的服务进程来相应请求.在这里有两个文件十分重要,/etc/inetd.conf和/etc/services,文件 /etc/services定义linu系统中所有服务的名称,协议类型,服务的端口等等信息,/etc/inetd.conf是inetd的配置文件, 由它来指定那些服务可以由inetd来监听,以及相应的服务进程的调用命令.首先介绍一下/etc/services文件,/etc/services文件是一个服务名和服务端口对应的数据库文件,如下面所示:\r\n# /etc/services:\r\n# $Id: services,v 1.4 2000/01/23 21:03:36 notting Exp $\r\n#\r\n# Network services, Internet style\r\n#\r\n# Note that it is presently the policy of IANA to assign a single well-known\r\n# port number for both TCP and UDP; hence, most entries here have two entries\r\n# even if the protocol doesn\'t support UDP operations.\r\n# Updated from RFC 1700, ``Assigned Numbers\'\' (October 1994). Not all ports\r\n# are included, only the more common ones.\r\n#名称    端口/协议     别名        注释\r\ntcpmux    1/tcp                # TCP port service multiplexer\r\necho     7/tcp\r\necho     7/udp\r\ndiscard   9/tcp      sink null\r\ndiscard   9/udp      sink null\r\nsystat   11/tcp      users\r\ndaytime   13/tcp\r\ndaytime   13/udp\r\nnetstat   15/tcp\r\nqotd     17/tcp      quote\r\nmsp     18/tcp                 # message send protocol\r\nmsp     18/udp                 # message send protocol\r\nchargen   19/tcp     ttytst source\r\nchargen   19/udp     ttytst source\r\nftp-data   20/tcp\r\nftp     21/tcp\r\nfsp    21/udp      fspd\r\nssh     22/tcp                 # SSH Remote Login Protocol\r\nssh    22/udp                 # SSH Remote Login Protocol\r\ntelnet   23/tcp\r\n# 24 - private\r\nsmtp    25/tcp      mail\r\n# 26 - unassigned\r\ntime    37/tcp     timserver\r\ntime    37/udp      timserver\r\nrlp     39/udp      resource         # resource location\r\nnameserver 42/tcp      name           # IEN 116\r\nwhois    43/tcp      nicname\r\nre-mail-ck  50/tcp                  # Remote Mail Checking Protocol\r\nre-mail-ck 50/udp                   # Remote Mail Checking Protocol\r\ndomain    53/tcp     nameserver         # name-domain server\r\ndomain   53/udp     nameserver\r\nmtp     57/tcp                   # deprecated\r\nbootps    67/tcp                   # BOOTP server\r\nbootps    67/udp\r\nbootpc    68/tcp                   # BOOTP client\r\nbootpc    68/udp\r\ntftp     69/udp\r\ngopher    70/tcp # Internet Gopher\r\ngopher    70/udp\r\nrje     77/tcp netrjs\r\nfinger    79/tcp\r\nwww     80/tcp     http             # WorldWideWeb HTTP\r\nwww     80/udp                    # HyperText Transfer Protocol\r\nlink     87/tcp     ttylink\r\nkerberos   88/tcp     kerberos5 krb5        # Kerberos v5\r\nkerberos   88/udp     kerberos5 krb5        # Kerberos v5\r\nsupdup   95/tcp\r\n# 100 - reserved\r\nhostnames  101/tcp     hostname           # usually from sri-nic\r\niso-tsap  102/tcp     tsap             # part of ISODE.\r\ncsnet-ns  105/tcp     cso-ns             # also used by CSO name server\r\ncsnet-ns  105/udp     cso-ns\r\nrtelnet   107/tcp                    # Remote Telnet\r\nrtelnet   107/udp\r\npop2     109/tcp    pop-2 postoffice        # POP version 2\r\npop2     109/udp    pop-2\r\npop3     110/tcp    pop-3              # POP version 3\r\npop3     110/udp    pop-3\r\nsunrpc    111/tcp   portmapper            # RPC 4.0 portmapper TCP\r\nsunrpc    111/udp   portmapper            # RPC 4.0 portmapper UDP\r\nauth     113/tcp   authentication tap ident\r\nsftp     115/tcp\r\nuucp-path   117/tcp\r\nnntp     119/tcp    readnews untp          # USENET News Transfer Protocol\r\nntp      123/tcp\r\nntp      123/udp                   # Network Time Protocol\r\nnetbios-ns   137/tcp                   # NETBIOS Name Service\r\nnetbios-ns   137/udp\r\nnetbios-dgm   138/tcp                   # NETBIOS Datagram Service\r\nnetbios-dgm   138/udp\r\nnetbios-ssn   139/tcp                   # NETBIOS session service\r\nnetbios-ssn   139/udp\r\nimap2      143/tcp   imap               # Interim Mail Access Proto v2\r\nimap2      143/udp   imap\r\n\r\n(实际上,以上仅仅是/etc/services的一部分,限于篇幅没有全部写出)\r\n在这个文件中,为了安全考虑,我们可以修改一些常用服务的端口地址,例如我们可以把telnet服务的端口地址改为52323,www的端口改为8080,ftp端口地址改为2121等等,这样仅仅需要在应用程序中修改相应的端口即可.这样可以提高系统的安全性.\r\n/etc/inetd.conf文件是inetd的配置文件, 首先要了解一下linux服务器到底要提供哪些服务。一个很好的原则是\" 禁止所有不需要的服务\",这样黑客就少了一些攻击系统的机会./etc/inetd.conf范例文件如下:\r\n#\r\n# inetd.conf    This file describes the services that will be available\r\n#          through the INETD TCP/IP super server. To re-configure\r\n#          the running INETD process, edit this file, then send the\r\n#          NETD process a SIGHUP signal.\r\n#\r\n# Version:    @(#)/etc/inetd.conf   3.10   05/27/93\r\n#\r\n# Authors:    Original taken from BSD UNIX 4.3/TAHOE.\r\n#         Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>\r\n#\r\n# Modified for Debian Linux by Ian A. Murdock <imurdock@shell.portal.com>\r\n#\r\n# Modified for RHS Linux by Marc Ewing <marc@redhat.com>\r\n#\r\n# <service_name> <sock_type> <proto> <flags> <user> <server_path> <args>\r\n#服务名 socket类型 协议 动作 拥有者 服务进程路径名 掉用参数\r\n#nowait 表示在相应一个网络连接之后,服务进程在释放旧的联接之前可以接受\r\n#新的连接请求,wait 则表示必须在旧连接清除之后才能接收新的连接.\r\n# Echo, discard, daytime, and chargen are used primarily for testing.\r\n# To re-read this file after changes, just do a \'killall -HUP inetd\'\r\n#\r\n#echo  stream  tcp  nowait  root  internal\r\n#echo  dgram   udp  wait   root  internal\r\n#discard    stream  tcp  nowait  root  internal\r\n#discard    dgram   udp  wait   root  internal\r\n#daytime stream  tcp   nowait   root   internal\r\n#daytime dgram  udp   wait    root   internal\r\n#chargen     stream  tcp   nowait  root  internal\r\n#chargen     dgram  udp  wait   root   internal\r\n#time   stream   tcp   nowait   root  internal\r\n#time   dgram   udp   wait   root   internal\r\n#\r\n# These are standard services.\r\n#\r\nftp   stream   tcp   nowait   root   /usr/sbin/tcpd   in.wuftpd -l -a\r\ntelnet stream   tcp   nowait   root   /usr/sbin/tcpd   in.telnetd\r\n#\r\n# Shell, login, exec, comsat and talk are BSD protocols.\r\n#\r\n#shell  stream  tcp  nowait  root   /usr/sbin/tcpd   in.rshd\r\n#login  stream  tcp  nowait  root   /usr/sbin/tcpd   in.rlogind\r\n#exec  stream  tcp  nowait  root   /usr/sbin/tcpd   in.rexecd\r\n#comsat dgram  udp  wait   root   /usr/sbin/tcpd   in.comsat\r\n#talk  dgram  udp  wait   root   /usr/sbin/tcpd   in.talkd\r\n#ntalk  dgram  udp wait   root   /usr/sbin/tcpd   in.ntalkd\r\n#dtalk  stream tcp  waut   nobody  /usr/sbin/tcpd   in.dtalkd\r\n# Pop and imap mail services et al\r\n#\r\n#pop-2 stream tcp nowait root /usr/sbin/tcpd ipop2d\r\n#pop-3 stream tcp nowait root /usr/sbin/tcpd ipop3d\r\n#imap stream tcp nowait root /usr/sbin/tcpd imapd\r\n#\r\n# The Internet UUCP service.\r\n#\r\n#uucp stream tcp nowait uucp /usr/sbin/tcpd /usr/lib/uucp/uucico -l\r\n#\r\n# Tftp service is provided primarily for booting. Most sites\r\n# run this only on machines acting as \"boot servers.\" Do not uncomment\r\n# this unless you *need* it.\r\n#\r\n#tftp  dgram  udp  wait  root  /usr/sbin/tcpd  in.tftpd\r\n#bootps dgram  udp  wait  root  /usr/sbin/tcpd  bootpd\r\n# \r\n# Finger, systat and netstat give out user information which may be\r\n# valuable to potential \"system crackers.\" Many sites choose to disable\r\n# some or all of these services to improve security.\r\n#\r\n#finger stream  tcp   nowait   root   /usr/sbin/tcpd   in.fingerd\r\n#cfinger stream  tcp   nowait   root   /usr/sbin/tcpd   in.cfingerd\r\n#systat stream  tcp   nowait   guest   /usr/sbin/tcpd /bin/ps -auwwx\r\n#netstat stream  tcp   nowait   guest   /usr/sbin/tcpd /bin/netstat  -f inet\r\n#\r\n# Authentication\r\n#\r\n#auth    stream  tcp  nowait  nobody  /usr/sbin/in.identd in.identd -l -e -o\r\n#linuxconf stream   tcp  wait   root   /bin/linuxconf linuxconf -http\r\n\r\n  大家看到的这个文件已经修改过的文件,除了telnet 和ftp服务,其他所有的服务都被禁止了.在修改了/etc/inetd.conf之后,使用命令kill -HUP (inetd的进程号),使inetd重新读取配置文件并重新启动即可.\r\n\r\n5. ip route的配置\r\n  利用linux,一台普通的微机也可以实现高性价比的路由器.首先让我们了解一下linux的查看路由信息的命令:\r\n  [root@ice /etc]# route -n\r\n  Kernel IP routing table\r\n  Destination    Gateway    Genmask     Flags Metric Ref   Use Iface\r\n  202.112.13.204  0.0.0.0    255.255.255.255 UH  0  0  0     eth0\r\n  202.117.48.43   0.0.0.0    255.255.255.255 UH  0  0  0     eth1\r\n  202.112.13.192  202.112.13.204 255.255.255.192 UG  0  0  0     eth0\r\n  202.112.13.192  0.0.0.0    255.255.255.192 U  0  0  0      eth0\r\n  202.117.48.0   202.117.48.43 255.255.255.0  UG  0  0  0     eth1\r\n  202.117.48.0   0.0.0.0     255.255.255.0  U  0  0  0     eth1\r\n  127.0.0.0    0.0.0.0     255.0.0.0     U  0  0  0     lo\r\n  0.0.0.0     202.117.48.1   0.0.0.0     UG  0  0  0     eth1\r\n  命令netstat -r n 得到输出结果和route -n是一样的.它们操作的都是linux 内核的路由表.\r\n  命令cat /proc/net/route的输出结果是以十六进制表示的路由表.\r\n[root@ice /etc]# cat /proc/net/route\r\nIface  Destination   Gateway  Flags  RefCnt  Use   Metric Mask\r\neth0  CC0D70CA     00000000 0005  0   0    0     FFFFFFF\r\neth1  2B3075CA     00000000 0005  0   0    0     FFFFFFF\r\neth0  C00D70CA     CC0D70CA 0003  0   0    0     C0FFFFF\r\neth0  C00D70CA     00000000 0001  0   0    0     C0FFFFF\r\neth1  003075CA     2B3075CA 0003  0   0    0     00FFFFF\r\neth1  003075CA     00000000 0001  0   0    0     00FFFFF\r\nlo   0000007F      00000000 0001  0   0    0    000000F\r\neth1   00000000      013075CA 0003  0  0    0     0000000\r\n  通过计算可以知道,下面的这个路由表(十六进制)和前面的路由表(十进制)是一致的.\r\n  我们还可以通过命令route add (del )来操作路由表,增加和删除路由信息.\r\n除了上面的静态路由,linux还可以通过routed来实现rip协议的动态路由.我们只需要打开linux的路由转发功能,在/proc/sys/net/ipv4/ip_forward文件中增加一个字符1.\r\n\r\n三.网络的安全设置\r\n\r\n  在这一部分,再次强调一定要修改/etc/inetd.conf,安全的策略是禁止所有不需要的服务.除此之外,还有以下几个文件和网络安全相关.\r\n\r\n  (1)./etc/ftpusers ftp服务是一个不太安全的服务,所以/etc/ftpusers限定了不允许通过ftp访问linux主机的用户列表.当一个ftp请求传送到 ftpd,ftpd首先检查用户名,如果用户名在/etc/ftpusers中,则ftpd将不会允许该用户继续连接.范例文件如下:\r\n\r\n# /etc/ftpusers - users not allowed to login via ftp\r\nroot\r\nbin\r\ndaemon\r\nadm\r\nlp\r\nsync\r\nshutdown\r\nhalt\r\nmail\r\nnews\r\nuucp\r\noperator\r\ngames\r\nnobody\r\nnadmin\r\n\r\n  (2)/etc/securetty 在linux系统中,总共有六个终端控制台,我们可以在/etc/securetty中设置哪个终端允许root登录,所有其他没有写入文件中的终端都不允许root登录.范例文件如下:\r\n\r\n# /etc/securetty - tty\'s on which root is allowed to login\r\ntty1\r\ntty2\r\ntty3\r\ntty4\r\n\r\n(3)tcpd的控制登录文件/etc/hosts.allow和/etc/hosts.deny\r\n  在tcpd服务进程中,通过在/etc/hosts.allow和/etc/hosts.deny中的访问控制规则来控制外部对linux主机的访问.它们的格式都是\r\n  service-list : hosts-list [ : command]\r\n  服务进程的名称 : 主机列表 可选,当规则满足时的操作\r\n  在主机表中可以使用域名或ip地址,ALL表示匹配所有项,EXCEPT表示除了某些项, PARANOID表示当ip地址和域名不匹配时(域名伪装)匹配该项.\r\n  范例文件如下:\r\n\r\n#\r\n# hosts.allow This file describes the names of the hosts which are\r\n# allowed to use the local INET services, as decided\r\n# by the \'/usr/sbin/tcpd\' server.\r\n#\r\nALL : 202.112.13.0/255.255.255.0\r\nftpd: 202.117.13.196\r\nin.telnetd: 202.117.48.33\r\nALL : 127.0.0.1\r\n\r\n  在这个文件中,网段202.112.13.0/24可以访问linux系统中所有的网络服务,主机202.117.13.196只能访问ftpd服务,主机202.117.48.33只能访问telnetd服务.本机自身可以访问所有网络服务.\r\n  在/etc/hosts.deny文件中禁止所有其他情况:\r\n  #/etc/hosts.deny\r\n  ALL : DENY : spawn (/usr/bin/finger -lp @%h | /bin/mail -s \"ort Denial noted in %d-%h\" root)\r\n\r\n  在/etc/hosts.allow中,定义了在所有其他情况下,linux所应该执行的操作.spawn选项允许linux系统在匹配规则中执行指定的shell命令,在我们的例子中,linux系统在发现无授权的访问时,将会发送给超级用户一封主题是\"ort Denial noted in %d-%h\"的邮件,在这里,我们先要介绍一下allow和deny文件中的变量扩展.\r\n\r\n  \r\n\r\n  (4)/etc/issue和/etc/issue.net\r\n  在我们登录linux系统中的时候,我们常常可以看到我们linux系统的版本号等敏感信息.在如今的网络攻击行为中,许多黑客首先要收集目标系统的信息,版本号等就是十分重要的信息,所以在linux系统中一般要把这些信息隐藏起来./etc/issue和/etc/issue.net就是存放这些信息的文件.我们可以修改这些文件来隐藏版本信息.\r\n另外,在每次linux重新启动的时候,都会在脚本/etc/rc.d/rc.local中再次覆盖上面那两个文件./etc/rc.d/rc.local文件的范例如下:\r\n\r\n# This script will be executed *after* all the other init scripts.\r\n# You can put your own initialization stuff in here if you don\'t\r\n# want to do the full Sys V style init stuff.\r\n\r\nif [ -f /etc/redhat-release ]; then\r\nR=$(cat /etc/redhat-release)\r\n\r\narch=$(uname -m)\r\na=\"a\"\r\ncase \"_$arch\" in\r\n_a*) a=\"an\";;\r\n_i*) a=\"an\";;\r\nesac\r\n\r\nNUMPROC=`egrep -c \"^cpu[0-9]+\" /proc/stat`\r\nif [ \"$NUMPROC\" -gt \"1\" ]; then\r\nSMP=\"$NUMPROC-processor \"\r\nif [ \"$NUMPROC\" = \"8\" -o \"$NUMPROC\" = \"11\" ]; then\r\na=\"an\"\r\nelse\r\na=\"a\"\r\nfi\r\nfi\r\n\r\n# This will overwrite /etc/issue at every boot. So, make any changes you\r\n# want to make to /etc/issue here or you will lose them when you reboot.\r\n#echo \"\" > /etc/issue\r\n#echo \"$R\" >> /etc/issue\r\n# echo \"Kernel $(uname -r) on $a $SMP$(uname -m)\" >> /etc/issue\r\n\r\ncp -f /etc/issue /etc/issue.net\r\necho >> /etc/issue\r\n\r\n  在文件中黑体的部分就是得到系统版本信息的地方.一定要将他们注释掉.\r\n\r\n  (5)其他配置\r\n  在普通微机中,都可以通过ctl+alt+del三键的组合来重新启动linux.这样是十分不安全的,所以要在    /etc/inittab文件中注释该功能:\r\n  # Trap CTRL-ALT-DELETE\r\n  #ca::ctrlaltdel:/sbin/shutdown -t3 -r now

论坛徽章:
0
2 [报告]
发表于 2007-09-18 08:20 |只看该作者
写的很好,不过有些地方看不懂呀
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP