您的位置:首页 > 理论基础 > 计算机网络

linux学习第二十九篇:linux网络相关,防火墙:firewalld和netfilter,netfilter5表5链介绍,iptables语法

2017-11-20 17:40 1366 查看

linux网络相关

查看网卡ip //安装包:yum install -y net-tools

ifconfig

-a:当网卡没有IP的时候不会显示

打开网卡:

ifup ens33

关闭网卡:

ifdown ens33

关闭网卡后开启网卡(防止远程连接时关闭网卡后没法远程连接)

ifdown ens33 && ifup ens33

设定一个虚拟网卡:

进入配置文件的目录:cd /etc/sysconfig/network-scripts/

复制网卡ens33配置文件:cp ifcfg-ens33 ifcfg-ens33\:0 //记得要用\脱义:号。

配置ifcfg-ens33:0配置文件:把IP改了,NAME和DEVICE都改为ens33:0,DNS和GATEWAY网关可以删除。

重启网卡:ifdown ens33 && ifup ens33

查看网卡是否连接:

mii-tool ens33

link ok说明是连接的



有些人的可能不支持,可以使用命令:ethtool ens33

最后一行link显示yes说明是连接的



更改主机名为xie(自定义):

hostnamectl set-hostname xie

主机名的配置文件:/etc/hostname

DNS配置文件,网卡配置文件中的DNS的ip会在这DNS配置文件中。也可以临时编辑DNS配置文件中的DNS,不过重启了网卡,依然会被网卡配置文件里的dns配置所覆盖:

/etc/resolv.conf //临时编辑的格式:nameserver ip地址

linux和Windows都有的配置文件,修改域名解析使本机访问到自己设置的本机的IP(只在本机生效)

/etc/hosts

//格式:123.456.789.456 www.qq123.com,中间空格分开。也可以后面接多个域名。一个IP后面可以跟多个域名,可以是几十个甚至上百个;每行只能有一个IP,也就是说一个域名不能对应多个IP;如果有多行中出现相同的域名(前面IP不一样),会按最后面出现的记录来解析。

linux防火墙:firewalld和netfilter

selinux临时关闭:

setenforce 0

selinux永久关闭,编辑配置文件:

vi /etc/selinux/config



重启系统生效。

查看防火墙状态的命令:

getenforce //显示 Enforcing就是打开,Permissive就是selinux虽然开启,但是不会真正去阻断,只会提醒。

centos7之前使用netfilter防火墙

centos7开始使用firewalld防火墙

关闭firewalld开启netfilter方法:

停掉firewalled,不让它开机启动

systemctl disable firewalld

关闭firewalld:

systemctl stop firewalld

安装iptables包:

yum install -y iptables-services

安装完iptables会产生的服务:

systemctl enable iptables

开启iptables(实际是开启了netfilter,iptables只是工具):

systemctl start iptables

查看iptables的默认规则:

iptables -nvL

netfilter5表5链介绍

netfilter的五个表

filter 这个表主要用于过滤包的,是系统预设的表,这个表也是阿铭用的最多的。内建三个链INPUT、OUTPUT以及FORWARD。INPUT作用于进入本机的包;OUTPUT作用于本机送出的包;FORWARD作用于那些跟本机无关的包。

nat主要用处是网络地址转换,也有三个链。PREROUTING 链的作用是在包刚刚到达防火墙时改变它的目的地址,如果需要的话。OUTPUT链改变本地产生的包的目的地址。POSTROUTING链在包就要离开防火墙之前改变其源地址。

mangle 这个表主要是用于给数据包打标记,然后根据标记去操作哪些包。

raw表可以实现不追踪某些数据包,默认系统的数据包都会被追踪,但追踪势必消耗一定的资源,所以可以用raw表来指定某些端口的包不被追踪。

security表在Centos6中是没有的,它用于强制访问控制(MAC)的网络规则。

netfilter的五个链

PREROUTING:数据包进入路由表之前

INPUT:通过路由表后目的地为本机

FORWARDING:通过路由表后,目的地不为本机

OUTPUT:由本机产生,向外转发

POSTROUTING:发送到网卡接口之前

iptables传输数据包的过程

① 当一个数据包进入网卡时,它首先进入PREROUTING链,内核根据数据包目的IP判断是否需要转送出去。

② 如果数据包就是进入本机的,它就会沿着图向下移动,到达INPUT链。数据包到了INPUT链后,任何进程都会收到它。本机上运行的程序可以发送数据包,这些数据包会经过OUTPUT链,然后到达POSTROUTING链输出。

③ 如果数据包是要转发出去的,且内核允许转发,数据包就会如图所示向右移动,经过FORWARD链,然后到达POSTROUTING链输出。





iptables语法

查看iptables规则,-nvL 即查看该表的规则,其中-n表示不针对IP反解析主机名;-L表示列出的意思;而-v表示列出的信息更加详细。如果不加-t指定表,则默认是filter表:

iptables -nvL

规则保存在配置文件iptables中:

/etc/sysconfig/iptables

清空规则:

iptables -F

重新加载配置文件里的规则:

systemctl restart iptables.service

保存规则,重启系统之后都会加载配置文件里的规则,用这个命令保存之后重启系统后就会生效,如果不这样保存,那修改的规则仅仅保存在内存中,下次启动就不会生效:

service iptables save

-t指定表:

iptables -t nat

可以把计数器清零:

iptables -Z

不加-t默认是filter表,-A是增加一条规则,针对的链是INPUT链,-s指定来源IP,-p指定协议,–sport指定来源端口,-d目标的IP,–
4000
dport目标的端口,-j后面跟动作:DROP把数据扔掉/REJECT拒绝(DROP是看都不看数据包就扔掉,但是REJECT是看完数据包再拒绝,ACCEPT表示允许包)

iptables -A INPUT -s 192.168.188.1 -p tcp –sport 1234 -d 192.168.188.128 –dport 80 -j DROP

-I是插入规则插到最前面,-A是增加规则增加到最后面。最前面的规则会优先过滤(如匹配的都是80端口的,最前面的规则已经匹配并且把数据包DROP掉,那么最后面的规则就没得匹配了),-D删除规则:

iptables -I INPUT -p tcp –dport 80 -j DROP //不指定来源IP,但要指定协议和目标端口。

iptables -I/-A/-D INPUT -s 1.1.1.1 -j DROP

-i指定网卡:

iptables -I INPUT -s 192.168.1.0/24 -i eth0 -j ACCEPT

把规则的编号列出来,方便按编号删除规则:

iptables -nvL –line-numbers

删除指定的规则:

iptables -D INPUT 1

-P后面跟链名,策略内容或为DROP,ACCEPT,默认是ACCEPT。注意:如果在连接远程服务器,千万不要随便执行这个命令,因为一旦执行,远程连接就会被断开:

iptables -P OUTPUT DROP

扩展(selinux了解即可)

1. selinux教程 http://os.51cto.com/art/201209/355490.htm

2.selinux pdf电子书 http://pan.baidu.com/s/1jGGdExK
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  日常运维 防火墙
相关文章推荐