Linux学习--iptables

防火墙

工作在主机或网络的边缘,对于进出的数据报文进行检查,监控,根据事先建立好的规则,进行检查,一旦符合标准,就按照制定的规则进行处理的一套机制。
iptables主机型防火墙工作在2,3,4层,对TCP/IP数据包进行过滤和限制,属于包过滤型防火墙。

  • netfilter:内核态,即不以文件形式存在(kernel space)的防火墙
  • iptables:用户态,在/sbin/iptables存在(user space)的命令行工具
防火墙发展

ipfw==>ipchains==>iptables

防火墙缺点
  1. 可以过滤互联网的数据包,但无法过滤内部网络的数据包
  2. 主机本身操作系统漏洞,入侵者可利用漏洞绕过防火墙规则
  3. 无法有效阻挡病毒攻击
iptables四张表
  • filter:【默认表】过滤(防火墙)
  • nat:Network Address Translation,网络地址转换
  • mangle:拆解报文,做出修改,封装功能
  • raw:关闭NAT表上启用的连接追踪机制
iptables五个链
  • PREROUTING:预路由
  • POSTROUTING:已路由
  • INPUT:入站
  • OUTPUT:出站
  • FORWARD:转发
    iptables表,链结构图
表的应用优先级

raw–>mangle–>nat–>filter

链的顺序

入站–>转发–>出站
入站:PREROUTING–>INPUT
出站:OUTPUT–>POSTROUTING
转发:PREROUTING–>FORWARD–>POSTROUTING

优先级顺序

PREROUTING:raw–>mangle–>nat
INPUT:mangle–>filter
FORWARD:mangle–>filter
OUTPUT:raw–>mangle–>nat–>filter
POSTROUTING:mangle–>nat

iptables规则(匹配标准和处理办法)

使用时考量点:

  • 要实现哪种功能:判断添加至哪张表
  • 报文流经的路径:判断添加至哪个链
    链上规则的次序,即为检查的次序
  • 同类规则(访问同一应用),匹配范围小的放上面
  • 不同类型规则(访问不同应用) ,匹配到报文频率较大的放上面
  • 将那些可由一条规则描述的多个规则合并成一个
  • 设置默认规则
    规则和链有计数器:
  • pkts:由规则或链所匹配到的报文的个数
  • bytes:由规则或链匹配到的甩有报文大小之和
    语法:
    iptables [-t TABLE(默认filter表)] SUBCOMMAND CHAIN [num] 匹配标准 -j 处理方法
    -t table[filter,nat,mangle,raw]:默认filter

管理链
-F CHAIN:flush,清空指定规则链,如省略CHAIN,则可以实现删除对应表中的所有链
-P CHAIN:policy,设定指定链的默认策略,对filter表中的链而言,默认策略通常有ACCEPT,DROP,REJECT
-N:new,自定义一个新空链
-X:drop,删除一个自定义的空链
-Z:zero,置零链中所有规则的计数器
-E:rename,重命名自定义的链;引用计数器不为0的自定义链,无法改名,也无法删除
管理规则
-A:append,附加一条规则,添加在链的尾部
-I[–insert] CHAIN [num]:插入一条规则,插入为对应CHAIN上的第num条
-D[–delete] CHAIN [num]:删除指定链中的第num条规则
-R[–replace] CHAIN [num]:替换指定链上的指定规则
查看类
-L:list,显示指定表中的所有规则
-n:number,以数字格式显示主机地址和端口号
-[v|vv|vvv]:verbose显示详细信息
-x:extrac显示计数器的精确值
–line-numbers:显示规则号码

