iptables主机防火墙功能及常用命令

FSM:Finite State Machine 有限状态机

客户端:closed -->syn_sent -->established --> fin_wait_1 -->find_wait_2 --> timewait(2MSL)
服务器:closed -->listen -->syn_rcvd -->establised --> close_wait -->last_ack

-m state:追踪连接状态
   模板:内存中会维持一个空间
       NEW
       ESTABLISHED
       RELATED
       INVALID
在前端的服务器中尽量不要开启追踪连接

iptables子命令
  规则:-A,-I,-D,-R
  链:-N,-X,-F,-Z,-E,-P -S
      通:默认 DROP
      堵:默认ACCEPT
  显示:-L -S
      -L 
       -n -v -x --line-numbers

规则定义:iptables -t table -A|-I|-R chain 匹配条件 -j target
      匹配条件
         通用匹配:-s -d -i -o -p
         扩展匹配
             隐含扩展
               -p tcp
                --sport --dport --tcp-flags
                --syn
               -p udp
                 --sport --dport
               -p icmp
                  --icmp-type
                    echo-request 8
                    echo-reply 0
              显示扩展:
                 -m state 
                    --state
                 -m multiport
                    --sprots, --dports,  --ports
                 -m iprange
                    --src-range, --dst-range
                 -m string
                    -algo {bm|kmp} --string --hex-string
                 -m connlimit
                   ! --connlimit-above
                 -m limit
                   --limit n(/second|/minute|/hour|/day), --limit-burst
                 -m time
                    --datestart --datestop
                    --timestart -- timestop
                    --weekdays
           -j
             ACCEPT,DROP,REJECT,LOG,REDIRECT,SNAT,DNST,MASQUERADE,MARK,RETURN,自定义链

四表:raw mangle nat filter 
五链:PREROUTING INPUT FOEWARD OUTPUT POSTOUTING

规则保存和恢复:iptables-save iptables-restore

主机防火墙:INPUT OUTPUT

网络防火墙:FORWARD

路由:
    NAT:
/proc/sys/net/ipv4/ip_forward

地址属于内核,地址当前属于主机的都给予响应

路由:对Linux主机而言,设定/proc/sys/net/ipv4/ip_forward的值为1,即为开启路由
     路由表的生成
       静态:手动添加
       动态:基于路由协议学习,RIP2 OSPF
NAT:网络地址转换
     A:10
     B:172.16-172.31
     C:192.168.0-192.168.255

NAT: 工作于传输层和网络层
        过载技术
        Basic NAT:静态NAT
        NAPT:动态NAT,网络地址端口转换
             源地址转换:SNAT 用于内网主机访问互联网
             目标地址转换:DNAT
             让互联网上主机访问本地内网中的某服务器上的服务(发布)

iptables基于SNAT和DNAT这两个目标实现地址转换技术
        -j SNT --to-source SIP
        规则添加:POSTROUTING链
        -j MASQUERAADE  动态获取

-j DNAT --to-destination DIP{:PORT}
        支持端口映射

基于nat表
           PREROUTING
           POSTROTING
           OUTPUT

Proxy(代理):工作在应用层

举例说明:

网络拓扑

简单网络访问路由转发功能

172.16.1.10能ping通192.168.8.40,但不能ping通192.168.8.39
192.168.8.39能Ping通172.16.1.254,但不能ping通172.16.1.10
原因:linux中网卡程序都加载于系统内核中,运行在上面的网卡程序会被系统认为是同一个设备

配置开启路由转发功能
# vim /etc/sysctl.conf

net.ipv4.ip_forward = 1

让配置生效
# sysctl -p

也可以,采用如下命令临时生效

# sysctl -w net.ipv4.ip_forward=1

验证

# cat /proc/sys/net/ipv4/ip_forward

windows客户端添加路由,也可以实现访问

route add 172.16.1.0 mask 255.255.255.0 172.16.1.254

将转发规则屏蔽,则无法访问
# iptables -P FORWARD DROP

对常见服务的放行实例

