iptables

防火墙是每一层都可以检查的-->工作在7层

iptables的4表5链

规则链
规则的作用在于对数据包进行过滤或处理,根据处理时机的不同,各种规则被组织在不同的“链”中
规则链是防火墙规则/策略的集合
默认的5种规则链
INPUT:处理入站数据包
OUTPUT:处理出站数据包
FORWARD:处理转发数据包
POSTROUTING链:在进行路由选择后处理数据包
PREROUTING链:在进行路由选择前处理数据包


根据数据的流向来限制:
    1.只是限制其他的机器访问本机 --》INPUT
    2.做路由器使用  -->PREROUTING、POSTROUTING --->路由功能一定要开启


Chain 链


规则表是规则链的集合
默认的4个规则表
raw表:确定是否对该数据包进行状态跟踪  --》new连接还是以前的连接
mangle表:为数据包设置标记  --》给数据包打标志
nat表:修改数据包中的源、目标IP地址或端口  --》实现nat功能的
filter表:确定是否放行该数据包(过滤)   --》INPUT

firewalld是centos7里的一个防火墙的服务,底层任然使用的是iptables和内核过滤机制

规则表间的优先顺序
依次为:raw、mangle、nat、filter
规则链间的匹配顺序
入站数据:PREROUTING、INPUT
出站数据:OUTPUT、POSTROUTING
转发数据:PREROUTING、FORWARD、POSTROUTING
规则链内的匹配顺序
按顺序依次进行检查,找到相匹配的规则即停止(LOG策略会有例外)
若在该链内找不到相匹配的规则,则按该链的默认策略处理

计划任务:

[root@web-server sanchuang]# crontab -e
[root@web-server sanchuang]# crontab -e 新建一个计划任务
crontab: installing new crontab
[root@web-server sanchuang]# crontab -l  查看计划任务
0 3 * * *  bash /lianxi/mysql/backup_db.sh
*/1 * * * * bash  /root/sanchuang/clear_fw.sh 

语法

iptables的条件:
        1.协议:tcp  udp  icmp
            -p   protocol  小写的p
            -p  icmp   --icmp-type  8    ping请求报文
            -p  icmp   --icmp-type  0    ping响应报文
        2.端口号:
            -p  tcp   --sport
            -p  tcp   --dport
            -p  udp   --sport
            -p  udp   --dport
             -p tcp --sport 20:80
             iptables -A INPUT -p tcp -m multiport --dport 20,21,25,110,1250:1280 -j ACCEPT
        3.ip地址
            -s  source
            -d  destination
iptables -A FORWARD -p tcp -m iprange --src-range 192.168.1.20-192.168.1.99 -j DROP
        4.mac地址
        5.状态
        6.其他
            -i  in-interface
            -o  out-interface


iptables -I INPUT -i ens33 -p tcp --tcp-flags  SYN,RST,ACK  SYN -j REJECT
ens33接口上不接收tcp三次握手的第一个包--》不允许新的连接产生了

[root@localhost ~]# iptables -A FORWARD -m mac --mac-source 00:0C:29:27:55:3F -j DROP
[root@localhost ~]# iptables -A INPUT -p tcp -m multiport --dport 20,21,25,110,1250:1280 -j ACCEPT
[root@localhost ~]# iptables -A FORWARD -p tcp -m iprange --src-range 192.168.1.20-192.168.1.99 -j DROP


常见的数据包处理方式
ACCEPT:放行数据包
DROP:丢弃数据包
REJECT:拒绝数据包,给一个回复
LOG:记录日志信息,并传递给下一条规则处理  --》相当于抓包
用户自定义链名:传递给自定义链内的规则进行处理

SNAT:修改数据包的源地址信息
DNAT:修改数据包的目标地址信息
MASQUERADE 实现snat功能,不需要经常换公网ip地址
自定义链



[root@web-server ~]# iptables -t filter -N sanchuang 新建链
[root@web-server ~]# iptables -t filter -A sanchuang -p tcp --dport 22 -j ACCEPT  增加规则

[root@web-server ~]# iptables -A INPUT -p tcp  --dport 22 -j  sanchuang  通过INPUT链给sanchuang链导流,然后会根据sanchuang链里的规则进行匹配

posted @ 2023-03-28 15:06  法螺話  阅读(22)  评论(0编辑  收藏  举报