动作(Target)
ACCEPT:放行
DROP:丢弃
REJECT:拒绝
DNAT:目标地址转换
SNAT:源地址转换
REDIRECT:端口重定向
MASQUERADE:地址伪装
LOG:日志
MARK:打标记
默认规则

  • 开放:堵
  • 关闭:通
    匹配标准
  • IP:源IP,目标IP
  • TCP:源Port,目标Port
  • UDP:源Port,目标Port
  • ICMP:icmp类型
    通用匹配:
    [!]-s|–src|–source [IP|Netaddr]:检查报文中源IP地址是否符合此处指定地址范围
    [!]-d|–dst|–destination [IP|Netaddr]:检查报文中目标IP地址是否符合此处指定地址范围
    -p|–protocol {tcp|udp|icmp}:检查报文中的协议,即IP首部中的protocol所标识的协议
    -i|–in-interface INTERFACE:指定数据报文流入的接口,一般用在PREROUTING,INPUT,FORWARD
    -o|–out-interface INTERFACE:指出数据报文流出的接口,一般用在OUTPUT,POSTROUTING,FORWARD
    -j TARGET【ACCEPT|DROP|REJECT|RETURN(返回调用链)|REDIRECT(端口重定向)|LOG(记录日志)|MARK(做防火墙标记)|DNAT(目标地址转换)|SNAT(源地址转换)|MASQUERADE(地址伪装)】: jump至指定的TARGET
    扩展匹配
    -m match_name --spec_options
    隐式扩展:不用特别指明由哪个模块进行的扩展,因为-p {tcp|udp|icmp}已经指定过
    -p tcp
    –sport PORT[-PORT]:源端口
    –dport PORT[-PORT]:目标端口,可以是单个端口或连接端口
    –tcp-flags mask comp:只检查mask指定的标志位,是逗号分隔的标志位列表:comp:此列表中出现的标记位必须为1,comp中没出现,而mask中出现的,必须为0
    –tcp-flags LIST1 LIST2:检查LIST1所指明的所有标志位,且在这其中,LIST2所表示出的所有标记位必须为1,而余下的必须为0:没有LIST1中指明的,不作检查。
    SYN,FIN,ACK,RST,PSH,URG
    –syn:匹配三次握手中的第一次
    -p icmp
    –icmp-type
    0:echo-reply
    8:echo-re
    -p udp
    –sport
    –dport
    显式扩展:必须指明由哪个模块进行扩展,在iptables中使用-m选项可完成此功能, 可以使用额外的匹配机制
    -m EXTENSION --spe-opt:
    state:根据连接追踪机制检查连接的状态
    结合ip_conntrack追踪会话的状态
    NEW:发起的新连接请求,连接追踪模板中不存此连接相关的信息条目,因此,将其识别为第一次发出的请求
    ESTABLISH:已建立的连接,连接追踪模板中为其建立的条目失效之前期间内所进行的通信状态
    INVALID:非法连接报文,即无法识别的连接
    RELATED:相关联的,如ftp协议的命令连接与数据连接之间的关系
    -m state --state NEW -j ACCEPT NEW状态的放行
    -m state --state NEW ,ESTABLISH -j ACCEPT NEW和ESTABLISH状态的都放行
    multiport:离散的多端口匹配扩展
    –source-ports:指明多个源端口
    –destination-ports:指明多个离散的目标端口
    –ports
    -m multiport --destination-ports 21,22,80
    iprange:指定地址范围
    –src-range ip-ip 源地址区域
    –dst-range ip-ip 目标地址区域
    connlimit:连接数限制,指定同一个IP地址同时能发起的连接数
    –connlimit-above 【n】:连接数上限
    –connlimit-upto 【n】:连接的数量小于等于n
    limit:基于收文报文的速率做检查,令牌桶过滤器
    –limit RATE :速率
    –limit-burst 7 :上限
    string:检查报文中出现的字符串
    –algo {bm(Boyer-Moore)|kmp(Knuth-Pratt-)}:指名匹配的算法
    –from offset:从offset开始
    –to offset:到offset结束
    –string “STRING”
    –hex-string pattern:基于十六进制字符匹配
    time:根据报文到达的时间与指定的时间范围进行匹配,注意时间格式
    –datestart
    –datestop
    –timestart
    –timestop
    –monthdays
    –weekdays
    条件取反:!
    -s ! 192.168.88.135
    -j LOG
    –log-prefix “string”
filter(过滤):表
  • INPUT
  • OUTPUT
  • FORWARD
