iptables详解

来源:互联网 发布:python 函数作为参数 编辑:程序博客网 时间:2024/05/18 02:53

http://afterdawn.blog.51cto.com/7503144/1877782


1、防火墙简介

防火墙其实就是一个加固主机或网络安全的一个设备或者软件而已,通过防火墙可以隔离风险区域与安全区域的连接,同时不会妨碍风险区域的访问。世界上没有绝对的网络安全,世界上70%的网络安全事件,都是发生在防火墙内部。严谨的操作习惯,程序化的操作准则,才是最好的防火墙。

2、防火墙的分类

1)从特点上分类

第一种,软件防火墙,软件防火墙需要运行在特定的计算机上,而且需要计算机的操作系统的支持。

第二种,硬件防火墙,硬件防火墙其实就是一个普通pc机的架构,然后上面跑有专门的操作系统。

第三种,芯片级的防火墙,这种防火墙基于专门的硬件平台,没有操作系统,专有的ASIC芯片使它们比其他类的防火墙速度更快,处理能力极强,性能更高,但是价格却极其昂贵。

2)从技术上分类

第一种,包过滤型防火墙,这类的防火墙主要是工作在网络层,根据事先设定好的规则进行检查,检查结果根据事先设定好的处理机制进行处理。

第二种,应用层防火墙,它是工作在TCP/IP模型中的最高层应用层,相比较来说速度要慢一点。

第三种,状态监视器,状态监视做为防火墙其安全性为最佳,但配置比较复杂,且网络速度较慢。

3、防火墙在企业中的部署

1)单宿主堡垒主机:是单台服务器有防火墙,只为单台服务器防护。

2)双宿主堡垒主机

双宿主堡垒主机是一台装有两块网卡的堡垒主机,一般这台堡垒主机应用在网关,防护局域网跟广域网之间通信等安全。

215737476.png

3)三宿主堡垒主机

三宿主堡垒主机是一台装有三块网卡的堡垒主机,那么他将外网,内网,DMZ 三个区域隔离开来,同时保护内网已经DMZ区域的安全等。

215753300.png

4)背靠背型

内网、外网、DMZ区域都用单独的防火墙分隔开

如下图:

215806800.png


4、iptables介绍

iptables/netfilter(官方网站,http://www.netfilter.org)

可以通过iptables系统服务命令对iptables进行关闭开启和停止操作,看似iptables像是Linux上的一个服务,其实不是。

linux系统上的服务比如说httpd服务在启动起来的时候,是不是在后台启动一个相应的服务进程且在网卡上监听一个端口,而iptables却不然,那么iptables到底是什么呢?其实iptables只是一个工具而已.我们的linux系统有用户空间,和内核空间,而iptables有两个组件,一是netfilter,  netfilter组件只是用来过滤防火墙规则,及作出相应的处理机制的,它是集成在内核中的一部分,也就是说它是工作在内核空间的,那么大家都知道用户是不可能直接跟内核空间打交道的,那么netfilter只是工作在内核空间对规则进行处理的,那么规则从何而来呢? 是从iptables的第二个组件iptables而来的,我们上面说了iptables只是一个工作在用户空间的一个工具而已,那么用户就使用这个工具的一个命令来跟工作在内核空间中的netfiter组件打交道的.其实iptables防火墙就是这样的。

1
2
3
[root@WebServer ~]# /etc/init.d/iptables restart  # 重启iptables服务
[root@WebServer ~]# service iptables restart
[root@WebServer ~]# chkconfig iptables on    # 设置开机自动启动

5、iptables的表和链 

1)iptables常用的表有三个,分别为 filter表 nat表 mangle表, 和五个链 INPUT链 OUTPUT链 FORWARE链 POSTROUTING链 PREROUTING链,下面来介绍下它们的各个功能:

(1)iptables中的表

filter:过滤,防火墙;nat:network address translation;用于修改源IP或目标IP,也可以改端口;mangle:拆解报文,做出修改,并重新封装起来;raw:关闭nat表上启用的连接追踪机制;

使用iptables -t 指定使用哪个表,不指定,默认使用filter表

1
iptables -t nat

(2)iptables中的链

PREROUTING:路由前INPUT:数据包流入口FORWARD:转发管卡OUTPUT:数据包出口POSTROUTING:路由后

(3)表和链的关联

filter表

