iptables服务

来源:互联网 发布:飞书互动 知乎 编辑:程序博客网 时间:2024/05/22 00:33

                                                                              --------iptables------

Iptables服务与Firewalld服务都是用来定义防火墙规则功能的“防火墙管理工具”。

iptables命令用于管理防火墙的规则策略。

三表五链:

**filter表:确定是否放行该数据包(过滤)

**nat表:修改数据包中的源、目标IP地址或端口

**mangle表:为数据包设置标记


filter表INPUT:处理入站的数据包
                OUTPUT:处理出站的数据包
                FORWARD:处理转发的数据包,进行了内核解析

NAT表:

PREROUTING:在进行路由选择前处理数据包
INPUT:处理入站的数据包
OUTPUT:处理出站的数据包
FORWARD:处理转发的数据包
POSTROUTING:在进行路由选择后处理数据包


首先关闭firewalld服务


安装iptables服务


开启iptables服务


1.iptables命令:

iptables
            -t                           ###指定表名称
            -n                         ###不做解析
            -L                         ###列出指定表中的策略
            -A                        ###增加策略
            -p                        ###网络协议
            --dport               ###端口
            -s                        ###数据来源
            -j                         ###动作
            ACCEPT           ###允许
            REJECT           ###拒绝
            DROP               ###丢弃
            -N                       ###增加链
            -E                       ###修改链名称
            -X                       ###删除链
            -D                       ###删除指定策略
            -I                        ###插入策略
            -R                      ###修改策略
            -P                      ###修改默认策略

iptables -t filter -nL      ###查看filter表中的策略


iptables -F                      ###刷掉filter表中的所有策略,当没有用-t指定表名称时默认为filter表


service iptables save                             ###保存当前策略


iptables -A INPUT -i lo -j ACCEPT       ###允许lo
iptables -A INPUT -p tcp --dport 22 -j ACCEPT     ###允许访问22端口
iptables -A INPUT -s 172.25.254.250 -j ACCEPT   ###y允许250主机访问本机所有端口

iptables -A INPUT  -j  REJECT        ####拒绝所有主机的数据来源


iptables -N redhat                               ####增加链redhat

iptables -E redhat westos                 ###改变链名称


iptables -X westos                              ###删除westos链


iptables -D INPUT 2                            ###删除INPUT链中的第二条策略


iptables -I INPUT -p tcp --dport 80 -j REJECT          ###插入策略到INPUT中的第一条

iptables -R INPUT 1 -p tcp --dport 80 -j ACCEPT     ###修改第一条策略


iptables -P INPUT DROP                   ####把INPUT表中的默认策略改为drop


2.数据包状态的策略

数据包状态:

RELATED  :表示该信息包正在启动新连接,以及它与已建立的连接相关联
ESTABLISHED :指出该信息包属于已建立的连接,该连接一直用于发送和接收信息包并且完全有效
NEW : 意味着该信息包已经或将启动新的连接,或者它与尚未用于发送和接收信息包的连接相关联

iptables -A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT            ##允许RELATED与ESTABLISHED包(当服务状态为related或established时,不需要下面的验证)

iptables -A INPUT -i lo -m state –state NEW -j ACCEPT                                           ##允许NEW包
iptables -A INPUT -p tcp –dport 22 -m state –state NEW -j ACCEPT                   ##允许NEW包访问22端口(ssh服务)
iptables -A INPUT -p tcp –dport 80 -m state –state NEW -j ACCEPT                   ##允许NEW包访问80端口
iptables -A INPUT -p tcp –dport 443 -m state –state NEW -j ACCEPT                 ##允许NEW包访问443端口
iptables -A INPUT -p tcp –dport 53 -m state –state NEW -j ACCEPT                   ##允许NEW包访问53端口

iptables -A INPUT -j REJECT ##拒绝所有主机数据来源



防火墙路由设置:

iptables -F       #####刷掉之前的策略
sysctl -a | grep forward        #####查看内部网卡IP转发功能是否开启
echo “net.ipv4.ip_forward = 1” >> /etc/sysctl.conf     ####允许双网卡内部通信
sysctl -p         ######重新加载

desktop端:

eth0 =172.25.254.159
eth1 =172.25.0.10

server端:

eth0 =172.25.0.11
GATEWAY=172.25.0.10      ###设置其中网关为路由主机的同网段ip


iptables -t nat -A PREROUTING -i eth1 -j DNAT –to-dest 172.25.0.11           ####在nat表中的PREROUTING 链添加策略将外网转换为内网,源地址转换
iptables -t nat -A POSTROUTING -o eth1 -j SNAT –to-source 172.25.254.159    ######在nat表中的POSTROUTING链添加策略将内网转换为外网
目的地址转换


测试:连接另外一台不同网段ip的主机




原创粉丝点击