放行192.168.8.39中80口的访问
# iptables -A FORWARD -s 172.16.1.10 -d 192.168.8.39 -p tcp --dport 80 -j ACCEPT
# iptables -A FORWARD -d 172.16.1.10 -s 192.168.8.39 -p tcp --sport 80 -j ACCEPT

放行172.16.1.0/24网段对192.168.8.0网段22号端口的访问
# iptables -A FORWARD -s 172.16.1.0/24 -d 192.168.8.0/24 -p tcp --dport 22 -j ACCEPT
# iptables -A FORWARD -s 192.168.8.0/24 -d 172.16.1.0/24 -p tcp --sport 22 -j ACCEPT

重新编写规则
# iptables -F FORWARD
# iptables -A FORWARD -m state --state ESTABLISHED -j ACCEPT
# iptables -R FORWARD 2 -d 192.168.8.39 -p tcp -m multiport --dports 22,80 -m state --state NEW -j ACCEPT

nat规则举例

初始化:
# iptables -P INPUT ACCEPT
# iptables -P OUTPUT ACCEPT
//需要accept否则将无法通过路由转发任何数据包
# iptables -P FORWARD ACCEPT

模拟dnat功能之互联网访问局域网服务器

外网端:172.16.1.10
内网端:192.168.8.39

//将访问172.16.1.254 80端口的服务映射到8.89的80端口上
# iptables -t nat -F
# iptables -t nat -A PREROUTING -d 172.16.1.254 -p tcp --dport 80 -j DNAT --to-destination 192.168.8.39

在目标8.39的web日志中可以看到是172.16.1.10访问的,而不是192.168.8.40路由访问

禁止172.16.1.10的IP访问
# iptables -I FORWARD -s 172.16.1.10 -j REJECT

通过外网地址172.16.1.254的22022端口访问192.168.8.39的22号端口(相当于端口映射)
# iptables -t nat -A PREROUTING -d 172.16.1.254 -p tcp --dport 22022 -j DNAT --to-destination 192.168.8.39:22

模拟snat功能之局域网访问互联网应用

172.16.1.10 和 172.16.1.254的eth1都放置于 vmnet2虚拟交换环境中

充当路由功能的机器

外网接口:
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=none
IPADDR=192.168.8.15
BROADCAST=192.168.8.255
NETMASK=255.255.255.0
GATEWAY=192.168.8.254
NETWORK=192.168.8.0

DNS配置
/etc/resolve.conf
nameserver 192.168.8.251

内网接口:
# cd /etc/sysconfig/network-scripts/
# cp ifcfg-eth0 ifcfg-eth1

DEVICE=eth1
ONBOOT=yes
BOOTPROTO=none
IPADDR=172.16.1.254
BROADCAST=172.16.1.255
NETMASK=255.255.255.0
NETWORK=172.16.1.0

内网的机器:

172.16.1.10
DNS:192.168.8.251
GAWEWAY:172.16.1.254

配置192.168.8.251
# vim /etc/sysctl.conf
打开防火墙转发功能
net.ipv4.ip_forward = 1

sysctl -p 使配置生效

在防火墙上添加规则,对来自内网 172.16.1.0网段的机器进行源地址转换
# iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -j SNAT --to-source 192.168.8.15

测试在内网机器中可以访问互联网

转载于:https://www.cnblogs.com/reblue520/p/6239853.html