[root@mail ~]# iptables -t filter -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination    
nat(地址转换):表
  • PREROUTING
  • OUTPUT
  • POSTROUTING
[root@mail ~]# iptables -t nat -L -n
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination 
mangle(拆开、修改、封装):表
PREROUTING
INPUT
OUTPUT
FORWARD
POSTROUTING
[root@mail ~]# iptables -t mangle -L -n
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination 
raw():表
PREROUTING
OUTPUT
[root@mail ~]# iptables -t raw -L -n
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination  
操作事例

注:需先写好规则,再修改默认的匹配规则,预防把自己挡在规则外面,添加规则时必须有进有出

[root@mail ~]# iptables -t filter -A INPUT -s 192.168.88.1 -d 192.168.88.135 -p tcp --dport 22 -j ACCEPT
[root@mail ~]# iptables -t filter -A OUTPUT -s 192.168.88.135 -d 192.168.88.1 -p tcp --sport 22 -j ACCEP
#修改默认匹配规则
[root@mail ~]# iptables -P INPUT DROP
[root@mail ~]# iptables -P OUTPUT DROP
[root@mail ~]# iptables -P FORWARD DROP
[root@mail ~]# service iptables status
Table: filter
Chain INPUT (**policy DROP**)
num  target     prot opt source               destination         
1    ACCEPT     tcp  --  192.168.88.1         192.168.88.135      tcp dpt:22 
Chain FORWARD (**policy DROP**)
num  target     prot opt source               destination         
Chain OUTPUT (**policy DROP**)
num  target     prot opt source               destination         
1    ACCEPT     tcp  --  192.168.88.135       192.168.88.1        tcp spt:22 
#---------删除INPUT链中第3条规则
[root@mail htdocs]# iptables -L -n -v
Chain INPUT (policy DROP 4 packets, 240 bytes)
 pkts bytes target     prot opt in     out     source               destination         
 2237  180K ACCEPT     tcp  --  *      *       192.168.88.1         192.168.88.135      tcp dpt:22 
  143 16615 ACCEPT     tcp  --  *      *       192.168.88.0/24      192.168.88.135      tcp dpt:80 
    0     0 ACCEPT     tcp  --  *      *       192.168.88.135       192.168.88.0/24     tcp spt:80 
... ...
#执行删除操作
[root@mail htdocs]# iptables -D INPUT 3
#删除后结果如下
[root@mail htdocs]# iptables -L -n -v
Chain INPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
 2319  186K ACCEPT     tcp  --  *      *       192.168.88.1         192.168.88.135      tcp dpt:22 
  143 16615 ACCEPT     tcp  --  *      *       192.168.88.0/24      192.168.88.135      tcp dpt:80 
  #---------删除INPUT链中第3条规则
  #---------添加本地回环地址的ping功能
  [root@mail htdocs]# iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -i lo -j ACCEPT
  [root@mail htdocs]# iptables -A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -o lo -j ACCEPT
[root@mail htdocs]# iptables -L -n -v
Chain INPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
 2742  218K ACCEPT     tcp  --  *      *       192.168.88.1         192.168.88.135      tcp dpt:22 
  143 16615 ACCEPT     tcp  --  *      *       192.168.88.0/24      192.168.88.135      tcp dpt:80 
    0     0 ACCEPT     all  --  lo     *       127.0.0.1            127.0.0.1           
Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
Chain OUTPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
 1767  224K ACCEPT     tcp  --  *      *       192.168.88.135       192.168.88.1        tcp spt:22 
  167  527K ACCEPT     tcp  --  *      *       192.168.88.135       192.168.88.0/24     tcp spt:80 
    0     0 ACCEPT     all  --  *      lo      127.0.0.1            127.0.0.1 
 #---------添加本地回环地址的ping功能
 #---------打开ping别人的功能,ping别人时,出去的时候icmp-type为8,进来的时候icmp-type为0
 [root@mail htdocs]# iptables -A OUTPUT -s 192.168.88.135 -p icmp --icmp-type 8 -j ACCEPT
