学习linux 服务器安全这一篇文章就够了

  • iptables 实验

  • iptables 企业案列

  • firewalld 防火墙入门简介

    • firewalld 基础概念
  • firewall的 实验

  • 总结

linux 服务器安全

=====================================================================

在这里插入图片描述

作为Linux 运维工程师,如何对网站或者业务系统试试安全加固呢?安全加固手段有哪些?

​ 1. Linux服务器内核定期升级稳定版本,及时打补丁包(安装程序);

​ 2.禁止不必要的Linux用户,关闭一些不常用的用户和组;

​ 3.设置Linux用户和密码复杂度,定期修改服务器的密码;

​ 4.禁止ROOT用户登录Linux系统,启用普通用户或者sudo用户;

​ 5.隐藏远程登录SSH 22端口,修改为6022或者60022等;

​ 6.定期升级SSH远程服务端版本,允许特定IP访问或者通过秘钥方式或者短信验证方式登录;

​ 7.关闭Linux系统不常用的软件服务,不必要的端口和进程等;

​ 8.隐藏常用软件程序的版本号:Nginx、Apache、Tomcat、MYSQL等;

​ 9.开启Linux系统级别防火墙规则:Iptables、Firewalld限制端口访问和网络流量等;

​ 10.设置应用程序、网站代码读写权限,尽量将权限控制到最小;

​ 11.开启Linux应用层级的安全措施:Selinux安全策略配置等;

iptables 入门简介


  • 相关概念

1.Iptables是Linux内核级别软件级防火墙,区别于硬件设备的防火墙,IPtables是开源的、免费的,硬件防火墙收费的,成本比较高;一般工作在OSI层次的二、三、四层

2.Netfilter/iptables看成是统一基于Linux级别防火墙,其实基于IP数据包做过滤的,有两个组成部分:Netfilter和IPtables,其中Netfilter主要是集成在Linux内核中模块,而iptables是用于管理Netfilter模块的;

3.Iptables防火墙由表和链构成的,其中表是存储在Linux内核中(Netfilter模块),链是存在表中的,链中由单个规则或者多个规则组成的,规则是什么呢?规则(约定)允许访问、不允许访问等;

4.Netfilter主要是作用于内核空间,属于Linux内核中一个数据包过滤模块,而Iptables是用于管理Netfilter模块的(管理Netfilter中的表和链(规则)),通常称防火墙不是Netfilter/Iptables,而是直接称为Iptables(统称);

  1. iptables 组件是一种工具,也称为用户空间(userspace),它使插入、修改和除去信息包过滤表中的规则变得容易。
  • iptables 防火墙关工作原理

首先 数据包请求来了,要么进入 input链 ,要么进入 forward 链。

请求进入input 链,一般需要 通过output链。

什么时候走froward 链呢。更具内核判断,如果请求的是自己,就进入input链,如果内核判断球球

的不是自己,就进入 forward 链。

据包先经过 preouting ,有该链确定数据包走向:

1.如果目的地址 是自己,则发送给 inPut 链。然后经过 output 链 发出去

2.若满足nat 表上的转发规则, 则发给foreard 在经过postrouting 发出去。

在这里插入图片描述

  • Iptables 四表五链

在这里插入图片描述

iptables filter表详解

  • Filter表示iptables的默认表,因此如果你没有自定义表,那么就默认使用filter表,它具有以下三种内建链:

  • INPUT链 :处理来自外部的数据。

  • OUTPUT链 : 处理向外发送的数据。

  • FORWARD链 : 将数据转发到本机的其他网卡设备上。

iptables nat表详解

  • NAT表有三种内建链:

  • PREROUTING链 :处理刚到达本机并在路由转发前的数据包。它会转换数据包中的目标IP地址(destination ip address),通常用于DNAT(destination NAT)。

  • POSTROUTING链 :处理即将离开本机的数据包。它会转换数据包中的源IP地址(source ip address),通常用于SNAT(source NAT)。

  • OUTPUT链 :处理本机产生的数据包。

iptables mangle 表详解

  • Mangle表用于指定如何处理数据包。它能改变TCP头中的QoS位。Mangle表具有5个内建链:

  • PREROUTING

  • OUTPUT

  • FORWARD

  • INPUT

  • POSTROUTING

IPtables RAW表详解

  • Raw表用于处理异常,它具有2个内建链:

  • PREROUTING chain

  • OUTPUT chain

iptables 常用命令

  • 常用命令图解

在这里插入图片描述

  • 常用命令解析

1.命令

-A 顺序添加,添加一条新规则

-I 插入,插入一条新规则 -I 后面加一数字表示插入到哪行

-R 修改, 删除一条新规则 -D 后面加一数字表示删除哪行

-D 删除,删除一条新规则 -D 后面加一数字表示删除哪行

-N 新建一个链

-X 删除一个自定义链,删除之前要保证次链是空的,而且没有被引用

