iptables

##########################
#########iptables#########
##########################




1.iptables 实际上就是一种ip信息包过滤型防火墙。就是通过书写一些接受哪些包,拒绝哪些包的规则,实现数据包的过滤。这些规则存储在专用的信息包过滤表中,而这些表集成在 Linux 内核中。在信息包过滤表中,规则被分组放在我们所谓的链(chain)中。
iptables由两部分组成:
1>framework:netfilter hooks function钩子函数,实现网络过滤器的基本框架。
2>rule utils:iptables 规则管理工具
总体说来,iptables就是由“四表五链”组成。
四表:
    filter:过滤,防火墙
    nat :network address translation 网络地址转换
    mangle:拆解报文,作出修改,封装报文
    raw: 关闭nat表上启用的链接追踪机制

五链:
    PREROUTING 数据包进入路由之前
    INPUT 目的地址为本机
    FORWARD 实现转发
    OUTPUT 原地址为本机,向外发送
    POSTROUTING 发送到网卡之前

2.区分SNAT和DNAT
SNAT 和 DNAT 是 iptables 中使用 NAT 规则相关的的两个重要概念。如果内网主机访问外网而经过路由时,源 IP 会发生改变,这种变更行为就是 SNAT;反之,当外网的数据经过路由发往内网主机时,数据包中的目的 IP (路由器上的公网 IP) 将修改为内网 IP,这种变更行为就是 DNAT 。

与 SNAT 和 DNAT所对应的两个链分别是  POSTROUTING和PREROUTING  。


3.iptables参数
    -t          ##指定表名称
    -n         ##不再解析
    -L         ##列出指定表中的策略
    -A         ##增加策略
    -p         ##网络协议
    -P         ##修改默认策略
    --dport   ##端口
    -s         ##数据来源
    -j          ##动作
     -R        ##修改策略
    -N         ##增加链
    -E         ##修改链名称
    -X         ##删除链
    -D         ##删除指定策略
    -I          ##插入

 ACCEPT   ##允许

  REJECT   ##拒绝

   DROP     ##丢弃

[root@localhost ~]# systemctl status firewalld.service
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# systemctl disable firewalld.service
[root@localhost ~]# systemctl start iptables.service
[root@localhost ~]# systemctl enable iptables.service


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

service iptables save        ##保存当前策略


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.60 -j ACCEPT       ##允许60主机访问本机所有端口
iptables -A INPUT -j ACCEPT                                ##拒绝所有主机的数据来源


测试:60主机


iptables -N redhat                         ##增加链redhat
iptables -E redhat westos              ##改变链名称
iptables -X westos                         ##删除westos链


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


iptables -R INPUT 1 -p tcp --dport 80 -j ACCEPT   ##修改第一条策略
iptable -P INPUT DROP                                      ##把INPUT表中的默认策略改为drop



iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT    ##策略状态为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
iptables -A INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -m state --state NEW -j ACCEPT
iptables -A INPUT -p tcp --dport 53 -m state --state NEW -j ACCEPT
iptables -A INPUT -j REJECT
iptables -t filter -nL




[root@localhost ~]# vim /etc/sysctl.conf            ##内核路由功能开启 参数保存/proc/sys/net/ipv4/下
[root@localhost ~]# sysctl -p                           ##生效
net.ipv4.ip_forward = 1
[root@localhost ~]# iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 172.25.254.100   ##从eth1出来的数据包做源地址伪装,伪装成172.25.254.100
[root@localhost ~]# iptables -t nat -A PREROUTING -i eth1 -j DNAT --to-dest 172.25.0.11               ##从eth1进来的数据包做目的地址转换,转换成172.25.0.11
[root@localhost ~]# iptables -t nat -nL


测试:server端ping254网段和0网段均可ping通

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值