iptables常用知识回顾点
- iptables -I/-A/-D 后紧跟 链 ,可以是INPUT,OUTPUT,FORWARD
- iptables -P 用来指定 链的默认策略 --------最好不要直接操作,否则会造成远程的终端断开
iptables案例
需求:
把80,22,21端口放行,但22端口指定一个IP段,只允许这个IP段的IP访问的时候,才可访问到,其他段的一概拒绝; 使用脚本来实现
RELATED状态,这是一个边缘的一个状态
比如:客户端和服务端相互了通信,建立完连接之后,还会有一些额外的链接出来,这时候状态就变成了RELATED(若紧紧只有ESTABLISHED,而没有RELATED,很有可能导致其他的通信被禁掉,因为默认策略是INPUT DROP)
ESTABLISHED状态, 保持连接
有时,在没有增加-m --state这条规则,导致增加了80或21端口,但是不能正常通信,加这条规则的目的是为了让通信更加顺畅
编辑脚本
[root@localhost ~]# vim /usr/local/sbin/iptables.sh
添加内容:
#! /bin/bash
ipt="/usr/sbin/iptables"
#这里ipt是定义个一个变量(写脚本的时候,写全局的路径,就是绝对路径,就是后面再加载它,用变量去代替,看着更加简单)
$ipt -F
#清空之前的规则——>在没有 -t 指定表的时候,默认的就是filter表
$ipt -P INPUT DROP
#把IPPUT的策略给扔掉
$ipt -P OUTPUT ACCEPT
#把OUTPUT放行
$ipt -P FORWARD ACCEPT
#把FORWARD放行
$ipt -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#增加规则,-m --state 指定了状态,并针对这些状态放行(-m --state这种用法并不多见,但是这条规则必须写进来,目的是让相关>的数据包放行)
$ipt -A INPUT -s 192.168.202.130/24 -p tcp --dport 22 -j ACCEPT
#把该网段的22端口数据包放行——>这里的IP段根据自己的IP段来做实验
$ipt -A INPUT -p tcp --dport 80 -j ACCEPT
#把80端口数据包放行
$ipt -A INPUT -p tcp --dport 21 -j ACCEPT
#把21端口数据包放行