-
iptables 实验
-
iptables 企业案列
-
firewalld 防火墙入门简介
-
- firewalld 基础概念
-
firewall的 实验
-
总结
=====================================================================
作为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安全策略配置等;
- 相关概念
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(统称);
- 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行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!