RHCE认证培训+考试七天实录(五)

第五天(11月30日)

第五天的主要内容是关于安全方面的相关知识。

1、端口扫描与网络嗅探

在服务器server上执行netstat命令查看是否开放了21端口:
[root@localhost ~]# netstat -an | grep :21
tcp        0      0 0.0.0.0:21                  0.0.0.0:*                   LISTEN
在客户端client上用nmap工具扫描服务器开放的端口,首先安装nmap:
# yum install nmap
nmap命令的常用选项:

这里扫描服务器端的tcp端口:

此时如果在服务器端启用防火墙,那么用nmap将扫描不到任何端口。在防火墙上将ftp设为可信服务:


在客户端上再次用nmap扫描就能看到21端口了:

下面首先在服务器上启用tcpdump进行嗅探,并将嗅探结果保存到 ftp.txt文件中:
# tcpdump -w ftp.txt
然后在客户端访问服务器上的ftp服务:
[root@localhost ~]# ftp 192.168.0.114
Connected to 192.168.0.114 (192.168.0.114).
220 (vsFTPd 2.2.2)
Name (192.168.0.114:root): mike
331 Please specify the password.
Password:
回到服务器端,按Ctrl+c中止嗅探。
保存在 ftp.txt中的嗅探结果是无法直接查看的,需要用wireshark进行协议分析。在服务器端安装wireshark:
# yum install wireshark*
然后执行wireshark命令打开图形化的wireshark,在其中打开刚才生成的 ftp.txt文件,过滤ftp协议,可以看到客户端访问时输入的用户名mike和密码123。
2、为网卡设置IP别名
IP别名即为一块网卡配多个IP。
要实现该功能首先要禁用NetworkManager服务(即图形化界面下的网络配置工具):
[root@desktop3 ~]# service NetworkManager stop
停止 NetworkManager 守护进程:                             [确定]
[root@desktop3 ~]# chkconfig NetworkManager off
下面生成一个名为eth0:1的虚拟网卡,并设置IP:
# ifconfig eth0:1 10.1.1.1 netmask 255.255.255.0
再修改配置文件ifcfg-eth0:1(该文件可以拷贝ifcfg-eth0生成),使之永久生效:
# cp ifcfg-eth0 ifcfg-eth0:1
# vim ifcfg-eth0:1
DEVICE="eth0:1"
BOOTPROTO="static"
HWADDR="00:0C:29:3A:CD:16"
ONBOOT="yes"
IPADDR=10.1.1.1
NETMASK=255.255.255.0
保存退出,重启服务生效:
service network restart

3、配置内核参数

某些功能需要修改Linux的内核才能实现,如过滤掉ICMP数据包(当然用防火墙也可以)、启用路由功能等。
修改内核参数可以使用sysctl命令,但该命令修改的内核参数是临时的,系统重启后就将失效,如果希望永久更改内核参数,需要修改/etc/sysctl.conf文件。
例1:过滤icmp数据包。
首先在一台客户机上ping服务器,能够ping通。
执行“sysctl �Ca | grep icmp”命令查看当前与icmp有关的内核参数设置:
[root@server14 ~]# sysctl -a | grep icmp
net.netfilter.nf_conntrack_icmpv6_timeout = 30
net.netfilter.nf_conntrack_icmp_timeout = 30
net.ipv4.icmp_echo_ignore_all = 0
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.icmp_ignore_bogus_error_responses = 1
net.ipv4.icmp_errors_use_inbound_ifaddr = 0
net.ipv4.icmp_ratelimit = 1000
net.ipv4.icmp_ratemask = 6168
net.ipv6.icmp.ratelimit = 1000
其中“net.ipv4.icmp_echo_ignore_all = 0”表示允许接收所有的icmp数据包。
修改配置文件,加入这一行,把值改为1,过滤所有的icmp数据包。
# vim /etc/sysctl.conf
net.ipv4.icmp_echo_ignore_all = 1
保存退出。
执行“sysctl -p”使/etc/sysctl.conf文件生效。
此时在客户端上再ping 192.168.0.114就不通了。

例2:启用路由功能。

