标签:Linux网络 filewalld和netfilter netfilter5表5链 iptables语法
三十一、Linux网络相关、firewalld和netfilter、netfilter5表5链介绍、iptables语法一、Linux网络相关
(一)ifconfig:查看网卡IP,若没有该命令就安装net-tools包。
当网卡down(停用)的时候网卡不会显示IP,加上-a选项就会显示。示例:
# ifconfig -a。
ifdown ens33/ifup ens33
ifup:启动网卡。ifdown:停用网卡。
远程连接服务器时,很可能后面的ifup就不会运行了,这样会导致断网而连接不了服务器,所以应该用systemcel restart network来重启网卡。
当你正在远程连接这台服务器时,就不要用ifdown,不然就连不上服务器了。
当你不想把所有网卡都重启,就用ifdown,前提是你没连这台服务器。就是指定重启单个网卡。
ifdown ens33 && ifup ens33。先停再启动。最好这样使用,就能直接启动指定的网卡了。
# ifdown ens33 && ifup ens33
成功断开设备 'ens33'。
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/5)
( 二)给一个网卡设定多个IP
设定过程:
# cd /etc/sysconfig/network-scripts/
# cp ifcfg-ens33 ifcfg-ens33\:1
这里加了脱义符号,是因为要把:转义,不然Linux命令行无法识别。再编辑这个ifcfg-ens33:1这个配置文件。
# vi !$ 文件内就不用脱义了。
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33:1
DEVICE=ens33:1
ONBOOT=yes
IPADDR=192.168.93.131
NETMASK=255.255.255.0
GATEWAY=192.168.93.2
DNS1=119.29.29.29
修改一下NAME、DEVICE、IPADDR,dns和网关都可有可无,因为前面那个配置文件已经设置了。设置完后重启网卡。
# ifdown ens33 && ifup ens33
# ifconfig (再查看就会发现多了个ens33:1)
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.93.130 netmask 255.255.255.0 broadcast 192.168.93.255
inet6 fe80::4baf:6071:c82a:762a prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:2f:85:e9 txqueuelen 1000 (Ethernet)
RX packets 1193 bytes 90267 (88.1 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 472 bytes 69521 (67.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens33:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.93.131 netmask 255.255.255.0 broadcast 192.168.93.255
ether 00:0c:29:2f:85:e9 txqueuelen 1000 (Ethernet)
(三)查看网卡连接状态
# mii-tool ens33
ens33: negotiated 1000baseT-FD flow-control, link ok
link ok就说明网卡已连接。
no link,就说明网卡坏了或者没有连接。
nonsupport有的显示这个,就是不支持。就可以用:
# ethtool ens33
Settings for ens33:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
MDI-X: off (auto)
Supports Wake-on: d
Wake-on: d
Current message level: 0x00000007 (7)
drv probe link
Link detected: yes
若没有连接,最后一行就显示为no。
(四)更改主机名
# hostname 查看主机名
# hostname ABC 这样修改只会保存在内存里,重启还是之前的名称。因此改主机名还要修改它的配置文件/etc/hostname。
自动更改文件内容的方法:
# hostnamectl set-hostname ABD
(五)设置DNS
DNS配置文件:/etc/resolv.conf
# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 119.29.29.29
第一行没实际意义,仅是个注释。意思是这个文件中的DNS IP地址是由NetworkManager服务生成的。
resolv.conf有固有的格式,一定要写成nameserver IP的格式。
建议写两个或多个nameserver,系统默认用第一个解析域名,第一个不成功时就用第二个。
谷歌的DNS=8.8.8.8
临时修改DNS IP地址时,就修改DNS配置文件;
若想永久生效,就修改网卡的配置文件。
修改了网卡配置文件的DNS时,DNS配置文件就也改了。
Linux下的一个特殊文件/etc/hosts也能解析域名,不过需要手动添加IP和域名。作用是临时解析域名,非常有用。该文件内容是:
# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
编辑该文件时用vim。比如增加一行192.168.93.131 www.baidu.com,那么再ping这个百度的时候就会ping到这个IP去。
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.93.131 www.baidu.com
/etc/hosts格式很简单,每一行为一条记录,分成两部分,前面是IP,后面是域名。
关于hosts文件,有四点注意事项:
1.一个IP后可以跟多个域名,可以几十个甚至上百个。
2.每一行只能是一个IP,就是说一个域名不能对应多个IP。
3.若多行中出现相同的域名(对应IP不一样),会按最前面出现的记录来解析。
4.这个只在本机生效,改完后立即生效。
二、firewalld和netfilter
Linux防火墙:netfilter
selinux临时关闭:setenforce 0
selinux永久关闭:# vi /etc/selinux/config
SELINUX=enforcing改为SELINUX=disabled
更改后重启系统生效。
getenforce:查看selinux状态。
# getenforce
Disabled
若临时关闭,再查看会显示permissive。
太多服务受限于selinux,因此运维一般 都直接关闭它。
netfilter:centos5和6防火墙。
firewalld:centos7的防火墙。
centos7上使用6的防火墙也没有问题。
iptables仅是一个工具,不是防火墙。
关闭过程:
# systemctl disable firewalld //禁止firewalld服务开机启动
# systemctl stop firewalld //关闭这个服务
# yum install -y iptables-services //安装这个包,就可以使用之前版本的iptables了。
# systemctl enable iptables //让它开机自启动。
Created symlink from /etc/systemd/system/basic.target.wants/iptables.service to /usr/lib/systemd/system/iptables.service.
# systemctl start iptables //启动iptables服务
至此,方可使用之前版本的iptables。centos上默认设有规则,但这个规则暂时没用,就先清除,清除后保存。示例:
# iptables -nvL //-nvL表示查看规则,-F选项表示清除当前规则,但清除只是临时的,重启系统或服务还会加载已保存的规则。因此清除后要保存:# iptables -F; service iptables save
通过该命令可发现配置文件在/etc/sysconfig/iptables。
# iptables -F; service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ 确定 ]
三、netfilter5表5链介绍
netfilter的5个表,可以man iptables一下,有5个表的解释。
filter表:用于过滤包,是系统预设的表。用得多。
该表内建三个链:INPUT、OUTPUT和FORWARD。
INPUT链:作用于进入本机的包。
OUTPUT链:作用于本机送出的包。
FORWARD链:作用于和本机无关的包。
nat表:用于网络地址切换。偶尔用。
该表有三个链:
PREROUTING链:在包刚到防火墙时改变它的目的地址。
OUTPUT链:改变本地产生的包的目的地址。
POSTROUTING链:在包即将离开防火墙时改变其源地址。
mangle表:用于给数据做标记,然后根据标记去操作相应的包。用得少
raw表:实现不追踪某些数据包,默认系统的数据包都会被追踪,但追踪会消耗资源,因此用该表来指定某些端口的包不被追踪。用得少。
security表:该表centos6里没有,用于强制访问控制(MAC)的网络规则。用得少。
5个链:
PREROUTING:数据包进入路由表前。
INPUT:通过路由表后目的地为本机。
FORWARD:通过路由表后目的地不为本机。
OUTPUT:由本机产生,向外转发。
POSTROUTING:发送到网卡接口之前。
数据包流向:
五、iptables语法
配置文件/etc/sysconfig/iptables
service iptables restart 重启iptables服务。
service iptables save 保存规则
(一)iptables -t nat -nvL:查看规则。
-t后面跟表名
-nvL表示查看该表规则
-n表示不针对IP反解析主机名
-L表示列出
-v表示列出的信息更详细。
若不加-t,则打印filter表的相关信息。
清除规则:
iptables -F:把所有规则全部删除,若不加-t指定表,默认清除filter表。
iptables -Z:把包以及流量计数器置零。
(二)增加/删除一条规则,用法:
# iptables -A INPUT -s 192.168.93.131 -p tcp --sport 1234 -d 192.168.93.120 --dport 80 -j DROP
此处没有加-t,因此针对的filter表。
选项注释:
-A/-D:增加/删除一条规则
-I:插入一条规则,效果和一样。
-P:指定协议,可以是tcp、udp或者icmp。
--dport:跟-p一起用,表示指定目标端口。
--sport:跟-瓶一起用,表示指定源端口。
-s:指定源IP(可以是IP段)
-d:指定目的地IP(可以是IP段)
-j:后面跟动作,其中ACCEPT表示允许包,DROP表示丢掉宝,REJECT表示拒绝包。
-i:指定网卡。
-P:预设策略。
删除一条规则时,必须和插入的规则一致。除了-I和-D不同,其他都一样。
--dport/--sport必须和-p选项一起用,否则会出错。
iptables -nvL --line--numbers 查看规则。
当想删除规则时,又不知道规则的具体,就可以查看规则。
-D后面跟链名、规则num。num就是查看iptables规则时第1列的值。
-P后跟链名,策略内容或为DROP,或为ACCEPT,默认ACCEPT。若正在远程连接服务器,千万不要随便执行这个命令,一执行,远程连接就断开。
需求:只针对filter表,预设策略INPUT链DROP,其他两个链ACCEPT,然后针对192.168.188.0/24开通22端口,对所有网段开放80端口,对所有网段开放21端口。
三十一、Linux网络相关、firewalld和netfilter、netfilter5表5链介绍、
标签:Linux网络 filewalld和netfilter netfilter5表5链 iptables语法
原文地址:http://blog.51cto.com/13576245/2089664