560 likes | 754 Views
第 7 章 Linux 网络管理. 计算机学院 潘 薇 panwei117@qq.com. Linux 操作系统作为网络操作系统,最主要的功能就是提供各种网络服务 TCP/IP 协议是 Linux 缺省支持的协议。 Linux 网络管理主要包括配置 TCP/IP 、提供的 TCP/IP 应用服务和 TCP/IP 接口管理。. 7.1 配置 TCP/IP 网络 7.2 配置 TCP/IP 应用服务 7.3 TCP/IP 接口管理. 本章要点. 7.1 配置 TCP/IP 网络.
E N D
第7章 Linux网络管理 计算机学院 潘 薇 panwei117@qq.com
Linux操作系统作为网络操作系统,最主要的功能就是提供各种网络服务Linux操作系统作为网络操作系统,最主要的功能就是提供各种网络服务 • TCP/IP协议是Linux缺省支持的协议。 • Linux网络管理主要包括配置TCP/IP、提供的TCP/IP应用服务和TCP/IP接口管理。
7.1 配置TCP/IP网络 7.2 配置TCP/IP应用服务 7.3 TCP/IP接口管理 本章要点
ifconfig命令用于指定以太网端口参数,即与网卡有关的IP地址、子网掩码和网关信息等参数。ifconfig命令用于指定以太网端口参数,即与网卡有关的IP地址、子网掩码和网关信息等参数。 该配置方法需要系统管理员权限,配置后即刻生效,但是,在关机重新启动后配置的信息失效。 该命令的格式为: ifconfig 以太网端口号 IP地址 掩码 例 配置IP地址为192.168.1.222,掩码为255.255.255.0 # ifconfig eth0 192.168.1.222 netmask 255.255.255.0 7.1 配置 TCP/IP 网络
7.1 配置 TCP/IP 网络 route命令用于添加和删除网关 该命令的格式为:route (add|delete) [host|net] destination [gw gateway] [metric count] 其中选项和参数为: add:增加(默认)网关。 delete:删除(默认)网关。 net:指出目标为一个网络。当目标地址为一个网络地址时使用这个参数。 host:指定目标为一个主机。
7.1 配置 TCP/IP 网络 destination:指出数据包会被发送到的主机或网络的IP地址。destination可以为一个主机名,一个网络名,一个Internet地址,或者关键词“default”。 如果指定了“default”关键词,默认的网关条目会变为gateway。如果数据包的目标地址与路由表中的任何一个地址都不匹配,就会被送到gateway指定的地址。 gateway:指出到达目标需要通过的网关节点。这个地址必须是IP地址或者一个主机名。
7.1 配置 TCP/IP 网络 count:是一个整数,指明到达目的地址可以经过多少个路由器。 route命令同ifconfig命令一样,需要系统管理员权限,当系统重新启动后所作的修改就不生效。 例1:增加一条到主机(201.42.15.199)的路由,网关为11.11.2.5: #route add -host 201.42.15.199 gw 11.11.2.5
7.1 配置 TCP/IP 网络 例2:增加一条到网络(202.48.15.0)路由,网关为11.11.2.9: #route add -net 202.48.15.0 netmask 255.255.255.0 gw 11.11.2.9 例3:增加一条默认路由,默认网关为11.121.2.1: #route add default gw 11.121.2.1
7.1 配置 TCP/IP 网络 • 例4:分别删除前面增加的三条路由: • #route del –host 201.42.15.199 gw 11.11.2.5 • #route del -net 202.48.15.0 netmask 255.255.255.0 gw 11.11.2.9 • #route delete default gw 11.11.2.1
7.1 配置 TCP/IP 网络 用命令route flush可以刷新内核路由选择表中所有的静态、动态路由 #route flush default 201.42.15.199 done e30 loopback done #
7.1 配置 TCP/IP 网络 在Linux系统文件/etc/sysconfig/network-scripts/ifcfg-eth0中包含有网卡的配置信息,可以通过修改该文件信息达到配置IP地址、掩码和路由信息的目的。
7.1 配置 TCP/IP 网络 该文件的模板如下: DEVICE=eth0 BOOTPROTO=none HWADDR=00:4E:5D:6F:E9:47 ONBOOT=yes TYPE=Ethernet NETMASK=255.255.255.0 IPADDR=163.8.101.155 USERCTL=no PEERDNS=yes GATEWAY=163.8.101.254 IPV6INIT=no
7.1 配置 TCP/IP 网络 文件中IPADDR为IP地址设置 NETMASK为子网掩码设置 GATEWAY为网关设置。 当对该文件修改成功并保存后,需要用命令/etc/init.d/network reload 或/sbin/service network restart重新加载该文件,则所作的修改即刻生效,并且关机重新引导后设置的这些信息仍然生效。
7.2 配置 TCP/IP 应用服务 在Linux提供的TCP/IP应用服务主要包括: Web服务(http服务) DNS服务(域名服务) Telnet服务(远程登录) FTP服务(远程文件传输) SMTP服务(简单邮件传输协议) SNMP(简单网络管理协议) ICMP(Internet控制信息协议) 作为网络服务器,Linux系统需要配置一系列系统文件。
7.2 配置 TCP/IP 应用服务 /etc/sysconfig/network用于指定主机的名称 /etc/sysconfig/network显示系统的主机名称,即完全的域名,如:pridna.siwor.com
7.2 配置 TCP/IP 应用服务 Linux所提供的网络服务都是由进程inetd控制,该进程是监视网络请求的守护进程,根据网络请求来调用相应的服务进程来处理请求,该进程也被称为“超级服务器”。 系统进程inetd对应的系统文件为/etc/inetd.conf。所以,Linux提供的服务由文件/etc/inetd.conf来决定。 文件inetd.conf告诉进程inetd监听哪些网络端口,为每个端口启动相应的服务。 比较新版本的linux用文件/etc/xinetd.conf。
7.2 配置 TCP/IP 应用服务 /etc/hosts文件中包含有主机名到IP地址的映射表。 当作为域名解析服务器时,通过系统上的所有网络程序都通过查询该文件来解析某个主机名对应的IP地址。 只有超级用户才有权修改该文件。
7.2 配置 TCP/IP 应用服务 该文件的模板如下: # Internet host table 127.0.0.1 localhost 11.23.2.45 mailsvr2adm loghost 11.10.1.45 mailcls2 212.89.114.122 mailsvr2 212.88.114.1 router 11.23.2.98 catng 11.23.2.99 storsv 11.23.2.44 mailsvr1adm 212.88.214.123 mailsvr1 212.88.214.126 mailsvr2v
7.2 配置 TCP/IP 应用服务 一个IP地址可以对应多个主机名,第一个是正式主机名,后面的是别名。 第一行localhost是本地主机项,是配置在机器中的回送网络接口,用于允许主机上运行的客户/服务器应用相互通信,不能修改或删除。 从文件中可以看到IP地址11.23.2.45对应的主机名是mailsvr2adm和loghost。 虽然loghost是别名,但是必须在该文件中定义,这是系统进程syslogd要求的。
7.2 配置 TCP/IP 应用服务 • 系统进程syslogd主要负责为系统作日志,将消息发给名为loghosts的主机,主机在日志文件/var/adm/messages中记录消息内容。 • 当某台主机的IP地址或域名变化后,必须通知相应的域名服务器修改该文件。
7.2 配置 TCP/IP 应用服务 在需要域名解析时,用域名服务器(DNS)作为文件/etc/hosts中主机的域,同时还要查找文件resolv.conf,因为该文件指定网络上的域名服务器。 文件resolv.conf的格式为: domain siwor.com nameserver1 10.75.12.110 nameserver2 10.75.12.200 nameserver2 10.75.12.103
7.2 配置 TCP/IP 应用服务 文件第一行表示主机所在的域,即默认值,为siwor.com。域中任何用户主机名解析的结果均会加上siwor.com。 如某一个用户主机名为pridna,则解析后为pridna.siwor.com。 通常会配置两个服务器做域名解析,一个为主,另一个为辅。按顺序依次查询。
7.2 配置 TCP/IP 应用服务 Linux通过/etc/hosts来获得主机名对应的IP地址,但是文件/etc/host.conf用于指定如何解析主机名。 下面是一个“/etc/host.conf”的模板: order bind,hosts multi on nospoof on
7.2 配置 TCP/IP 应用服务 文件中第一行“order bind,hosts”指定主机名查询顺序,这里规定先使用DNS来解析域名,然后再查询“/etc/hosts”文件(也可以相反)。 第二行“multi on”指定是否“/etc/hosts”文件中指定的主机可以有多个地址,拥有多个IP地址的主机一般称为多穴主机。 第三行“nospoof on”指不允许对该服务器进行IP地址欺骗。IP欺骗是一种攻击系统安全的手段,通过把IP地址伪装成别的计算机,来取得其它计算机的信任。
7.2 配置 TCP/IP 应用服务 文件/etc/sysconfig/network用来指定服务器上的网络配置信息。 下面是该文件的一个模板: NETWORK=yes/no FORWARD_IPV4=yes/no HOSTNAME=hostname GAREWAY=gw-ip GAREWAYDEV=gw-dev
7.2 配置 TCP/IP 应用服务 其中: NETWORK:表示网络是否被配置; FORWARD_IPV4:表示是否开启IP转发功能; HOSTNAME:表示服务器的主机名,此处应该与/etc/hostname和/etc/hosts等文件中的主机名相同; GAREWAY:表示网络网关的IP地址; GAREWAYDEV:表示网关设备名,如:etho等。
7.2 配置 TCP/IP 应用服务 /etc/services文件用于指出本系统所包含的TCP服务名、TCP端口号和用于连接服务器的TCP协议清单。 该文件在每一台主机上都存在,使得服务器和客户端的程序能够把服务的名字转成端口号,TCP端口号在协议RFC 1700中有详细的定义。 为了提高安全性,可以给这个文件加上保护以避免没有经过授权的删除和改变。
7.2 配置 TCP/IP 应用服务 下面是该文件的一个模板: # # tcp services. Sockets and so on echo 7/udp echo 7/tcp discard 9/udp sink null discard 9/udp sink null systat 11/tcp daytime 13/udp daytime 13/tcp netstat 15/
7.2 配置 TCP/IP 应用服务 tcp ftp data 20/tcp ftp 22/tcp telnet 23/tcp smtp 25/tcp time 37/tcp time 397/udp name 42/udp whois 43/udp domain 53/udp hostname 101/tcp
7.2 配置 TCP/IP 应用服务 文件/etc/securetty用于超级用户(root)登录系统时,配合登录程序“/bin/login”验证超级用户是否从允许规定的终端(TTY)设备登录。 该文件的一个模板如下: tty1 #tty2 #tty3 #tty4 在该文件中列出来的tty设备都是允许登录的,注释掉或是在这个文件中不存在的都是不允许超级用户登录的。
7.2 配置 TCP/IP 应用服务 文件/etc/hosts.deny和/etc/hosts.allow用于指定哪些主机不可以使用的服务和可以使用的服务。 当某一主机的服务请求到达服务器时,TCP wrapper就按照下列顺序查询服务器的这两个文件,直到遇到一个匹配为止:
7.2 配置 TCP/IP 应用服务 1.当在/etc/hosts.allow里面有一项与请求服务的主机地址项匹配,那么就允许该主机获取该服务; 2.否则,如果在/etc/hosts.deny里面有一项与请求服务的主机地址项匹配,就禁止该主机使用该项服务; 3.如果相应的配置文件不存在,访问控制软件就认为是一个空文件,允许所有的主机。 因此,可以通过删除或者移走这两个文件实现清除所有设置。
7.2 配置 TCP/IP 应用服务 配置这两个文件是通过一种简单的访问控制语言来实现的 访问控制语句的基本格式为: 程序名列表:主机名/IP地址列表。 程序名列表指定一个或者多个提供相应服务的程序的名字,名字之间用逗号或者空格分割。 主机名/IP地址列表指定允许或者禁止使用该服务的一个或者多个主机的标识,主机名之间用逗号或空格分隔。
7.2 配置 TCP/IP 应用服务 程序名和主机地址都可以使用通配符,实现方便的指定多项服务和多个主机。如: 1.一个以“.”起始的域名串,如 .pridna.siwor.com,那么www.pridna.siwor.com就和这一项匹配 2.以“.”结尾的IP串如 202.115.152. 那么IP地址包括202.115.152. 的主机都与这一项匹配 3.格式为n.n.n.n/m.m.m.m表示网络/掩码,如果请求服务的主机的IP地址与掩码的位与的结果等于n.n.n.n 那么该主机与该项匹配
7.2 配置 TCP/IP 应用服务 4.EXPECT表示除去后面所定义的主机。如:list_1 EXCEPT list_2,表示list_1主机列表中除去List_2所列出的主机 5.LOCAL表示匹配所有主机名中不包含“.”的主机 6.ALL表示匹配所有可能性。
7.3 TCP/IP接口管理 在Linux系统中,如果安装有多个网卡,则有多个网络接口,每个接口在系统中都有一个接口号(接口名)。 常用于以太网的接口名有eth,如以太网端口0的接口名为eth0。 用命令ifconfig 查看网络接口参数。
7.3 TCP/IP接口管理 用命令ifconfig带参数a可以查看所有网络接口参数。 #ifconfig –a eth0: flags=849<UP,LOOPBACK,RUNNING,MULTICAST> mtu 8232 inet 127.0.0.1 netmask ff000000 ge0: flags=863<UP,BROADCAST,NOTRAILERS,RUNNING,MULTICAST> mtu 1500 inet 192.168.2.1 netmask 255.255.255.0 broadcast 192.168.2.255 #
7.3 TCP/IP接口管理 命令ifconfig –a输出行中: 最左面的为接口号(接口名),如eth0。 LOOPBACK表示该接口是机器的回送接口。 BROADCAST表示接口正在发送和接收广播。 RUNNING表示网卡驱动程序和流模块正在运行。 MULTICAST表示接口支持多目广播预约。 UP表示接口在线。 inet、netmask、broadcast后分别是接口的IP地址、掩码和广播地址。 mtu是数据链路接口的最大传输单元。
7.3 TCP/IP接口管理 命令ifconfig可以立刻改变网络接口参数,但系统重新引导后所修改的网络接口参数不再生效。要长期生效必须修改配置文件。 命令格式:ifconfig interface-name para 例:设置接口eth0的IP地址为212.98.312.23,掩码为255.255.255.168,在线。 #ifconfig eth0 inet 212.98.312.23 netmask 255.255.255.168 up 使接口eth0离线: #ifconfig ge0 down
7.3 TCP/IP接口管理 命令netstat -a用于查看网络连接状态,输出信息非常丰富。 $netstat -a Active Internet connections (including servers) Proto Recv-Q Send-Q Local Address Foreign Address (state) tcp4 0 2 ibm.telnet 211.115.48.225.1487 ESTABLISHED tcp4 0 0 *.www *.* LISTEN tcp4 0 0 localhost.49213 *.* LISTEN tcp4 0 0 *.smux *.* LISTEN tcp4 0 0 *.dtspc *.* LISTEN tcp4 0 0 *.32770 *.* LISTEN
7.3 TCP/IP接口管理 tcp4 0 0 *.time *.* LISTEN tcp4 0 0 *.daytime *.* LISTEN tcp4 0 0 *.chargen *.* LISTEN tcp4 0 0 *.discard *.* LISTEN tcp4 0 0 *.echo *.* LISTEN tcp 0 0 *.exec *.* LISTEN tcp4 0 0 *.klogin *.* LISTEN tcp 0 0 *.login *.* LISTEN tcp4 0 0 *.kshell *.* LISTEN tcp 0 0 *.shell *.* LISTEN tcp 0 0 *.telnet *.* LISTEN
7.3 TCP/IP接口管理 tcp 0 0 *.ftp *.* LISTEN tcp4 0 0 *.sunrpc *.* LISTEN tcp4 0 0 *.6000 *.* LISTEN tcp4 0 0 *.32768 *.* LISTEN udp4 0 0 *.snmp *.* udp4 0 0 *.32788 *.* udp4 0 0 *.time *.* udp4 0 0 *.daytime *.* Active Linux domain sockets SADR/PCB Type Recv-Q Send-Q Inode Conn Refs Nextref Addr 7005d400 dgram 0 0 13398640 0 0 0 /dev/SRC 70057fc0
7.3 TCP/IP接口管理 7004c200 dgram 0 0 1357e8a0 0 0 0 /dev/.SRC-unix /SRCVjcBMc 70057d40 7004f800 dgram 0 0 0 70057f80 0 70057f00 70057d80 7004a600 dgram 0 0 13039680 0 0 0 /dev/.SRC-unix /SRC_lcBMd 70057d00 # 可见,命令netstat –a的输出分为UDP、TCP和激活UNIX域的套接字三个部分。
7.3 TCP/IP接口管理 在UDP输出中 Local Address是所连主机的IP地址或名称、正在使用的端口号或服务名,“*”表示有一个驻守进程在监听端口,但没有建立连接。 State表示连接的状态,有Idle(空闲)、Unbound(非捆绑)。
7.3 TCP/IP接口管理 在TCP输出中 Local Address是所连主机的IP地址或名称、正在使用的端口号或服务名,“*”表示有一个驻守进程在监听端口,但没有建立连接。 Foreign Address是远程主机的IP地址或名称、端口号或服务名,“*”表示IP地址或名称不详。 State表示连接的状态,有: BOUND(捆绑) UNBOUND(非捆绑) IDLE(闲置状态)
7.3 TCP/IP接口管理 CLOSED(套接字不在使用) LISTEN(监听进入连接) SYN_SENT(激活尝试建立连接) SYN_RECEIVED(正在进行连接的初始化同步) ESTABLISHED(建立连接) CLOSED_WAIT(远程连接关闭并等待关闭套接字) FIN_WAIT_1(套接字关闭并且正在关闭连接) LAST_ACK(正在等待上一个应答) FIN_WAIT_2(套接字关闭正在等待远程主机关闭)
7.3 TCP/IP接口管理 命令netstat –i显示主机每个接口的统计信息。 $ netstat –I Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll eth0 16896 link#1 374 0 2682 0 0 eth0 16896 127 localhost 374 0 2682 0 0 eth0 16896 ::1 374 0 2682 0 0 en0 1500 link#2 8.0.5a.fc.c2.57 20013029 0 3444802 0 0 en0 1500 202.115.48. ibmtc 20013029 0 3444802 0 0