启用路由功能通过修改配置文件/etc/sysctl.conf,启用其中的IP转发功能实现:
net.ipv4.ip_forward = 0    
将该项的值改为1,即net.ipv4.ip_forward = 1。
保存退出,执行“sysctl -p”命令生效。
在Linux中提供了一款路由软件quagga,可以提供比较强的路由功能,对于一个一百台以内主机的小型网络,完全可以使用该软件配置软路由。
# yum install quagga
# cd /etc/quagga
# ls
bgpd.conf.sample    ripd.conf.sample    zebra.conf bgpd.conf.sample2  
ripngd.conf.sample  zebra.conf.sample   ospf6d.conf.sample vtysh.conf
ospfd.conf.sample   vtysh.conf.sample
手工生成quagga的配置文件并启用服务:
# touch ripd.conf
[root@localhost quagga]# service ripd start
启动ripd:                                                  [确定]
[root@localhost quagga]# touch ospfd.conf
[root@localhost quagga]# service ospfd start
启动ospfd:                                                 [确定]
执行vtysh命令进入路由配置模式,此时可以像配置思科路由器一样的执行路由交换命令:
[root@localhost quagga]# vtysh
Hello, this is Quagga (version 0.99.15).
Copyright 1996-2005 Kunihiro Ishiguro, et al.
localhost.localdomain# conf t
localhost.localdomain(config)#

4、配置防火墙

netfilter是Linux内核中真正的防火墙,iptables是netfilter的管理工具,为防火墙体系提供过滤规则和策略。
防火墙的基本概念
(1)规则链
规则链是防火墙规则/策略的集合。
默认的5种规则链:
INPUT:处理入站数据包
OUTPUT:处理出站数据包
FORWARD:处理转发数据包
POSTROUTING链:在进行路由选择后处理数据包(主要用于NAT)
PREROUTING链:在进行路由选择前处理数据包(主要用于NAT)
(2)规则表
规则表是规则链的集合。
默认的4个规则表:
raw表:确定是否对该数据包进行状态跟踪
mangle表:为数据包设置标记
nat表:修改数据包中的源、目标IP地址或端口
filter表:确定是否放行该数据包(过滤)
常用的主要是filter表和nat表,对于主机防火墙只涉及filter表,而且对于filter表中的OUTPUT链一般不做限制,FORWARD链也较少使用,最常用到的就是INPUT链,也就是对入站的数据进行过滤。
例:使用iptables命令设置防火墙规则
iptables是Linux系统中最复杂的命令之一,iptables命令的语法格式:
iptables [-t 表名] 管理选项 [链名] [条件匹配] [-j 目标动作或跳转]
(1)“表名”可以不写,默认就是filter表。
(2)“管理选项”告诉iptables要做什么事情,是添加规则、修改规则还是删除规则。管理选项必须是大写,其中常用的是:
“-A”,在规则表的末尾添加规则。
“-I”,-I后面跟着一个序号,表示在规则表中插入一条规则。
“-P”,设置默认规则。
(3)“链名”必须用大写字母,最常设置的是INPUT链。
(4)“条件匹配”必须用小写字母,常用的选项有:
-p,指定协议类型。如“-p tcp sport 1024”指定源端口,“-p tcp dport 80”指定目的端口。
-s,指定源IP地址或子网。如“-s 192.168.0.0/24”。
-d,指定目的IP地址或子网。如“-d 192.168.0.0/24”。
(5)“-j 目标动作或跳转”动作必须用大写字母。常用的动作有:
-j ACCEPT,将与规则匹配的数据包放行。
-j REJECT,拒绝所匹配的数据包,并向该数据包的发送者回复一个ICMP错误通知。
-j DROP,丢弃所匹配的数据包,不回复错误通知(较少使用)。
iptables命令的3个常用用法:
“iptables �CL”                   显示防火墙规则
“iptables �CF”                   删除filter表中的所有规则。
“service iptables save ”    保存防火墙规则

下面是一个防火墙规则的配置实例:

iptables -F                               删除所有规则
iptables �CP INPUT DROP      将默认规则设为拒绝所有
iptables �CA INPUT �CI lo �Cj ACCEPT       允许本机可以访问自己的回环接口
iptables �CA INPUT �Cm state �Cstate ESTABLISHED,RELATED �Cj ACCEPT   允许接收由本机主动发出请求之后而回来的响应包
iptables �CA INPUT �Cp tcp �Cdport 80 �Cj ACCEPT       允许访问本机的80端口
iptables �CA INPUT �Cs 192.168.0.0/24 �Cp tcp �Cdport 21 �Cj ACCEPT     只允许指定网段访问本机的21端口
iptables �CA INPUT �Cp icmp �Cj ACCEPT   允许接收icmp包
service iptables save                保存防火墙规则
iptables �CL                              显示防火墙规则

本文出自 “一壶浊酒” 博客,转载请与作者联系!


你可能感兴趣的:(server,网络,服务器,七天,认证培训)