linux日常管理(三)--iptables概念、语法

10.11 Linux网络相关
10.12 firewalld和netfilter
10.13 netfilter5表5链介绍
10.14 iptables语法
扩展(selinux了解即可)
1.selinux教程 http://os.51cto.com/art/201209/355490.htm
2.selinux pdf电子书 http://pan.baidu.com/s/1jGGdExK
3.netfilter参考文章 http://www.cnblogs.com/metoy/p/4320813.html

网络相关

ifconfig是比较老的工具了,用来查看网卡ip。它在net-tools包中:yum install net-toolsifconfig只显示当前工作的网卡,选项-a可以显示所有的,包括关掉的网卡。

ifup ens33ifdown ens33 这俩命令很好理解,分别是开启ens33网卡和关闭网卡。主要用在更改指定网卡后单独重启网卡。注意down后不要把自己坑了:如果只有着一个能连接的网卡请小心操作。

设定虚拟网卡的思路是拷贝一个ens33:1配置文件,然后修改避免与原网卡配置冲突,最后重启网卡即可。设定虚拟网卡在keeplived会用到。

mii-tool ens33 查看网卡是否物理连接,如果反馈“link ok”表示连接正常。也可以用另外一个工具:ethtool ens33,反馈“link detected:ok”表示连接正常。

更改主机名:hostnamectl set-hostname xxx,xxx是新的主机名。这个命令在centos6上不支持,主要是centos7开始使用systemd工具。两个系统都可以手动修改etc/hostname来更改主机名。

DNS是用来解析网址为ip的服务,具体概念不难,可以搜索关键字了解相关知识。在这里说以下自己关于网址、ip服务的理解:操作系统本地有host文件(和hostname无关,这是两个概念)、DNS文件,当我们要访问一个网址,操作系统首先在hosts文件中查找是否有对应网址ip的匹配,如果没有就去DNS文件中找。DNS文件里有本地记录的,也有网络服务商提供的服务器(远程记录),操作系统本地查找无果就去服务器中找。以上就是DNS的优先级。

linux上DNS配置文件是/etc/resolv.conf。这个文件是有netmanagerment生成的。我们直接在etc/sysconfig/network-scripts/ifcfg-ens33修改。上面说/etc/hosts文件只在当下有用,系统重启后hosts文件会重置。

防火墙

linux里有丰富的安全配制。selinux是红帽强大的安全机制,但是大多数公司都会关掉这个功能。因为其配置比较复杂,对后续服务影响较多,工作量较大。selinux临时关闭命令:setenforce 0。selinux永久关闭:vi /etc/selinux/config然后修改selinux一行。getenforce可以查看selinux运行状态。

关于防火墙,centos7之前使用netfilter防火墙,centos7开始使用firewalld防火墙。两个工具机制不一样,但是内部的使用的iptables都一样。现在centos6使用率还是挺多的。所以下面先介绍netfilter。

在centos7,首先要关闭firewalld,然后开启netfilter:

systemctl stop firewalld #关掉firewalld
systemctl disable firewalled #关闭firewalld开机启动
yum install -y iptables-services #安装iptables-services,这样就可以使用之前版本的iptables了
systemctl enable iptables #设置开机启动
systemctl start iptables #启动服务

netfilter五个表

netfilter有5个表,实现防火墙规则配置。则五个表常用的是filter、nat两个表:

  • filter表用于过滤包,最常用的表,有INPUT、FORWARD、OUTPUT三个链
  • nat表用于网络地址转换,有PREROUTING、OUTPUT、POSTROUTING三个链
  • managle表用于给数据包做标记,几乎用不到
  • raw表可以实现不追踪某些数据包,几乎用不到
  • security表在centos6中并没有,用于强制访问控制(MAC)的网络规则,几乎用不到

配置防火墙的工作就是添加、修改和删除一些网络包处理规则。这些规则存储在上面五个表中,分别指定了源地址、目的地址、传输协议(如TCP、UDP、ICMP)和服务类型(如HTTP、FTP和SMTP)等。当数据包与规则匹配时,iptables就根据规则所定义的方法来处理这些数据包,如放行(accept)、拒绝(reject)和丢弃(drop)等。

数据包流向图

数据包流向与netfilter的5个链:

  • PREROUTING:数据包进入路由表之前
  • INPUT:通过路由表后目的地为本机
  • FORWARD:通过路由表后,目的地不为本机
  • OUTPUT:由本机产生,向外发出
  • POSTROUTING:发送到网卡接口之前

