网站首页

正确配置Linux中的IP,linux如何配置网络

26 7月 , 2019  

  向Linux爱好者介绍如何使用Linux下的IP Masquerade(简称IP
Masq)防火墙功能。使用IP
Masq可以实现NAT功能,这是网络防火墙的主要功能之一,用于中小型企、事业单位、居民生活小区通过单个注册的IP实现共享上网服务,特别是随着宽带网的普及,大量的用户需要使用Internet,为了解决IP地址短缺问题,使用Linux下的IP
Masq是一种较理想的解决方案。要实现Linux下的IP
Masq需要解决两个问题,即网络双网卡的正确安装和IP Masq的正确设置。   
  一、 Linux下双网卡的正确安装   
  1.设备环境
  ① IBM兼容PC机一台,IDE硬盘一块。
  ② Turbo Linux操作系统6.0。
  ③ 3Com ISA以太网卡3C509B-TPO两块。
  2.安装过程
  ①
在DOS系统下,使用3C509B网卡驱动程序中所带3c5x9cfg.exe调试程序配置、测试两块3Com
ISA网卡参数(主要是IRQ中断号和I/O内存地址),保证两块网卡能够正常运行。
  ② 在计算机系统中,安装Turbo
Linux操作系统,配置第一块网卡(IO=0x300),系统自动缺省识别网卡IOBASE=0x300,使用ping命令测试网卡状态。
  ③
为了减少启动时可能出现的问题,Linux内核不会自动检测多个网卡。若需要在服务器上安装多块网卡,对于已经将网卡的驱动编译进内核中的系统,则需要在“/etc/lilo.conf”文件中指定各个网卡的参数信息;
而对于没有将网卡的驱动编译到内核而是作为模块动态载入的系统,应该在“conf.modules”文件中进行相应的配置。
  ④
安装第二块网卡,在“/etc/lilo.conf”中增加配置信息,其方法是通过LILO程序将启动参数信息传递给内核。对于ISA卡,编辑“/etc/lilo.conf”文件,增加如下内容:ether=10,0×320,0,0,eth1。
  前四个参数是数字,最后一个参数是设备的名称。所有的数字变量都可以自由选择,如果用户忽略或是设置成0,那么核心会自动检测该设备的参数变量或使用默认值。第一个参数代表分配给设备的中断请求通道,默认情况下核心会自动检测设备的IRQ通道;
第二个参数变量用来指定设备的基本I/O地址,同样,如果这里是0,就意味着核心会自动检测该设备的I/O地址;剩下的两个参数变量对于不同的设备有不同的含义,对于共享内存的网卡,它们用来定义共享内存区域的起始点和结束点,对于其他网卡来说,它们使用第一个参数来设置信息的调试等级,数字1到7代表调试等级逐渐增加,而数字8表示关闭信息调试,0表示使用默认值。
  ⑤ 重新启动机器。
  ⑥
通过Turbonetcfg增加eth1,并配置该网卡网络参数,如IP地址、网关等。
⑦ 重新启动机器,使用ping命令测试网卡状态。
  ⑧ 通过Ifconfig命令显示Interface接口状态。
  
  二、 IP Masq的正确设置 
  
  1.检查Linux 系统内核是否支持IP Masq
  检查Linux系统内核是否支持IP
Masquerade。如果你手中的Linux版本支持如下特征:
  IPFWADM/IPCHAINS、IP forwarding 、IP masquerading 、IP Firewalling
  则你不需要重新编译Linux内核,如果你不太确信,可运行如下命令进行测试检查:
  # ls /proc/sys/net/ipv4
  如果如下文件存在,则Linux已支持IP
Masquerade:“ip_forward”、“ip_masq_debug”、“ip_masq_udp_dloose”、“ip_always_defrag”。
  2.为内网分配私网IP地址
  私网地址用于企业内部基于TCP/IP技术的联网需要,它由The Internet
Assigned Numbers Authority (IANA)分配,笔者采用了以下地址:
192.168.0.0/24。
  3.创建文件 /etc/rc.d/rc.firewall,编辑管理规则
  # rc.firewall – Initial SIMPLE IP Masquerade test for 2.1.x and
2.2.x kernels
  # FORWARD_IPV4=true
  echo “1” > /proc/sys/net/ipv4/ip_forward
  #CRITICAL: Enable automatic IP defragmenting since it is disabled
