iptables防火墙及其相关命令

1、iptables防火墙简介

Iptables也叫netfilter是Linux下自带的一款免费且优秀的基于包过滤的防火墙工具,它的功能十分强大,使用非常灵活,可以对流入、流出、流经服务器的数据包进行精细的控制。iptables是Linux2.4及2.6内核中集成的模块。

2、iptables原理简介

(1)iptables的结构
在iptables中有四张表,分别是filter、nat、mangle和raw每一个表中都包含了各自不同的链,最常用的是filter表。
这里写图片描述

(2)filter表
filter是iptables默认使用的表,负责对流入、流出本机的数据包进行过滤,该表中定义了3个链:
INPOUT 负责过滤所有目标地址是本机地址的数据包,就是过滤进入主机的数据包。
FORWARD 负责转发流经本机但不进入本机的数据包,起到转发的作用。
OUTPUT 负责处理所有源地址是本机地址的数据包,就是处理从主机发出去的数据包。

3、Iptables服务相关命令

(1)查看iptables状态
service iptables status

(2)开启/关闭iptables
service iptables start
service iptables stop

(3)查看iptables是否开机启动
chkconfig iptables –list

(4)设置iptables开机启动/不启动
chkconfig iptables on
chkconfig iptables off

4、Iptables其他命令

(1)查看帮助
iptables -h
man iptables

列出iptables规则
iptables -L -n
列出iptables规则并显示规则编号
iptables -L -n –line-numbers

列出iptables nat表规则(默认是filter表)
iptables -L -n -t nat

清除默认规则(注意默认是filter表,如果对nat表操作要加-t nat)
(2)清楚所有规则
iptables -F

(3)重启iptables发现规则依然存在,因为没有保存
service iptables restart

(4)保存配置
service iptables save

(5)禁止ssh登陆(若果服务器在机房,一定要小心)

注意:dport前面是两个横杆

iptables -A INPUT -p tcp –dport 22 -j DROP

(6)删除规则
iptables -D INPUT -p tcp –dport 22 -j DROP

-A, –append chain 追加到规则的最后一条
-D, –delete chain [rulenum] Delete rule rulenum (1 = first) from chain
-I, –insert chain [rulenum] Insert in chain as rulenum (default 1=first) 添加到规则的第一条
-p, –proto proto protocol: by number or name, eg. ‘tcp’,常用协议有tcp、udp、icmp、all
-j, –jump target 常见的行为有ACCEPT、DROP和REJECT三种,但一般不用REJECT,会带来安全隐患

注意:INPUT和DROP这样的关键字需要大写

(7)禁止192.168.33.0网段从eth0网卡接入
iptables -A INPUT -p tcp -i eth0 -s 192.168.33.0 -j DROP
iptables -A INPUT -p tcp –dport 22 -i eth0 -s 192.168.33.61 -j ACCEPT

(8)禁止ip地址非192.168.10.10的所有类型数据接入
iptables -A INPUT ! -s 192.168.10.10 -j DROP

(9)禁止ip地址非192.168.10.10的ping请求
iptables -I INPUT -p icmp –icmp-type 8 -s 192.168.50.100 -j DROP

(10)扩展匹配:1.隐式扩展 2.显示扩展

#隐式扩展
    -p tcp
        --sport PORT 源端口
        --dport PORT 目标端口

    #显示扩展:使用额外的匹配规则
    -m EXTENSTION --SUB-OPT
    -p tcp --dport 22 与 -p tcp -m tcp --dport 22功能相同

    state:状态扩展,接口ip_contrack追踪会话状态
        NEW:新的连接请求
        ESTABLISHED:已建立的连接请求
        INVALID:非法连接
        RELATED:相关联的连接

(11)匹配端口范围
iptables -I INPUT -p tcp –dport 22:80 -j DROP

(12)匹配多个端口
iptables -I INPUT -p tcp -m multiport –dport 22,80,3306 -j ACCEPT

(13)不允许源端口为80的数据流出
iptables -I OUTPUT -p tcp –sport 80 -j DROP

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
iptables 是一个用于 Linux 操作系统中的防火墙工具,它可以通过过滤和修改网络数据包来实现网络流量控制和安全策略。下面是一些常见的 iptables 命令及其详细解释: 1. iptables -L:列出当前防火墙规则 2. iptables -F:清除所有防火墙规则 3. iptables -A INPUT -p tcp --dport 22 -j ACCEPT:添加一条规则,允许SSH连接到本机的22端口 4. iptables -A INPUT -p tcp --dport 80 -j ACCEPT:添加一条规则,允许HTTP连接到本机的80端口 5. iptables -A INPUT -s 192.168.1.0/24 -j DROP:添加一条规则,禁止来自192.168.1.0/24网段的数据包访问本机 6. iptables -D INPUT 1:删除 INPUT 链中的第一条规则 7. iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT:添加一条规则,允许所有经过 eth0 网卡的已建立或相关连接的数据包访问本机 8. iptables -A INPUT -p icmp -j DROP:添加一条规则,禁止来自 ICMP 协议的数据包访问本机 9. iptables -A INPUT -p tcp --dport 22 -m limit --limit 3/minute --limit-burst 5 -j ACCEPT:添加一条规则,限制每分钟只能接受3个SSH连接请求,且瞬间最多只能接受5个连接请求 10. iptables -A INPUT -p tcp --dport 22 -m recent --name ssh --set:添加一条规则,记录每个 SSH 连接的 IP 地址,并将其存储在名为 ssh 的列表中 11. iptables -A INPUT -p tcp --dport 22 -m recent --name ssh --rcheck --seconds 30 --hitcount 3 -j DROP:添加一条规则,如果在 30 秒内某个 IP 地址多于 3 次尝试 SSH 连接本机,则禁止该 IP 地址访问本机的 SSH 端口 以上是一些常用的 iptables 命令及其解释,使用时需要根据实际需求进行调整。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值