链(chains)是数据包传播的路径,每一条链其实就是众多规则中的一个检查清单。当一个数据包到达一个链时,iptables就会从链中第一条规则开始检查,看该数据包是否满足规则所定义的条件。如果满足,系统就会根据该条规则所定义的方法处理该数据包;否则iptables将继续检查下一条规则,如果该数据包不符合链中任一条规则,iptables就会根据该链预先定义的默认策略来处理数据包。

规则链之间的优先顺序:
第一种情况:入站数据流向
从外界到达防火墙的数据包,先被PREROUTING规则链处理(是否修改数据包地址等),之后会进行路由选择(判断该数据包应该发往何处),如果数据包 的目标主机是防火墙本机(比如说Internet用户访问防火墙主机中的web服务器的数据包),那么内核将其传给INPUT链进行处理(决定是否允许通 过等),通过以后再交给系统上层的应用程序(比如Apache服务器)进行响应。

第二冲情况:转发数据流向
来自外界的数据包到达防火墙后,首先被PREROUTING规则链处理,之后会进行路由选择,如果数据包的目标地址是其它外部地址(比如局域网用户通过网 关访问QQ站点的数据包),则内核将其传递给FORWARD链进行处理(是否转发或拦截),然后再交给POSTROUTING规则链(是否修改数据包的地 址等)进行处理。

第三种情况:出站数据流向
防火墙本机向外部地址发送的数据包(比如在防火墙主机中测试公网DNS服务器时),首先被OUTPUT规则链处理,之后进行路由选择,然后传递给POSTROUTING规则链(是否修改数据包的地址等)进行处理。

规则表之间的优先顺序:Raw——mangle——nat——filter

iptables操作

语法格式:iptables [-t 表名] 命令选项 [链名] [条件匹配] [-j 目标动作或跳转]

说明:表名、链名用于指定 iptables命令所操作的表和链,命令选项用于指定管理iptables规则的方式(比如:插入、增加、删除、查看等;条件匹配用于指定对符合什么样条件的数据包进行处理;目标动作或跳转用于指定数据包的处理方式,比如允许通过、拒绝、丢弃、跳转给其它链处理。

iptables命令选项:

-A  在指定链的末尾添加(append)一条新的规则
-D  删除(delete)指定链中的某一条规则,可以按规则序号和内容删除
-I  在指定链中插入(insert)一条新的规则,默认在第一行添加
-R  修改、替换(replace)指定链中的某一条规则,可以按规则序号和内容替换
-L  列出(list)指定链中所有的规则进行查看
-E  重命名用户定义的链,不改变链本身
-F  清空(flush)
-N  新建(new-chain)一条用户自己定义的规则链
-X  删除指定表中用户自定义的规则链(delete-chain)
-P  设置指定链的默认策略(policy)
-Z  将所有表的所有链的字节和数据包计数器清零
-n  使用数字形式(numeric)显示输出结果
-v  查看规则表详细信息(verbose)的信息
-V  查看版本(version)
-h  获取帮助(help)

防火墙处理数据包的四种方式

ACCEPT 允许数据包通过
DROP   直接丢弃数据包,不给任何回应信息
REJECT 拒绝数据包通过,必要时会给数据发送端一个响应的信息。
LOG    在/var/log/messages文件中记录日志信息,然后将数据包传递给下一条规则

以下是iptables语法简图:


iptables语法图

下面是范围匹配可选项:


iptables范围匹配图

以下是一些比较有代表性的iptables语句,可以参照上面语法熟悉以下:

iptables -nvL #查看iptables规则
iptables -F #清空规则
service iptables save #保存规则
iptables -t nat #-t指定表
iptables -Z  #可以把计数器清零
iptables -A INPUT -s 192.168.188.1 -p tcp --sport 1234 -d 192.168.188.128 --dport 80 -j DROP 
iptables -I/-A/-D INPUT -s 1.1.1.1 -j DROP
iptables -I INPUT -s 192.168.1.0/24 -i eth0 -j ACCEPT
iptables -nvL --line-numbers #查看iptables规则,并在前面标号
iptables -D INPUT 1 #删除标号为1的规则
iptables -P INPUT DROP #input链默认规则执行drop动作
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,457评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,837评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,696评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,183评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,057评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,105评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,520评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,211评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,482评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,574评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,353评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,897评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,489评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,683评论 2 335

推荐阅读更多精彩内容