ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Linux基础-安全管理

2022-02-09 13:34:43  阅读:172  来源: 互联网

标签:iptables -- 0.0 firewall 基础 安全 Linux root localhost


linux安全管理     windows的安全靠什么?

什么是防火墙?    硬件防火墙  软件防火墙 

防火墙对数据封包取得方式来分类     

可以分为 代理服务器  proxy    封包过滤机制 IP filter

防火墙有三大基础功能:  

  • 代理服务   是一种网络服务,通常架设在路由器上面,可以完整掌控局域网对外连接
  • IP Filter  这种方式可以直接分析底层封包表头数据进行过滤,包括MAC地址,IP,TCP,UDP,ICMP等封包信息都可以进行过滤,用途非常广泛
  • 状态监控包过滤   动态服务,内网主动访问外网的请求,外网回复是可以进来的
  • 其他功能:L2-L7层防御,失陷主机检测,沙盒,waf等等 web专属防御 热点事件预警,鉴黄等等这些功能不是防火墙必须有的,甚至都是要花钱
  • 红帽系列自带的firewall
  • 红帽8是没有防火墙的图形化界面的,只能通过命令行来管理,我们也是可以安装红帽的防火墙图形化  
  • yum install -y  firewall-config
  • firewall-config    打开防火墙图形化界面
  • linux系统中的这个防火墙是软件防火墙
  • firewalld防火墙的区域:
  • firewalld中常用的区域名称及默认策略规则:

区域

默认策略规则

trusted

允许所有的数据包

home

拒绝流入的流量,除非与流出的流量相关;

而如果流量与sshmdnsipp-clientamba-clientdhcpv6-client服务相关,则允许流量

internal

等同于home区域

work

拒绝流入的流量,除非与流出的流量数相关;而如果流量与sshipp-clientdhcpv6-client服务相关,

则允许流量

public

拒绝流入的流量,除非与流出的流量相关;而如果流量与sshdhcpv6-client服务相关,则允许流量

external

拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh服务相关,则允许流量

dmz

拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh服务相关,则允许流量

block

拒绝流入的流量,除非与流出的流量相关

drop

拒绝流入的流量,除非与流出的流量相关

  • 防火墙firewall有两个应用项:
  • runtime        当前有效
  • permanent      永久有效

SCTP (Stream Control Transmission Protocol)是一种传输协议,在TCP/IP协议栈中所处的位置和TCPUDP类似,兼有TCP/UDP两者特征。SCTP是可以确保数据传输的,和TCP类似。

  • 数据包拥塞控制协议(DCCP)是一个提供双向单播拥塞控制连接的不可靠数据包传输协议,它适合传输相当大的数据量的应用,并且能在时间线和可靠性上权衡。
  • 终端管理工具   firewall-cmd命令的使用及作用:

参数

作用

--get-default-zone

查询默认的区域名称

--set-default-zone=<区域名称>

设置默认的区域,使其永久生效

--get-zones

显示可用的区域

--get-services

显示预先定义的服务

--get-active-zones

显示当前正在使用的区域与网卡名称

--add-source=

将源自此IP或子网的流量导向指定的区域

--remove-source=

不再将源自此IP或子网的流量导向某个指定区域

--add-interface=<网卡名称>

将源自该网卡的所有流量都导向某个指定区域

--change-interface=<网卡名称>

将某个网卡与区域进行关联

--list-all

显示当前区域的网卡配置参数、资源、端口以及服务等信息

--list-all-zones

显示所有区域的网卡配置参数、资源、端口以及服务等信息

--add-service=<服务名>

设置默认区域允许该服务的流量

--add-port=<端口号/协议>

设置默认区域允许该端口的流量

--remove-service=<服务名>

设置默认区域不再允许该服务的流量

--remove-port=<端口号/协议>

设置默认区域不再允许该端口的流量

--reload

永久生效的配置规则立即生效,并覆盖当前的配置规则

--panic-on

开启应急状况模式

--panic-off