by default
  # in 2.2.x kernels. This used to be a compile-time option but the
behavior was changed in 2.2.12
  echo “1” > /proc/sys/net/ipv4/ip_always_defrag
  # MASQ timeouts 2 hrs timeout for TCP session timeouts
  # 10 sec timeout for traffic after the TCP/IP “FIN” packet is
received
  # 160 sec timeout for UDP traffic (Important for Masq ’ed ICQ
users)
  /sbin/ipchains -M -S 7200 10 160
  # Enable simple IP forwarding and Masquerading
  /sbin/ipchains -P forward DENY
  /sbin/ipchains -A forward -i eth0 -s 192.168.0.0/24 -j MASQ
  *注释 interface eth0为公网IP地址(Registered IP Address);
  编辑/etc/rc.d/rc.firewall文件的规则后,改变其文件权限为可执行如下命令:#
chmod 700 /etc/rc.d/rc.firewall。
  4.将Firewall加载到启动脚本中
  当Firewall规则指定完毕后,需要重新启动计算机系统。你可以手工运行,也可以在系统中修改系统启动脚本使其自动执行。
  手动的方式是在系统命令提示符下,执行如下命令:#/etc/rc.d/rc.firewall。
  编辑启动脚本的方法是在/etc/rc.d/init.d文件中增加如下内容:/etc/rc.d/rc.firewall。
运行IP Masq后,使用ping命令测试NAT的网络功能,检查IP
Masq是否正常运行。图片 1

    
要建立一个安全Linux服务器就首先要了解Linux环境下和网络服务相关的配置文件的含义及如何进行安全的配置。在Linux系统中,TCP/IP网络是通过若干个文本文件进行配置的,也许你需要编辑这些文件来完成联网工作,但是这些配置文件大都可以通过配置命令linuxconf(其中网络部分的配置可以通过netconf命令来实现)命令来实现。下面介绍基本的
TCP/IP网络配置文件。
  * /etc/conf.modules 文件
  该配置文件定义了各种需要在启动时加载的模块的参数信息。这里主要着重讨论关于网卡的配置。在使用Linux做网关的情况下,Linux服务器至少需要配置两块网卡。为了减少启动时可能出现的问题,Linux内核不会自动检测多个网卡。对于没有将网卡的驱动编译到内核而是作为模块动态载入的系统若需要安装多块网卡,应该在
“conf.modules”文件中进行相应的配置。
  若设备驱动被编译为模块(内核的模块):对于PCI设备,模块将自动检测到所有已经安装到系统上的设备;对于ISA卡,则需要向模块提供IO地址,以使模块知道在何处寻找该卡,这些信息在”/etc/conf.modules”中提供。
  例如,我们有两块ISA总线的3c509卡,一个IO地址是0x300,另一个是0x320。编辑”conf.modules”文件如下:
  alias eth0 3c509
  alias eth1 3c509
  options 3c509 io=0x300,0x320
  这是说明3c509的驱动程序应当分别以eth0或eth1的名称被加载(alias
eth0,eth1),并且它们应该以参数io=0x300,0x320被装载,来通知驱动程序到哪里去寻找网卡,其中0x是不可缺少的。
  对于PCI卡,仅仅需要alias命令来使ethN和适当的驱动模块名关联,PCI卡的IO地址将会被自动的检测到。对于PCI卡,编辑”conf.modules”文件如下:
  alias eth0 3c905
  alias eth1 3c905
  若驱动已经被编译进了内核:系统启动时的PCI检测程序将会自动找到所有相关的网卡。ISA卡一般也能够被自动检测到,但是在某些情况下,ISA卡仍然需要做下面的配置工作:
  在”/etc/lilo.conf”中增加配置信息,其方法是通过LILO程序将启动参数信息传递给内核。对于ISA卡,编辑”lilo.conf”文件,增加如下内容:
  append=” ether=”0,0,eth0 ether=”0,0,eth1″
  注:先不要在”lilo.conf”中加入启动参数,测试一下你的ISA卡,若失败再使用启动参数。
  如果用传递启动参数的方法,eth0和eth1将按照启动时被发现的顺序来设置。
  * /etc/HOSTNAME 文件
  该文件包含了系统的主机名称,包括完全的域名,如:deep.openarch.com。
  */etc/sysconfig/network-scripts/ifcfg-ethN
