irewalld和netfilter、netfilter5表5链

2018-01-27  本文已影响0人  hch004

Linux网络相关

ifconfig命令查看网卡IP

刚接触linux系统开始的时候我们学习到查看网卡IP方式是使用ip addr,而ifconfig命令和ip addr命令的结果是相似的,如果系统里没有ifconfig命令,安装即可;

[root@kvm ~]# yum install -y net-tools

在linux下修改ip需要进入到/etc/sysconfig/network-scripts/目录下面修改相关的网卡文件即可,比如;

[root@kvm ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33

在linux上有多个网卡,而你只想重启某个网卡的时候,可以使用以下操作;

[root@kvm ~]# ifdown ens33; ifup ens33

成功断开设备 'ens33'。

连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/5)

[root@kvm ~]# ifdown ens33 && ifup ens33

成功断开设备 'ens33'。

连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/6)

由于是远程登录的,所以在使用ifdown的时候需要谨慎,不要单独使用ifdown

给一个网卡设定多个ip

[root@kvm ~]# cd /etc/sysconfig/network-scripts/ //先到网卡配置文件的目录下

[root@kvm  network-scripts]# cp ifcfg-ens33 ifcfg-ens33\:1 //拷贝一个ens33文件名并重命名为ens33:1 这里用到反斜杠使用脱义

然后开始编辑ens33:1文件即可,修改NAMEDEVICE 为ens33:1 设定一个IPADDR地址保存并退出,重启网卡即可

这个时候在ifconfig查看就可以看到多了一个网卡

查看网卡连接状态

[root@localhost network-scripts]# mii-tool ens33

ens33: negotiated 1000baseT-FD flow-control, link ok

这里显示link ok,就说明网卡为连接状态,如果显示no link,说明网卡存在坏了或者没有连接网线的情况,除了这个mii-tool命令外还有一个命令也可以查看;

[root@localhost network-scripts]# ethtool ens33

如果网卡没有连接成功,最后面一行link detected显示为no

更改主机名

使用hostname命令可以查看主机名,hostname命令后面跟一个自定义的名字则是临时修改主机名,重启后无效

[root@localhost ~]# hostname

localhost.localdomain

[root@localhost ~]# hostname hch

想要永久改主机名,执行以下命令修改

[root@localhost ~]# hostnamectl set-hostname hch

[root@localhost ~]# bash

修改后重新登录即可看到变化

设置DNS

在linux下设置DNS非常简单,只要把DNS地址写入配置文件即可

[root@hch ~]# cat /etc/resolv.conf

# Generated by NetworkManager

nameserver 8.8.8.8

nameserver 119.29.29.29

在linux下还有一个特殊文件/etc/hosts也能解析域名

[root@hch ~]# cat /etc/hosts

127.0.0.1  localhost localhost.localdomain localhost4 localhost4.localdomain4

::1        localhost localhost.localdomain localhost6 localhost6.localdomain6

使用Vim编辑该文件,增加一行10.2.33.71 www.baidu.com,保存后再ping以下www.baidu.com就会连接到10.2.33.71

[root@hch ~]# vi /etc/hosts

[root@hch ~]# ping www.baidu.com

PING www.baidu.com (10.2.33.71) 56(84) bytes of data.

64 bytes from www.baidu.com (10.2.33.71): icmp_seq=1 ttl=64 time=0.015 ms

64 bytes from www.baidu.com (10.2.33.71): icmp_seq=2 ttl=64 time=0.060 ms

hosts文件格式很简单,注意以下几点;

* 一个ip后面可以跟多个域名,可以是几十个甚至上百个;

* 每一行只能有一个ip,也就是说一个域名不能对应多个ip;

* 如果有多行中出现相同的域名(对应的ip不一样),就会按最前面出现的记录来解析

firewalld和netfilter

linux的防火墙

SELinux是linux系统特有的安全机制。因为这种机制的限制太多,配置也繁琐,所以几乎没有人真正的应用它,安装玩系统我们一般都把SELinux关闭,以免引起不必要的麻烦,临时关闭的犯法;

[root@hch ~]# setenforce 0

永久关闭的方法,需要更改配置文件/etc/selinux/config,把SELINUX=enforcing改成SELINUX=disabled保存并退出即可,重启系统后生效,此处切记不要改作地方以免照成系统无法开机。

[root@hch ~]#  vi /etc/selinux/config

[root@hch ~]#  getenforce //修改好重启系统后可以使用该命令查看selinux防火墙状态

Disabled

netfilter是在Centos7之前使用的防火墙,Centos7使用的是firewalld,由于大部分公司还是使用Centos6的情况,我们可以先通过之前版本的iptables了解和学习,firewalldnetfilter 使用的命令同样支持的,意味这两者兼容。

因此我们先关闭firewalld后再开启netfilter ,操作如下;

[root@hch ~]#   systemctl stop firewalld //关闭firewalld服务

[root@hch ~]#   systemctl disable firewalld //禁止firewalld服务开机启动

Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.

[root@hch ~]#   yum install -y iptables-services //安装iptables-services ,使之前的版本可以使用(即netfilter )

[root@hch ~]#   systemctl enable iptables //让服务开机启动

Created symlink from /etc/systemd/system/basic.target.wants/iptables.service to /usr/lib/systemd/system/iptables.service.

[root@hch ~]#   systemctl start iptables //启动iptables服务

到此就设置好了,可以使用之前版本的iptables

使用以下命令可以查看规则;

[root@hch ~]# iptables -nvL

netfilter5表5链介绍

netfilter的5个表

filter:表主要用于过滤包,是系统预设的表,该表内建3个链:INPUT、OUTPUT以及FORWARDINPUT链作用于进入本机的包,OUTPUT链作用于本机送出的包,FORWARD链作用于那些跟本机无关的包。

nat:表主要用于网络地址转换,同样也有3个链,PREROUTING链的作用是在包刚刚到达防火墙时改变它的目的地址,OUTPUT链的作用是改变本地产生的包的目的地址,POSTROUTING链的作用是在包即将离开防火墙时改变其源地址。该表阿铭仅偶尔会用到。

mangle:表主要用于给数据包做标记,然后根据标记去操作相应的包。这个表几乎不怎么用

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

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

netfilter的5个链

5个链分别为PREROUTING、INPUT、FORWARD、OUTPUT、POSTROUTING

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

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

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

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

POSTROUTING:发送到网卡接口之前

iptables语法

查看iptables默认规则配置文件:

[root@hch ~]#  cat /etc/sysconfig/iptables

查看iptables默认规则:

[root@hch ~]#  iptables -nvL

保存iptables规则(当前规则,保存到配置文件):

[root@hch ~]#  service iptables save

清空iptables规则:

[root@hch ~]#  iptables -F

重启iptables规则:

[root@hch ~]#  service iptables restart

指定表:

[root@hch ~]#  iptables -t nat -nvL

[root@hch ~]# iptables -t filter -nvL

如果不加-t,则默认的是filter

-A/-D:表示增加/删除一条规则

-I:表示插入一条规则其实效果跟-A一样

-p:表示指定协议,可以是tcp、udp或者icmp

--dport:跟-p一起使用,表示指定目标端口

--sport:跟=p一起使用,表示指定源端口

-s:表示指定源IP(可以是一个IP段)

-d:表示指定目的IP(可以是一个IP段)

-j:后面跟动作,其中ACCEPT表示允许包,DROP表示丢掉包,REJECT表示拒绝包

-i:表示指定网卡

上一篇下一篇

猜你喜欢

热点阅读