关闭应急状况模式

  • 实例:
  • 1.查看firewalld服务当前所使用的区域
  • [root@localhost ~]# firewall-cmd --get-default-zonepublic
  • 2.查询ens33网卡在firewalld服务中的区域
  • [root@localhost ~]# firewall-cmd --get-zone-of-interface=ens33public
  • 3.把firewalld服务中ens33网卡的默认区域修改为external,并在系统重启后生效。分别查看当前与永久模式下的区域名称
  • [root@localhost ~]# firewall-cmd --permanent --zone=external --change-interface=ens33
  • The interface is under control of NetworkManager, setting zone to 'external'.    success
  • [root@localhost ~]# firewall-cmd --permanent --get-zone-of-interface=ens33
  • no zone
  • [root@localhost ~]# firewall-cmd --get-zone-of-interface=ens33
  • external
  • 4.把firewalld服务的当前默认区域设置为public
  • [root@localhost ~]# firewall-cmd --set-default-zone=public
  • Warning: ZONE_ALREADY_SET: public    success
  • [root@localhost ~]# firewall-cmd --get-default-zone
  • public
  • 5.启动/关闭firewalld防火墙服务的应急状况模式,阻断一切网络连接(当远程控制服务器时请慎用)
  • [root@localhost ~]# firewall-cmd --panic-on
  • [root@localhost ~]# firewall-cmd --panic-off
  • 6.查询public区域是否允许请求SSH和HTTPS协议的流量
  • [root@localhost ~]# firewall-cmd --zone=public --query-service=ssh
  • yes
  • [root@localhost ~]# firewall-cmd --zone=public --query-service=https
  • no
  • 7.把firewalld服务中请求HTTPS协议的流量设置为永久允许,并立即生效
  • [root@localhost ~]# firewall-cmd --zone=public --add-service=https
  • success
  • [root@localhost ~]# firewall-cmd --permanent --zone=public --add-service=https
  • success
  • [root@localhost ~]# firewall-cmd --reload
  • success
  • [root@localhost ~]# firewall-cmd --zone=public --query-service=httpsyes
  • 8.把firewalld服务中请求HTTP协议的流量设置为永久拒绝,并立即生效
  • [root@localhost ~]# firewall-cmd --zone=public --remove-service=https --permanent
  • success
  • [root@localhost ~]# firewall-cmd --reloadsuccess
  • 9.把在firewalld服务中访问8080和8081端口的流量策略设置为允许,但仅限当前生效
  • [root@localhost ~]# firewall-cmd --zone=public --add-port=8080-8081/tcp
  • success
  • [root@localhost ~]# firewall-cmd --zone=public --list-ports
  • 8080-8081/tcp
  • 10.把原本访问本机888端口的流量转发到22端口,要且求当前和长期均有效
  • firewall-cmd --permanent --zone=<区域> --add-forward-port=port= <源端口号>:proto=<协议>:toport=<目标端口号>:toaddr=<目标IP地址>`
  • [root@localhost ~]# firewall-cmd --permanent --zone=public 
  • --add-forward-port=port=888:proto=tcp:toport=22:toaddr=192.168.91.128
  • success
  • [c:\~]$ ssh root@192.168.91.128 888Connecting to 192.168.91.128:888...Connection established.To escape to local shell, press 'Ctrl+Alt+]'.Last login: Thu Apr 18 16:20:23 2019 from 192.168.91.1
  • [root@localhost ~]# 
  • 11.firewalld中的富规则表示更细致、更详细的防火墙策略配置,它可以针对系统服务、端口号、源地址和目标地址等诸多信息进行更有针对性的策略配置。它的优先级在所有的防火墙策略中也是最高的。比如,我们可以在firewalld服务中配置一条富规则,使其拒绝192.168.91.0/24网段的所有用户访问本机的ssh服务(22端口)
  • [root@localhost ~]# firewall-cmd --permanent --zone=public --add-rich-rule="rule \family="ipv4" \source address="192.168.91.0/24" \service name="ssh" \reject"
  • success
  • [root@localhost ~]# firewall-cmd --reload
  • success
  • [c:\~]$ ssh root@192.168.91.128Connecting to 192.168.91.128:22...Could not connect to '192.168.91.128' (port 22): Connection failed.

iptables  

其实iptables服务并不是真正的防火墙,只是用来定义防火墙功能的防火墙管理工具,将定义好的规则交给内核里面的netfilter功能,即网络过滤器来读取,从而真正实现防火墙功能

 

iptables 抵挡封包的方式:

  • 拒绝让internet 包进入linux主机的某些port
  • 拒绝让某些来源ip封包进入
  • 拒绝让带有某些flag标记的包进入
  • 分析硬件地址mac来提供服务
  • 五链  
  • iptables命令中设置了数据过滤或者是处理数据包的策略,叫做规则。将多个规则合成一个链,叫规则链,规则链则依据数据包位置不同分成5类

PREROUTING     //在进行路由判断之前所要进行的规则(DNAT/REDIRECT)

INPUT             //处理入站的数据包

OUTPUT           //处理出站的数据包

FORWARD         //处理转发的数据包

POSTROUTING     //在进行路由判断之后所要进行的规则(SNAT/MASQUERADE)

  • 四表:

iptables中的规则表是用于容纳规则链,规则表默认是允许状态的,那么规则链就是设置被禁止的规则,而反之如果规则表是禁止状态的,那么规则链就是设置被允许的规则。

raw

确定是否对该数据包进行状态跟踪

mangle

为数据包设置标记(较少使用)

nat

修改数据包中的源、目标IP地址或端口

filter

确定是否放行该数据包(过滤)

规则表的先后顺序:rawmanglenatfilter 

规则链的先后顺序:

入站顺序

PREROUTINGINPUT

出站顺序

OUTPUTPOSTROUTING

转发顺序

PREROUTINGFORWARDPOSTROUTING

 

 

 

 

 

 

 

 

  • iptables 命令中能常见的控制类型
  • ACCEPT    允许通过
  • LOG       记录日志,传递给下一条规则
  • REJECT     拒绝通过,可以给提示
  • DROP      直接丢弃,不给回应
  • iptables的用法格式
  • iptables [-t 表名] 选项 [链名] [条件] [-j 控制类型]
  • iptables –[A|I 链] [-i|o 网络接口] [-p 协议] [-s 来源ip/网域] [-d 目标ip/网域] –j[ACCEPT|DROP]

参数

作用

-P

设置默认策略:iptables -P INPUT (DROP|ACCEPT)

-F

清空规则链

-L

查看规则链

-A

在规则链的末尾加入新规则

-I num

在规则链的头部加入新规则

-D num

删除某一条规则

-s

匹配来源地址IP/MASK,加叹号"!"表示除这个IP外。

-d

匹配目标地址

-i 网卡名称

匹配从这块网卡流入的数据

-o 网卡名称

匹配从这块网卡流出的数据

-p

匹配协议,tcp,udp,icmp

--dport num

匹配目标端口号

--sport num

匹配来源端口号

查看规则

[root@localhost ~]# iptables [-t tables] [-L] [-nv]
参数:
-t 
后面接table,例如natfilter,如果省略,默认显示filter
-L 
列出目前的table的规则
-n 
不进行IP与主机名的反查,显示信息的速度会快很多
-v 
列出更多的信息,包括封包数,相关网络接口等

删除规则

[root@localhost ~]# iptables [-t tables] [-FXZ]
参数:
-F 
清除所有的规则
-X 
清除所有自定义规则
-Z 
将计数与流量统计清零

默认策略修改

[root@localhost ~]# iptables [-t tables] -P [链名] [ACCEPT/DROP]

    • 案例1:
    • [root@localhost ~]# iptables -A INPUT -i lo -j ACCEPT
    • # 所有的来自 lo 这个网口的封包,都予以接受
    • [root@localhost ~]# iptables -A INPUT -s 192.168.1.200 -j ACCEPT
    • # 目标来自 192.168.1.200 这个 IP 的封包都予以接受
    • [root@localhost ~]# iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT
    • [root@localhost ~]# iptables -A INPUT -s 192.168.1.10 -j DROP
    • # 192.168.1.0/24 可接受,但 192.168.1.10 丢弃
    • [root@localhost ~]# iptables -L -n --line-numbers
    • Chain INPUT (policy ACCEPT)
    • num  target     prot opt source               destination         
    • 1    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80
    • 2    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
    • 3    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
    • 4    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
    • 5    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:22
    • 6    REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited
    • 7    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
    • 8    ACCEPT     all  --  192.168.1.200        0.0.0.0/0           
    • 9    ACCEPT     all  --  192.168.1.0/24       0.0.0.0/0           
    • 10   DROP       all  --  192.168.1.10         0.0.0.0/0           
    • Chain FORWARD (policy ACCEPT)
    • num  target     prot opt source               destination         
    • 1    REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited
    • Chain OUTPUT (policy ACCEPT)
    • num  target     prot opt source               destination         
    • [root@localhost ~]# iptables -D INPUT 10
    • # 删掉INPUT中第10条规则
    • 2.Iptables 开放tcp、udp端口
    • 例:开放samba端口(udp137,138;tcp139,445)
    • [root@localhost ~]# iptables –A INPUT –i eth0 –p udp --dport 137:138 –j ACCEPT
    • [root@localhost ~]# iptables –A INPUT –i eth0 –p tcp --dport 139 –j ACCEPT
    • [root@localhost ~]# iptables –A INPUT –i eth0 –p tcp --dport 445 –j ACCEPT
    • 3.iptables匹配ICMP端口和ICMP类型
    • iptables –A INPUT –p icmp --icmp-type 类型 –j REJECT
    • 参数:--icmp-type :后面必须要接 ICMP 的封包类型,也可以使用代号,
    • 例如 8 代表 echo request 的意思。(可自查询ICMP-type对应表)
    • iptables   -A  INPUT    -p icmp   --icmp-type 8  -j  REJECT
    • iptables   -A  INPUT    -p icmp   --icmp-type echo-request  -j  REJECT
    • ICMP类型
    • TYPE CODE Description
    • 0 0 Echo Reply——回显应答(Ping应答)  
    • 3 0 Network Unreachable——网络不可达  
    • 3 1 Host Unreachable——主机不可达  
    • 3 2 Protocol Unreachable——协议不可达  
    • 3 3 Port Unreachable——端口不可达  
    • 3 4 Fragmentation needed but no frag. bit set——需要进行分片但设置不分片比特  
    • 3 5 Source routing failed——源站选路失败  
    • 3 6 Destination network unknown——目的网络未知  
    • 3 7 Destination host unknown——目的主机未知  
    • 3 8 Source host isolated (obsolete)——源主机被隔离(作废不用)  
    • 3 9 Destination network administratively prohibited——目的网络被强制禁止  
    • 3 10 Destination host administratively prohibited——目的主机被强制禁止  
    • 3 11 Network unreachable for TOS——由于服务类型TOS,网络不可达  
    • 3 12 Host unreachable for TOS——由于服务类型TOS,主机不可达  
    • 3 13 Communication administratively prohibited by filtering——由于过滤,通信被强制禁止  
    • 3 14 Host precedence violation——主机越权  
    • 3 15 Precedence cutoff in effect——优先中止生效  
    • 4 0 Source quench——源端被关闭(基本流控制)  
    • 5 0 Redirect for network——对网络重定向  
    • 5 1 Redirect for host——对主机重定向  
    • 5 2 Redirect for TOS and network——对服务类型和网络重定向  
    • 5 3 Redirect for TOS and host——对服务类型和主机重定向  
    • 8 0 Echo request——回显请求(Ping请求)  
    • 9 0 Router advertisement——路由器通告  
    • 10 0 Route solicitation——路由器请求  
    • 11 0 TTL equals 0 during transit——传输期间生存时间为0  
    • 11 1 TTL equals 0 during reassembly——在数据报组装期间生存时间为0  
    • 12 0 IP header bad (catchall error)——坏的IP首部(包括各种差错)  
    • 12 1 Required options missing——缺少必需的选项  
    • 13 0 Timestamp request (obsolete)——时间戳请求(作废不用)  
    • 14 Timestamp reply (obsolete)——时间戳应答(作废不用)  
    • 15 0 Information request (obsolete)——信息请求(作废不用)  
    • 16 0 Information reply (obsolete)——信息应答(作废不用)  
    • 17 0 Address mask request——地址掩码请求  
    • 18 0 Address mask reply——地址掩码应答
    • 4.Iptables --syn的处理方式
    • 指定TCP匹配扩展
    • 使用 --tcp-flags 选项可以根据tcp包的标志位进行过滤。
    • [root@localhost ~]# iptables -A INPUT -p tcp --tcp-flags SYN,FIN,ACK SYN
    • [root@localhost ~]# iptables -A FROWARD -p tcp --tcp-flags ALL SYN,ACK
    • 上实例中第一个表示SYN、ACK、FIN的标志都检查,但是只有SYN匹配。第二个表示ALL(SYN,ACK,FIN,RST,URG,PSH)的标志都检查,但是只有设置了SYN和ACK的匹配。
    • [root@localhost ~]# iptables -A FORWARD -p tcp --syn
    • 选项--syn相当于"--tcp-flags SYN,RST,ACK SYN"的简写。
    • [root@localhost ~]# iptables -A INPUT -m 模块名 --state 状态参数:
    • -m iptables的模块 state: 状态检查 mac:网卡硬件地址
    • --state 连接追踪中的状态:        NEW: 新建立一个会话        ESTABLISHED:已建立的连接        RELATED: 有关联关系的连接        INVALID: 无法识别的连接
    • [root@localhost ~]# iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT    
    • # 放行ssh的首次连接状态
    • [root@localhost ~]# iptables -A INPUT -m mac --mac-source 00:0C:29:56:A6:A2 -j ACCEPT
    • # 对局域网内mac地址为00:0C:29:56:A6:A2主机开放其联机
    • 本地端口转发
    • [root@localhost ~]# iptables -t nat -A PREROUTING -p tcp --dport 6666 -j REDIRECT --to-port 22
    • iptables保存和恢复
    • iptables-save   >    /etc/sysconfig/iptables       保存
    • iptables-restore  /etc/sysconfig/iptables         恢复

标签:iptables,--,0.0,firewall,基础,安全,Linux,root,localhost
来源: https://www.cnblogs.com/shuchenhao/p/15874587.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有