热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

linux网络服务器基础教程

文章标题:linux网络服务器基础教程。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

  要建立一个安全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文件:
  
  
    在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用户控制该设备
  
  /etc/resolv.conf文件:
  
  
    该文件是由域名解析器(resolver,一个根据主机名解析IP地址的库)使用的配置文件,示例如下:
  
  
  search openarch.com
  nameserver 208.164.186.1
  nameserver 208.164.186.2
  
    “search domainname.com”表示当提供了一个不包括完全域名的主机名时,在该主机名后添加domainname.com的后缀;“nameserver”表示解析域名时使用该地址指定的主机为域名服务器。其中域名服务器是按照文件中出现的顺序来查询的。
  
  /etc/host.conf文件:
  
    该文件指定如何解析主机名。Linux通过解析器库来获得主机名对应的IP地址。下面是一个“/etc/host.conf”的示例:
  
  order bind,hosts
  multi on
  ospoof on
  
  “order bind,hosts”指定主机名查询顺序,这里规定先使用DNS来解析域名,然后再查询“/etc/hosts”文件(也可以相反)。
  
  “multi on”指定是否“/etc/hosts”文件中指定的主机可以有多个地址,拥有多个IP地址的主机一般称为多穴主机。
  
  “nospoof on”指不允许对该服务器进行IP地址欺骗。IP欺骗是一种攻击系统安全的手段,通过把IP地址伪装成别的计算机,来取得其它计算机的信任。
  
  
  /etc/sysconfig/network文件
  
  
    该文件用来指定服务器上的网络配置信息,下面是一个示例:
  
  
  NETWORK=yes
  RORWARD_IPV4=yes
  HOSTNAME=deep.openarch.com
  GAREWAY=0.0.0.0
  GATEWAYDEV=
  NETWORK=yes/no 网络是否被配置;
  FORWARD_IPV4
  =yes/no 是否开启IP转发功能
  HOSTNAME=hostname hostname表示服务器的主机名
  GAREWAY=gw-ip gw-ip表示网络网关的IP地址
  GAREWAYDEV=gw-dev gw-dw表示网关的设备名,如:etho等
  
  注意:为了和老的软件相兼容,“/etc/HOSTNAME”文件应该用和HOSTNAME=hostname相同的主机名。
  
  /etc/hosts文件
  
    当机器启动时,在可以查询DNS以前,机器需要查询一些主机名到IP地址的匹配。这些匹配信息存放在/etc/hosts文件中。在没有域名服务器情况下,系统上的所有网络程序都通过查询该文件来解析对应于某个主机名的IP地址。
  
    下面是一个“/etc/hosts”文件的示例:
  
  IP Address Hostname Alias
  
  127.0.0.1 Localhost Gate.openarch.com
  
  208.164.186.1 gate.openarch.com Gate
  
  ………… ………… ………
  
    最左边一列是主机IP信息,中间一列是主机名。任何后面的列都是该主机的别名。一旦配置完机器的网络配置文件,应该重新启动网络以使修改生效。使用下面的命令来重新启动网络:/etc/rc.d/init.d/network restart
  /etc/inetd.conf文件
    众所周知,作为服务器来说,服务端口开放越多,系统安全稳定性越难以保证。所以提供特定服务的服务器应该尽可能开放提供服务必不可少的端口,而将与服务器服务无关的服务关闭,比如:一台作为www和ftp服务器的机器,应该只开放80 和25端口,而将其他无关的服务如:finger auth等服务关掉,以减少系统漏洞。
  
    而inetd,也叫作“超级服务器”,就是监视一些网络请求的守护进程,其根据网络请求来调用相应的服务进程来处理连接请求。inetd.conf则是inetd的配置文件。inetd.conf文件告诉inetd监听哪些网络端口,为每个端口启动哪个服务。在任何的网络环境中使用Linux系统,第一件要做的事就是了解一下服务器到底要提供哪些服务。不需要的那些服务应该被禁止掉,最好卸载掉,这样黑客就少了一些攻击系统的机会。查看“/etc/inetd.conf”文件,了解一下inetd提供哪些服务。用加上注释的方法(在一行的开头加上#号),禁止任何不需要的服务,再给inetd进程发一个SIGHUP信号。
  
  第一步:把文件的许可权限改成600。
  
  [root@deep]# chmod 600 /etc/inetd.conf
  
  第二步:确信文件的所有者是root。
  
  [root@deep]# stat /etc/inetd.conf
  
  第三步:编辑“inetd.conf”文件(vi /etc/inetd.conf),禁止所有不需要的服务,如:ftp、 telnet、 shell、 login、 exec、talk、ntalk、 imap、 pop-2、pop-3、finger、auth,等等。如果你觉得某些服务有用,可以不禁止这些服务。但是,把这些服务禁止掉,系统受攻击的可能性就会小很多。改变后的“inetd.conf”文件的内容如下面所示:
  
  # 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.ftpd -l -a
  #telnet stream tcp nowa
推荐阅读
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 概述H.323是由ITU制定的通信控制协议,用于在分组交换网中提供多媒体业务。呼叫控制是其中的重要组成部分,它可用来建立点到点的媒体会话和多点间媒体会议 ... [详细]
  • POCOCLibraies属于功能广泛、轻量级别的开源框架库,它拥有媲美Boost库的功能以及较小的体积广泛应用在物联网平台、工业自动化等领域。POCOCLibrai ... [详细]
  • Linux防火墙配置—允许转发
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 我一直都有记录信息的习惯,不知是从什么时候开始,大约是在工作后不久。如今还真有点庆幸从那时开始记了点东西,当然是电子版的,写 ... [详细]
  • UDP千兆以太网FPGA_verilog实现(四、代码前期准备UDP和IP协议构建)
    UDP:userDatagramprotocol用户数据报协议无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETFRFC76 ... [详细]
  • SQL Server 2008 到底需要使用哪些端口?
    SQLServer2008到底需要使用哪些端口?-下面就来介绍下SQLServer2008中使用的端口有哪些:  首先,最常用最常见的就是1433端口。这个是数据库引擎的端口,如果 ... [详细]
  • 三、寻找恶意IP并用iptables禁止掉找出恶意连接你的服务器80端口的IP,直接用iptables来drop掉它;这里建议写脚本来运行, ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • NFS文件共享系统
    1、概述:NFS(NetworkFileSystem)意为网络文件系统,它最大的功能就是可以通过网络,让不同的机器不同的操作系统可以共享 ... [详细]
author-avatar
Mdh-103_230
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有