filter表主要是过滤数据包的,IPTABLES几乎所有的数据包过滤都在此表中实现的,filter表也是IPTABLES中默认的表,此表中还包含三个链如下: INPUT链   过滤所有的目标地址是本机的数据包 OUTPUT链   过滤所有从本机出去的数据包 FORWORD链   过滤所有从本机路过的数据包

nat表 

nat表主要是用于做网络地址转换的(NAT),在iptables中可以做SNAT(源地址转换),DNAT(目标地址转换),PANT(即跟SNAT差不多,不一样的是SNAT的源地址是固定的,而PNAT的源地址是不固定的,当使用ppp或pppoe的方式连接互联网的时候一般适应这个) nat表中包含两个链如下: a.PREROUTING链   在数据包到达防火墙的时候改变目标地址 DNAT应用于此链. b.OUTPUT链   可以改变本地产生的数据包的目标地址 c.POSTROUTING链    在数据包离开防火墙的时候改变源地址,SNAT应用于次链

mangle表

mangle表主要是修改数据包头部信息的,此表中包含以下5条链: PREROUTING链,   在数据包进入防火墙之后,也称为路由前, POSTROUTING链,   在数据包确定目标地址后,也称为路由后, OUTPUT链   从本机出去的时间包路由前 INPUT链   数据包进入本机后,路由后 FORWARD链   第一次路由判断之后,最后一次路由判断之前改变数据包

4)数据包过滤流程

一张图足以说明一切

173142806.png

6、iptables的几个状态

iptables的状态跟踪连接有4种,分别是,NEW,ESTABLISHED,RELATED,INVALID,除了从本机出去的数据包有NAT表的OUTPUT链处理外,其他所有的状态跟踪都在NAT表中的PREROUTING链中处理,下面来说下4种状态是什么,

NEW:新发出请求;连接追踪模板中不存在此连接的相关信息条目,因此,将其识别为第一次发出的请求;ESTABLISHED:NEW状态之后,连接追踪模板中为其建立的条目失效之前期间内所进行的通信状态;RELATED:相关联的连接;如ftp协议中的数据连接与命令连接之间的关系;INVALID:无效的连接;UNTRACKED:未进行追踪的连接;

7、iptables命令介绍及使用

1)规则管理

iptables -A    添加一条新规则,追加,默认在最下面iptables -I    插入一条新规则 -I 后面加一数字表示插入到哪行,默认在最上面iptables -D    删除一条新规则 -D 后面加一数字表示删除哪行iptables -R    替换一条新规则 -R 后面加一数字表示替换哪行

使用示例:

1
2
3
4
5
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT # 在INPUT链添加一条规则
iptables -A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT # 在OUTPUT链添加一条规则
 
iptables -R INPUT 2 -s 172.16.0.0/16 -d 172.16.100.1 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT # 将INPUT链上的第二条规则替换
iptables -R OUTPUT 1 -m state --state ESTABLISHED -j ACCEPT # 将OUTPUT链第一条规则替换

2)链管理

iptables -F    清空链中的所有规则iptables -N    新建一个链iptables -X    删除一个自定义链,删除之前要保证次链是空的,而且没有被引用iptables -E    重命名链

使用示例:

1
2
iptables -t nat -F PREROUTING
iptables -t nat -F 清空nat表的所有链

3)默认规则管理

iptables -P    设置默认规

使用示例:

1
2
3
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD ACCEPT    # 设置这三条链上默认所有的数据包都drop掉

4)查看

iptables -L    查看规则 –L 还有几个子选项如下iptables -L -n 以数字的方式显示iptables -L -v 显示详细信息iptables -L -x 显示精确信息iptables -L --line-numbers 显示行号

5)条件匹配

(1)基本匹配

条件匹配也可以使用 ! 取反

-s    源地址-d    目标地址-p    协议{tcp|udp|icmp}-i    从哪个网络接口进入,比如 -i eth0-o    从哪个网络接口出去,比如 -o eth0

(2)扩展匹配

隐含扩展匹配

-p {tcp|udp} --sport   指定源端口-p {tcp|udp} --dport   指定目标端口

显示扩展匹配

-m state --state   匹配状态的-m mutiport --source-port   端口匹配 ,指定一组端口-m limit --limit 3/minute   每三分种一次-m limit --limit-burst  5   只匹配5个数据包-m string --string --algo bm|kmp --string "xxxx"  匹配字符串-m time --timestart 8:00 --timestop 12:00  表示从哪个时间到哪个时间段-m time --days    表示那天-m mac --mac-source xx:xx:xx:xx:xx:xx 匹配源MAC地址-m layer7 --l7proto qq   表示匹配腾讯qq的 当然也支持很多协议,这个默认是没有的,需要我们给内核打补丁并重新编译内核及iptables才可以使用 -m layer7 这个显示扩展匹配

