Linux防火墙-SELinux、netfilter、iptables、ifconfig
2019独角兽企业重金招聘Python工程师标准>>>
10.11 Linux网络相关
ifconfig命令
- 查看网卡IP
如果系统没有该命令可以使用yum安装:
[root@adai003 ~]# yum install -y net-tools
查看网卡IP还可以使用命令:ip add,这个显示有点乱!
- ifconfig -a
显示所有网卡信息(包括down掉的或者没有IP地址的网卡)
启动/关闭网卡
- ifup/ifdown [网卡名]
应用环境:更改单个指定网卡配置后需要重启才能生效,为了避免关闭或重启所有网卡可以对单个网卡执行该命令。
注: 如果网卡正在使用中,不要单独使用ifdown命令!!!解决办法: “# ifdown ens33 && ifup ens33”,使两个命令一起执行!
为虚拟机添加网卡
关闭虚拟机,按如下顺序操作:
点击下一步:
在此可以指定网络适配器(网卡)类型,也可以在添加完成后进行选择:
点击“确定”即添加完成!
注: 如果以上操作是在开机状态下执行,添加完成后需要重启网络服务!!!
为新增网卡添加配置文件
查看新增网卡的配置信息:
在此可以查看其所在网段。
配置新增网卡信息:
开启虚拟机后进行如下操作:
查看网络信息:
网卡配置文件位置(复制原有网卡,进行重命名):
/etc/sysconfig/network-scripts/
[root@localhost ~]# cd /etc/sysconfig/network-scripts/创建新增网卡配置文件:
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens37[root@localhost network-scripts]# vim ifcfg-ens37
#更改该配置文件下的网卡名为ens37
#删除UUID配置完成后重启网络服务:
[root@localhost network-scripts]# systemctl restart network至此,添加完成,之后变可以通过编辑该文件来配置该网卡!!!
注: 因本次添加的网卡的网络连接类型是host-only模式,所以其IP和ens33不在同一网段。
增加虚拟网卡
- 步骤:
1、切换至网卡配置文件
[root@adai003 ~]# cd /etc/sysconfig/network-scripts/2、复制系统网卡
[root@adai003 network-scripts]# cp ifcfg-ens33 ifcfg-ens33\:0 3、编辑复制的配置文件
[root@adai003 network-scripts]# vi ifcfg-ens33\:0
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33:0
DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.8.138
NETMASK=255.255.255.0
GATEWAY=192.168.8.2
DNS1=119.29.29.29
说明:更改NAME、DEVICE、IPADDR,系统已经设定网关可DNS,所以在此可以删除GATEWAY和DNS,也可以保留,但是,如果要保留该选项则必须保持其与系统网卡配置一致!4、重启系统网卡
[root@adai003 network-scripts]# ifdown ens33 && ifup ens33
成功断开设备 'ens33'。
成功激活的连接(D-Bus 激活路径:/org/freedesktop/NetworkManager/ActiveConnection/3)5、查看网卡信息
[root@adai003 network-scripts]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 192.168.8.125 netmask 255.255.255.0 broadcast 192.168.8.255……ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 192.168.8.158 netmask 255.255.255.0 broadcast 192.168.8.255ether 00:0c:29:61:7d:7a txqueuelen 1000 (Ethernet)lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536inet 127.0.0.1 netmask 255.0.0.0inet6 ::1 prefixlen 128 scopeid 0x10<host>loop txqueuelen 1 (Local Loopback)……
6、检测虚拟网啊IP是否通畅在Windows系统cmd下ping该IP即可!
查看网卡是否连接
- 方法1:mii-tool [网卡名]
[root@adai003 ~]# mii-tool ens33
ens33: negotiated 1000baseT-FD flow-control, link ok
查看:link ok说明网卡连接OK!
- 方法2:ethtool [网卡名]
[root@adai003 ~]# ethtool ens33
Settings for ens33:Supported ports: [ TP ]Supported link modes: 10baseT/Half 10baseT/Full
……Current message level: 0x00000007 (7)drv probe linkLink detected: yes
查看:Link detected: yes说明网卡连接OK!
主机名
- 更改主机名&主机名配置文件
更改:
[root@adai003 ~]# hostnamectl set-hostname adai0003查看主机名:
[root@adai003 ~]# hostname
adai0003
注:更改后的主机名要在系统重启之后才会显示! 主机名的配置文件:
[root@adai003 ~]# cat /etc/hostname
adai003
DNS配置
- DNS配置文件:/etc/resolv.conf
[root@adai003 ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 119.29.29.29
注: 更改网卡配置即可更改DNS配置文件,更改后需要重启网卡(ifdown/ifup)后生效,也可编辑‘/etc/resolv.conf’临时更改DNS配置,该办法在重启网卡后会被网卡配置文件中的DNS覆盖!
- 本地域名配置文件文件:/etc/hosts
[root@adai003 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
说明: 使用vi命令可在该配置文件下可以自定义IP所对应的域名(一个IP对应多个域名或一个域名对应多个IP,用空格隔开,当一个域名对应多个IP时,以配置文件中靠后面的配置为准),但是该域名配置只在本机生效!
10.12 firewalld和netfilter
SELinux防火墙
- 临时关闭SELinux防火墙:
[root@adai003 ~]# setenforce 0
- 永久关闭SELinux防火墙:
编辑配置文件‘/etc/selinux/config’
[root@adai003 ~]# vim /etc/selinux/config
……
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
……
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
将SELINUX=enforcing改为disabled保存,重启系统即可!
- 查看SELinux防火墙状态
[root@adai003 ~]# getenforce
Disabled
netfilter(Firewalld)
Centos7中默认将原来(centos5/6)的防火墙netfileter升级为了firewalld。iptables是它们实现防火墙功能的工具。
为了方便学习,暂时停用firewalld,开启centos6/5的防火墙机制netfilter。
- 停用firewalld
1、关闭firewalld(禁止开机启动)
[root@adai003 ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.2、停止firewalld服务
[root@adai003 ~]# systemctl stop firewalld
- 开启netfilter
开启前先安装iptables工具包:
[root@adai003 ~]# yum install -y iptables-services 开启iptables服务:
[root@adai003 ~]# systemctl enable iptables
Created symlink from /etc/systemd/system/basic.target.wants/iptables.service to /usr/lib/systemd/system/iptables.service.
[root@adai003 ~]# systemctl start iptables
说明: 安装完成后默认开启iptables服务。
- 查看iptables规则:iptables -nvL
[root@adai003 ~]# iptables -nvL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)pkts bytes target prot opt in out source destination 7 536 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:220 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibitedChain FORWARD (policy ACCEPT 0 packets, 0 bytes)pkts bytes target prot opt in out source destination 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibitedChain OUTPUT (policy ACCEPT 5 packets, 684 bytes)pkts bytes target prot opt in out source destination
10.13 netfilter 5表及链的介绍
表名
- filter:包过滤,用于防火墙规则。
- nat:地址转换,用于网关路由器。
- mangle:用于给数据包打标记,然后根据标记去操作那些表。(不常用)
- 还有两个不常用的表:raw和security,在此不多讲述。
规则链名
filter的三种链:
- INPUT链:作用于输入本机的数据包。
- OUTPUT链:作用于本机输出的数据包。
- FORWARD链:作用于与本机无关的包。
nat的三种链:
- PREROUTING链:作用是在包刚刚到达防火墙时改变它的目的地址,如果需要的话。
- OUTPUT链:改变本地产生的包的目的地址。
- POSTROUTING链:在包离开防火墙之前改变其源地址。
nat表应用(了解内容)
环境:
假设有三台机器(A,B,C),A机器上有一块网卡连接公网IP1;B机器上有两块网卡b1、b2,b1、b2分别连接公网和私网IP2,、IP3;C机器上有一块网卡连接私网IP4。很明显此时A&B,B&C之间都分别能互通,但是A和C之间是不能直接连通的,只能借助B做媒介才能连通。那么如何设置才能使得A和C之间互通呢?
方法:
先打开路由转发功能:
[root@adai003 ~]# echo "1" > /proc/sys/net/ipv4_forward然后对nat表做IP转发配置:
[root@adai003 ~]# iptables -t nat -A POSTROUTING -s IP2(此处IP在同一个网段即可) -o ensA(A机器的网卡名称) -j MASQUERADE
说明: -o 选项后面跟设备名称,表示出口网卡,MASQUERADE是伪装、冒充的意思。
10.14 iptables语法
iptables命令是Linux上常用的防火墙软件,是netfilter项目的一部分。可以直接配置,也可以通过许多前端和图形界面配置。
语法: iptables [options] [参数]
Options:
-n:不针对IP反解析主机名
-v:显示更详细的信息
-t:指定表(iptables命令默认作用于filter表)
-L:显示信息
-F:清空所有规则
-A/D:=add/delete,添加/删除一条规则
-I:插入一条规则
-p:指定协议,可以是tcp,udp或icmp
--sport:跟-p一起使用,指定源端口
--dport:跟-p一起使用,指定目标端口
-s:指定源IP(可以是一个IP段)
-d:指定目的IP(可以是一个IP段)
-j:后面跟动作(ACCEPT表示允许包;DROP表示丢掉包;REJECT表示拒绝包)
-i:指定网卡
-Z:把包以及流量计数器清零
-P:=pre,预设策略
- iptables命令选项输入顺序:
iptables -t 表名 <-A/I/D/R> 规则链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源IP/源子网> --sport 源端口 <-d 目标IP/目标子网> --dport 目标端口 -j 动作
- 查看规则
[root@adai003 ~]# iptables -nvL
iptables规则配置文件:/etc/sysconfig/iptables
- 清空规则
[root@adai003 ~]# iptables -F
注: 该命令不会清除配置文件内的规则!当更改规则后需要执行命令‘service iptables save’将其保存到配置文件。
- 增加一条规则(-A/I)
[root@adai003 ~]# iptables -A INPUT -s 192.168.188.1 -p tcp --sport 1234 -d 192.168.188.128 --dport 80 -j DROP
说明: 增加一条规则,当IP~192.168.188.1、协议为tcp、端口为‘1234’的向IP~192.168.188.128、端口为80的机器发送包时执行操作:drop(丢掉包)。
注: 该命令也可以把-A换成-I,两者的区别类似于排队和插队,两种方法插入的规则优先级不同。
- 删除一条规则(-D)
方法1: 知道规则的内容
[root@adai003 ~]# iptables -D INPUT -s 192.168.188.1 -p tcp --sport 1234 -d 192.168.188.128 --dport 80 -j DROP
注: 要删除一条规则时,必须和插入的规则一致,也就是说,两条iptables命令除了-A/I和-D不一样外,其他地方都一样。
方法2: 忘记规则内容
首先所以用以下命令查看规则序号:
[root@adai003 ~]# iptables -nvL --line-number
然后再执行删除命令:
[root@adai003 ~]# iptables -D INPUT [序号]
- 更改预设策略(-P)
执行命令:
# iptables -P OUTPUT DROP
结果:
注意: 尽量不要随意更改该配置,尤其是在进行远程登录时,一旦执行该命令后将会断开连接。这个策略设定后只能用命令:‘iptables -P OUTPUT ACCEPT’来恢复成原始状态,不能使用-F参数。
转载于:https://my.oschina.net/adailinux/blog/1358728
Linux防火墙-SELinux、netfilter、iptables、ifconfig相关推荐
- Linux 防火墙:Netfilter iptables
一.Netfilter 简介 (1) Netfilter 是 Linux 内置的一种防火墙机制,我们一般也称之为数据包过滤机制,而 iptables 只是操作 netfilter 的一个命令行工具 ( ...
- Linux防火墙实验(iptables)Linux Firewall Exploration Lab
网络安全课程实验报告 <Linux Firewall Exploration Lab> 目录 **Overview** **Lab Tasks** **Task 1: Using Fire ...
- iptables命令_理解 Linux 下的 Netfilter/iptables
Netfilter/iptables 项目由 Rusty Russe 创建于1998年,并于 1999 年建立了 Netfilter Core team,并在此后负责维护此项目,同时也于2000年3月 ...
- Linux防火墙Firewall和Iptables的使用
Linux防火墙Firewall和Iptables的使用 原创: 梦想de星空 macrozheng 6月6日 Linux中有两种防火墙软件,ConterOS7.0以上使用的是firewall,Con ...
- Linux 防火墙配置(iptables和firewalld)
目录 防火墙基本概念 Iptables讲解 Iptables表 Iptables规则链 Iptables控制类型 Iptables命令配置 firewalld讲解 Firewalld区域概念 Fire ...
- linux有防火墙么,Linux防火墙Firewall和Iptables的使用
摘要 Linux中有两种防火墙软件,ConterOS7.0以上使用的是firewall,ConterOS7.0以下使用的是iptables,本文将分别介绍两种防火墙软件的使用. Firewall 开启 ...
- linux 防火墙 阻止ip_linux iptables防火墙如何禁止指定IP访问
一般来说网站都是流量越多就越开心,不过也不是所有流量都这么受欢迎的.比如说攻击你的流量,再比如说采集器的流量,这些流量对你的网站没半点好处,除了拖累你的服务器,还白白占用你大量的带宽,更是影响正常访客 ...
- Linux 防火墙 开放 端口 iptables
查看状态: iptables -L -n 方法1. 使用iptables开放如下端口 /sbin/iptables -I INPUT -p tcp --dport 8000 -j ACCEPT 保存 ...
- linux防火墙黑白名单,iptables详解(9):iptables的黑白名单机制
在本博客中,从理论到实践,系统的介绍了iptables,如果你想要从头开始了解iptables,可以查看iptables文章列表,直达链接如下 注意:在参照本文进行iptables实验时,请务必在个人 ...
最新文章
- DNF安装MySQL_CentOS7使用dnf安装mysql
- 机器人II(sdutoj2585)-JAVA
- Linux服务器上配置Tomcat的docBase路径映射时遇到的坑
- Eclipse之如何快速查看抽象函数实现
- Spring MVC竟然有5种参数绑定的方式?你知道几种?
- 许多计算机英语,计算机英语翻译
- 开课吧Java课堂:字符串如何处理?
- POJ1338 Ugly Numbers
- Docker容器运行GUI程序的配置方法
- 介绍下Javascript原型和原型链的特点?
- android imageview 图片模糊,imageview实现高斯模糊
- Ubuntu下快速安装jdk、tomcat、mysql和Redis
- 【ES6】三种暴露方法和引入方式
- selenium模拟登陆163邮箱
- Android studio File Explorer sdcard文件怎么访问
- 开源资产管理系统_OCR在资产管理系统的应用
- 乐聊----java界面聊天室
- 菜谱小程序_云应用程序食谱
- 学计算机头发变白了,掉头发,头发变白可不是小事!该如何调理?
- Event.preventDefault 、Event.stopPropagation 和 Event.stopImmediatePropagation
热门文章
- 【bzoj3669】[Noi2014]魔法森林【LCT】
- Recovery 流程简介
- 在SqlServer 2008中将数据导成脚本
- 《编程匠艺》读书笔记之七
- MySQL Connector/Net 5.20安装后无法在VS2008中正常使用的问题
- web导入excel数据
- 字符串 读取西门子_【必学技能】自己动手——基于C#实现手机APP远程访问西门子PLC...
- php打印预览jquery,php 实现打印预览的功能
- 说说 Android 的 Material Design 设计(四)——卡片式布局
- P2Psim分析笔记(5)-EventGenerator and Observer