2018-Linux系统基础-linux-11-linux网络基本配置

linux网络基本配置

  1. 想要完成网络配置工作,可以修改相应的配置文件、使用网络命令以及通过图形界面进行设置。
  2. 要管理网络服务,可以使用配置工具、ntsysv命令以及chkconfig和service命令来启动和停止服务。

1. Linux网络配置文件

1.1. /etc/sysconfig/network-scripts/ifcfg-eth0文件

  1. ifcfg-eth(i)包含第(i+1)块网卡的配置信息
  2. ifcfg-lo包含回路IP地址信息
  3. 可以为BOOTPROTO设置四种选项:
    1. none:无需启动协议
    2. bootp:使用bootp歇息
    3. dhcp:使用dhcp协议动态获取IP地址
    4. static:手工设置静态IP地址

1.2. /etc/resolv.conf文件

  1. 由域名配置器使用的配置文件
  2. 文件内容:
    1. search:表示DNS搜索路径,即解析不完整名称时默认的附加域名后缀,这样可以在解析名称时用简单的主机名而不是完全合格域名(FQDN)
    2. nameserver:表示解析域名时使用该地址指定的主机为域名服务器,多个域名服务器按文本顺序进行查询

1.3. /etc/host.conf文件

  1. 指定如何解析主机名
  2. 文件包含的内容:
    1. order bind,hosts:指定主机名查询顺序,优先使用DNS来解析域名,然后查询/etc/hosts文件
    2. multi on:表示指定的主机是否可以有多个地址,拥有多个IP地址的主机一般称为多穴主机
    3. nospoof on:表示不允许对该服务器进行IP地址欺骗

1.4. /etc/sysconfig/network文件

  1. 用来指定服务器上的网络配置信息。

1.5. /etc/hosts文件

  1. 计算机启动前,在查询DNS之前,计算机需要一些主机名到IP地址的匹配
  2. 文件内容:
    1. 最左边:计算机IP地址
    2. 中间一列:主机名
    3. 最后面的列:该主机的别名
  3. 修改需要重启

1.6. /etc/services文件

  1. 定义了Linux系统中所有服务的名称、协议类型、服务的接口等信息。
  2. 文件内容:
    1. 服务名称
    2. 端口/协议
    3. 别名
    4. 注释

2. Linux网络命令

2.1. traceroute

  1. 显示数据包到目标主机之间的路径
  2. 命令语法:traceroute [-dFlnrvx][-f <存活数值>][-g <网关>...][-i <网络界面>][-m <存活数值>][-p<通信端口>][-s<来源地址>][-t<服务类型>][-w<超时秒数>][主机名称或IP地址][数据包大小]
  3. 参数含义:
    1. -d:开启调试功能
    2. -F:设置勿离断位
    3. -g:设置来源路由网关,最多8个
    4. -I:使用ICMP回应取代UDP资格信息
    5. -m:设置跳点数
    6. -n:直接使用IP地址而非主机名称
    7. -p:设置UDP传输协议的通信端口
    8. -r:忽略普通的Routing Tabl路由表,直接将数据包送到远端主机上
    9. -s:忽略本地主机送出数据包的IP地址
    10. -t:设置检测数据包的TOS数值
    11. -v:详细显示指令的执行过程
    12. -w:设置等待远端主机回应的时间
    13. -x:开启或关闭数据包的正确性检验

2.2. ifconfig

  1. 显示或设置计算机网卡的IP地址
  2. 命令语法:ifconfig[网络设置][down up -allmulti -arp -promisc][add<地址>][del<地址>][<硬件地址>][mtu<字节>][netmask<子网掩码>][IP地址]
  3. 参数含义:
    1. add:设置网络设备IPv6的IP地址
    2. del:删除网络设置IPv6的IP地址
    3. down:关闭指定的网络设置
    4. metric:指定在计算数据包的转送次数时,所要加上的数目
    5. mtu:设置网络设备的最大传输单元(MTU)
    6. netmask:设置网络设备的子网掩码
    7. up:启动指定的网络设备
  4. 查看所有网卡网络配置:ifconfig

