linux系统iptables的使用

一,iptables和firewalld比较

在CentOS 7系统中,firewalld防火墙取代了iptables防火墙。其实,iptables与firewalld都不是真正的防火墙,它们都只是用来定义防火墙策略的防火墙管理工具或者服务。
iptables服务会把配置好的防火墙策略交由内核层面的netfilter网络过滤器来处理,而firewalld服务则是把配置好的防火墙策略交由内核层面的nftables包过滤框架来处理。换句话说,当前在Linux系统中其实存在多个防火墙管理工具,旨在方便运维人员管理Linux系统中的防火墙策略,我们只需要配置妥当其中的一个就足够了。虽然这些工具各有优劣,但它们在防火墙策略的配置思路上是保持一致的。

二,iptables语法

语法:

iptables (选项) (参数)

iptables命令选项输入顺序:

iptables -t 表名 <-A/I/D/R> 规则链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源IP/源子网> --sport 源端口 <-d 目标IP/目标子网> --dport 目标端口 -j 触发动作(目标值)

注:
-t(table) 表 四表:filter,nat,mangle,raw (默认表是filter)
-A(append) 追加添加 -I(insert)插入 行号 -D(delete)删除 行号 -R(replace)替换
-i(in-interface)流入接口 -o(out-interface)流出接口
-p(protocol) 协议 tcp, udp, udplite, icmp等
-s(source) 源地址 --sport(source port)源端口
-d(destination)目标地址 --dport(destination port) 目标端口
-j(jump) 执行 ACCPET/DROP/REJECT/DNAT/SNAT/MASQUERADE/REDIRECT/LOG(必须大写)

三,iptables工作流程


iptables过滤的规则顺序是:
由上至下,匹配即停止。
iptables有四表和五链:(链名必须大写)
四表:
filter(过滤规则表):(默认)INPUT,OUPUT,FORWARD
nat(地址转发规则表):PREROUTING,OUTPUT,POSTROUTING
mangle(修改数据位规则表):PREROUTING,INPUT,OUPUT,FORWARD,POSTROUTING
raw(跟踪数据表规则表):PRERONTING,OUTOUT

五链:PREROUTING(路由前过滤),INPUT(入站过滤),OUTPUT(出站过滤),FORWARD(转发过滤),POSTROUTING(路由后过滤)

四,iptables命令

以下配置的系统环境:redhat6.7

