Linux运维之(十六)iptables命令

iptables命令

构建防火墙的步骤

  • 清除所有规则
    为了避免新建的防火墙与系统中已经运行的防火墙相互干扰,一般应该先清除所有规则。
  • 设置防火墙策略
    设置当数据包没有匹配到链中的规则时应该如何对待(是拒绝还是放行)。
  • 设置防火墙规则
    设置数据包的匹配规则以及匹配后的处理动作(指
    定目标)。

防火墙策略的设置方法

没有明确允许的都被拒绝

方法1:

  1. 首先配置策略禁止所有的包
  2. 然后再根据需要的服务设置规则允许特定的包通过
  3. 最安全,但不太方便

方法2:

  1. 首先配置策略允许所有的包
  2. 然后再根据需要的服务设置规则允许特定的包通过
  3. 最后在链中添加一-条可捕捉一切的拒绝规则
  4. 当捕捉一切的拒绝规则被误删除将导致门户的全面开放

iptables服务

#安装iptables服务
yum -y install iptables-services
yum -y install system-config-firewall-{base,tui}

#屏蔽firewalld服务并开启iptables服务
systemctl stop firewalld
systemctl mask firewalld
systemctl start iptables
systemctl enable iptables

iptables命令语法规则

格式:

iptables [-t table] COMMAND [chain] CRETIRIA -j ACTION

COMMAND :

-A 追加规则
-D 删除规则
-R 修改规则
-I 插入规则
-L 查看规则
-N 新的规则

CRETIRIA :

-p 协议
-s源地址
-d目的地址
-sport源端口
-dport目的端口
-i指定入口网卡
-o指定出口网卡

ACTION:

DROP:丢弃
REJECT:明示拒绝
ACCEPT:接受
SNAT:基于原地址的转换
DNAT:目标地址转换
source:指定原地址
MASQUERADE:动态伪装

示例

列出防火墙所有规则

[root@google ~]# iptables -L -nv
# 列出所有规则,并显示行号
[root@google ~]# iptables -L -nv --line-num

清楚防火墙规则(下列两条同样的效果)

[root@google ~]# iptables -F
[root@google ~]# iptables --flush

拒绝其他所有主机访问

# 此条应为防火墙策略的最后一条规则
[root@google ~]# iptables -A INPUT -j DROP

允许某个ip访问

[root@google ~]# iptables -I INPUT -p tcp -s 192.168.139.1 -j ACCEPT

日志记录

[root@google ~]# iptables -A INPUT -m state --state INVALID -j LOG
# 同时要将无效访问拒绝,避免资源浪费
[root@google ~]# iptables -A INPUT -m state --state INVALID -j DROP

自定义链

[root@google ~]# iptables -N LAN
[root@google ~]# iptables -A INPUT -j LAN
[root@google ~]# iptables -A LAN -j ACCEPT 

大致流程如下
在这里插入图片描述
设置访问端口

# 允许访问22 ssh服务端口
[root@google ~]# iptables -A INPUT -p tcp --dport 22 -j ACCEPT 
# 一次性同时添加80,443端口
[root@google ~]# iptables -A INPUT -p tcp -m multiport --dport 80,443 -j ACCEPT 

#处理IP碎片数量,防止攻击,允许每秒100个

[root@google ~]# iptables -A FORWARD -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT

设置ICMP包过滤,允许每秒1个包,限制触发条件是10个包

[root@google ~]# iptables -A FORWARD -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT

设置地址伪装,内网可以访问外网

[root@google ~]# iptables -t nat -A POSTROUTING -s 192.168.139.128 -j MASQUERADE 

允许内网访问外网某台机器

[root@google ~]# iptables -t nat -A POSTROUTING -s 192.168.139.128 -j SNAT --to-source 192.168.91.128

实现端口转发

[root@google ~]# iptables -t nat -A PREROUTING -s 192.168.91.141 -p tcp --dport 80 -j DNAT --to 192.168.129.129:80
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值