Day08- team、iptables、firewall
SELinux概述
• Security-Enhanced Linux
– 美国NSA国家安全局主导开发,一套增强Linux系统安全的强制访问控制体系
– 集成到Linux内核(2.6及以上)中运行
– RHEL7基于SELinux体系针对用户、进程、目录和文件提供了预设的保护策略,以及管理工具
SELinux运行模式的切换
• SELinux的运行模式
– enforcing(强制)、permissive(宽松)
– disabled(彻底禁用)
[root@server0 ~]# getenforce #查看当前SELinux状态
Enforcing
[root@server0 ~]# setenforce 0 #临时修改成宽松状态
[root@server0 ~]# getenforce
Permissive
[root@server0 ~]# setenforce 1
[root@server0 ~]# getenforce
– 固定配置:/etc/selinux/config 文件
补充: 在vim 命令模式下 按 “大写的C” 删除光标之后到行尾,并且进入插入模式
[root@server0 ~]# grep '^SELINUX=' /etc/selinux/config
SELINUX=permissive
[root@server0 ~]# reboot
#####################################################################################
配置聚合连接(两张网卡eth1、eth2)
HSRP 活跃路由器 备份路由器 虚拟路由器聚合连接 eth1 eth2 team(192.168.1.1)
链路聚合的优势
• team,聚合连接(也称为链路聚合)
– 由多块网卡(team-slave)一起组建而成的虚拟网卡,即“组队”
– 作用1:轮询式(roundrobin)的流量负载均衡
– 作用2:热备份(activebackup)连接冗余
[root@server0 ~]# man teamd.conf #按 “大写的G”到全文的最后向上查找 EXAMPLES"runner": {"name": "activebackup"} #热备份配置(最好复制粘贴)# nmcli connection add type team con-name team0 ifname team0 config '{"runner": {"name": "activebackup"}}' //添加热备份链路(team0配置文件/etc/sysconfig/network-scripts/ifcfg-team0,显示为team0)
# ifconfig team0 //查看生成的网卡(对应配置文件/etc/sysconfig/network-scripts/ifcfg-team0)# nmcli connection add type team-slave con-name team0-eth1 ifname eth1 master team0 //添加eth1网卡到team0当中,命名为team0-eth1
# nmcli connection add type team-slave con-name team0-eth2 ifname eth2 master team0 //添加eth2网卡到team0当中,命名为team0-eth2# nmcli connection modify team0 ipv4.method manual ipv4.addresses '172.16.3.20/24' connection.autoconnect yes //配置team0的IP地址,默认启用# nmcli connection up team0-eth1 //激活成员
# nmcli connection up team0-eth2 //激活成员
# nmcli connection up team0 //激活team0# teamdctl team0 state //查看team状态
# man teamd.conf #查看man帮助,按G到最后去寻找关键字端复制
# ifconfig eth1 down //关闭其中一张网卡后,进行测试[root@server0 ~]# nmcli connection delete team0 //删除team配置
[root@server0 ~]# nmcli connection delete team0-eth1 //删除team配置
[root@server0 ~]# nmcli connection delete team0-eth2 //删除team配置
配置IPv6地址
• IPv4 地址表示
– 32个二进制位,点分隔的十进制数
– 例如:172.25.0.11、127.0.0.1
• IPv6 地址表示
– 128个二进制位,冒号分隔的十六进制数
– 每段内连续的前置 0 可省略、连续的多个 : 可简化为 ::
– 例如:2003:ac18:0000:0000:0000:0000:0000:0305
2003:ac18::305/64
为两个虚拟机的接口 eth0 配置下列 IPv6 地址
– server0 上的地址应该是 2003:ac18::305/64
– desktop0 上的地址应该是 2003:ac18::306/64
# nmcli connection modify 'System eth0' ipv6.method manual ipv6.addresses '2003:ac18::305/64' connection.autoconnect yes //配置IPv6地址
# nmcli connection up 'System eth0'
# ifconfig //查看IPv6
# ping6 2003:ac18::306/64 //测试IPv6联通性
alias别名设置
• 查看已设置的别名
– alias [别名名称]
• 定义新的别名
– alias 别名名称= '实际执行的命令行'
• 取消已设置的别名
– unalias [别名名称]
用户个性化配置文件
• 影响指定用户的 bash 解释环境
– ~/.bashrc, 每次开启 bash 终端时生效
全局环境配置
• 影响所有用户的 bash 解释环境
– /etc/bashrc, 每次开启 bash 终端时生效
# vim /etc/bashrc
# alias myls='ls -lhd'
# su - student
# myls /opt真机上操作
[root@room9pc14 桌面]# vim /root/.bashrc alias s='ssh -X root@172.25.0.11'
alias d='ssh -X root@172.25.0.10'
alias rs='rht-vmctl reset server'
alias rd='rht-vmctl reset desktop'
alias rc='rht-vmctl reset cla***oom'[root@room9pc14 桌面]#
#####################################################################################
防火墙策略管理
Web服务:
虚拟机server0上
服务端:安装服务端软件httpd
1.安装httpd
[root@server0 ~]# yum -y install httpd2.重启httpd服务,设置开机服务自起
[root@server0 ~]# systemctl restart httpd
[root@server0 ~]# systemctl enable httpd默认网页文件存放路径:/var/www/html/默认主页文件的名称:index.html
[root@server0 ~]# cat /var/www/html/index.html
<marquee><font color=red><h1>NSD1705客户端:安装客户端软件firefox(自己访问自己)[root@server0 ~]# firefox http://172.25.0.11
FTP服务
虚拟机server0上
服务端:安装服务端软件vsftpd
1.安装vsftpd
[root@server0 ~]# yum install -y vsftpd2.重起vsftpd服务,设置开机服务自起
[root@server0 ~]# systemctl reset vsfpd默认FTP共享路径:/var/ftp
[root@server0 ~]# touch /var/ftp/test.txt客户端:安装客户端软件firefox(自己访问自己)[root@server0 ~]# firefox ftp://172.25.0.11
#####################################################################################
Iptables防火墙
Linux包过滤防火墙
· netfilter
-位于Linux内核中的包过滤功能体系
-称为Linux防火墙的“内核态”
· iptables
-位于/sbin/iptables, 管理规则的工具
-称为Linux防火墙的“用户态”
4表:raw、mangle、nat、filter
5链:InPut、OutPut、ForWard、PostRouting、PreRouting表:存放不同的规则链-raw: 确定是否对数据包进行状态跟踪-mangle: 为数据包设置标记-nat: 修改数据包的源/目标地址或端口-filter: 确定是否放行该数据包链:存放防火墙规则:-InPut: 处理入站数据包-OutPut: 处理出站数据包-ForWard: 处理转发数据包-PostRouting: 路由选择之后处理-PreRouting: 路由选择之前处理包过滤匹配流程:1.规则表顺序:--> raw --> mangle --> nat --> filter2.规则链顺序:-入站:PreRouting --> InPut-转发:PreRouting --> ForWard --> PostRouting-出站:OutPut --> PostRouting基本用法:iptables [-t 表名] 选项 [链名] [条件] [-j 目标操作]整体规律:-不指定表,默认为filter表-不指定链,对应表的所有链-除默认策略外,必须指定匹配条件-选项、链名、目标操作用大写字母,其余都小写基本目标操作:-ACCEPT:允许通过-DROP:直接丢弃,不给任何回应-REJECT:拒绝通过,必要时会给出提示-LOG:记录日志,然后传给下一条规则常用管理项:-A: 在链的末尾追加一条规则-I: 在链的开头插入一条规则-L: 列出所有的规则条目-n: 以数字形式显示地址、端口竺信息--line-numbers:查看规则时,显示规则的序号-D: 删除链内指定序号的规则-F: 清空所有规则-P: 为指定的链设置默认规则基本匹配条件(!:取反):协议匹配:-p 协议名地址匹配:-s 源地址、-d 目标地址接口匹配:-i 收数据的网卡、-o 发数据的网卡端口匹配:--sport 源端口、--dport 目标端口ICMP类型匹配:--icmp-type ICMP类型TCP标记匹配:--tcp-flags 检查哪些位 哪些位被设置网络连接的五种状态:-NEW: 请求建立连接的包,完全陌生的包-ESTABLISHED: 将要或已经建立连接的包-RELATED: 与已知某个连接相关联的包-INVALID: 无对应连接,以及连接无效的包-UNTRACKED: 未跟踪状态的包
# iptables -t filter -I INPUT -p icmp -j REJECT //拒绝ICMP包入站
# iptables -t filter -A INPUT -s 192.168.4.10 -j DROP //丢弃192.168.4.10的入站包
# iptables -t filter -nL //查看已有规则
# iptables -D INPUT 1 //删除INPUT中第一条规则
# iptables -t filter -nL //再次查看
# iptables -t filter -A INPUT -s 192.168.4.10 -p tcp --dport 21 -j DROP //拒绝指定主机访问TCP21号端口# sysctl -w net.ipv4.ip_forward=1 //开启路由转发(临时)
# echo 1 > /proc/sys/net/ipv4/ip_forward
# iptables -A FORWARD -s 192.168.4.10 -j DROP //不转发来自192.168.4.10的包
# iptables -t filter -n# iptables -A FORWARD -s 192.168.4.12 -d 100.100.100.100 -p tcp --dport 80 -j DROP //拒绝4.12访问100的80端口
# iptables -A FORWARD ! -s 192.168.4.0/24 -j DROP //只有192.168.4.0段的包不丢弃(!:取反)# cat iptables.rule# iptables -t nat -A POSTROUTING -s 192.168.4.10 -j SNAT --to-source 172.16.4.10 //192.168.4.10源NAT转化为172.16.4.10(源地址伪装)
# iptables -t nat -F POSTROUTING# iptables -t nat -A PREROUTING -d 192.168.4.10 -p tcp --dport 222 -j DNAT --to 172.16.4.10:22 //把访问192.168.4.10的222端口DNAT到172.16.4.10的22端口(目标地址伪装)
# iptables -t nat -nL PREROUTING
# iptables -t nat -D PREROUTING 2 //删除第2条# iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 10022 -j DNAT --to-destination 172.16.0.2:22 ! -i docker0# iptables -t filter -A INPUT -s 192.168.4.15 -p tcp --dport 80 -j DROP //禁止192.168.4.15访问本机的web服务# iptables -t filter -A INPUT ! -s 192.168.4.12 -j DROP //禁止除192.168.4.12以外的其他主机ping本机NAT防火墙,需要打开内核IP转发POSTROUTING 源地址伪装
通过伪装192.168.4.0网段的机器上网,首先防火墙本机可以访问互联网
# iptables -t nat -A POSTROUTING -s 192.168.4.0 -j SNAT --to-source 外网地址PREROUTING 目标地址转换
所有访问防火墙10022端口的请求都转发给后端的192.168.4.15的22端口
# iptables -t nat -A PREROUTING -i 本机名 -p tcp -m tcp --dport 10022 -j DNAT --to-destination 192.168.4.15:22
防火墙策略管理
- 系统服务:firewalld
- 管理工具:firewall-cmd(命令)
firewall-config(图形)
# systemctl status firewalld.service //查看防火墙服务状态
# firewall-cmd --get-zones //获取支持的区域列表
预设安全区域
• 根据所在的网络场所区分,预设保护规则集
– public: 仅允许访问本机的sshd等少数几个服务(默认区域)
– trusted: 允许任何访问
– block: 阻塞任何来访请求(明确拒绝)
– drop: 丢弃任何来访的数据包(丢弃请求:节省资源)
# firewall-cmd --get-default-zone //查看默认区域(一般为public)
# firewall-cmd --zone=public --list-all //查看区域规则
# firewall-cmd --list-all-zones //查看所有区域的详细规则
防火墙判断规则:(匹配及停止)
1、首先看请求(客户端)当中的源IP地址,所有区域中是否对于该IP地址的策略,如果有,则该请求进入该区域
2、如果没有其它匹配,则进入默认区域(前面没有匹配)
# firewall-cmd --zone=public --add-service=http //默认区域添加规则(临时生效)
# firewall-cmd --zone=public --list-all //查看区域规则(刚添加的)
# firewall-cmd --get-services //获取所有支持的服务
• 配置规则的位置
– 运行时(runtime)
– 永久(permanent)
# firewall-cmd --permanent --zone=public --add-service=http //默认区域添加规则(permanent:永久生效)
# firewall-cmd --reload //重新加载规则
# firewall-cmd --zone=public --list-all //查看区域规则(刚添加的)# firewall-cmd –get-active-zones //获取活动的区域和网络接口
# firewall-cmd –get-zone-of-interface=eno1 //根据网卡接口获取所在区域
# firewall-cmd --zone=public –change-interface=eno1 //更改网卡接口到public区域
# firewall-cmd --zone=drop --remove-source 192.168.1.7 //从drop区域中删除源IP
修改默认区域Server0(172.25.0.11):
# firewall-cmd --list-all #查看当前区域public状态
desktop0(172.25.0.10):
# ping -c 2 172.25.0.11 #可以ping通server0:
# firewall-cmd --set-default-zone=block #修改默认区域为block区域(永久)
# firewall-cmd --list-all
desktop0:
# ping -c 2 172.25.0.11 #不通但是有回应server0:
# firewall-cmd --set-default-zone=drop #修改默认区域为block区域(永久)
# firewall-cmd --list-all
desktop0:
# ping -c 2 172.25.0.11 #不通但是没有回应# firewall-cmd --set-default-zone=public
# firewall-cmd --permanent --zone=public --add-source=172.25.0.10 //默认区域添加规则(permanent:永久生效)
# firewall-cmd --reload //重新加载规则
# firewall-cmd --zone=public --list-all //查看区域规则(刚添加的)
# firefox ftp://172.25.0.11 //测试ftp
# firefox http://172.25.0.11 //测试http
#####################################################################################
防火墙判断的规则,匹配即停止
1.首先看客户端请求中的源IP地址,查询所有区域中是那个区域有该源IP地址的策略,然后进入该区域2.如果前面没有匹配到,则进入默认区域
#####################################################################################
典型的应用方式:
严格,方式1:将默认区域保持为block,针对需要放行的访问在trusted区域添加策略
宽松,方式2:将默认区域保持为trusted,针对需要阻止的访问在block区域添加策略
#####################################################################################
添加服务到默认区域
server0:
# firewall-cmd --set-default-zone=public
# firewall-cmd --list-all
desktop0:
# firefox http://172.25.0.11 #不能访问
# firefox ftp://172.25.0.11 #不能访问
server0:
# firewall-cmd --permanent --add-service=http #永久添加http
# firewall-cmd --permanent --add-service=ftp #永久添加ftp
# firewall-cmd --list-all
# firewall-cmd --reload #重新加载配置
# firewall-cmd --list-all
desktop0:
# firefox http://172.25.0.11 #可以访问
# firefox ftp://172.25.0.11 #可以访问
#####################################################################################
实现本机的端口映射
• 本地应用的端口重定向(端口1 --> 端口2)
– 从客户机访问 端口1 的请求,自动映射到本机 端口2
– 比如,访问以下两个地址可以看到相同的页面:
http://172.25.0.11:5423/
http://172.25.0.11/
------->tcp 5423 ------> tcp 80
# firewall-cmd --permanent --add-forward-port=port=5423:proto=tcp:toport=80 //将5423端口映射到80端口
# firewall-cmd --reload
# firewall-cmd --list-all
# firefox http://172.25.0.11:5423 #测试是否可以访问到80端口的效果
# firewall-cmd --permanent --remove-forward-port=port=5423:proto=tcp:toport=80 //删除将5423到80端口的映射
# firewall-cmd --reload
# firewall-cmd --list-all
转载于:https://blog.51cto.com/1171770621/2396639
Day08- team、iptables、firewall相关推荐
- Linux防火墙-SELinux、netfilter、iptables、ifconfig
2019独角兽企业重金招聘Python工程师标准>>> 10.11 Linux网络相关 ifconfig命令 查看网卡IP 如果系统没有该命令可以使用yum安装: [root@ada ...
- firewalld防火墙配置、测试服务、高级配置与IP伪装、端口转发
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 Firewalld防火墙 防火墙基础 一.防火墙配置 二.使用防火墙安装http服务测试分别测试内网.外网.dmz 三.firewal ...
- 0418第十五次课:日常运维-防火墙、定时任务、系统管理
2019独角兽企业重金招聘Python工程师标准>>> 日常运维-防火墙.定时任务 一.iptables的备份及恢复 iptables 规则备份 防火墙规则只存在内存中,并没保存在文 ...
- firewalld、netfilter、 netfilter5表5链、iptables介绍
1. Linux网络相关 ifconfig查看网卡ip(如果没有这个命令请使用yum install net-tools安装) ifdown ens33 //关闭网卡ens33(在使用远程终端连接时不 ...
- linux 查看防火墙状态及常用命令 iptables、firewalld
一.iptables防火墙 1.基本操作 # 查看防火墙状态 service iptables status # 停止防火墙 service iptables stop # 启动防火墙 service ...
- centos7防火墙(firewalld、iptables)
一.firewalld和iptables netfilter/iptables是集成在linux2.4.x版本内核中的包过滤防火墙系统.该框架可以实现数据包过滤,网络地址转换以及数据包管理功能.lin ...
- Linux centos7 Linux网络相关、firewalld和netfilter、netfilter5表5链介绍、iptables语法
一. Linux网络相关 yum install net-tools ifconfig查看网卡ip ifup ens33开启网卡 ifdown ens33关闭网卡 设定虚拟网卡ens33:0 mii- ...
- Linux网络相关、firewalld、netfilter及其5表5链、iptables语法
2019独角兽企业重金招聘Python工程师标准>>> 1.Linux 网络相关 ifconfig 查看网卡IP,见下图, net-tools 包之前安装过了,这边还可以执行这个命令 ...
- Linux系统的iptables防火墙、SNAT、DNAT原理与设置规则
Linux的iptables防火墙.SNAT.DNAT 一.iptables概述 1.netfilter/iptables关系 2.四表五链 四表 五链 规则表之间的优先顺序 规则链之间的匹配顺序 二 ...
最新文章
- Day-16 面向对象03 类与类之间的关系
- YL杯超级篮球赛(jzoj 1325)
- 计算机组成原理 第一章 计算机系统概述
- sonar扫描java、js、jsp技术
- centos卸载不必要的程序_新手教程:从Mac上的启动台Launchpad删除应用程序
- 机器学习课程笔记【十三】- 独立成分分析
- 门诊管理系统开发能提高医生的诊疗水平和质量吗
- Asterisk与zoiper搭建
- JAVA技术未来十年的发展
- linux枪战游戏,AstroMenace:好玩的太空射击游戏
- 使用Matlab绘制gif动图
- [eCharts,angularjs]echarts小试-龙虎榜数据显示
- 桥接模式 和 享元模式 介绍
- HashMap源码阅读笔记
- 【print的格式化输出】
- c语言结构体嵌套及输出,C语言结构体嵌套
- MacBook随笔之快捷键二(访达和系统快捷键)
- Java常用的文档注释
- 【转载】海蜘蛛软路由安装及设置
- 记录:2022-9-30 打家劫舍 二叉搜索树中第K小的元素 公平锁 磁盘调度
热门文章
- 非现场执法管理计算机(工业级),浅析非现场执法中存在问题的方法及对策
- python3 asyncio_asyncio--python3未来并发编程主流、充满野心的模块
- controller接收json数据_这篇SpringBoot整合JSON的学习笔记,建议收藏起来,写的太细了
- 生死狙击服务器名字怎么修改,生死狙击端游怎么改名字,生死狙击端游怎么改名字?...
- python求一个数的因子_求一个整数的所有素数因子的思路是什么?
- 写一个方法判断一个整数是否为质数_请写一个函数来检查用户提交的数据是否为整数...
- mybatis 注解 动态SQL
- html 提交按钮(input submit)
- Spring mvc @RequestHeader
- pytorch torch.squeeze