6)处理动作

-j ACCEPT   允许-j REJECT    拒绝-j DROP       拒绝并提示信息-j SNAT       源地址转换-j DNAT       目标地址转换-j REDIRECT   重定向-j MASQUERAED  地址伪装-j LOG --log-prefix "说明信息,自己随便定义"      记录日志

使用示例:

1
2
3
4
5
iptables -A INPUT -i eth0 -s 192.168.100.0/24 -p tcp --dport 3128 -m state --state NEW,ESTABLISHED -j ACCEPT
# 允许192.168.100.0/24网段的机器发送数据包从eth0网卡进入。如果数据包是tcp协议,而且目的端口是3128(因为REDIRECT已经把80改为3128了,nat表的PREROUTING是在filter表的INPUT前面的),数据包的状态必须是NEW或者ESTABLISHED的(NEW代表tcp三段式握手的“第一握”,换句话说就是,允许客户端机器向服务器发出链接申请。ESTABLISHED表示通过握手已经建立起链接),通过。
 
iptables -A OUTPUT -o eth0 -d 192.168.100.0/24 -p tcp --sport 3128 -m state --state ESTABLISHED -j ACCEPT
# 数据包还得通过服务器,转到内网网卡上。请注意,这里,是squid帮你去访问了你想要访问的网站。所以在内网中,你的机器是客户端角色,而squid是服务器角色。这与刚才对外访问的过程是不同的。所以在这里,源端口是3128,而不是32768:61000。
8、iptables的脚本编写

保存恢复规则:

1
2
iptables-save  >  /PATH/TO/SOME_RULES_FILE
iptables-save  >  /PATH/TO/SOME_RULES_FILE

可以将iptables的规则写到某个文本文件中,在/etc/rc.d/rc.local中使用恢复规则。

当然,也可以直接写iptables脚本,开机自动加载

几个iptables脚本实例:

(1)利用iptables做nat,开放ftp数据传输,划分DMZ区

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#vim iptables.sh
#!/bin/bash
#
#定义变量
mynet=10.10.10.0/24
myip=10.10.10.100
IPT=/sbin/iptables
#加载ftp模块
modprobe ip_conntrack-ftp
modprobe ip_nat_ftp
#开启路由转发功能
echo "1" /proc/sys/net/ipv4/ip_forward
#清空所有表中的规则
$IPT -F
$IPT -t nat –F
$IPT -t mangle –F
#删除所有自定义链
$IPT -X
$IPT -t nat -X
$IPT -t mangle –X
#设置默认策略
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD ACCEPT
#允许状态为ESTABLISHED,RELATED的访问本机,及状态为NEW的从本机出去
$IPT -A INOUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#允许本地环回口访问
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
#允许管理员主机访问本地ssh服务
$IPT -A INPUT -s $myip -m state --state NEW -p tcp --dport 22 -j ACCEPT
$IPT -A OUTPUT -d $myip -p tcp --sport 22 -j ACCEPT
#允许局域网的ping请求
$IPT -A INPUT -s $mynet -p icmp --icmp-type 8 -j ACCEPT
$IPT -A OUTPUT -d $mynet -p icmp --icmp-type 0 -j ACCEPT
#为局域网做SNAT
$IPT -t nat -A POSTROUTING -s $mynet -j SNAT --to-source 222.95.1.97
#为局域网内部的web服务器做DNAT
$IPT -t nat -A PREROUTING -d 222.95.1.97 -p tcp --dport 80 -j DNAT --to-destination 192.168.10.1

(2)Web服务器常用iptables配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
iptables -F
iptables -X
iptables -F -t mangle
iptables -t mangle -X
iptables -F -t nat
iptables -t nat -X
# 首先,把三个表清空,把自建的规则清空。
 
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD ACCEPT
# 设定INPUT、OUTPUT的默认策略为DROP,FORWARD为ACCEPT。
 
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# 先把“回环”打开,以免有不必要的麻烦。
 
iptables -A INPUT -i eth+ -p icmp --icmp-type 8 -j ACCEPT
iptables -A OUTPUT -o eth+ -p icmp --icmp-type 0 -j ACCEPT
# 在所有网卡上打开ping功能,便于维护和检测。
 