[root@mail htdocs]# iptables -A INPUT -d 192.168.88.135 -p icmp --icmp-type 0 -j ACCEPT
 #---------打开ping别人的功能
 #---------打开被别人ping的功能,被别人ping时,进来的时候icmp-type为8,出去的时候icmp-type为0
 [root@mail htdocs]# iptables -A INPUT -d 192.168.88.135 -p icmp --icmp-type 8 -j ACCEPT
[root@mail htdocs]# iptables -A OUTPUT -s 192.168.88.135 -p icmp --icmp-type 0 -j ACCEPT
 #---------打开被别人ping的功能
 #---------保存iptables规则
 [root@mail ~]# service iptables save[root@mail ~]# iptables-save > /etc/sysconfig/iptables
#恢复iptables规则
[root@mail ~]# iptables-restore < /etc/sysconfig/iptables
  #---------保存iptables规则
#---------state功能
#查看nf_conntrack的状态信息
[root@mail ~]# cat /proc/net/nf_conntrack
ipv4     2 tcp      6 431999 ESTABLISHED src=192.168.88.1 dst=192.168.88.135 sport=50313 dport=22 src=192.168.88.135 dst=192.168.88.1 sport=22 dport=50313 [ASSURED] mark=0 secmark=0 use=2
ipv4     2 tcp      6 299 ESTABLISHED src=192.168.88.135 dst=192.168.88.1 sport=22 dport=49835 src=192.168.88.1 dst=192.168.88.135 sport=49835 dport=22 [ASSURED] mark=0 secmark=0 use=2
#配置信息
[root@mail ~]# ls /proc/sys/net/netfilter
nf_conntrack_acct                  nf_conntrack_log_invalid              nf_conntrack_tcp_timeout_last_ack
nf_conntrack_buckets               nf_conntrack_max                      nf_conntrack_tcp_timeout_max_retrans
nf_conntrack_checksum              nf_conntrack_tcp_be_liberal           nf_conntrack_tcp_timeout_syn_recv
nf_conntrack_count                 nf_conntrack_tcp_loose                nf_conntrack_tcp_timeout_syn_sent
nf_conntrack_events                nf_conntrack_tcp_max_retrans          nf_conntrack_tcp_timeout_time_wait
nf_conntrack_events_retry_timeout  nf_conntrack_tcp_timeout_close        nf_conntrack_tcp_timeout_unacknowledged
nf_conntrack_expect_max            nf_conntrack_tcp_timeout_close_wait   nf_conntrack_udp_timeout
nf_conntrack_generic_timeout       nf_conntrack_tcp_timeout_established  nf_conntrack_udp_timeout_stream
nf_conntrack_icmp_timeout          nf_conntrack_tcp_timeout_fin_wait     nf_log
[root@mail ~]# cat /proc/sys/net/netfilter/nf_conntrack_tcp_timeout_established 
432000
[root@mail ~]# cat /proc/sys/net/netfilter/nf_conntrack_tcp_timeout_close
10
[root@mail ~]# cat /proc/sys/net/netfilter/nf_conntrack_max
65536
#添加别人能ping自己的防火墙规则
[root@mail netfilter]# iptables -A INPUT -d 192.168.88.135 -p icmp --icmp-type echo-request -m state --state NEW,ESTABLISHED -j ACCEPT
[root@mail netfilter]# iptables -A OUTPUT -s 192.168.88.135 -p icmp --icmp-type echo-reply -m state --state ESTABLISHED -j ACCEPT
#只检查连接状态为ESTABLISHED,不检查端口
[root@mail netfilter]# iptables -I OUTPUT -s 192.168.88.135 -m state --state ESTABLISHED -j ACCEPT
[root@mail netfilter]# iptables -L -n
Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     tcp  --  0.0.0.0/0            192.168.88.135      tcp dpt:22 state NEW,ESTABLISHED 
ACCEPT     icmp --  0.0.0.0/0            192.168.88.135      icmp type 8 state NEW,ESTABLISHED 
Chain FORWARD (policy DROP)
target     prot opt source               destination         
Chain OUTPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  192.168.88.135       0.0.0.0/0           state ESTABLISHED 
#----------------放行ftp连接
[root@mail netfilter]# iptables  -I INPUT -d 192.168.88.135 -p tcp --dport 21 -m state --state ESTABLISHED,RELATED -j ACCEPT
[root@mail netfilter]# iptables -R OUTPUT 1 -s 192.168.88.135 -m state --state ESTABLISHED,RELATED -j ACCEPT
#----------------放行ftp连接
#----------------多端口匹配
		#---将所有INPUT状态为ESTABLISHED的连接放行
