iptables实战

iptables实战

  • 一、iptables命令参数讲解
  • 二、iptables常用命令
  • 三、配置实例讲解
    • 1.限制某台主机远程登陆
    • 2.允许访问22端口
    • 3.拒绝某一IP访问本机某个端口
    • 4.允许某一IP访问,其余拒绝
    • 5.完整iptables配置文件展示

一、iptables命令参数讲解

iptables -A 增加规则,添加到规则的末尾
iptables -D 删除规则
iptables -I 插入规则 ,可以插入到指定位置,没有指定位置的话默认插入到规则的首部。
iptables -Z 计数器清零
iptables -F 清除当前规则,不能清除规则
iptables -R 修改规则
iptables -P INPUT DROP 设定默认规则,不能用-F清除规则,只能用iptables -P ACCEPT才能恢复
iptables (-t nat) --line-number-nvL 查看nat表规则(带有ID号),-t为需要配置的表,默认是filter表
'-j' 跳转到相应的动作,常用有ACCEPT、DROP、REJECT 、MASQUERADE(伪装)
'-s' 后面跟源地址
'-d' 后面跟目的地址
'-p' 后面跟协议,有tcp、udp、icmp等
'--sport' 后面跟源端口号
'--dport' 后面跟目的端口号
'-i' 后面跟输入设备,如eth0
'-o' 后面跟输出设备,如eth0

注意:上面所说的"源"和"目的"(或者成为输入和输出)注意区分,对于INPUT链来说,源是对方,目的是本机,对于OUTPUT链来说则是反过来的。

二、iptables常用命令

CentOS, RedHat
# 保存iptables规则
service iptables save
# 重启iptables服务
方法1:
service iptables stop
service iptables start
方法2(修改配置后常用):
service iptables reload
或者
/etc/init.d/iptables restart
查看当前防火墙规则:
方法1:
cat  /etc/sysconfig/iptables
方法2:
iptables -L --line-number

centos
开启防火墙
命令:systemctl start iptables.service #启动防火墙
命令:systemctl enable iptables.service #设置开机自启动
关闭防火墙
命令:systemctl stop iptables.service #关闭防火墙
命令:systemctl disable iptables.service #禁止开机启动
重启
systemctl restart iptables.service

三、配置实例讲解

1.限制某台主机远程登陆

iptables -A INPUT -p tcp -s 192.168.67.140 --destination-port 22 -j REJECT

2.允许访问22端口

iptables -A INPUT -s 180.136.145.242 -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -s 180.136.145.242 -p tcp --dport 22 -j ACCEPT

3.拒绝某一IP访问本机某个端口

iptables -I INPUT -p tcp -s 172.20.10.2 --dport 888 -j DROP

4.允许某一IP访问,其余拒绝

iptables -A INPUT -s 192.168.1.104 -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -j DROP

为何要有:

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

因为建立一个通信连接需要服务器端和客户端交互才能完成。举例来说,从本机使用ssh客户端去登陆外部的ssh服务器,假设使用端口为12345,那么本就使用tcp端口号12345向服务器22端口发送一个请求,这个属于OUTPUT,由于OUTPUT规则没有任何限制,所以可以顺利到达服务器,服务器收到请求后,服务器会回应本机的tcp 12345端口,此时回应属INPUT,如果INPUT中配置放行此规则,那么连接就无法完成,也即是本机无法和外部通信。外部的网络那么多,总不能逐条去配置INPUT规则,所以为了能访问外部网络,必须要配置上述规则。

5.完整iptables配置文件展示

# Generated by iptables-save v1.4.7 on Mon Nov 18 10:16:35 2019
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [76:9792]
之上是默认配置,下面是具体iptables策略:
-A INPUT -i lo -j ACCEPT(本地回环,必须有)
-A INPUT -s IP/32 -j ACCEPT(具体策略)
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT(必须有)
-A INPUT -j DROP(必须有)
下面是默认配置,必须有
COMMIT
# Completed on Mon Nov 18 10:16:35 2019
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值