iptables -A INPUT -i eth0 -s 192.168.100.250 -d 192.168.100.1 -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -o eth0 -d 192.168.100.250 -s 192.168.100.1 -p tcp --sport 22 -j ACCEPT
# 打开22端口,允许远程管理。(设定了很多的附加条件:管理机器IP必须是250,并且必须从eth0网卡进入)
 
iptables -A INPUT -i eth0 -s 192.168.100.0/24 -p tcp --dport 3128 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -d 192.168.100.0/24 -p tcp --sport 3128 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth1 -s 192.168.168.0/24 -p tcp --dport 3128 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth1 -d 192.168.168.0/24 -p tcp --sport 3128 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth2 -p tcp --dport 32768:61000 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth2 -p tcp --sport 32768:61000 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth2 -p udp --dport 53 -j ACCEPT
iptables -A INPUT -i eth2 -p udp --sport 53 -j ACCEPT
 
这几条语句比较麻烦,逐一介绍:
#iptables -A INPUT -i eth0 -s 192.168.100.0/24 -p tcp --dport 3128 -m state --state NEW,ESTABLISHED -j ACCEPT
允许192.168.100.0/24网段的机器发送数据包从eth0网卡进入。如果数据包是tcp协议,而且目的端口是3128(因为REDIRECT已经把80改为3128了。nat表的PREROUTING是在filter表的INPUT前面的),再而且,数据包的状态必须是NEW或者ESTABLISHED的(NEW代表tcp三段式握手的“第一握”,换句话说就是,允许客户端机器向服务器发出链接申请。ESTABLISHED表示通过握手已经建立起链接),通过。
 
#iptables -A OUTPUT -o eth2 -p tcp --sport 32768:61000 -m state --state NEW,ESTABLISHED -j ACCEPT
我们先来看这一句。现在你的数据包已经进入到linux服务器防火墙上来了。squid需要代替你去访问,所以这时,服务器就成了客户端的角色,所以它要使用32768到61000的私有端口进行访问。(大家会奇怪应该是1024到65535吧。其实CentOS版的linux所定义的私有端口是32768到61000的,你可以通过cat /proc/sys/net/ipv4/ip_local_port_range,查看一下。)再次声明:这里是squid以客户端的身份去访问其他的服务器,所以这里的源端口是32768:61000,而不是3128!
 
#iptables -A INPUT -i eth2 -p tcp --dport 32768:61000 -m state --state ESTABLISHED -j ACCEPT
当然了,数据有去就有回。
 
#iptables -A OUTPUT -o eth0 -d 192.168.100.0/24 -p tcp --sport 3128 -m state --state ESTABLISHED -j ACCEPT
数据包还得通过服务器,转到内网网卡上。请注意,这里,是squid帮你去访问了你想要访问的网站。所以在内网中,你的机器是客户端角色,而squid是服务器角色。这与刚才对外访问的过程是不同的。所以在这里,源端口是3128,而不是32768:61000。
 
iptables -A OUTPUT -o eth2 -p udp --dport 53 -j ACCEPT
iptables -A INPUT -i eth2 -p udp --sport 53 -j ACCEPT
# 当然,DNS是不可缺少的。
 
iptables -A INPUT -i eth+ -p tcp --dport 80 -j LOG --log-prefix "iptables_80_alert" --log-level info
iptables -A INPUT -i eth+ -p tcp --dport 21 -j LOG --log-prefix "iptables_21_alert" --log-level info
iptables -A INPUT -i eth+ -p tcp --dport 22 -j LOG --log-prefix "iptables_22_alert" --log-level info
iptables -A INPUT -i eth+ -p tcp --dport 25 -j LOG --log-prefix "iptables_25_alert" --log-level info
iptables -A INPUT -i eth+ -p icmp --icmp-type 8 -j LOG --log-prefix "iptables_icmp8_alert" --log-level info
# 记录日志
(3)iptables 禁ping脚本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/bin/bash
iptables -F
iptables -F -t nat
iptables -X
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD ACCEPT
#load connection-tracking modules
modprobe ip_tables
modprobe iptable_nat
modprobe ip_nat_ftp
modprobe ip_nat_irc
modprobe ip_conntrack
modprobe ip_conntrack_ftp
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -m multiport --dports 22,80 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -m multiport --dports 22,80 -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type 8 -j ACCEPT