iptables实现网络防火墙及地址转换相关推荐

  1. 华为防火墙nat地址转换实现可以访问互联网

    如下拓扑图: 首先,我们设置云如下,让他与本机互通 我们开始配置 首先初始化防火墙:第一次登录的时候会让你修改密码,默认的账号为admin密码:Admin@123 输入账号密码后选择Y然后修改密码 设 ...

  2. 华为eNSP防火墙NAT地址转换之NAT-NOPAT

    防火墙NAT地址转换 NAT-NOPAT(一对一) NAT No-PAT 只转换报文的IP 地址,不转换端口,需要上网的私网用户数量省,公网IP地址数量与同时上网的最大私网用户数量基本相同,在NAT ...

  3. iptables二之防火墙SNAT源地址转换,MASQUERADE地址伪装之DNAT目标地址转换讲解和实验演示...

    一)SNAT源地址装换,俗称将私网地址转换成公网地址 Snat:source network address translation 意思是当多个Pc机客户端需要共享adsl路由上网时,每个pc机都配 ...

  4. iptables二之防火墙SNAT源地址转换,MASQUERADE地址伪装之DNAT目标地址转换讲解和实验演示

    一)SNAT源地址装换,俗称将私网地址转换成公网地址 Snat:source network address translation 意思是当多个Pc机客户端需要共享adsl路由上网时,每个pc机都配 ...

  5. C# 网络编程 IP地址转换

    IP地址 IP地址:是给每个连接在因特网上的主机(或路由器)分配一个在全世界范围内惟一的标识符.一个IP地址主要由两部分组成:网络地址和主机地址. 网络地址由因特网权力机构分配,主机地址由各个网络的管 ...

  6. 深信服AF防火墙(地址转换)服务器映射

    场景:外网口接口IP:1.1.1.1,内网口:192.168.100.1,需要使用外网IP:1.1.1.2 解决:(1)需要将1.1.1.2配置到外网接口上 2.服务器映射: 3.测试访问映射web站 ...

  7. Linux命令:iptables网络防火墙

    Linux命令:iptables 网络防火墙 一.iptables的发展: iptables的前身叫ipfirewall (内核1.x时代),这是一个作者从freeBSD上移植过来的,能够工作在内核当 ...

  8. linux命令:iptables、modprobe装载模块、网络防火墙服务

    装载ip追踪模块ip_conntrack: [root@johntest ~]# modprobe ip_conntrack   #装载ip_conntrack模块 [root@johntest ~] ...

  9. linux系统之网络防火墙(firewalld服务和iptables服务)

    一.对于防火墙的理解 防火墙,其实就是用于实现Linux下访问控制的功能的,它分为硬件的和软件的两种. 无论是在哪个网络中,防火墙工作的地方一定是在网络的边缘. 而我们的任务就是需要去定义到底防火墙如 ...

最新文章

  1. 树莓派默认密码_用树莓派搭建私人简易网盘 2/5 树莓派4B初始设置
  2. NIOS2 DMA 传输模式
  3. 山东华为服务器安装系统,山东云服务器平台安装
  4. 计算机网络基础(路由原理)
  5. mplayer1.3.0交叉编译
  6. 华为天才少年1万块自制机械臂,网友:200万给少了
  7. 『高级篇』docker之安全认证kubernetes命令熟悉(40)
  8. PHP集锦点,php 函数集锦
  9. paip.提升性能--多核cpu中的java/.net/php/c++编程
  10. U盘PE删除影子系统(PowerShadow),解决安装后重启蓝屏的问题
  11. apk加壳加密工具(apk protect) v1.0下载
  12. Python个人快速入门学习(九)jieba库的使用
  13. C/C++开3次方函数cbrt
  14. Jenkins - 札记 - 无法连接仓库:Command “git ls-remote -h -- http://git.govmade.cn/shanghai/demo.git HEAD“...
  15. Fortran简明自学手册
  16. Error:Internal error: (java.lang.IllegalArgumentException) Argument for
  17. mysql 交集,并集,差集
  18. 听完“Java 教父”李刚的分享,我总结了两点建议
  19. linux内核led驱动开发,从Linux内核LED驱动来理解字符设备驱动开发流程
  20. Facebook在美上线相亲功能,微软AI成为麻将冠军!...|一周热闻回顾

热门文章

  1. 前端(五)——CSS之美化页面
  2. 2.7.3 ecshop php7.1_ECshop 迁移到 PHP7版本时遇到的兼容性问题
  3. opencv均值滤波_python+opencv图像处理(二十)
  4. 机器人学习--智能移动机器人的有关技术演讲(浙大-熊蓉教授-2021年)
  5. Matlab | 数字信号处理:用窗函数法设计FIR数字滤波器
  6. ssm实现发送邮件功能
  7. python的原则_python 类的使用原则
  8. 【NLP】利用维基百科促进自然语言处理
  9. 建议收藏!百度不到的硬核资源~
  10. 【职场】什么才是程序员摸鱼的最高境界?