2.3. ping

  1. 用于测试与目标计算机之间的连通性
  2. 命令语法:ping 【-dfnqrRv][-c<完成次数>][-i<间隔秒数>][-I<网络界面>][-l<前置载入>][-p<范本样式>][-s<数据包大小>][-t<存活数值>][主机名称或IP地址]
  3. 参数含义:
    1. -d:使用Socket的SO_DEBUG功能
    2. -c:设置完成要求回应的次数
    3. -i:指定发送信息的间隔时间
    4. -n:只输出数值
    5. -s:设置数据包的大小
    6. -t:设置存活数据TTL的大小

2.4. netstart

  1. 用于显示状态的信息
  2. 命令语法:netstart [-acCeFghilMnNoprstuvVwx][-A][--ip]
  3. 参数含义
    1. -a:显示所有连线中的套接口
    2. -i:显示网络界面信息表单
    3. -l:显示监控中的服务器的Socket
    4. -M:显示伪装的网络连线
    5. -n:直接显示IP地址,而不通过域名服务器
    6. -N:显示网络硬件外围设备的符号连接名称
    7. -p:显示正在使用Socket的程序识别码和程序名称
    8. -r:显示路由器
    9. -s:显示网络工作信息统计表
    10. -t:显示TCP传输协议的连线状况
    11. -u:显示UDP传输协议尚的连线状况

2.5. arp

  1. 用于增加、删除和显示arp缓存
  2. 命令语法:
    1. arp -a用于查看高速缓存中的所有arp缓存信息
    2. arp -a [IP地址]如果有多个网卡,只显示相关网卡
    3. arp -s [IP地址][物理地址]可以向arp高速缓存中手工输入一个静态信息
    4. arp -d [IP地址]手工删除一个静态arp缓存信息
  3. 参数属性:
    1. -a:为指定主机显示当前的ARP缓存信息
    2. -d:删除一个arp缓存信息
    3. -s:创建一个arp缓存信息

2.6. tcpdump

  1. 可以监视TCP/IP连接,并直接读取数据链路程的数据包头,可以指定数据包被监视以及哪些控制要显示格式。
  2. 命令语法:tcpdump[-adeflnNOpqStvx][-c<数据包数目>][-dd][-ddd][-F<表达文件>][-i<网络界面>][-r<数据包文件>][-s<数据包大小>][-tt][-T<数据包类型>][-vv][-w<数据包文件>][输出数据栏位]
  3. 参数格式:图片

3. 图形界面配置界面

  1. 使用"网络配置"工具可以用来计算机的IP地址等
  2. 系统=>管理=>网络
  3. 选择网卡:右击选择"编辑",进入可以激活等

4. 管理网络服务

启动或停止某些服务的三种方式:

  1. 服务配置工具:
  2. ntsysv:
  3. chkconfig和service命令:

4.1. 服务配置工具

  1. 服务配置是图形化应用程序,用来配置在系统引导时要启动/etc/rc.d/init.d目录中的服务以及受xinted管理的服务,它允许用户启动、停止和重新启动服务。
  2. 进入方式:系统=>管理=>服务,或者在图形界面输入命令system-config-services
  3. "服务配置"界面显示当前级别以及目前正在编辑的运行级别。
  4. 灵活使用按钮和横向菜单栏的相关属性

4.2. ntsysv命令

  1. 可以配置让服务在系统启动时自动启动或停止
  2. 配置不同的运行级别:--level(many level)
  3. *表示某服务为启动状态

4.3. chkconfig和service命令

  1. 在linux系统下使用chkconfig和service命令来控制服务的启动、停止和重新启动
  2. 区别是:service命令控制服务可以立即生效,而使用chkconfig命令控制服务需要等计算机重新启动后才能生效

