网络配置和远程管理
-
网络配置
主机名
Windows:
netbios 网络基本输入输出系统
将计算机名解析成IP地址
Wins服务 windows网络名称服务
Windows远程管理工具:
tightvnc-->windows/linux
rdesktop—>linux管理windows
格式:rdesktop –f –u username –p passwd
-f 全屏显示
-u 指定用户名
-p 指定密码
linux的远程桌面连接工具
VNC的默认端口是5900,而远程桌面连接端口则是5900+n(n是vncserver命令指定的)。如果使用"vncserver :1"命令启动VNC Server,那么下面的端口应该是5901。
#yum –y install tigervnc tigervnc-server
#vim /etc/sysconfig/vncserver
VNCSERVERS="2:wdd"
VNCSERVERARGS[2]="-geometry 800x600 -localhost"
#vim /root/.vnc/xstartup
gnome-session& #添加这一句是连接时使用gnome 桌面环境,可以将原来的twm &删掉或者放在后面
#vncpasswd 创建VNC密码
#vncserver [:n] 启动服务
Linux客户端访问:
做实验时记得关闭防火墙和SELINUX,生产环境要设置防火墙规则
#vncviewer -via wdd@192.168.131.131 localhost:2
输入用户名和密码即可进入
#VNC 是明文的,不安全的.连接过程可能会被窃听,干扰.可以使用SSH通道加密,然后再由远程主机的回环地址通信,加大了安全性
如果要使用windows版的vnc客户端,那么最好把-localhost去掉
Windows客户端访问:
网卡参数:/ect/sysconfig/network-scripts/ifcfg-eth0
网关,泛指,去任意网络都要使用的网络出口
路由记录,有特定目标时,使用的网络接口
DNS:网卡配置的DNS选项会自动添加到/etc/resolves.conf
icmp:互联网控制报文协议
-
临时生效
使用命令调整网络参数,简单、快速,可直接修改运行中的网络参数,一般只适合在调试网络的过程中使用,系统重启之后,所做的修改都会失效。
-
修改主机名
查看主机名:hostname
设置主机名:hostname 主机名称
[root@myweb ~]# hostname www.baidu.com
注意:主机名尽量使用FQDN(完全合格域名)名称
-
修改网卡配置
查看IP地址:ifconfig
修改网刊参数:
格式:ifconfig 接口名 IP地址 [netmask 子网掩码]
-
[root@myweb ~]# ifconfig eth0 192.168.137.128 netmask 255.255.255.0
ifconfig 网络接口 IP地址[/掩码长度]
[root@myweb ~]# ifconfig eth0 192.168.137.128/24
-
网关设置
删除路由表中的默认网关记录:
格式:route del default gw IP地址
[root@mylinux ~]# route del default gw 192.168.137.4
向路由表中添加默认网关记录:
格式:route add default gw IP地址
[root@mylinux ~]# route add default gw 192.168.137.4
添加到指定网段的路由记录:
格式:route add –net 网段地址 gw IP地址
[root@mylinux ~]# route add -net 192.168.216.0/24 gw 192.168.137.4
删除到指定网段的路由记录:
格式:route del –net 网段地址
[root@mylinux ~]# route del -net 192.168.216.0/24 gw 192.168.137.4
-
永久有效
通过配置文件修改网络参数,修改各项网络参数的配置文件,适合对服务器你设置固定参数时使用需要重载网络服务或者重启以后才会生效。
2.1、修改主机名
修改/etc/sysconfig/network文件
设置主机名:
方法:HOSTNAME=主机名
2.2、修改/etc/sysconfig/network-scripts/ifcfg-eth0文件
修改网卡参数:
方法:DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static/dhcp
IPADDR=IP地址
NETMASK=子网掩码
DNS1=xxx.xxx.xxx.xxx 指定DNS地址
DNS2=xxx.xxx.xxx.xxx
重启网络服务:service network restart
或者重启网卡:ifdown eth0;ifup eth0
2.3、网关设置
修改/etc/sysconfig/network-scripts/ifcfg-eth0文件
方法:GATEWAY=xxx.xxx.xxx.xxx
-
查看或设置主机中路由表信息
格式:route [-n]
-
域名配置
修改/etc/resolv.conf文件:
用途:保存本机需要使用的DNS服务器的IP地址
方法:search lampbrother.net
nameserver 202.106.0.20
nameserver 8.8.8.8
-
nsloookup命令
测试域名解析
安装nslookup
[root@myweb ~]# yum -y install bind-utils
格式:nslookup 目标主机地址 [DNS服务器地址]
有两种模式:交互模式和非交互模式
在交互模式下,用server IP 指定DNS
-
主机映射文件
/etc/hosts文件
用途:保存主机名与IP地址的映射记录
方法:
IP地址 域名 别名
127.0.0.1 localhost.localdomain localhost
Hosts文件和DNS服务器的比较:
默认情况下,系统首先从hosts文件查找解析记录,hosts文件只对当前主机有效,hosts文件可减少DNS查询过程,从而加快访问速度
-
测试命令
7.1、netstat命令
查看系统的网络连接状态、路由表。接口统计等信息
格式:netstat [选项]
常用选项:
-a:显示所有活动连接
-n:以数字形式显示
-p:显示进程信息
-t:查看TCP协议相关信息
-u:查看UDP协议相关信息
7.2、traceroute命令
测试从当前主机到目的主机之间经过的网络节点
格式:traceroute 目标主机地址
7.3、ping命令
测试网络连接状态
ping –c 4 –w 3 –i 0.1 目标地址
选项:-w waittime:设置等待的响应时间对于每一次探测
-i 0.1(秒数):每次ping的间隔时间
-c 次数:ping的次数
7.4、arp命令
地址解析协议,将ip地址解析成mac地址
#arp –a 查询arp缓存表
#arp –s src dest 绑定IP地址和mac地址
#arp –d 删除
#arpspoof –i eth0 –t src dest 监听
rarp
反向地址解析协议,将mac转成ip地址
7.5、nmap命令
网络探测扫描命令
nmap –[sLpV] 主机地址(可以是单个或者连续)–exclude 排除的IP地址
选项:
-s:扫描(scan)
-L:扫描的主机列表
-T:TCP
-V:扫描出软件版本号
-p 端口号:扫描的端口号
-exclude Ip地址:排除IP地址
-
远程管理
1、SSH协议
为客户机提供安全的shell环境,用于远程管理,默认端口:TCP 22
OpenSSH
服务名称:sshd
服务端主程序:/usr/sbin/sshd
客户端主程序:/usr/bin/ssh
服务器配置文件:/etc/ssh/sshd_config
客户端配置文件:/etc/ssh/ssh_config
2、远程身份认证
登陆验证方式:
密码验证:核对用户名、密码是否匹配
秘钥对验证:核对客户的私钥、服务器公钥是否匹配
[root@myweb ~]# vim /etc/ssh/sshd_config
PasswordAuthentication yes #默认密码验证是开启的
#PubkeyAuthentication yes #启用秘钥验证
#AuthorizedKeysFile .ssh/authorized_keys #秘钥对验证,公钥保存位置
3、功能模块
ssh命令—远程安全登录
格式:ssh –p 端口号 user@host
ssh –p 端口号 –l user host
scp命令—远程安全复制
格式1:scp –P 端口号 user@host:file1 file2
格式2:scp –P 端口号 file1 user@host:file2
sftp命令—安全FTP上下载
格式:sftp -oPort=端口 user@host
[root@mylinux ~]# sftp -oPort=2200 root@192.168.137.128
4、秘钥对验证
第一步:创建秘钥对(由客户端用户在本地创建秘钥对)
[root@myweb ~]# ssh-keygen -t rsa [-f id_rsa -N '']
-t dsa/ras 指定加密算法
-f 文件名 指定秘钥文件名
-N '' 自动创建不用手工按enter键
第二步:上传公钥文件id_rsa.pub
[client@myweb .ssh]$ scp id_rsa.pub server@192.168.137.129:/tmp
或者[client@myweb .ssh]$ ssh-copy-id -i id_rsa.pub server@192.168.137.129
#如果使用上面那条命令,那么可以省略下面第三步
第三步:导入公钥信息,公钥库文件:~/.ssh/authorized_keys
[root@mylinux tmp]# mkdir /home/server/.ssh
[root@mylinux tmp]# cat id_rsa.pub >> /home/server/.ssh/authorized_keys
第四步:使用秘钥对验证方式
[client@myweb .ssh]$ ssh -l server 192.168.137.129
或者[client@myweb .ssh]$ ssh server@192.168.137.129
-
TCP Wrappers概述
1、保护机制的实现方式,通过tcpd之程序对其他服务程序进行包装
2、访问控制策略的配置文件
/etc/hosts.allow
/etc/hosts.deny
3、设置访问控制策略
策略格式:服务列表:客户机地址列表
服务列表:
多个服务以逗号分隔,ALL表示所有服务
客户机地址列表:
多个地址以逗号分隔,ALL表示所有地址
允许使用通配符?和*
网段地址,如192.168.4. 或者192.168.4.0/255.255.255.0
区域地址,.baidu.com
注意:通配符(?*)不能和.开头和.结尾的格式混用,如:sshd:192.16?.1.是错的;sshd:.xd?.com也是错的
[root@localhost ~]# vim /etc/hosts.deny
sshd:192.168.137.130
[sshd:192.168.137.0/255.255.255.0]
4、策略的应用顺序
先检查hosts.allow,找到匹配则允许访问,否则再检查hosts.deny,找到则拒绝访问,若两个文件中均无匹配策略,则默认允许访问
-
案例:局域网arp欺骗
1、由于局域网的网络流通不是根据IP地址进行,而是根据MAC地址进行传输。本来主机A本来是访问主机C,但是主机B用黑客软件在监听者主机A和主机C,如果主机A向主机C发送请求,主机B会截获请求,伪装成主机C的MAC地址,这时主机A到主机C的请求会经过主机B转发到主机C。那么主机B不让你转发呢?那么你就无法上网了,这就是简单的局域网ARP欺骗。
实验机主机A、主机B、主机C均为最小化安装,防火墙和SELINUX均被关闭,其IP地址分别为:192.168.20.2、192.168.20.3、192.168.20.4
-
主机A原来可以访问主机C上的web
#traceroute 192.168.20.4 只需一跳
#curl http://192.168.20.4 访问主机C的web成功
-
主机B的操作如下:
#yum –y install libpcap
#最小化安装没有安装这个库,没有这个库下面软件无法安装
安装如图所示安装包:
#rpm –ivh *.rpm
#vim /etc/sysctl.conf
Net.ipv4.ip_forward=1 #打开转发功能
#arpspoof –i eth0 –t 192.168.20.2 192.168.20.4
选项说明:-i:指定转发的网卡设备
-t src dest:监听src到dest
这个时候主机A是可以访问主机B的,只是经过了主机B转发而已,如果这时,在主机A用traceroute主机C会发现确实经过了主机B的转发,同时用命令arp –a查看发现,主机B和主机C的MAC地址相同,问题来了,如果这时主机B通过设置防火墙规则拒绝主机A的访问(iptables –A FORWARD –s 192.168.20.2 –j drop),这时主机A是无法访问主机C的,这就是所谓的ARP欺骗。
-
主机C
#yum –y install httpd
2、防止ARP欺骗
如果发现自己ARP攻击了,这时,主机A必须绑定主机C的IP地址,前提是你知道主机C的IP地址。如果在没有收到ARP攻击之前,那么通过ping主机C可以得到其IP地址,即通过命令arp –a可以查看。所以自己为了防止ARP欺骗,必须绑定主机C的mac地址,操作如下:
在主机C上查看其MAC地址
#ifconfig
在主机A上,绑定主机C的MAC地址:
这时,在访问主机C就可以正常访问了
-
-
案例:SSH隧道
什么是SSH隧道:
首先看下面这张图,我们所面临的大部分情况都和它类似。我们的电脑在右上角,通过公司带有防火墙功能的路由器接入互联网(当然可能还有交换机什么的在中间连接着你和路由器,但是在我们的问题中交换机并不起到什么关键性的作用)。左下角的部分是一个网站的服务器,它是我们公司防火墙策略的一部分,也 就是说公司不希望我们访问这个服务器。在左上角还有一台机器,它也是属于我们的。但是这台机器并不在我们公司里面,换句话说他不受到公司防火墙的限制。最后也是最重要的一点是,我们能够在公司通过互联网直接访问这台机器。或者说这台位于公司防火墙外面的机器需要拥有一个独立的互联网IP,同时公司的防火墙规则不会屏蔽这台机器,并且这台机器运行着一个OpenSSH服务器。
试验条件:主机A,主机B、主机C、主机D,其IP地址分别为:192.168.1.1、192.168.1.2和200.200.200.2(双网卡)、200.200.200.200、200.200.200.1,均关闭防火墙和SELINUX
试验准备:主机A与主机B的eth0在同一个网段,主机B的eth1与主机D在同一个网段,主机C和主机D在同一个网段,即主机A可以与主机B通信,但是无法访问主机C;主机B可以和主机C通信;主机C可以和主机D通信
主机C作为网站服务器:
#yum –y install httpd
主机A是无法访问主机C的
步骤如下:
1、主机A:
#route add default gw 192.168.1.2 #设置网关
2、主机C:
#route add default gw 200.200.200.2 #设置网关
3、主机B:
#vim /etc/sysctl.conf
net.ipv4.ip_forward=1 #打开网络转发功能
#ssh –N –f -L 8080:200.200.200.200:80 200.200.200.1
-N 表示ssh链接不是要登陆而是作端口转发
-f 表示命令扔到后台运行
-L 指定转发策略
8080:200.200.200.200:80 200.200.200.1 表示本地打开8080端口,那么就通过200.200.200.1访问200.200.200.200:80
此时在主机A中输入如下命令:
#curl http://localhost:8080 可以访问主机C了