[[email protected] ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 6.7 (Santiago)

首先是防火墙服务的启动停止:

service iptables save | stop | start | restart | status | save  //CentOS6保存,停止,启动,重启,查看状态,保存
chkconfig iptables on| off  //开机自起或关闭
systemctl stop | start | restart | status   firewalld  //CentOS7停止,启动,重启,查看状态
systemctl enable | disable firewalld   //开机自起或关闭

1.主机型防火墙

每次配置完后需要保存配置:
/etc/init.d/iptables save 或者 serveice iptables save

1.1 在61主机上开启iptables服务。只允许192.168.4.254的主机访问自己的ssh服务。

[[email protected] ~]# iptables -F
[[email protected] ~]# iptables  -t  filter  -A  INPUT  -s  192.168.4.254 -p tcp  --dport 22  -j ACCEPT
[[email protected] ~]# iptables  -t  filter   -P  INPUT  DROP
[[email protected] ~]# serveice iptables save
[[email protected] ~]# iptables  -t  filter  -nL  INPUT
Chain INPUT (policy DROP)
target     prot opt source               destination
ACCEPT     tcp  --  192.168.4.254        0.0.0.0/0           tcp dpt:22 

1.2 在61主机上添加1条新的规则,允许网络中的所有主机访问本机的网站服务。

[[email protected] ~]# iptables  -t  filter  -A  INPUT    -p tcp  --dport  80  -j   ACCEPT
[[email protected] ~]# serveice iptables save
[[email protected] ~]# iptables  -t  filter  -nL  INPUT
Chain INPUT (policy DROP)
target     prot opt source               destination
ACCEPT     tcp  --  192.168.4.254        0.0.0.0/0           tcp dpt:22
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:80

1.3 在61主机上添加1条新的规则,不允许192.168.4.62主机访问本机的网站服务。

[[email protected] ~]# iptables  -t  filter  -I  INPUT  2  -s  192.168.4.62  -p tcp  --dport  80  -j  ACCEPT
[[email protected] ~]# serveice iptables save
[[email protected] ~]# iptables  -t  filter  -nL  INPUT
Chain INPUT (policy DROP)
target     prot opt source               destination
ACCEPT     tcp  --  192.168.4.254        0.0.0.0/0           tcp dpt:22
ACCEPT     tcp  --  192.168.4.62         0.0.0.0/0           tcp dpt:80
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:80 

1.4 在61主机上添加新的规则,61可以ping网络中的其他主机 ,但其他主机不可以ping61主机。

[[email protected] ~]# iptables  -t  filter  -A  INPUT  -p  icmp   --icmp-type  echo-reply  -j  ACCEPT
[[email protected] ~]# serveice iptables save
[[email protected] ~]# iptables  -t  filter  -nL  INPUT
Chain INPUT (policy DROP)
target     prot opt source               destination
ACCEPT     tcp  --  192.168.4.254        0.0.0.0/0           tcp dpt:22
ACCEPT     tcp  --  192.168.4.62         0.0.0.0/0           tcp dpt:80
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:80
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           icmp type 0

2.网络型型防火墙

注:主机65和67的网关是192.168.4.68
2.1 让局域网内所有的主机共享一个公网ip地址上网。

[[email protected] ~]# iptables -F
[[email protected] ~]# iptables -t nat -A POSTROUTING -s 192.168.4.0/24 -o eth1 -j SNAT --to-source 192.168.2.68
[[email protected] ~]# iptables -t nat -nL POSTROUTING
Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
SNAT       all  --  192.168.4.0/24       0.0.0.0/0           to:192.168.2.68

2.2 发布局域网内的网站服务。

[[email protected] ~]# iptables -t nat -A PREROUTING -i eth1 -d 192.168.2.68 -p tcp --dport 80 -j DNAT --to-destination 192.168.4.67
[[email protected] ~]# iptables -t nat -nL PREROUTING
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
DNAT       tcp  --  0.0.0.0/0            192.168.2.68        tcp dpt:80 to:192.168.4.67

共勉:I hear and I forget , I see and I remember, I do and I understand!

参考资料:
http://man.linuxde.net/iptables
https://www.cnblogs.com/alimac/p/5848372.html
https://www.cnblogs.com/can-H/p/6726743.html
http://www.benet.wang/%E6%8A%80%E6%9C%AF%E9%9D%A2%E8%AF%95/174.html
https://www.cnblogs.com/wajika/p/6382853.html
http://www.jb51.net/article/112698.htm

原文地址:http://blog.51cto.com/13667098/2105527

时间: 2024-07-30 16:55:17

linux系统iptables的使用的相关文章

LINUX系统iptables配置命令

开始配置 我们来配置一个filter表的防火墙. (1)查看本机关于IPTABLES的设置情况 [[email protected] ~]# iptables -L –n [[email protected] ~]/etc/sysconfig/iptables [[email protected] ~]/etc/init.d/iptables status|stop|start [[email protected] ~]/sbin/chkconfig –level 2345 iptables o

Linux系统Iptables防火墙使用手册

Linux的内置firewall机制,是通过kernel中的netfilter模块实现的(www.netfilter.ort).Linux kernel使用netfilter对进出的数据包进行过滤,netfilter由三个规则表组成,每个表又有许多内建的链组成.通过使用iptables命令可以对这些表链进行操作,如添加.删除和列出规则等. 一.Netfilter规则表—filter nat mangle filter,用于路由网络数据包.是默认的,也就是说如果没有指定-t参数,当创建一条新规则时

类linux 系统iptables 系统初始化配置

#!/bin/bash iptables -F iptables -X /etc/rc.d/init.d/iptables save service iptables restart iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A INPUT -p tcp --dport 38999

Linux系统/etc/sysconfig目录下没有iptables文件

在新安装的linux系统中,防火墙默认是被禁掉的,一般也没有配置过任何防火墙的策略,所有不存在/etc/sysconfig/iptables文件. 解决办法: 1.键入以下命令,新建文件 2.复制以下代码,此代码默认开启80,3306,22端口 # Firewall configuration written by system-config-firewall# # Manual customization of this file is not recommended.*filter:INPU

解决Linux系统没有/etc/sysconfig/iptables文件

Linux系统中,防火墙默认是不开启的,一般也没有配置过任何防火墙的策略,所以不存在/etc/sysconfig/iptables文件. 一.常规解决方法: 1.在控制台使用iptables命令随便写一条防火墙规则 iptables -A OUTPUT -j ACCEPT 2.使用 service iptables save 进行保存,默认就保存到了/etc/sysconfig目录下的iptables文件中. 但是,这个方法已经在一些版本的Linux下无法使用,比如Ubuntu,Debian.

Linux系统日常管理2 tcpdump,iptables

Linux系统日常管理2 tcpdump,iptables  Linux抓包工具 tcpdump 系统自带抓包工具 如果没有安装,需要安装之后才可以使用 安装: [[email protected] ~]# yum install -y tcpdump tcpdump -nn 不转换顿口的名字,直接显示端口号 tcpdump -nn -i eth0 tcp and host 192.168.0.1 and port 80 抓取192.168.0.1ip地址的80端口的tcp包,并且不进行端口名字

Linux -- 系统安全之Iptables防火墙(2)

一.iptables防水墙的实现方式及iptables命令的格式 iptables防火墙介绍 netfilter/iptables是Linux系统提供的一个非常优秀的防火墙工具,它完全免费.功能强大.使用灵活.占用系统资源少,可以对经过的数据进行非常细致的控制.本节首先介绍有关iptables防火墙的基本知识,包括netfilter框架.iptables防火墙结构与原理.iptables命令格式等内容. netfilter框架 Linux内核包含了一个强大的网络子系统,名为netfilter,它

快速入门linux系统的iptables防火墙 1 本机与外界的基本通信管理

概述 iptables是一种运行在linux下的防火墙组件,下面的介绍可以快速的学习iptables的入门使用. 特点(重要) 它的工作逻辑分为 链.表.规则三层结构. 数据包通过的时候,在对应表中,规则从上向下匹配,匹配到即跳出,后续规则忽略. 常用于过滤数据包和转发数据包(代理服务器). 工作方式基于IP 端口 和MAC 结构 链名 PREROUTING FORWARD POSTROUTING INPUT OUTPUT 含义 一般是指从外网发送到当前主机上 并且在路由规则处理之前 一般指从外

Linux系统中的防火墙的实现:iptables/netfilter

防火墙:包括软件防火墙(基于iptables/netfilter的包过滤防火墙)和硬件防火墙,在主机或网络边缘对经由防火墙的报文以一定条件进行检测过滤的一系列组件. Linux系统中的防火墙的实现:利用iptables/netfilter既可以实现主机防火墙(安全服务范围仅限于当前某台主机),又可以实现网络防火墙(安全服务范围为当前局域网).netfilter:Linux系统内核中防火墙的框架,防火墙功能实现的主体:iptables:为netfilter编写数据传输的匹配规则的用户空间中的应用程