[root@mail netfilter]# iptables -I INPUT -d 192.168.88.135 -m state --state ESTABLISHED -j ACCEPT
		#---放行多端口
[root@mail netfilter]# iptables -I INPUT 2 -d 192.168.88.135 -p tcp -m state --state NEW -m multiport --destination-ports 21,22,80 -j ACCEPT
#----------------多端口匹配
#----------------对访问速率进行设定,接收每分钟3个连接
[root@mail vsftpd]# iptables -I INPUT -d 192.168.88.135 -p tcp --dport 22 -m limit --limit 3/minute --limit-burst 3 -j ACCEPT

[root@mail ~]# iptables -R INPUT 3 -d 192.168.88.135 -p icmp --icmp-type 8 -m state --state NEW,ESTABLISHED -m limit --limit 1/second -j ACCEPT
#----------------对访问速率进行设定
#----------------过滤字符串(过滤包含字符串edison的全部拒绝)
[root@mail edison.com]# iptables -I INPUT -d 192.168.88.135 -m string --algo kmp --string "edison" -j REJECT
#----------------过滤字符串
#----------------记录日志,日志会导致磁盘IO,
[root@mail edison.com]# iptables -I INPUT 3 -p icmp --icmp-type 8 -j LOG --log-prefix "---???firewall???---"
#----------------记录日志
#------------------利用iptables的recent模块来抵御DOS攻击
[root@mail edison.com]# iptables -I INPUT 1 -d 192.168.88.135 -p tcp --dport 22 -m connlimit --connlimit-above 3 -j DROP
[root@mail edison.com]# iptables -I INPUT 2 -d 192.168.88.135 -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH
[root@mail edison.com]# iptables -I INPUT 2 -d 192.168.88.135 -p tcp --dport 22 -m state --state NEW -m recent  --update --seconds 300 --hitcount 3 --name SSH -j DROP
#------------------利用iptables的recent模块来抵御DOS攻击
事例学习-20211112

禁止自己被ping,在filter表的INPUT链插入一个丢弃icmp规则

# 在mysql2主机上添加iptables规则,禁止被ping
[root@mysql2 ~]# iptables -t filter -I INPUT -p icmp -j REJECT
# 查看iptables规则
[root@mysql2 ~]# iptables -L -t filter
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
REJECT     icmp --  anywhere             anywhere            reject-with icmp-port-unreachable 

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination 
# 在mysql1主机上ping一下mysql2主机
[root@mysql1 ~]# ping 192.168.0.136
PING 192.168.0.136 (192.168.0.136) 56(84) bytes of data.
From 192.168.0.136 icmp_seq=1 Destination Port Unreachable
From 192.168.0.136 icmp_seq=2 Destination Port Unreachable
From 192.168.0.136 icmp_seq=3 Destination Port Unreachable
From 192.168.0.136 icmp_seq=4 Destination Port Unreachable

#-A(append)表示在filter表INPUT链的最后面追加规则
[root@mysql2 ~]# iptables -t filter -A INPUT -p tcp -j ACCEPT
#-I(insert)表示在filter表INPUT链的最前面追加规则
[root@mysql2 ~]# iptables -I INPUT -p udp -j ACCEPT
#在filter表的INPUT链的第2条前插入规则
[root@mysql2 ~]# iptables -I INPUT 2 -p icmp -j ACCEPT
[root@mysql2 ~]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     udp  --  anywhere             anywhere            
ACCEPT     icmp --  anywhere             anywhere            
ACCEPT     tcp  --  anywhere             anywhere            

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination   
#删除filter表INPUT链的第3条      
[root@mysql2 ~]# iptables -D INPUT 3
#查看filter表的规则
[root@mysql2 ~]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     udp  --  anywhere             anywhere            
ACCEPT     icmp --  anywhere             anywhere            

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination    
#清空所有规则     
[root@mysql2 ~]# iptables -F
[root@mysql2 ~]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination 

