iptables命令基础使用

前阵子公司的服务器上搭设了ElasticSearch服务,暴露了9200端口,被安全部门检测到要求整改。

需求:只允许某个IP或IP段访问9200端口。

## -I(insert)参数在头部插入,-A(append)在尾部,往INPUT表添加规则。-p 
## (protocol) TCP协议 --dport destination-port 9200端口 

## 禁止9200端口访问
iptables -I INPUT -p TCP --dport 9200 -j DROP
## 允许IP 10.61.12.0/24这个网段访问9200端口
iptables -I INPUT -s 10.61.12.0/24 -p TCP --dport 9200 -j ACCEPT
## 查看所有规则,并显示line number
iptables -L --line-number 或者 iptables -L INPUT --line-number

Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    ACCEPT     tcp  --  10.10.11.0/24        anywhere             tcp dpt:wap-wsp
2    DROP       tcp  --  anywhere             anywhere             tcp dpt:wap-wsp
3    ACCEPT     udp  --  anywhere             anywhere             udp dpt:domain
4    ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:domain
5    ACCEPT     udp  --  anywhere             anywhere             udp dpt:bootps
6    ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:bootps

##删除规则序号1
iptables -D INPUT 1 

解释一下,因为使用I参数,都是往头部插入。
ACCEPT是指:如果满足规则放行,剩下的规则不需要再执行。
DROP是指:如果满足规则丢弃(这时候客户端会傻傻等待到超时),剩下的规则不需要再执行。
REJECT是指:如果满足规则,则拒绝(REJECT动作会返回一个拒绝(终止)数据包(TCP FIN或UDP-ICMP-PORT-UNREACHABLE),明确的拒绝对方的连接动作),剩下的规则不需要再执行。

看着上表解释,如果满足规则1这个10.10.11.0/24网段,放行,剩下的规则都不需校验了。
如果不满足,执行下一条规则2,对访问9200端口所有的请求都丢弃。如果满足,剩下规则不需校验,同上。
即,满足了特定IP访问9200端口的需求。

引用:
Linux防火墙REJECT与DROP的区别

你可能感兴趣的:(iptables命令基础使用)