4.3.1. chkconfig命令

  1. 使用该命令主要用于设置下次重启计算机以后启动、停止服务,使用chkconfig命令,不会立即启动或停止一项服务
  2. 命令语法:
    1. 显示所有运行级别服务的运行状态信息,可以指定服务名chkconfig --list [服务名]
    2. 增加一项新的服务,chkconfig确保每一个运行级有一项启动或者杀死入口chkconfig -add [服务名]
    3. 删除服务,并把相关符号链接从/etc/rc[0-6].d目录中删除chkconfig -del [服务名]
    4. 设置某服务在指定的运行级是被启动、停止还是重新启动chkconfig [--level levels] [服务名] [on|off|reset]

4.3.2. service命令

  1. 使用service命令可以启动或停止守护进程,service命令执行后会立即生效。
  2. 命令语法:service [服务名][start|stop|restart|status]
  3. 参数含义:
    1. start:表示启动服务
    2. stop:停止服务
    3. restart:重新启动服务
    4. status:查看状态服务

5. 实现linux网络安全

5.1. 提高Linux系统安全性能

5.1.1. 部署防火墙

在第一次连接Internet之前一定要部署防火墙

5.1.2. 关闭不用的服务和端口

较少攻击的可能,减少后门,降低隐患

5.1.3. 严格禁止设置默认路由

建议为每一个子网或网段设置一个路由,否则其他机器就可能一定方法访问该主机

5.1.4. 口令管理

口令长度一般不要超过8个符号,口令的组成应以无规则的大小写字母、字数和符号,避免英语词汇。保护/etc/passwd和/etc/shadow这两个文件

5.1.5. 分区管理

  1. 以缓冲区溢出为类型的安全漏洞,这样可以轻易使得一个匿名的Internet用户有机会获得一台主机的部分或全部的控制权。
  2. 为防止此类共计可以建立/var分区用来存放日志和邮件
  3. 还建议为/home单独分一个区

5.1.6. 防范网络嗅探

广泛用于网络维护和管理方面,在工作的时候获取来自目标网络的各种信息,通过对这些数据的分析,网络管理员可以深入了解网络当前的运行状况,以便找出网络中的漏洞。

5.1.7. 完整的日志管理

  1. 记录了计算机系统的运行情况
  2. 当黑客攻击往往要修改日志文件来隐藏踪迹。
  3. /var/log文件的访问,禁止一般权限的用户区查看相应日志文件,通过对日志的分析来分析是否有入侵者。
  4. 完整的日志文件包含:
    1. 网络数据的正确性
    2. 网络数据的有效性
    3. 网络数据的合法性

5.1.8. 使用安全工具软件

  1. 比如:SELinux(增强安全性的Liunx)
  2. 普通的Linux系统的安全性是依赖内核的,这个依赖是通过setuid/setgid产生的

5.1.9. 使用保留的IP地址

  1. 维护网络安全性最简单的方式是保证网络中的主机同外界公共网络隔离。
  2. 通过隔离达到的安全性的安全性策略在许多情况下是不能接受。
  3. 保留IP地址是一种简单可行的方法,保证访问Internet的同时保证一定的安全性。这样是一种拒绝外部计算访问而允许内部计算机互联的快速有效方法。
  4. 这样方式同时也不允许用户访问外部网络,而IP伪装可以解决这个问题。

5.1.10. 部署Linux防病毒软件

  1. Linux系统防范病毒策略分为以下两部分:
    1. 针对Linux本身防范的策略:防范可执行文件病毒、蠕虫病毒、脚本病毒。
      • 通过安装GPL查杀病毒软件基本可以防范。
      • 可以使用AntiVir,它是工作在命令行下的,可以占用较少系统资源。
    2. 针对使用Linux服务器后端的Windows系统的病毒防范策略。
      • 在代理服务器上加挂一个病毒过滤器。返现病毒立刻进行阻断。

5.1.11. 加强登录安全

  1. 通过修改/etc/login.defs文件可以增加对登录错误延迟、记录日志、登录密码长度限制和过期限制等。