文件图片 2

Linux环境下网络服务器基础
要建立一个安全Linux服务器就首先要了解Linux环境下和网络服务相关的配置文件的含义及如何进行安全的配置。在Linux系统中,TCP/IP网络是通过若干个文本文件进行配置的,也许你需要编辑这些文件来完成联网工作,但是这些配置文件大都可以通过配置命令linuxconf
(其中网络部分的配置可以通过netconf命令来实现)。下面介绍基本的
TCP/IP网络配置文件。
    
     1./etc/conf.modules文件
    
    
该配置文件定义了各种需要在启动时加载的模块的参数信息。这里主要着重讨论关于网卡的配置。在使用Linux做网关的情况下,Linux服务器至少需要配置两块网卡。为了减少启动时可能出现的问题,Linux内核不会自动检测多个网卡。对于没有将网卡的驱动编译到内核而是作为模块动态载入的系统若需要安装多块网卡,应该在“conf.modules”文件中进行相应的配置。
    
   
若设备驱动被编译为模块(内核的模块):对于PCI设备,模块将自动检测到所有已经安装到系统上的设备;对于ISA卡,则需要向模块提供IO地址,以使模块知道在何处寻找该卡,这些信息在“/etc/conf.modules”中提供。
    
   
例如,我们有两块ISA总线的3c509卡,一个IO地址是0x300,另一个是0x320。编辑“conf.modules”文件如下:
    
     alias eth0 3c509
     alias eth1 3c509
     options 3c509 io=0x300,0x320
    
     这是说明3c509的驱动程序应当分别以eth0或eth1的名称被加载(alias
eth0,eth1),并且它们应该以参数io=0x300,0x320被装载,来通知驱动程序到哪里去寻找网卡,其中0x是不可缺少的。
    
   
对于PCI卡,仅仅需要alias命令来使ethN和适当的驱动模块名关联,PCI卡的IO地址将会被自动的检测到。对于PCI卡,编辑“conf.modules”文件如下:
    
     alias eth0 3c905
     alias eth1 3c905
    
   
若驱动已经被编译进了内核:系统启动时的PCI检测程序将会自动找到所有相关的网卡。ISA卡一般也能够被自动检测到,但是在某些情况下,ISA卡仍然需要做下面的配置工作:
    
   
在“/etc/lilo.conf”中增加配置信息,其方法是通过LILO程序将启动参数信息传递给内核。对于ISA卡,编辑“lilo.conf”文件,增加如下内容:
    
     append=” ether=”0,0,eth0 ether=”0,0,eth1″
    
   
注:先不要在“lilo.conf”中加入启动参数,测试一下你的ISA卡,若失败再使用启动参数。
    
   
如果用传递启动参数的方法,eth0和eth1将按照启动时被发现的顺序来设置。
    
    2./etc/HOSTNAME文件:
    
    该文件包含了系统的主机名称,包括完全的域名,如:
    
     deep.openarch.com
    
    3./etc/sysconfig/network-scripts/ifcfg-ethN文件:
    
   
在RedHat中,系统网络设备的配置文件保存在“/etc/sysconfig/network-scripts”目录下,ifcfg-eth0包含第一块网卡的配置信息,ifcfg-eth1包含第二块网卡的配置信息。
    
    下面是“/etc/sysconfig/network-scripts/ifcfg-eth0”文件的示例:
    
     DEVICE=eth0
     IPADDR=208.164.186.1
     NETMASK=255.255.255.0
     NETWORK=208.164.186.0
     BROADCAST=208.164.186.255
     ONBOOT=yes
     BOOTPROTO=none
     USERCTL=no
    
   
若希望手工修改网络地址或在新的接口上增加新的网络界面,可以通过修改对应的文件(ifcfg-ethN)或创建新的文件来实现。
    
    DEVICE=name name表示物理设备的名字
    
    IPADDR=addr addr表示赋给该卡的IP地址
    
    NETMASK=mask mask表示网络掩码
    
    NETWORK=addr addr表示网络地址
    
    BROADCAST=addr addr表示广播地址
    
    ONBOOT=yes/no 启动时是否激活该卡
    
    none:无须启动协议
    
    bootp:使用bootp协议
    
    dhcp:使用dhcp协议
    
    USERCTL=yes/no 是否允许非root用户控制该设备
图片 3


相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图