当前位置:   article > 正文

总结openssh服务、sudo、PAM架构及工作原理、配置文件格式,nologin.so, limits、DNS、防火墙,iptables、数据库mysql_openssh pam

openssh pam

一、总结openssh服务安全加固

1、 openssl交互与非交互方式查看版本

#非交互方式
[root@Rocky8 ~]#openssl version
OpenSSL 1.1.1k  FIPS 25 Mar 2021
#交互方式
[root@Rocky8 ~]#openssl
OpenSSL> version
OpenSSL 1.1.1k  FIPS 25 Mar 2021
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

2、openssl生成用户密码

#生成9位随机密码
[root@Rocky8 ~]#openssl rand -base64 9
oQJAegDWhldg
[root@Rocky8 ~]#openssl rand -base64 9
qYZLbAd2U0qh
[root@Rocky8 ~]#openssl rand -base64 9
euswwBQQkWtF
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

3、修改/etc/ssh/sshd_config配置文件

#ssh连接:忽略询问yes/no
方法1
[root@centos8 ~]$ssh -o StrictHostKeyChecking=no 192.168.188.71
方法2
[root@centos8 ~]$vim /etc/ssh/ssh_config //客户端改为 no
 35 #   StrictHostKeyChecking no
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

ssh安全加固配置

1)使用非默认端口

 17 #Port 22
  • 1

2)禁止使用protocol version 1

#修改/etc/ssh/sshd_config配置文件
添加行 Protocol 2  内容
#重启ssh服务
sudo service ssh restart
  • 1
  • 2
  • 3
  • 4

3)限制可登录用户

 45 #MaxAuthTries 6
 46 #MaxSessions 10
  • 1
  • 2

4)设定空闲会话超时时长

119 #ClientAliveInterval 60
120 #ClientAliveCountMax 3
  • 1
  • 2

5)利用防火墙设置ssh访问策略

sudo ufw allow <port>/tcp
sudo ufw allow from <trusted IP address> to any port <port>/tcp
sudo ufw limit <port>/tcp
sudo ufw enable
#其中<port>为SSH端口号,<trusted IP address>为受信任的IP地址。
  • 1
  • 2
  • 3
  • 4
  • 5

6)基于口令认证时,使用强密码策略

使用PAM包提供的模块来实现强密码策略。常用的PAM模块:

1. pam_cracklib:该模块可以检查用户输入的密码是否符合指定的密码策略,比如密码长度、复杂度等。在安装了pam_cracklib模块后,你可以通过修改`/etc/pam.d/common-password`文件来定义密码策略。

2. pam_pwquality:该模块可以在用户创建/更改密码时检查密码是否符合指定的复杂度要求。在安装了pam_pwquality模块后,你可以通过修改`/etc/security/pwquality.conf`文件来定义密码策略。

3. pam_tally2:该模块可以在用户尝试登录时记录登录失败的次数,达到一定的次数后,可以锁定用户账户来保护系统安全。在安装了pam_tally2模块后,你可以通过修改`/etc/pam.d/login`文件来启用账户锁定功能。

4. pam_access:该模块可以定义哪些用户可以访问哪些服务。比如你可以指定只有部分用户可以使用ssh登录。在安装了pam_access模块后,你可以通过编辑`/etc/security/access.conf`文件来定义访问控制策略。

在配置完PAM模块后,建议重启系统或重新加载PAM以确保配置文件生效。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

7)使用基于KEY的认证

 35 PubkeyAuthentication yes
  • 1

8)禁止使用空密码

 69 #PermitEmptyPasswords no
  • 1

9)禁止root用户直接登录

 43 PermitRootLogin yes //Ubuntu默认禁止root账号远程登录
  • 1

10)只监听特定的IP地址

65 ListenAddress 10.0.0.100 
  • 1

11)经常分析日志

二、总结sudo配置文件格式,总结相关示例。

1、授权规则文件路径