#如果源IP为192.168.0.136的所有包都拒绝
[root@mysql2 ~]# iptables -I INPUT -s 192.168.0.136 -j REJECT
[root@mysql2 ~]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
REJECT     all  --  192.168.0.136        anywhere            reject-with icmp-port-unreachable 

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination 
#使用当前主机进行ping则不能ping通
[root@mysql2 ~]# ping 192.168.0.136
PING 192.168.0.136 (192.168.0.136) 56(84) bytes of data.
^C
--- 192.168.0.136 ping statistics ---
8 packets transmitted, 0 received, 100% packet loss, time 7903ms
#禁用所有192.168.0网段的数据包,执行完后,xshell客户端直接无法连接
[root@mysql2 ~]# iptables -I INPUT -s 192.168.0.0/24 -j DROP
#-i 禁用指定接口的数据包
[root@mysql2 ~]# iptables -I INPUT -i eth0 -j DROP
#测试禁用httpd服务80端口,放行FTP服务,如主机上没有安装httpd、vsftp服务,则需要先安装,测试ftp服务,安装lftp工具
[root@mysql2 ~]# iptables -I INPUT -p tcp --dport 80 -j DROP
[root@mysql2 ~]# iptables -I INPUT -p tcp --dport 20:21 -j ACCEPT
#如果需要将ftp服务的包也DROP掉,会出现以下
[root@mysql2 ~]# iptables -I INPUT -p tcp --dport 20:21 -j DROP
[root@mysql2 ~]# lftp 192.168.0.136
lftp 192.168.0.136:~> ls
`ls' at 0 [Connecting...]
#在INPUT链中添加ssh服务的包可以通过,修改默认INPUT链的包全部DROP掉
[root@mysql2 ~]# iptables -I INPUT -p tcp --dport 22 -j ACCEPT
[root@mysql2 ~]# iptables -P INPUT DROP
#icmp中0表示应答,8表示请求
#自己ping别人可以,别人不能ping我
[root@mysql2 ~]# iptables -A INPUT -p icmp --icmp-type 8 -j DROP
#自己不能ping别人,别人可以ping我
[root@mysql2 ~]# iptables -A INPUT -p icmp --icmp-type 0 -j DROP
#拒绝任何ping请求
[root@mysql2 ~]# iptables -I INPUT -p icmp -j DROP
#一次放行或阻止多个端口
[root@mysql2 ~]# iptables -A INPUT -p tcp -m multiport --dport 80,20,21 -j DROP
[root@mysql2 ~]# lftp 192.168.0.136
#无法查看内容
lftp 192.168.0.136:~> ls              
`ls' at 0 [Connecting...]
#网址也无法访问
[root@mysql2 ~]# curl http://192.168.0.136
^C
#一次放行或阻止多个IP
[root@mysql2 ~]# iptables -A INPUT -m iprange --src-range 192.168.0.106-192.168.0.135 -j DROP
[root@mysql2 ~]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
DROP       all  --  anywhere             anywhere            source IP range 192.168.0.106-192.168.0.135 
#----通过mysql1(192.168.0.135)主机ssh访问mysql2主机出现不能访问
#通过mac地址控制访问,00:0C:29:1F:64:7C为mysql1主机MAC,设置完成后mysql1对mysql2访问的数据包将被丢弃掉
[root@mysql2 ~]# iptables -A INPUT -m mac --mac-source 00:0C:29:1F:64:7C -j DROP
[root@mysql2 ~]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
DROP       all  --  anywhere             anywhere            MAC 00:0C:29:1F:64:7C 
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值