iptables命令-- 服务器访问控制

iptables命令

iptables 是 Linux 操作系统中用于配置 IPv4 数据包过滤规则的工具。它允许系统管理员定义数据包的走向,从而实现网络安全性的控制。

语法

iptables(选项)(参数)
选项
-t<>:指定要操纵的表;
-A:向规则链中添加条目;
-D:从规则链中删除条目;
-i:向规则链中插入条目;
-R:替换规则链中的条目;
-L:显示规则链中已有的条目;
-F:清楚规则链中已有的条目;
-Z:清空规则链中的数据包计算器和字节计数器;
-N:创建新的用户自定义规则链;
-P:定义规则链中的默认目标;
-h:显示帮助信息;
-p:指定要匹配的数据包协议类型;
-s:指定要匹配的数据包源ip地址;
-j<目标>:指定要跳转的目标;
-i<网络接口>:指定数据包进入本机的网络接口;
-o<网络接口>:指定数据包要离开本机所使用的网络接口。

iptables命令选项输入顺序:

iptables -t 表名 <-A/I/D/R> 规则链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源IP/源子网> --sport 源端口 <-d 目标IP/目标子网> --dport 目标端口 -j 动作

表名包括:

raw:高级功能,如:网址过滤。
mangle:数据包修改(QOS),用于实现服务质量。
net:地址转换,用于网关路由器。
filter:包过滤,用于防火墙规则。

规则链名包括:

INPUT链:处理输入数据包。
OUTPUT链:处理输出数据包。
PORWARD链:处理转发数据包。
PREROUTING链:用于目标地址转换(DNAT)。
POSTOUTING链:用于源地址转换(SNAT)。

动作包括:

accept:接收数据包。
DROP:丢弃数据包。
REDIRECT:重定向、映射、透明代理。
SNAT:源地址转换。
DNAT:目标地址转换。
MASQUERADE:IP伪装(NAT),用于ADSL。
LOG:日志记录。

实例

说明: iptables 防火墙的策略匹配顺序为从上向下,当有多条相互排斥的策略在一起时,上面的策略先匹配,并且一旦策略匹配数据包就放行或阻止掉了,下面的策略不会再生效。 

# 查看 iptables 现有规则
iptables -L -n
    
# 查看每个规则chain的序列号。
iptables -L -n --line-number
    
# 根据序列号删除指定一条防火墙规则,如:删除INPUT 表的第三条已添加规则,这里3代表第几行规则
iptables -D INPUT 3 
    
# 清空所有默认规则
iptables -F
    
# 清空所有自定义规则
iptables -X
    
# 所有计数器归 0
iptables -Z
    
# 允许来自于 lo 接口的数据包(本地访问)
iptables -A INPUT -i lo -j ACCEPT
    
# 开放22端口(-A 将规则追加在原有规则的最后一条 -I 将新添加的规则加在原有规则的第一条)
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    
# 禁止访问80端口
iptables -A INPUT -p tcp --dport 80 -j DROP
      
# 允许ping
iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
    
# 允许接受本机请求之后的返回数据 RELATED ,是为 FTP 设置的
iptables -A INPUT -m state --state  RELATED,ESTABLISHED -j ACCEPT
      
# 同时开放2280端口
 iptables -I INPUT -p tcp -m multiport --dport 22,80 -j ACCEPT 
    
# 开放5000-6000端口
iptables -I INPUT -p tcp --dport 5000:6000 -j ACCEPT 
    
# 允许某个网段的ip访问
iptables -I INPUT -p all -s 0.0.0.0/0 -j ACCEPT 
    
# 允许某个ip的8080端口访问
iptables -I INPUT -s 0.0.0.0 -p tcp --dport 8080 -j ACCEPT 
    
# 禁止某台主机的tcp访问访问
iptables -I INPUT -p tcp -s 0.0.0.0 -j DROP 
    
# iptables 禁止指定 IP 段访问
iptables -I INPUT -s 117.41.187.0/24 -j DROP
    
# 只允许访问本机80端口(其他端口都禁止访问
iptables -A INPUT -p tcp ! --dport 80 -j DROP
    
    
# 禁止服务器访问此IP地址
iptables -I OUTNPUT -d 114.232.9.171 -j DROP
    

删除规则:
iptables -t filter -D INPUT 2 //删除filter表中INPUT链中的第二条规则
iptables -D INPUT -s 192.168.1.100 -j ACCEPT //删除源地址为192.168.1.100,动作为ACCEPT的规则
iptables -F INPUT //删除filter表中INPUT链
iptables -F //删除所有的规则(慎用)


# 允许对外访问的所有端口
sudo iptables -A INPUT -p tcp -j ACCEPT

# 拒绝所有其他端口的访问
sudo iptables -A INPUT -j DROP

# 保存上述规则
service iptables save

# 查看配置文件,看是否把临时文件加载进来
cat /etc/sysconfig/iptables


  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值