-L 查看

-E 重命名链

-F 清空链中的所有规则

-Z 清除链中使用的规则

-P 设置默认规则

2.匹配条件

隐含匹配:

-p tcp udp icmp

–sport指定源端口

–dport指定目标端

-s 源地址

-d 目的地址

-i 数据包进入的网卡

-o 数据包出口的网卡

扩展匹配 匹配状态的 -m

-m mutiport --source-port 端口匹配 ,指定一组端口

-m limit --limit 3/minute 每三分种一次

-m limit --limit-burst 5 只匹配5个数据包

-m string --string --algo bm|kmp --string"xxxx" 匹配字符串

-mtime–timestart 8:00 --timestop 12:00 表示从哪个时间到哪个时间段

-mtime–days 表示那天

-m mac --mac-sourcexx:xx:xx:xx:xx:xx 匹配源MAC地址

-m layer7 --l7proto qq 表示匹配腾讯qq的 当然也支持很多协议,这个默认是没有的,需要我们给内核打补丁并重新编译内核及iptables才可以使用 -m layer7 这个显示扩展匹配

3.动作:

-j

DROP 直接丢掉

ACCEPT 允许通过

REJECT 丢掉,但是回复信息

LOG --log-prefix"说明信息,自己随便定义" ,记录日志

SNAT 源地址转换

DNAT 目标地址转换

REDIRECT 重定向

MASQUERAED 地址伪装

4.查看规则

[root@localhost ~]# iptables -L -v 详细查看

[root@localhost ~]# iptables -L -n 以数字的方法查看

iptables 实验

  • 安装iptables软件(iptables ,iptables-devel ,iptables-services ,iptables-utils)

[root@localhost ~]# yum -y install iptables iptables-devel

[root@localhost ~]# yum -y install iptables-services iptables-utils

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

sample configuration for iptables service

you can edit this manually or use system-config-firewall

please do not ask us to add additional ports/services to this default configuration

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

-A INPUT -p icmp -j ACCEPT

-A INPUT -i lo -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

-A INPUT -j REJECT --reject-with icmp-host-prohibited

-A FORWARD -j REJECT --reject-with icmp-host-prohibited

COMMIT

[root@localhost ~]#

[root@localhost ~]# vim /etc/sysconfig/iptables #首先删除所有的规则。

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

sample configuration for iptables service

you can edit this manually or use system-config-firewall

please do not ask us to add additional ports/services to this default configuration

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

COMMIT

[root@localhost ~]#

  • 1.禁止本地windows 访问服务器的 80端口

在这里插入图片描述

  • 写规则

[root@localhost ~]# vim /etc/sysconfig/iptables

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

sample configuration for iptables service

you can edit this manually or use system-config-firewall

please do not ask us to add additional ports/services to this default configuration

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

-A INPUT -s 192.168.10.1 -p tcp --dport 80 -j DROP

COMMIT

默认规则允许所有,优先级是最低的,一旦我们配置了规则,同种规则,从上往下匹配,只匹配到第一条。

不同种规则

[root@localhost ~]# systemctl restart iptables

为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪offer怀里抱!

这次整理的面试题,小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。

本份面试集锦涵盖了

  • 174 道运维工程师面试题
  • 128道k8s面试题
  • 108道shell脚本面试题
  • 200道Linux面试题
  • 51道docker面试题
  • 35道Jenkis面试题
  • 78道MongoDB面试题
  • 17道ansible面试题
  • 60道dubbo面试题
  • 53道kafka面试
  • 18道mysql面试题
  • 40道nginx面试题
  • 77道redis面试题
  • 28道zookeeper

总计 1000+ 道面试题, 内容 又全含金量又高

  • 174道运维工程师面试题

1、什么是运维?

2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?

3、现在给你三百台服务器,你怎么对他们进行管理?

4、简述raid0 raid1raid5二种工作模式的工作原理及特点

5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?

6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?

7、Tomcat和Resin有什么区别,工作中你怎么选择?

8、什么是中间件?什么是jdk?

9、讲述一下Tomcat8005、8009、8080三个端口的含义?

10、什么叫CDN?

11、什么叫网站灰度发布?

12、简述DNS进行域名解析的过程?

13、RabbitMQ是什么东西?

14、讲一下Keepalived的工作原理?

15、讲述一下LVS三种模式的工作过程?

16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?

17、如何重置mysql root密码?

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
omcat和Resin有什么区别,工作中你怎么选择?

8、什么是中间件?什么是jdk?

9、讲述一下Tomcat8005、8009、8080三个端口的含义?

10、什么叫CDN?

11、什么叫网站灰度发布?

12、简述DNS进行域名解析的过程?

13、RabbitMQ是什么东西?

14、讲一下Keepalived的工作原理?

15、讲述一下LVS三种模式的工作过程?

16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?

17、如何重置mysql root密码?

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 20
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值