解决服务器被黑上不了网的问题
2019独角兽企业重金招聘Python工程师标准>>>
文章图片
实战情景:
服务器上能ping通网关,但是上不网,DNS配置正常
1、熟悉Linux网络相关命令
现在情况:
能ping通网关,但是上不网,DNS配置正常
了解网络情况基本思路。 思路决定出路
0、查看网线,是否正常
1、IPping
2、网关 IP
3、DNS
4、iptables规则
5、selinux
6、网关MAC。目的: 防止别人冒冲网关。ARP欺骗
7、IP地址冲突
现在在正常环境下进行测试:
[root@localhost ~]#ping g.cn
PING g.cn (203.208.49.176) 56(84) bytes of data.
64 bytes from 203.208.49.176: icmp_seq=1 ttl=43 time=40.7 ms
64 bytes from 203.208.49.176: icmp_seq=2 ttl=43 time=50.2 ms
ping参数:
-c #指定ping 的次数
-i# 指定ping 的频率
例:
[root@localhost ~]# ping -c 1 192.168.1.1
[root@localhost ~]# ping -i 0.001 192.168.1.1
1、查询IP
[root@localhost ~]# ifconfig
eth0Link encap:EthernetHWaddr 00:0C:29:12:EC:1E
inet addr:192.168.1.63
配置IP地址方法1:
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
IPADDR=192.168.1.63#IP地址
NETMASK=255.255.255.0#子网掩码
GATEWAY=192.168.1.1#网关
DNS1=202.106.46.151#DNS服务器地址
ONBOOT=yes#开机启动网卡
2、查看DNS配置
[root@localhost ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 202.106.46.151
或:
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DNS1=202.106.46.151
例:查找DNS配置方法
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
改:DNS1=8.8.8.8
[root@localhost ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 202.106.46.151
search localhost
接下来:
[root@localhost ~]# service network restart
Shutting down interface eth0:[OK]
Shutting down loopback interface:[OK]
Bringing up loopback interface:[OK]
Bringing up interface eth0:[OK]
[root@localhost ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 8.8.8.8
search localhost
原因:
[root@localhost ~]# tail -f /var/log/messages
May 13 09:47:16 localhost NET[3653]: /etc/sysconfig/network-scripts/ifup-post : updated /etc/resolv.conf
#cat /etc/sysconfig/network-scripts/ifup
3、网关
查看网关:
文章图片
或:
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
GATEWAY=192.168.1.1
169.254.0.0/16# 是公网IP地址
扩展:
A类私有地址:10.0.0.0/8
B 类私有网段: 172. 16.0.0 -172.31.255.255/16
C类私有网段:192.168.0.0/24
169.254.0.0/16:在windows下DHCP获取不到IP的时候,会分配169.254.的IP。 这个微软买断的一个网段。
4、iptables 规则
拒绝192.168.1.64访问localhost上的80端口
[root@localhost ~]# iptables -A INPUT -s 192.168.1.64 -p tcp --dport 80 -j DROP
[root@localhost ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
targetprot opt sourcedestination
Chain FORWARD (policy ACCEPT)
targetprot opt sourcedestination
Chain OUTPUT (policy ACCEPT)
targetprot opt sourcedestination
# -n#不解析IP和端口号
#-L#
不加-n 显示:
[root@xuegod63 ~]# iptables -L
Chain INPUT (policy ACCEPT)
targetprot opt sourcedestination
DROPtcp--xuegod64.cnanywheretcp dpt:http
如何解析IP地址为域名?
[root@localhost ~]# cat /etc/hosts#IP地址解析,通过hosts文件或DNS
127.0.0.1localhost localhost.localdomain localhost4 localhost4.localdomain4
::1localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.63xuegod63.cn
192.168.1.64xuegod64.cn
如何解析端口为协议名?
[root@localhost ~]# vim /etc/services#查看所有端口对应的服务
作用:
1、查看端口号
2、iptables 解析端口号参考的文件
3、xinetd 服务器启动时,需要注册端口号
5、selinux
[root@localhost ~]# getenforce
Disabled
[root@localhost ~]# vim /etc/selinux/config
#mls - Multi Level Security protection.
#基于多等级的安全保护
6、网关MAC 。 目的: 防止别人冒充网关。ARP欺骗
网络执法官/ p2p终结者
文章图片
在路由器:
文章图片
文章图片
文章图片
Linux如何知道别人冒充网关?
[root@localhost ~]# arping 192.168.1.1# 测试192.168.1.1 此IP地址是否有冲突
ARPING 192.168.1.1 from 192.168.1.63 eth0
Unicast reply from 192.168.1.1 [14:75:90:15:32:48]2.124ms
Unicast reply from 192.168.1.1 [14:75:90:15:23:12]5.333ms
7、IP地址冲突
公司局域网中,IP地址冲突后,换一个IP,再ping。
文章图片
现在被黑了:
实战情景:
服务器上能ping通网关,但是上不网,DNS配置正常
网络排错:重点思路。没有思路,就没有出路。
实战拓扑图:
文章图片
文章图片
现在远程连接不上服务器A,如何远程排查?
文章图片
解决思路:
[root@localhost ~]# ping g.cn
ping: unknown host g.cn
先ping 自己的IP地址:
[root@localhost ~]# ping 192.168.1.63
PING 192.168.1.63 (192.168.1.63) 56(84) bytes of data.
64 bytes from 192.168.1.63: icmp_seq=1 ttl=1 time=0.114 ms
64 bytes from 192.168.1.63: icmp_seq=2 ttl=1 time=0.072 ms
ping网关:
[root@localhost ~]# ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=2.38 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=1.65 ms
关闭iptables:
[root@localhost ~]# iptables -L -n
[root@localhost ~]#getenforce
Disabled
[root@localhost ~]# /etc/init.d/iptablesstop
查看DNS:
[root@localhost ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 202.106.46.151
search localhost
查看冒冲网关:
[root@localhost ~]# arping 192.168.1.1#没有冒冲网关
ARPING 192.168.1.1 from 192.168.1.63 eth0
Unicast reply from 192.168.1.1 [14:75:90:15:32:48]4.878ms
Unicast reply from 192.168.1.1 [14:75:90:15:32:48]4.365ms
查看网关配置是否正确: 正确
[root@localhost ~]# arping 192.168.1.1
ARPING 192.168.1.1 from 192.168.1.63 eth0
Unicast reply from 192.168.1.1 [14:75:90:15:32:48]4.878ms
Unicast reply from 192.168.1.1 [14:75:90:15:32:48]4.365ms
查看防火墙:
[root@localhost ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
targetprot opt sourcedestination
Chain FORWARD (policy ACCEPT)
targetprot opt sourcedestination
Chain OUTPUT (policy ACCEPT)
targetprot opt sourcedestination
思路: ping 不通域名,ping通网关。需要ping公网IP地址
[root@localhost ~]# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
From 192.168.1.1 icmp_seq=1 Time to live exceeded
From 192.168.1.1 icmp_seq=2 Time to live exceeded
From 192.168.1.1 icmp_seq=3 Time to live exceeded
Time to live exceeded表示超时
1、基础知识讲一下
2、工作经验,实战
TTL : 数据报的生存周期。
默认linux操作系统值:64.每经过一个路器节点,TTL值减1。TTL值为0时,说明目标地址不可达并返回:Time to live exceeded
作用: 防止数据包,无限制在公网中转发。
终极大招: 抓包
tcpdump
参数:
-i指定网卡接口
-n:-n 不解析IP地址为域名
-v:显示包中详细信息
-t: 指定协议类型
网络不通,抓什么协议?
TCP/IP、UDP属于网络层
ping 使用的是ICMP协议
抓包:
[root@localhost ~]# tcpdump -i eth0 -nv -t icmp
然后另一个终端上执行:[root@localhost ~]# ping -c 1 192.168.1.1
查看抓包的结果:
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
IP (tos 0x0, ttl 1, id 0, offset 0, flags [DF], proto ICMP (1), length 84)
192.168.1.63 > 192.168.1.1: ICMP echo request, id 52761, seq 1, length 64
IP (tos 0x0, ttl 64, id 7167, offset 0, flags [DF], proto ICMP (1), length 84)
192.168.1.1 > 192.168.1.63: ICMP echo reply, id 52761, seq 1, length 64
注: ping 包特点,一去一回。
[root@localhost ~]# ping -c 1 192.168.1.1#ping 一次
如图:
文章图片
测试:
[root@localhost ~]# ping -c 1 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
From 192.168.1.1 icmp_seq=1 Time to live exceeded
[root@localhost ~]# tcpdump -i eth0 -nv -t icmp
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
IP (tos 0x0, ttl 1, id 0, offset 0, flags [DF], proto ICMP (1), length 84)
192.168.1.63 > 8.8.8.8: ICMP echo request, id 37658, seq 1, length 64
IP (tos 0x0, ttl 64, id 7168, offset 0, flags [DF], proto ICMP (1), length 112)
192.168.1.1 > 192.168.1.63: ICMP time exceeded in-transit, length 92
IP (tos 0x0, ttl 1, id 0, offset 0, flags [DF], proto ICMP (1), length 84)
文章图片
被黑原因修改了:TTL值:
将TTL值修改为原来的值
[root@localhost ~]# echo 64 > /proc/sys/net/ipv4/ip_default_ttl
再次抓包:
[root@localhost ~]# echo 64 > /proc/sys/net/ipv4/ip_default_ttl
[root@localhost ~]# tcpdump -i eth0 -nv -t icmp
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto ICMP (1), length 84)
192.168.1.63 > 8.8.8.8: ICMP echo request, id 62490, seq 1, length 64
IP (tos 0x90, ttl 30, id 0, offset 0, flags [none], proto ICMP (1), length 84)
8.8.8.8 > 192.168.1.63: ICMP echo reply, id 62490, seq 1, length 64
文章图片
[root@localhost ~]# ping g.cn
PING g.cn (203.208.48.148) 56(84) bytes of data.
64 bytes from 203.208.48.148: icmp_seq=1 ttl=43 time=41.7 ms
64 bytes from 203.208.48.148: icmp_seq=2 ttl=43 time=43.5 ms
总结:
1、Linux网络操作基本命令: ifconfig , route , arp ,arping ,iptables,selinux
2、tcpdump抓包
3、实战:通过tcpdump抓包解决服务器被黑上不了网的问题
【解决服务器被黑上不了网的问题】转载于:https://my.oschina.net/u/3803405/blog/3051991
推荐阅读
- parallels|parallels desktop 解决网络初始化失败问题
- 考研英语阅读终极解决方案——阅读理解如何巧拿高分
- MybatisPlus|MybatisPlus LambdaQueryWrapper使用int默认值的坑及解决
- 科学养胃,别被忽悠,其实真的很简单
- SpringBoot调用公共模块的自定义注解失效的解决
- 解决SpringBoot引用别的模块无法注入的问题
- 被新冠“病毒”感染的日常生活(八)
- 过年瞎想
- 【读书清单20】写作吧!你值得被看见(2)
- 罗塞塔石碑的意义(古埃及文字的起源,圣书体文字是如何被破解的)