第12章 TCP/IP网络
时间:2010-08-16 来源:zbhknightMJ
12.3端口
/etc/service这个文件里定义了“知名端口”,比如telnet是23等等
12.4 IP6地址 IPv6地址有128比特,前64位为网络号,后64位为主机号,下面是详细介绍 1-3 FP 格式前缀,地址类型,例如单播多播等 4-16 TLA ID 最高层的聚类ID,如主干ISP 17-24 RES 保留,供以后使用 25-48 NLA ID 下一层聚类ID,例如区域性ISP 49-64 SLA ID 站点层的聚类ID,如本地子网 65-128 INTERFACE ID 接口标识符
12.5 netstat命令 netstat -r 查看路由表 netstat -rn 避免作DNS查询 修改路由表需要用到route命令 route add -net 123.111.111.111 netmask 255.255.255.192 gw ..... eth0 添加一条路由 route add default gw .... eth0 添加一条默认路由
ICMP重定向 当一台路由器把一个包转发至一台计算机,而这台计算机却又在最初接收这个包的网络上的时候,就会出现明显的错误。ICMP重定向就是这台路由器告诉原来的主机修改原来错误的路由。ICMP重定向不包括身份验证,不安全,所以Linux内核和Cisco路由器都会忽略重定向包。
12.7 把名字映射到IP地址的最古老也最简单的方法是/etc/hosts文件。其实有时候翻墙的时候需要修改hosts文件。
ifconfig命令:配置网络接口 ifconfig -a 查看所有接口 ifconfig eth0 查看某个接口 ifconfig eth0 128.138.243.151 netmask 255.255.255.192 broadcast 128.138.243.191 up 配置接口的完整命令 某些广播地址之类的,默认的时候可以不用配置
mii-tool:配置自动协商和其他介质特有的选项 mii-tool -v eth0 查看这个接口介质参数,例如半双工之类的 mii-tool -force=100BaseTx-FD eth0 将其锁定在全双工模式
route:配置静态路由 route [op] [type] destination gw gateway [metric] [interface] op是选择增加add,还是删除del某条路由 type接受-net和-host这两个值,分别说明这条路由是到达一部主机还是一个网络,还有一个就是default route add default gw gateway 设置默认路由 可以修改配置文件来改变默认路由/etc/network/interface中的gateway,但我在自己的机子里面找不到这个gateway
配置DNS 要把一台主机设置成DNS客户机,只需要修改一两个文件就可以。所有的系统都要求修改/etc/resolv.conf 下面给出一个文件的实例: search cs.colorado.edu colorado.edu nameserver 111111 nameserver 222222 nameserver 333333 第一行是应该搜索的DNS域,后面是DNS服务器的地址,最多可以有3个
12.8 Debian和Ubuntu的网络配置文件主要有 /etc/hostname 主机名 /etc/network/interface IP地址,子网掩码,默认路由 /etc/network/option 下层网络选项(IP转发等) interface的实例: iface lo inet loopback iface eth0 inet static address 192.168.1.102 netmask 255.255.255.0 gateway 192.168.1.254 每个接口都会以iface开头,后面几行缩进,跟着的是IP地址,子网掩码和默认路由。 option文件能够在系统引导时设置某些联网变量。在默认情况下,Debian设置关闭IP转发(IP forwarding),打开欺骗保护(spoof protection),关闭cookie同步(syn cookies).
12.9DHCP:动态主机配置协议 一般使用ISC的DHCP软件。 为了配置DHCP服务器dhcpd,需要编辑来自server目录的dhcpd.conf样本文件,安装为/etc/dhcpd.conf。同时,还必须创建一个/var/db/dhcp.leases的空的租用数据库文件,确保dhcpd可以写这个文件。下面是dhcpd.conf的实例文件:
dhcpd在dhcpd.leases文件中记录各项出租事务,还会通过将这个文件重命名为dhcpd.leases~,再从它在的内存中的数据库重新创建dhcpd.conf文件这样的方法定期备份这个文件。如果中途崩溃,可以通过将dhcpd.leases~文件重命名为dhcpd.leases来恢复数据。 dhcp客户端的话,在目录/var/lib/dhcp下,保存着每个dhcp连接的状态。
12.10linux的动态重新配置和调整 linux没有提供一个普通配置文件供读取来设置内核和联网的特殊方式,而是把能调整的每个变量的表示都放在虚拟文件系统/proc下。联网变量都在目录/proc/sys/net/ipv4下: cd /proc/sys/net/ipv4; ls -F;
名字里带有rate和max的变量很多都可以防止发生DoS攻击。conf子目录包含的变量都是按接口来设置的。它包含目录all和default,还有每个接口的一个子目录。每个子目录都包含一组相同的文件。 neigh目录里也为每个接口包含一个子目录,每个子目录为那个接口管理arp表以及发现IPv6邻居。例如icmp_echo_ignore_broadcasts这个变量,决定主机是否忽略广播ping。设置为1之后就忽略: sudo sh -c "echo 1 > icmp_echo_ignore_broadcasts" 若要永久修改这些变量,可以把正确的变量添加到文件/etc/sysctl.conf里面。里面的文件格式为varibale=value。变量名是相对于/proc/sys的路径名,可以用.或者/。实例如下: net.ipv4.ip_forward=0 net/ipv4/ip_forward=0
12.11安全问题 IP转发,启用这个功能,主机就会变成一台路由器。 ICMP重定向,一般都禁用 源路由,源路由机制可以为发送至目的地址的包指定明确的一系列网关。源路由绕过了下一跳路由的算法。一般不接收也不发送源路由。 广播ping,一般忽略 IP欺骗,变量rp_filter能帮助检测IP欺骗包。rp代表反向路径,将这个变量设为1,如果某个接口上接收到的包和把它的源地址作为目的地址从这个接口上发出去的包不一样,就会丢弃。所以一般设置为1,除非这个网点有多条到Internet的链接。 几个有关的变量: IP转发 ipv4/ip_forward; ipv4/conf/interface/forward ICMP重定向 ipv4/conf/interface/accept_redirects 源路由 ipv4/conf/interface/accept_source_route 广播ping ipv4/icmp_echo_ignore_broadcasts
12.12Linux的NAT 若要NAT发挥作用,先把ipv4_forward设置为1,启动内核里的IP转发功能。此外还必须插入适当的内核模块: sudo modprobe iptable_nat sudo modprobe ip_conntrack sudo modprobe ip_conntrack_ftp 使用NAT路由分组的命令如下: sudo iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to 63.173.189.1 本例中,eth0是连接到Internet的接口,它的IP地址是--to的参数,接口eth1是连接内部网络的接口。
12.13PPP:点对点协议 除了Debian 之外,都默认带了PPP软件包,它使用一个pppd的守护进程,而且大多数配置文件都在目录/etc/ppp下 /usr/sbin/pppd ppp守护进程程序 /usr/sbin/chat 和调制解调器对话 /usr/sbin/pppstats 显示ppp链路的统计信息 /usr/sbin/pppdump 是ppp包称为可读的ASCII字符 /etc/ppp/options pppd的配置文件 /usr/bin/pon 启动一条ppp链接 /usr/bi/poff 关闭一条ppp链接 /usr/bin/plog 显示ppp-log末尾的内容 /usr/sbin/pppconfig 配置pppd /etc/ppp/peers/provider pon用于联系ISP的选项 /etc/chatscripts/provider pon用于和ISP对话的对话对话脚本
12.4 IP6地址 IPv6地址有128比特,前64位为网络号,后64位为主机号,下面是详细介绍 1-3 FP 格式前缀,地址类型,例如单播多播等 4-16 TLA ID 最高层的聚类ID,如主干ISP 17-24 RES 保留,供以后使用 25-48 NLA ID 下一层聚类ID,例如区域性ISP 49-64 SLA ID 站点层的聚类ID,如本地子网 65-128 INTERFACE ID 接口标识符
12.5 netstat命令 netstat -r 查看路由表 netstat -rn 避免作DNS查询 修改路由表需要用到route命令 route add -net 123.111.111.111 netmask 255.255.255.192 gw ..... eth0 添加一条路由 route add default gw .... eth0 添加一条默认路由
ICMP重定向 当一台路由器把一个包转发至一台计算机,而这台计算机却又在最初接收这个包的网络上的时候,就会出现明显的错误。ICMP重定向就是这台路由器告诉原来的主机修改原来错误的路由。ICMP重定向不包括身份验证,不安全,所以Linux内核和Cisco路由器都会忽略重定向包。
12.7 把名字映射到IP地址的最古老也最简单的方法是/etc/hosts文件。其实有时候翻墙的时候需要修改hosts文件。
ifconfig命令:配置网络接口 ifconfig -a 查看所有接口 ifconfig eth0 查看某个接口 ifconfig eth0 128.138.243.151 netmask 255.255.255.192 broadcast 128.138.243.191 up 配置接口的完整命令 某些广播地址之类的,默认的时候可以不用配置
mii-tool:配置自动协商和其他介质特有的选项 mii-tool -v eth0 查看这个接口介质参数,例如半双工之类的 mii-tool -force=100BaseTx-FD eth0 将其锁定在全双工模式
route:配置静态路由 route [op] [type] destination gw gateway [metric] [interface] op是选择增加add,还是删除del某条路由 type接受-net和-host这两个值,分别说明这条路由是到达一部主机还是一个网络,还有一个就是default route add default gw gateway 设置默认路由 可以修改配置文件来改变默认路由/etc/network/interface中的gateway,但我在自己的机子里面找不到这个gateway
配置DNS 要把一台主机设置成DNS客户机,只需要修改一两个文件就可以。所有的系统都要求修改/etc/resolv.conf 下面给出一个文件的实例: search cs.colorado.edu colorado.edu nameserver 111111 nameserver 222222 nameserver 333333 第一行是应该搜索的DNS域,后面是DNS服务器的地址,最多可以有3个
12.8 Debian和Ubuntu的网络配置文件主要有 /etc/hostname 主机名 /etc/network/interface IP地址,子网掩码,默认路由 /etc/network/option 下层网络选项(IP转发等) interface的实例: iface lo inet loopback iface eth0 inet static address 192.168.1.102 netmask 255.255.255.0 gateway 192.168.1.254 每个接口都会以iface开头,后面几行缩进,跟着的是IP地址,子网掩码和默认路由。 option文件能够在系统引导时设置某些联网变量。在默认情况下,Debian设置关闭IP转发(IP forwarding),打开欺骗保护(spoof protection),关闭cookie同步(syn cookies).
12.9DHCP:动态主机配置协议 一般使用ISC的DHCP软件。 为了配置DHCP服务器dhcpd,需要编辑来自server目录的dhcpd.conf样本文件,安装为/etc/dhcpd.conf。同时,还必须创建一个/var/db/dhcp.leases的空的租用数据库文件,确保dhcpd可以写这个文件。下面是dhcpd.conf的实例文件:
dhcpd在dhcpd.leases文件中记录各项出租事务,还会通过将这个文件重命名为dhcpd.leases~,再从它在的内存中的数据库重新创建dhcpd.conf文件这样的方法定期备份这个文件。如果中途崩溃,可以通过将dhcpd.leases~文件重命名为dhcpd.leases来恢复数据。 dhcp客户端的话,在目录/var/lib/dhcp下,保存着每个dhcp连接的状态。
12.10linux的动态重新配置和调整 linux没有提供一个普通配置文件供读取来设置内核和联网的特殊方式,而是把能调整的每个变量的表示都放在虚拟文件系统/proc下。联网变量都在目录/proc/sys/net/ipv4下: cd /proc/sys/net/ipv4; ls -F;
名字里带有rate和max的变量很多都可以防止发生DoS攻击。conf子目录包含的变量都是按接口来设置的。它包含目录all和default,还有每个接口的一个子目录。每个子目录都包含一组相同的文件。 neigh目录里也为每个接口包含一个子目录,每个子目录为那个接口管理arp表以及发现IPv6邻居。例如icmp_echo_ignore_broadcasts这个变量,决定主机是否忽略广播ping。设置为1之后就忽略: sudo sh -c "echo 1 > icmp_echo_ignore_broadcasts" 若要永久修改这些变量,可以把正确的变量添加到文件/etc/sysctl.conf里面。里面的文件格式为varibale=value。变量名是相对于/proc/sys的路径名,可以用.或者/。实例如下: net.ipv4.ip_forward=0 net/ipv4/ip_forward=0
12.11安全问题 IP转发,启用这个功能,主机就会变成一台路由器。 ICMP重定向,一般都禁用 源路由,源路由机制可以为发送至目的地址的包指定明确的一系列网关。源路由绕过了下一跳路由的算法。一般不接收也不发送源路由。 广播ping,一般忽略 IP欺骗,变量rp_filter能帮助检测IP欺骗包。rp代表反向路径,将这个变量设为1,如果某个接口上接收到的包和把它的源地址作为目的地址从这个接口上发出去的包不一样,就会丢弃。所以一般设置为1,除非这个网点有多条到Internet的链接。 几个有关的变量: IP转发 ipv4/ip_forward; ipv4/conf/interface/forward ICMP重定向 ipv4/conf/interface/accept_redirects 源路由 ipv4/conf/interface/accept_source_route 广播ping ipv4/icmp_echo_ignore_broadcasts
12.12Linux的NAT 若要NAT发挥作用,先把ipv4_forward设置为1,启动内核里的IP转发功能。此外还必须插入适当的内核模块: sudo modprobe iptable_nat sudo modprobe ip_conntrack sudo modprobe ip_conntrack_ftp 使用NAT路由分组的命令如下: sudo iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to 63.173.189.1 本例中,eth0是连接到Internet的接口,它的IP地址是--to的参数,接口eth1是连接内部网络的接口。
12.13PPP:点对点协议 除了Debian 之外,都默认带了PPP软件包,它使用一个pppd的守护进程,而且大多数配置文件都在目录/etc/ppp下 /usr/sbin/pppd ppp守护进程程序 /usr/sbin/chat 和调制解调器对话 /usr/sbin/pppstats 显示ppp链路的统计信息 /usr/sbin/pppdump 是ppp包称为可读的ASCII字符 /etc/ppp/options pppd的配置文件 /usr/bin/pon 启动一条ppp链接 /usr/bi/poff 关闭一条ppp链接 /usr/bin/plog 显示ppp-log末尾的内容 /usr/sbin/pppconfig 配置pppd /etc/ppp/peers/provider pon用于联系ISP的选项 /etc/chatscripts/provider pon用于和ISP对话的对话对话脚本
相关阅读 更多 +