(4)iptables 做web防火墙脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/bin/bash
iptables -F
iptables -X
iptables -Z
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
#load connection-tracking modules
modprobe ip_tables
modprobe iptable_nat
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -p tcp -m multiport --dports 22,80 -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -nv -L
测试扫描端口
nmap -sT 192.168.18.254

(5)iptables 做vsftp防火墙脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/bin/bash
iptables -F
iptables -X
iptables -Z
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD ACCEPT
#load connection-tracking modules
modprobe ip_tables
modprobe iptable_nat
modprobe ip_nat_ftp
modprobe ip_nat_irc
modprobe ip_conntrack
modprobe ip_conntrack_ftp
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 21 -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -nv -L

(6)iptables 做mail防火墙脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/bin/bash
iptables -F
iptables -F -t nat
iptables -X
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
#load connection-tracking modules
modprobe iptable_nat
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -s 122.70.121.XXX -j ACCEPT
iptables -A INPUT -s 122.70.121.XXX -j ACCEPT
iptables -A INPUT -s 122.70.121.XXX -j ACCEPT
iptables -N synflood
iptables -A synflood -m limit --limit 10/s --limit-burst 100 -j RETURN
iptables -A synflood -p tcp -j REJECT --reject-with tcp-reset
iptables -A INPUT -p tcp -m state --state NEW -j synflood
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --limit-burst 5 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
iptables -A INPUT -p tcp -m multiport --dport 80,22,8080,3306,5666,110,143,25,443 -j ACCEPT
测试:
端口扫描
nmap -P0 -sS 214.26.73.x

(7)iptables 做nat路由器脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/bin/bash
echo "1" /proc/sys/net/ipv4/ip_forward
arp -f /root/mac.txt
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
iptables -F INPUT
iptables -F FORWARD
iptables -F POSTROUTING -t nat
iptables -p FORWARD DROP
#客户机绑定mac地址才能上网,这样防止恶意增加IP在公司内部上网,引起不安全隐患
cat /root/mac.txt | while read LINE
do
ipaddress=`echo $LINE | awk '{print $1}'`
macaddress=`echo $LINE | awk '{print $2}'`
iptables -A FORWARD -s $ipaddress -m mac --mac-source $macaddress -j ACCEPT
done
#网关上有几块网卡,eth0接的是外网IP地址,eth1、eth2等对应该局域网IP,因是租用了电信的光纤,不存在着ADSL上网情况
iptables -A FORWARD -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.0/24 -j SNAT --to 59.195.233.234
#iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.0/24 -j MASQUERADE
cat /root/mac.txt
192.168.1.50 00:16:D3:F6:BD:F5
192.168.1.57 00:16:36:B4:6C:5D


让下次开机自动加载脚本 

1
[root@localhost ~]# echo "/bin/bash /root/shell/iptables.sh" >> /etc/rc.local
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 大提单号被修改了怎么办 入户中山没有三年居住证明怎么办 加拼关单号舱单信息没有怎么办 外贸中交货期晚了怎么办 履约保函到期了怎么办 续贷高校未通过怎么办 安卓手机网速慢怎么办 探探性别错了怎么办 尿酸高导致脚肿怎么办 联通光猫复位后怎么办 头部和脸部出油怎么办 vcd解码板坏了怎么办 脚崴了里面筋疼怎么办 长寿龟身上烂了怎么办 纱裙没有腰身显胖怎么办 橘子平台下载速度慢怎么办 换手机号了支付宝账号怎么办 怀孕期间脚扭了怎么办 买了临街房后悔怎么办 绝地求生困在废车里怎么办 身体出现辅助睡眠状态怎么办 扁桃体发炎喉咙痒咳嗽怎么办 电脑玩英雄杀卡怎么办 康佳冰箱显示2e怎么办 高考登陆系统登录密码错误怎么办 苹果遇到ad登录问题怎么办? 小孩2天不拉屎怎么办 20天宝宝不大便怎么办 小孩几天不拉大便怎么办 宝宝经常不拉大便怎么办 宝宝便秘 肛裂了怎么办 3个月宝宝不便便怎么办 宝宝8个月不便便怎么办 宝宝在幼儿园不爱说话怎么办 广东学考考了d怎么办 上嘴唇干燥紧绷怎么办 美国大学gpa非常低怎么办 大学手机作弊通报教务处怎么办 崩坏3邮箱验证码过期怎么办 快递员被顾客恶意投诉怎么办 5岁幼儿逻辑思维差怎么办