字段 含义
PASS_MAX_DAYS_90 登录密码有效期90天
PASS_MIN_DAYS 0 登录密码最短修改时间是0天,防止非法用户短期更改多次密码
PASS_MIN_LEN_8 登录密码最小长度8位
PASS_WARN_AGE 7 登录密码过期前7天提示修改
FAIL_DELAY 10 登录错误时等待时间10s
FAILLOG_ENAB yes 登录错误记录到日志
SYSLOG_SU_ENAB yes 当限定超级用户管理日志时使用
SYSLOG_SG_ENAB yes 当限定超级用户组管理日志时使用

5.1.12. 补丁问题

  1. 应当及时在相应的系统上安装相应的补丁。
  2. 操作系统维护着系统的底层,对内存、进程等子系统进行管理和调度。
  3. 应当不断更新服务器运行的相关软件。

5.2. Linux系统安全保护措施

5.2.1. 系统安全记录文件

  1. 操作系统内部的记录文件是检测是否是网络入侵的重要线索。

5.2.2. 启动和登录安全性

  1. BIOS安全:设置BIOS密码且修改引导次序禁止从软盘启动系统。
  2. 用户口令:
  3. 默认账号:应该禁止到所有默认被操作系统本身启动的并且不必要的账号,第一次安装系统时应当这么做,因为账号越多系统越容易被攻击。
  4. 口令文件:使用chattr命令,给下面的文件加上不可更改属性,从而防止非授权用户获得权限,命令如下:
    1. chattr +i /etc/passwd
    2. chattr +i /etc/shadow
    3. chattr +i /etc/group
    4. chattr +i /etc/gshadow
  5. 禁止Ctrl+Alt+Delete重新启动机器命令
    1. 修改/etc/init文件,将"ca::"一行注释掉,然后重设所有文件的权限。
  6. 限制使用su命令
    1. 如果不希望任何用户能够用su来切换到root,可以编辑/etc/pam.d/su文件
    2. 在上述文件中添加以下几行:(此时只有isd组用户可以用su切换到root,以后想要更改这个的话可以运行以下命令:usermod -G 10 admin)
1
2
auth sufficient /lib/secruity/pam_rootok.so.debug
auth required /lib/secruity/pam_wheel.so group=isd

5.2.3. 限制NFS访问

  1. 应当确保/etc/exports有最严格的访问权限设置,也就是不要使用任何通配符、不允许root写权限并且只能安装为只读文件系统。编辑文件/etc/exports并加入如下两行。
1
2
/dir/to/export host1.mydomain.com(ro.root_squash)
/dir/to/export host2.mydomain.com(ro,root_squash)
  1. /dir/to/export是希望输出的目录。host1.mydomain.com和2是登录这个目录的机器名。ro是挂载成只读系统。root_squash禁止root写入目录。

5.2.4. 登录终端设置

/etc/securetty文件指定了允许root登录的tty设备,由/bin/login程序读取,其格式是一个被允许的名字列表,编辑该文件进行备份。

5.2.5. 防止网络攻击

  1. 阻止ping:
    • 在/etc/rc.d/rc.local文件中增加一行
    • echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all
    • 保存文件后重启即可。
  2. 防止IP欺骗:
    • 编辑/etc/host.conf文件并增加一下几行放置IP欺骗攻击
1
2
3
order bind,hosts
multi off
nospoof on
  1. 防止DOS攻击
    • 对系统所有用户设置资源限制可以放置DOS类型攻击
    • 在/etc/security/limits.conf文件中添加几行
      1. hard core 0
      2. hard rss 500j
      3. hard nproc 20
    • 之后编辑/etc/pam.d/login文件,检查是否存在
      • session required /lib/secruity/pam_limits.so

5.2.6. 安装补丁

  1. 命令语法:rpm -Fvh [file_name]

2018-Linux系统基础-linux-11-linux网络基本配置
https://spricoder.github.io/2018/07/16/2018-Linux-system-basics/2018-Linux-system-basics-linux-11-linux%E7%BD%91%E7%BB%9C%E5%9F%BA%E6%9C%AC%E9%85%8D%E7%BD%AE/
作者
SpriCoder
发布于
2018年7月16日
许可协议