[root@Rocky8 ~]#vim /etc/sudoers
[root@Rocky8 ~]#ls /etc/sudoers.d/
#语法检查
[root@Rocky8 ~]#visudo -c
/etc/sudoers: parsed OK
  • 1
  • 2
  • 3
  • 4
  • 5

2、实战案例

[root@Rocky8 ~]#vim /etc/sudoers
 99 ## Allow root to run any commands anywhere 
100 root    ALL=(ALL)   ALL
101 ding    ALL=(root)  /usr/bin/mount /dev/sr0 /mnt,/usr/bin/umount /mnt
102 hang    ALL=(root)  /usr/bin/cat /etc/shadow
#切换用户后测试
[ding@rocky8 ~]#sudo mount /dev/cdrom /mnt/
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

三、总结PAM架构及工作原理

1、PAM架构图

PAM架构图

在这里插入图片描述

2、PAM 框架四个部分

pam_application

pam_application:该部分是PAM模块的入口点,它提供了PAM模块与应用程序之间的接口。应用程序可以使用PAM API调用PAM模块来进行认证和授权。
  • 1

PAM 库 (存放在/lib64/security/*.so)

[root@Rocky8 ~]#ls /lib64/security/
pam_access.so        pam_echo.so       pam_group.so      pam_mail.so        pam_pwquality.so       pam_ssh_add.so     pam_tty_audit.so     pam_usertype.so
pam_cap.so           pam_env.so        pam_issue.so      pam_mkhomedir.so   pam_rhosts.so          pam_sss_gss.so     pam_umask.so         pam_warn.so
pam_chroot.so        pam_exec.so       pam_keyinit.so    pam_motd.so        pam_rootok.so          pam_sss.so         pam_unix_acct.so     pam_wheel.so
pam_cockpit_cert.so  pam_faildelay.so  pam_lastlog.so    pam_namespace.so   pam_securetty.so       pam_stress.so      pam_unix_auth.so     pam_xauth.so
pam_console.so       pam_faillock.so   pam_limits.so     pam_nologin.so     pam_selinux_permit.so  pam_succeed_if.so  pam_unix_passwd.so
pam_cracklib.so      pam_filter        pam_listfile.so   pam_permit.so      pam_selinux.so         pam_systemd.so     pam_unix_session.so
pam_debug.so         pam_filter.so     pam_localuser.so  pam_postgresok.so  pam_sepermit.so        pam_time.so        pam_unix.so
pam_deny.so          pam_ftp.so        pam_loginuid.so   pam_pwhistory.so   pam_shells.so          pam_timestamp.so   pam_userdb.so
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

一些特殊模块的配置文件

[root@centos pam.d]# ls /etc/security/
access.conf  console.apps      console.perms    group.conf   limits.d        namespace.d     opasswd       pwquality.conf  time.conf
chroot.conf  console.handlers  console.perms.d  limits.conf  namespace.conf  namespace.init  pam_env.conf  sepermit.conf
  • 1
  • 2
  • 3

pam应用程序调用模块配置文件

#主配置文件pam.conf 一般不做修改,通常使用应用程序专用配置文件/etc/pam.d/APP_NAME
[root@Rocky8 ~]#ls /etc/pam.d/
atd   cockpit      fingerprint-auth  passwd         postlogin  runuser-l       smtp          sssd-shadowutils  sudo-i       systemd-user
chfn  config-util  login             password-auth  remote     screen          smtp.postfix  su                su-l         vlock
chsh  crond        other             polkit-1       runuser    smartcard-auth  sshd          sudo              system-auth
  • 1
  • 2
  • 3
  • 4
  • 5

PAM 服务模块,也称为提供者

3、PAM工作原理

PAM工作原理:

PAM认证一般遵循这样的顺序:Service(服务)PAM(配置文件)pam_.s0
PAM认证首先要确定那一项服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证文件(位于lib64/security下)进行安全认证
  • 1
  • 2

在这里插入图片描述

PAM认证过程

1.使用者执行/usr/bin/passwd 程序,并输入密码
2.passwd开始调用PAM模块,PAM模块会搜寻passwd程序的PAM相关设置文件,这个设置文件股是
在/ete/pam.d/里边的与程序同名的文件,即PAM会搜寻/etc/pam.d/passwd此设置文件
3.经由/etc/pam.d/passwd设定文件的数据,取用PAM所提供的相关模块来进行验证
4.将验证结果回传给passwd这个程序,而passwd这个程序会根据PAM回传的结果决定下一个动作(重新输入密码或者通过验证)
  • 1
  • 2
  • 3
  • 4
  • 5

四、 总结PAM配置文件格式,总结相关示例, nologin.so, limits,等模块的使用。

1、PAM配置文件格式说明

1.通用配置文件/etc/pam.conf格式,此格式不使用

2.专用配置文件/etc/pam.d/格式

**pam专有配置文件格式**

1  type    control     module-path     arguments

**各部分含义解释**
1)app]ication:指服分名,如,te]het、1og1n、ftp等,服务名P"OTHER”代表所有没有在该文件中明确配置的其它服务
2)type:指模块类型,即功能
3)control ;PAM车该如何处理与该服务相关的PAM模统的成功战失败情况,一个关健词实现
4)module-path: 用来指明本模块对应的程序文件的路径名
5Arguments;用来传递给该模块的参数
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

实例:以login为例

[root@Rocky8 ~]#vim /etc/pam.d/login 

  1 #%PAM-1.0
  2 auth       substack     system-auth
  3 auth       include      postlogin
  4 account    required     pam_nologin.so
  5 account    include      system-auth
  6 password   include      system-auth
  7 # pam_selinux.so close should be the first session rule
  8 session    required     pam_selinux.so close
  9 session    required     pam_loginuid.so
 10 session    optional     pam_console.so
 11 # pam_selinux.so open should only be followed by sessions to be executed in the     user context
 12 session    required     pam_selinux.so open
 13 session    required     pam_namespace.so
 14 session    optional     pam_keyinit.so force revoke
 15 session    include      system-auth
 16 session    include      postlogin
 17 -session   optional     pam_ck_connector.so
                                                
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

2、总结nologin.so, limits,等模块的使用

1)模块:pam_nologin.so

*功能*
1、如果/etc/nologin 文件存在,将导致非root 用户不能登录,且如果/etc/nologin 文件里面存在一些内容时,则非root用户被拒绝时,还会显示文件里面的内容。但不影响su登录;
2、如果用户shell 是/sbin/nologin 时,当该用户登录时,会被拒绝登录;
  • 1
  • 2
  • 3

2)模块 :pam_limit.so

*功能*
在用户级别实现对其可使用的资源的限制,例如: 可打开的文件的数量,可运行的进程的数量,可用内存空间
限制用户可使用的资源的方式:21、ulimit 命令 :立即生效,但无法保存
-n # 最多的打开的文件的描述符的个数,例如可通过此限制其他主机对本机httpd 的压力测试
-u # 最大用户进程数,针对所有用户。只能调小,不能调大
-S # 使用的(软)资源限制
-H # 使用的(硬)资源限制
-a # 列出所有的限制值
2、修改配置文件
/etc/security/limits.conf
/etc/security/limits.d/*.conf 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

**limit 通过专门的配置文件来进行设置**
格式
[root ~]#vim /etc/security/limits.conf

 50 #<domain>      <type>  <item>         <value>

1*< domain> : 应用于哪些对象*
username : 指明某单个用户
 : 某组内所用用户
*: 所有用户

2< type> :限制的类型
Soft : 软限制,普通用户自己可以修改
Hard 硬限制,由root用户设定,且通过kernel强制生效
-二者同时限定

3< item> : 限制哪些资源
nofile :所能够同时打开的最大文件数量,默认为1024
nproc 所能够同时运行的进程的最大数量,默认为1024
rss 实际分配给进程的物理内存
maxlogin 某用户的最多登录次数

4< value> 指定具体值

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
示例:修改与查看系统各资源的默认值
[root ~]#ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 6992
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 6992
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
[root ~]#ulimit -n 10000  *实现临时修改*

open files                      (-n) 10000

**apache 用户可打开1024个文件;student 用户不能运行超过20个进程**
[root ~]#vim /etc/security/limits.conf 
 54 apache          -      nofile          1024 
 55 #        hard    nproc           20
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

五、实现私有时间服务器

chrony搭建ntp服务

#配置服务端
[root@centos8 ~]# yum -y install chrony
[root@centos8 ~]# vim /etc/chrony.conf 
  3 #pool 2.rocky.pool.ntp.org iburst
  4 server ntp.aliyun.com iburst
  6 server time1.aliyun.com iburst
 24 # Allow NTP client access from local network.
 25 allow 192.168.0.0/16
 34 # Serve time even if not synchronized to a time source.
 35 #local stratum 10
 36 local stratum 10
[root@centos8 ~]# systemctl restart chronyd

#配置客户端
[root@centos7 ~]#vim /etc/chrony.conf
  5 server 192.168.188.81 iburst
[root@centos7 ~]# systemctl restart chronyd

#验证结果
[root@Rocky8 ~]# chronyc sources -v

  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.
 / .- Source state '*' = current best, '+' = combined, '-' = not combined,
| /             'x' = may be in error, '~' = too variable, '?' = unusable.
||                                                 .- xxxx [ yyyy ] +/- zzzz
||      Reachability register (octal) -.           |  xxxx = adjusted offset,
||      Log2(Polling interval) --.      |          |  yyyy = measured offset,
||                                \     |          |  zzzz = estimated error.
||                                 |    |           \
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^* 192.168.188.81                3   6   377    43  -1306us[ +144us] +/-   52ms

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

六、总结DNS域名三级结构

1、DNS三级域名结构图

在这里插入图片描述

2、DNS名称结构的三个级别:顶级域名、二级域名、子域名

DNS(Domain Name System)是用于将域名解析为IP地址的系统。DNS的名称结构分为三个级别,分别是:

1. 顶级域名(Top-Level Domain,TLD):顶级域名是DNS名称结构的最高级别。常见的顶级域名包括.com、.org、.net等。顶级域名由ICANN(Internet Corporation for Assigned Names and Numbers)进行管理。

2. 二级域名(Second-Level Domain,SLD):二级域名是紧随在顶级域名后面的一级域名。例如,在域名.dingbh.top中,dingbh就是二级域名。二级域名的注册和管理由域名注册商进行。

3. 子域名(Subdomain):子域名是在二级域名下的更低级别的域名。例如,在www.dingbh.top中,www就是一个子域名。子域名可以无限级别地扩展,例如blog.dingbh.top、support.blog.dingbh.top等等。

总结:DNS名称结构分为三个级别,分别是顶级域名、二级域名和子域名。顶级域名是DNS名称结构的最高级别,由ICANN进行管理;二级域名是紧随在顶级域名后面的一级域名,由域名注册商注册和管理;子域名是在二级域名下的更低级别的域名,可以无限级别地扩展。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

七、总结DNS服务工作原理,涉及递归和迭代查询原理

在这里插入图片描述

1、DNS的工作原理

域名解析和缓存

**DNS服务的工作原理可以分为两个主要过程:域名解析和缓存**

1. 域名解析

当用户在浏览器中输入一个网址时,浏览器会向本地的DNS服务器(运营商提供的或者是配置的公共DNS服务器)发送一个DNS查询请求,这个请求包含要访问的域名。

本地DNS服务器会首先在自己的缓存中查找是否有该域名的IP地址,如果有缓存,则直接返回给浏览器;如果没有,则向Internet上的根DNS服务器发送查询请求。

根DNS服务器会告诉本地DNS服务器要查询的顶级域名服务器的IP地址(例如.com、.cn等)。本地DNS服务器再向顶级域名服务器发送查询请求,顶级域名服务器会告诉本地DNS服务器要查询的二级域名服务器的IP地址(例如baidu.com、google.com等)。

本地DNS服务器再向二级域名服务器发送查询请求,二级域名服务器会告诉本地DNS服务器该域名的IP地址,本地DNS服务器再把该IP地址返回给用户的浏览器,这时用户的浏览器就可以访问对应的网站了。

2. 缓存

为了减少DNS查询的时间和延迟,每个DNS服务器都会在自己的缓存中保存查询过的域名和IP地址。如果在缓存中找到了对应的IP地址,本地DNS服务器就可以直接返回该IP地址,这样就可以减少查询时间和提高网站访问速度。

如果在缓存中未找到对应的IP地址,本地DNS服务器会依次向上级DNS服务器进行查询,直到查询到对应的IP地址或者所有DNS服务器都没有查询到对应的IP地址。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

2、域名解析的两种查询方式

递归查询和迭代查询

**递归查询**

是指DNS服务器在收到用户发起的请求时,必须向用户返回一个准确的查询结果。如果DNS服务器本地没有存储与之对应的信息,则该服务器需要询问其他服务器,并将返回的查询结果提交给用户。

**迭代查询**

是指DNS服务器在收到用户发起的请求时,并不直接回复查询结果,而是告诉另一台DNS服务器的地址,用户再向这台DNS服务器提交请求,这样依次反复,直到返回查询结果。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

八、实现私有DNS, 供本地网络主机作DNS递归查询。

实现私有DNS,供本地网络主机作DNS递归查询,可以通过以下步骤实现:

1、DNS主机配置

1)主配置文件中定义区域
/etc/named.conf或/etc/named.rfc1912.zones文件中添加以下内容
[root ~]#vim /etc/named.conf 

zone "dingbh.top" {
type master;
file "dingbh.top.zone";
};
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
2)定义区域数据库文件
[root ~]#vim /var/named/dingbh.top.zone 

  1 $TTL 1D
  2 @       IN SOA master admin.dingbh.top ( 20230530 3H 10M 1D 6H )
  3            NS  master
  4 master     A  192.168.188.81
  5 www        A  192.168.188.81
  6 db         A  192.168.188.81
  7 node1      A  1.1.1.1
#配置生效方法
第一种:
[root ~]#rndc reload
server reload successful
第二种:
[root ~]#systemctl reload named.service 
第三种:
[root ~]#service named reload
Redirecting to /bin/systemctl reload named.service
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
3)语法格式检查
[root ~]#named-checkconf 
[root ~]#echo $?
0
  • 1
  • 2
  • 3
4)客户端配置并测试

此处centos 7为客户端

[root ~]# cat /etc/resolv.conf 
# Generated by NetworkManager
nameserver 192.168.188.81
nameserver 192.168.188.2
[root ~]#dig www.dingbh.top
[root ~]# ping -w1 -c1 www.dingbh.top
PING www.dingbh.top (192.168.188.81) 56(84) bytes of data.
64 bytes from 192.168.188.81 (192.168.188.81): icmp_seq=1 ttl=64 time=0.291 ms

--- www.dingbh.top ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.291/0.291/0.291/0.000 ms
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

私有DNS可提高内部网络的性能和安全性,因为它可以帮助从互联网上转发大量DNS查询请求,并限制非授权主机的访问。同时,私有DNS可以快速将域名解析到内部网络中的服务器或设备,从而增强内部网络的可用性和可靠性。

九、总结DNS服务器类型,解析答案,正反解析域,资源记录定义。

十、实现DNS主从同步

1、配置主服务器

[root ~]# vim /etc/named.conf
 11 #   listen-on port 53 { 127.0.0.1; };  //注释掉
 12 #   listen-on-v6 port 53 { ::1; };   //注释掉
 20     allow-query     { 192.168.188.82; };  //从服务器IP

#主配置文件中定义区域

在/etc/named.conf或/etc/named.rfc1912.zones文件中添加以下内容
[root ~]#vim /etc/named.conf 

zone "dingbh.top" {
type master;
file "dingbh.top.zone";

#定义区域数据库文件

[root ~]#vim /var/named/dingbh.top.zone 

  1 $TTL 1D
  2 @       IN SOA master admin.dingbh.top ( 20230530 3H 10M 1D 6H )
  3            NS  master
  4 master     A  192.168.188.81
  5 www        A  192.168.188.81
  6 db         A  192.168.188.81
  7 slave      A  192.168.188.82
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

2、配置从服务器

[root ~]# vim /etc/named.conf
 11 #   listen-on port 53 { 127.0.0.1; };  //注释掉
 12 #   listen-on-v6 port 53 { ::1; };   //注释掉
 19     allow-query     { none; };   //不允许其他主机进行数据传输

[root-2 ~]# vim /etc/named.rfc1912.zones
 16 zone "dingbh.top" {
 17     type slave;
 18     masters { 192.168.188.81; };
 19     file "slaves/dingbh.top.zone.slave";
 20 };
systemctl restart named  //第一次启动
rndc reload  //加载配置文件
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

3、验证结果

[root ~]#cat /etc/resolv.conf 
# Generated by NetworkManager
nameserver 192.168.188.81
nameserver 192.168.188.82

[root ~]# ping -w1 -c1 www.dingbh.top
PING www.dingbh.top (192.168.188.82) 56(84) bytes of data.
64 bytes from 192.168.188.82 (192.168.188.82): icmp_seq=1 ttl=64 time=0.291 ms

--- www.dingbh.top ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.291/0.291/0.291/0.000 ms

#关闭主DNS服务器测试
[root ~]#host www.dingbh.top
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
后续实现DNS子域授权?基于acl实现智能DNS?

十一、总结防火墙分类

按保护范围划分:

主机防火墙:服务范围为当前一台主机
网络防火墙:服务范围为防火墙一侧的局域网
  • 1
  • 2

按实现方式划分:

硬件防火墙:在专用硬件级别实现部分功能的防火墙;另一个部分功能基于软件实现,如:华为,
山石hillstone,天融信,启明星辰,绿盟,深信服,PaloAlto,fortinet飞塔, Cisco, Checkpoint, NetScreen(2004年被|uniper用40亿美元收购)等
软件防火墙:运行于通用硬件平台之上的防火墙的应用软件
  • 1
  • 2
  • 3

按网络协议划分:

网络层防火墙:OSI模型下四层,又称为包过滤防火墙
应用层防火墙/代理服务器:proxy 代理网关,OSI模型七层
  • 1
  • 2

十二、总结iptable 5表5链, 基本使用,扩展模块。

iptables是Linux操作系统中最常用的防火墙工具,它可以通过过滤、转发、重定向等功能实现网络流量管理和安全防护。

1、5表5链

iptables主要包括五个表,每个表包含若干个链。
**5**
PREROUTING、OUTPUT、INPUT、FORWARD、POSTROUTING
**5**
1. filter表:该表用于过滤流量,是最基本的防火墙表。主要包括三个链:INPUT、OUTPUT、FORWARD。其中,INPUT链用于过滤入站流量,OUTPUT链用于过滤出站流量,FORWARD链用于过滤转发流量。

2. nat表:该表主要用于网络地址转换(NAT),包含三个链:PREROUTING、POSTROUTING、OUTPUT。其中,PREROUTING链用于对入站流量进行处理,POSTROUTING链用于对出站流量进行处理,OUTPUT链用于对本机的流量进行处理。

3. mangle表:该表主要用于对流量头部进行修改,包含五个链:PREROUTING、OUTPUT、INPUT、FORWARD、POSTROUTING。主要功能包括:修改TTL、修改包头、修改流量的ToS字段等。

4. raw表:该表主要用于设置一些特殊情况下的流量包裹,例如对一些连接的包不进行连接跟踪。该表包含两个链:PREROUTING和OUTPUT。

5. security表:该表用于内核安全模块SELinux的规则控制,主要包括INPUT、OUTPUT、FORWARD三个链。
实例:查询表可以使用得链
[root ~]#iptables -t mangle -nvL
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

2、基本使用

iptables命令的基本使用方式包括:

添加规则(-A[root ~]#iptables -A INPUT -s 192.168.188.99 -j ACCEPT

删除规则(-D[root ~]# iptables -D INPUT 1

修改规则(-R[root ~]# iptables -R INPUT 3 -s 192.168.188.0/24 -j DROP

清空规则(-F[root ~]# iptables -F

查看规则(-L[root ~]# iptables -nvL

创建WEB链(-E)
[root ~]#iptables -E web WEB 创建WEB链
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

3、扩展模块

iptables还提供了一些扩展模块,以实现更多高级功能。常用的扩展模块包括:

- conntrack模块:连接跟踪模块,可用于对建立或终止的连接进行跟踪和管理。
- limit模块:可以用于限制某个IP或者端口的流量速率。
- state模块:用于设置规则,并表示该规则适用于何种连接状态,如NEW、ESTABLISHED、RELATED等。
- tcp模块:用于根据TCP协议特性过滤流量。
- udp模块:用于根据UDP协议特性过滤流量。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

#实现仅自身访问web页面#

[root ~]#iptables -A INPUT -s 192.168.188.99 -j ACCEPT //允许本地主机访问
[root ~]#iptables -A INPUT -i lo  -j ACCEPT  //允许本地端口经过
[root ~]#iptables -I INPUT 3 -p tcp  --dport 80  -j ACCEPT //允许http本地80端口访问
[root ~]#iptables -I INPUT 3 -s 192.168.188.0/24 -j REJECT //拒绝192.168.188.0/24网段通过
[root ~]#iptables -nvL --line-nu
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1      867 74408 ACCEPT     all  --  *      *       192.168.188.99       0.0.0.0/0           
2        0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
3        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80
4        1    76 REJECT     all  --  *      *       192.168.188.0/24     0.0.0.0/0            reject-with icmp-port-unreachable

主机访问web
#http://192.168.188.81/epel/

[root ~]#iptables -E web WEB //创建WEB链

**multiport扩展**
[root ~]#iptables -A WEB -p tcp -m multiport --dports 80,443 -j ACCEPT //添加iptables规则内容
[root ~]#iptables -nvL --line-nu
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1     3722  298K ACCEPT     all  --  *      *       192.168.188.99       0.0.0.0/0           
2       30  3177 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
3        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport dports 80,443
4       60  9432 REJECT     all  --  *      *       192.168.188.0/24     0.0.0.0/0            reject-with icmp-port-unreachable

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         

Chain WEB (0 references) //WEB链添加成功
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport dports 80,443
[root ~]#iptables -IINPUT 3 -j WEB //直接调用WEB链 
[root ~]#iptables -nvL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
 3895  311K ACCEPT     all  --  *      *       192.168.188.99       0.0.0.0/0           
   30  3177 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
    4   686 WEB        all  --  *      *       0.0.0.0/0            0.0.0.0/0  //直接调用WEB链         
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0   
    

[root ~]#iptables -F WEB //清除WEB链,事先清除在用规则 

***mac扩展***
[root ~]#iptables -IINPUT 4 -m mac --mac-source 00:0c:29:7e:1d:c9 -j ACCEPT //以mac方式添加规则

***STRING扩展***
[root ~]#iptables -A OUTPUT -m string --alog bm --from 62 --string "goole" -j REJECT //过滤有关goole的访问

***time扩展***



***connlimit扩展***
	--connlimit-upto N    //连接的数量小于等于N匹配
	--connlimit-above N   //连接的数量最大为N时匹配
[root ~]#iptables -AINPUT -m connlimit --connlimit-above 10 -j  REJECT //连接的数量最大为10时匹配
	
	--limit-burst number  #前多少个包不限制
	--limit
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/190784
推荐阅读
相关标签
  

闽ICP备14008679号