Linux系统安全工具介绍

65、Linux系统安全防护:从SELinux到防火墙的全方位指南 本文全面介绍了Linux系统安全防护的相关技术和工具,包括SELinux的强制访问控制、各种加密安全工具(如Kerberos、PGP、SSH、Stunnel)的使用,以及防火墙(包过滤、服务代理和状态检测)的工作原理与应用场景。通过这些方法,可以帮助用户提升Linux系统的安全性,有效防范网络威胁和攻击。 阅读详情

 下面介绍一些可以用于 Linux 的安全工具,这些工具对于固化您的服务器将起到一定的作用,可以解 决各方面的问题。我们的重点只是想让您了解这些工具,对安装配置以及使用不会给出很详细的介绍。一些安全问题例如 suid 是什么,缓冲溢出是什么等概念性的东西也不属于本文讨论的范围。

  介绍这些工具的目的只是给您一个提示的方向,并不是让您拘泥于这些工具。毕竟安全是一个过程,不是一个产品。
一、Sxid

  sxid 是一个系统监控程序。它可以监视系统中 suid,sgid 文件以及没有属主的变化。并且以可选的形式报告这些改变,你可以在配置文件中设置用 email 的形式通知这些改变,也可以不使用 email 而直接在标准输出上显示这些变化。Suid,sgid 文件以及没有属主的文件很有可能是别人放置的后门程序,这些都是您所要特别注意的。

  你可以从下面的网址获得 sxid:
  ftp://marcus.seva.net/pub/sxid/

  如果您安装过其他工具,那么您一定也会安装这个工具,它在安装上没有什么特别的地方。

  缺省安装的时候,配置文件为 /usr/local/etc/sxid.conf,这个文件中有很明显的注释很容易看懂。在这个文件中定义了 sxid 的工作方式。日志文件缺省为 /var/log/sxid.log,日志文件的循环次数在 sxid.conf 文件中定义。您可以在配置固定后把 sxid.conf 设置为不可改变,把 sxid.log 设置为只可添加(使用 chattr 命令)。

  您可以用 sxid -k 加上 -k 选项来进行检查,这时检查很灵活,既不记入日志,也不会发出 email。这样您就可以随时做检查。但是我还是建议您把检查放入 crontab 中,使用 crontab -e 编辑加入下面的条目:

  0 4 * * * /usr/bin/sxid
 
  表示每天上午 4 点执行这个程序。

  如果您还想了解更详细的信息,可以参考:

  man  sxid
  man  5  sxid.conf
二、Skey

  您认为您的密码安全吗?即使您的密码很长,有很多特殊字符,解密工具很难破解,但您的密码在网络中传送时是以明文形式的,在以太网中随便一个嗅探器就可以截取您的密码。现在在交换环境中也能实现这种技术。在这种情况下,skey 对您来说是一个选择。

  Skey 是一次性口令的一个工具。它是一个基于客户/服务器的应用程序。首先在服务器端可以用 keyinit 命令为每个用户建立一个 skey 客户,这个命令需要指定一个秘密口令,然后就可以为客户端的用户产生一次性口令列表。当用户通过 telnet,ftp 等与服务器进行连接时就可以按照一次性口令列表中的口令顺序输入自己的密码,下次再连接时候密码就换成了列表中的下一个。

  可以从下面的网址获得 skey:
  ftp://ftp.cc.gatech.edu/ac121/linux/system/network/sunacm/other/skey

  skey 的服务器端使用有下面的步骤:

  1.使用下面的命令初始化用户 mary:

  keyinit mary
  keyinit 每次为用户生成 99 个一次性口令,这时就会在 /etc/skeykeys 文件建立这个用户,该文件中保存了服务器端计算下一个一次性口令的一些信息。用上面的 keyinit 命令时就会在 /etc/skeykeys 中有下面的记录:

  mary  0099  to25065  be9406d891ac86fb  Mar  11, 2001 04:23:12

  上面的记录中从左到右依次是用户名,要使用的一次性口令序号,口令的种类,16 进制表示的口令,日期和时间。

  2.将一次性口令列表提供给 mary
  您可以打印出口令列表然后送给 mary。这样比较安全,密码不会在网络中传递。

  3.为 mary 修改缺省的登陆 shell 为 /usr/local/bin/keysh
  由于 PAM 的作用,mary 登陆时要输入密码,她输入这个一次性口令后服务器端要对这个口令进行校验,校验通过连接就被许可了。

  可能有些用户不喜欢书面的口令列表,用户可以使用 key 命令在自己的客户端得到一次性口令。您可以通过开两个窗口,一个对服务器进行连接获得一次性口令的种类和序号,然后在另一个窗口用 key 命令根据口令的种类和序号获得所要的密码。但是必须提醒您,您这样的方便是以一定的危险性为代价的。

  如果您的缺省的 99 个口令用完了,您可以使用 keyinit -s 刷新口令列表。

  在 /usr/src/skey/misc 目录中有许多其他的替换 keysh 的提供其他服务的程序,例如:su,login,ftp 等等。这样您可以应付不同的服务的连接请求了。

  为了安全,您最好设置一下/etc/skeykeys 文件的属性和权限。

  三、三个日志管理工具

  3.1 logrotate

  一般的 Linux 发行版中都自带这个工具。日志文件过大如何处理是一个问题。它可以自动使日志循环,删除保存最久的日志。你可以把它放在 crontab 中,每天定期运行。这在很多 linux 发行版中都是缺省设置的。

  您可以从下面的网址获得新版本的 logrotate:
  ftp://ftp.redhat.com/pub/redhat

  它的配置文件是 /etc/logrotate.conf 我们可以在这个文件中设置日志的循环周期,日志的备份数目,以及如何备份日志等等。

  在 /etc/logrotate.d 目录下包括一些工具的日志循环设置文件。例如:syslog,samba,cron 等等,在这些文件中指定如何根据 /etc/logrotate.conf 做日志循环,您也可以在这里面添加其他的文件以循环其他服务的日志。

  关于配置文件的详细信息您可以参阅 man logrotate。

  最后还是提醒您使用 cron 运行 logrotate。
3.2 swatch

  swatch 是一个实时的日志监控工具。您可以设置您所感兴趣的事件,它可以在事件发生的时候告诉您。Swatch 有两种运行方式:一种可以在检查日志完毕退出,另一种可以连续监视日志中的新信息。

  Swatch 提供了许多通知方式,例如:email,振铃,终端输出,多种颜色等等。

  您可以从下面的站点下载:
  ftp://ftp.stanford.edu/general/security-tools/swatch/

  swatch 的安装需要一些 perl 库的支持,安装前确信您的系统已经可以支持 perl。

  Swatch 可以在命令行中进行一些简单的设置,例如日志循环时告诉 swatch 在循环完毕后重新启动等等。

  配置文件 swatchmessage 是 swatch 软件的重点。这个文本文件告诉 swatch 需要监视什么日志,需要寻找什么触发器,和当触发时所要执行的动作。当 swatch 发现到与 swatchmessage 中定义的触发器正则表达式相符时,它将执行在 swatchrc 中定义的通知程序。Swatch 通过使用/usr/bin/tail -f 实时监视日志文件。

  在这里我们不想过多的将如何配置,配置 swatch 非常简单,您可以参考 swatch 自带的配置文件。针对每个服务例如:ftp,sendmail 等等,你必须为每个您所关心的服务配置一个 swatchmessage 文件。

  Swatch 启动时可以带很多参数,但使用通常如下格式启动它就可以了:

  /usr/local/bin/swatch -c /var/log/syslogmessage -t /var/log/syslog  -r 06:00&
 
  -c 参数用于指定配置文件,-t 参数指定实时监视的日志文件,-r 指定重起的时间,"&" 使 swatch 在后台运行。启动后,swatch 产生子进程,因此 swatch 是以两个进程运行的,在停止 swatch 时必须杀掉两个进程。

  也可以通过 logrotate 配置在日志循环后重起 swatch,可以在 /etc/logrotate.d 建立一个您所要关心的日志的循环文件,其中最关键的是要加入下面这行:

  /usr/local/bin/swatch -c /var/log/syslogmessage -t /var/log/syslog  -r + 0

  其他的地方可以仿造别的同目录下的文件。

  3.3 logcheck

  审核和记录系统的事件是非常重要的。特别是当你的计算机连接到 Internet 上之后,系统管理员如果对"异常"的事件保持警觉,就能防止系统被入侵。在 Unix 系统中如果仅仅把系统事件作为日志记录下来,而不去查看,还是无济于事。logchek 可以自动地检查日志文件,先把正常的日志信息剔除掉,把一些有问题的日志保留下来,然后把这些信息 email 给系统管理员。Logcheck 被设计成自动运行,定期检查日志文件以发现违反安全规则以及异常的活动。logcheck 用 logtail 程序记住上次已经读过的日志文件的位置,然后从这个位置开始处理新的日志信息。

  可以在下面的站点获得 logcheck:
  http://www.psionic.com/abacus/logcheck/

  logcheck 主要由下面几个主要的文件:

  1.logcheck.sh
  这个是一个可执行的脚本文件,里面记录 logcheck 检查那些日志文件等 logcheck 运作所必须的信息。您可以把它加入 crontab 中定时运行。

  2.logcheck.hacking
  它和下面的三个文件一样,是 logcheck 检查的模式文件。他们四个文件按从上到下的顺序执行。这个文件表明了入侵活动的模式。

  3.logcheck.violations
  这个文件表示有问题,违背常理的活动的模式。优先级小于上面的那个模式文件。

  4.logcheck.violations.ignore
  这个文件和上面的 logcheck.violations 是相对的,是您所不关心的问题的模式文件。

  5.logcheck.ignore
  这是检查的最后一个模式文件。如果没有和前三个模式文件匹配,也没有匹配这个模式文件的话,则输出到报告中。
6.logtail
  这个文件记录日志文件信息。

  Logcheck首次运行时读入相关的日志文件的所有内容。Logtail 在日志文件的目录下为每个关心的日志文件建立一个 logfile.offset 的偏移量文件,以便于下次检查时从这个偏移量开始检查。Logcheck 执行时未被忽略的内容通过邮件的形式发送给 logcheck.sh 中 SYSADMIN 指定的用户。

  Logcheck 的通知没有那么实时,但是相对于 swatch 它更适合于分布式日志文件系统。因为它不必为每个日志文件建立一个进程。在 Turbolinux 中就集成了 logcheck 工具。

  四、SSH

  传统的网络服务程序,如:ftp、pop 和 telnet 在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。而且,这些服务程序的安全验证方式也是有其弱点的,就是很容易受到"中间人"(man-in-the-middle)这种方式的攻击。所谓"中间人"的攻击方式,就是"中间人"冒充真正的服务器接收你的传给服务器的数据,然后再冒充你把数据传给真正的服务器。

  通过使用 SSH,你可以把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,而且也能够防止 DNS 和 IP 欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替 telnet,又可以为 ftp、pop、甚至 ppp 提供一个安全的"通道"。

  最初 SSH 是由芬兰的一家公司开发的。但是因为受版权和加密算法的限制,现在很多人都转而使用 OpenSSH。OpenSSH 是 SSH 的替代软件,而且是免费的,可以预计将来会有越来越多的人使用它而不是 SSH。

  从客户端来看,SSH 提供两种级别的安全验证。

  第一种级别是基于口令的安全验证,这种机制就相当于普通的 telnet 等服务的口令认证机制。

  第二种级别是基于密匙的安全验证。你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。如果你要连接到 SSH 服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后,先在你在该服务器的家目录下寻找你的公用密匙,然后把它和你发送过来的公用密匙进行比较。如果两个密匙一致,服务器就用公用密匙加密"质询"(challenge)并把它发送给客户端软件。客户端软件收到"质询"之后就可以用你的私人密匙解密再把它发送给服务器。

  可以在下面的站点下载:
  http://violet.ibs.com.au/openssh/

  "/etc/ssh/ssh_config" 文件是 OpenSSH 客户端的配置文件,允许你通过设置不同的选项来改变客户端程序的运行方式。这个文件的每一行包含"关键词-值"的匹配,其中"关键词"是忽略大小写的。用 man 命令查看帮助页(ssh (1))可以得到详细的说明。

  "/etc/ssh/sshd_config" 是 OpenSSH 的服务器端配置文件,允许设置选项改变这个 daemon 的运行。这个文件的每一行包含"关键词-值"的匹配,其中"关键词"是忽略大小写的。用 man 命令查看帮助页(sshd (8))可以得到详细的说明。

  配置 OpenSSH 使其使用 TCP-Wrappers inetd 超级服务器,编辑 "inetd.conf" 文件(vi /etc/inetd.conf)并加入这一行:

  ssh stream tcp nowait root /usr/sbin/tcpd sshd -i

  注意:"-i"参数很重要,它说明 sshd 是被 inetd 运行的。

  现在我们为本地服务器创建私有和公用密匙,执行下面的命令:

  [root@sound]# su username
  [username@sound]$ ssh-keygen1

  产生密钥后把本机的公用密匙(identity.pub)拷贝到远程主机的"/home/username/.ssh"目录下,例如,使用"authorized_keys"这个名字。

  用加上"-p"参数的"ssh-keygen"命令,在任何时候都可以改变初始的密码。

  下面列出的是一些我们经常要用到的命令,当然还有很多其它的命令,更详细的信息可以查看 man 帮助页或其它文档。

  1.ssh

  ssh(Secure Shell)是用来登录远程计算机和在远程计算机上执行命令的程序。它是用来替代 rlogin 和 rsh,以及在不安全的网络环境下在两台计算机之间提供安全和加密的信息交流。

  使用下面的命令可以从客户端连接到远程主机 server:

  [root@sound /]# su admin
  [admin@sound /]$ssh server
2.scp

  可以用这个命令把文件从本地计算机拷贝到远程计算机,或者反之,甚至可以在两台远程计算机之间用 "scp" 命令拷贝文件。

用下面的命令把文件从远程主机拷贝到本地主机上:

  [root@sound /]# su admin
  [admin@sound /]$ scp -p :/dir/for/file localdir/to/filelocation

  用下面的命令把文件从本地主机拷贝到远程主机上:

  [root@sound/]# su admin
  [admin@sound /]$ scp -p localdir/to/filelocation :/dir/for/file

  注意:"-p" 选项表示文件的改变和访问时间属性以及权限,在拷贝过程中被保留。通常是需要这样的。

  五、Tripwire

  如果有人侵入了您的系统,在您的系统中放置了木马和后门,您怎么才能知道呢?tripwire 就是这样一个对系统做完整性检查的工具。它是目前最为著名的 unix 下文件系统完整性检查的软件工具,这一软件采用的技术核心就是对每个要监控的文件产生一个数字签名,保留下来。当文件现在的数字签名与保留的数字签名不一致时,那么现在这个文件必定被改动过了。

  当Tripwire 运行在数据库生成模式时,会根据管理员设置的一个配置文件对指定要监控的文件进行读取,对每个文件生成相应数字签名,并将这些结果保存在自己的数据库中,在缺省状态下,MD5 和 SNCFRN(Xerox 的安全哈希函数)加密手段被结合用来生成文件的数字签名。除此以外,管理员还可使用 MD4,CRC32,SHA 等哈希函数,但实际上,使用上述两种哈希函数的可靠性已相当高了,而且结合 MD5 和 sncfrn 两种算法(尤其是 sncfrn)对系统资源的耗费已较大,所以在使用时可根据文件的重要性做取舍。当怀疑系统被入侵时,可由 Tripwire 根据先前生成的,数据库文件来做一次数字签名的对照,如果文件被替换,则与 Tripwire 数据库内相应数字签名不匹配, 这时 Tripwire 会报告相应文件被更动,管理员就明白系统不"干净"了。

  可以从下面站点获得 tripwire:
  http://www.tripwiresecurity.com

  "/usr/TSS/policy/twpol.txt" 文件是纯文本的策略文件,设置 Tripwire 需要检测哪些文件和目录(也叫系统对象)。其中有一个规则设定如何检测需要监控的对象,还有一个特性(property)设置如何检测。特性掩码(property mask)设定进行一致性检验的时候单独文件的特性(property)。属性(Attributes)帮助规定成组的策略如何运作。

  您可以根据您的需要修改 twpol.txt 这个策略文件,然后当第一次准备使用策略文件的时候,用下面的安装它:

  [root@sound]# twadmin --create-polfile /usr/TSS/policy/twpol.txt

  第一次创建基准数据库:用下面的命令

  [root@sound]# tripwire { --init }

  一致性检查把当前文件系统中的对象及其属性和 Tripwire 数据库中的进行比较。一旦发现异常情况,就会在标准输出上显示出来,报表文件也会被保存下来,以后可以用 "twprint" 命令查看:

  [root@sound]# tripwire { --check }
 
  用下面的命令进行交互式的检查:

  [root@sound]# tripwire --check --interactive
 
  用下面的命令进行一致性检查并用email发送报表:

  [root@sound]# tripwire --check --email-report
 
  用下面的命令更新数据库:

  [root@sound]# tripwire --update -r /usr/TSS/report/sound.openarch.com-200001-021854.twr
 
  "-r"参数读取指定的报表文件(deep.openarch.com-200001-021854.twr)。因为当前的配置文件的 REPORTFILE 变量使用$(DATE),所以"-r"这个参数是必须的。

  用下面的命令更新策略文件:

  [root@deep]# tripwire --update-policy /usr/TSS/policy/newtwpol.txt

  在默认情况下,策略更新模式使用"--secure-mode high"。如果文件系统在最近的一次数据库更新之后发生了变化,而且这个变化会违反策略文件中定义的规则,那么在高安全级别的模式下运行你可能会遇到一些问题。例如这种情况:其他的管理员在策略更新的过程中,改变了一些文件。为了解决这个问题,确信在高安全级别的模式下所有的变化都是正常的之后,可以采用低级别的安全模式更新策略文件:

  用下面的命令在低级别的安全模式下更新策略文件:

  [root@sound]# tripwire --update-policy --secure-mode low /usr/TSS/policy/newtwpol.txt

  如果想查找详细的资料可以用man命令查帮助页,读取相关信息。
六、Portsentry

  我们可以通过防火墙限制自己系统中什么端口开放,什么端口不开放。对于外部的人们来说,这些信息都是保密的。黑客为了得到您机器中开放的端口,往往会进行各种方式的扫描,这样的扫描软件在互联网上也随处都是。一般的扫描活动都是进行入侵的前奏,对安全是极大的危险。

  Portsentry 就是一个反扫描工具。它可以实时发现并分析记录对本机的扫描, 它主要做以下工作:

  通过 syslog 做记录
  将扫描的主机加入 /etc/hosts.deny
  马上禁止所有通向扫描主机的网络流量
  过滤掉所有来自扫描主机的网络流量
  您可以从下面的网站获得portsentry:
  http://www.psionic.com/abacus/portsentry/

  "/usr/psionic/portsentry/portsentry.conf"是 portsentry 的主配置文件。您可以在这个文件中设置您所要监听的端口,以及哪些 ip 地址被拒绝,哪些被忽略等等信息。如果您了解详细的信息,可以查看 "README.install" 文件。

  "/usr/psionic/portsentry/portsentry.ignore" 文件定义了在执行端口扫描分析时必须要忽略的主机,也就是说即使这些主机进行了扫描活动,portsentry 也不会采取任何行动。

  Portsentry 有以下6种启动方式:

  portsentry -tcp (basic port-bound TCP mode)
  portsentry -udp (basic port-bound UDP mode)
  portsentry -stcp (Stealth TCP scan detection)
  portsentry -atcp (Advanced TCP stealth scan detection)
  portsentry -sudp ("Stealth" UDP scan detection)
  portsentry -audp (Advanced "Stealth" UDP scan detection)
 
  建议您可以使用下面两种方式启动 portsentry:

  portsentry -atcp (Advanced TCP stealth scan detection)
  portsentry -sudp ("Stealth" UDP scan detection)
 
  一种 tcp 启动方式和一种 udp 启动方式可以同时进行。

  您可以把下面的两个命令加入 "/etc/rc.d/rc.local" 中,当系统重起时自动启动:

  [root@sound /]# /usr/psionic/portsentry/portsentry -atcp
  [root@sound /]# /usr/psionic/portsentry/portsentry -sudp

  对于更详细的信息您可以查阅 man 手册和 portsentry 自带的帮助文件。

  七、Openssl

  一些服务器端的软件例如:IMAP & POP, Samba, OpenLDAP, FTP, Apache 等等在给用户提供服务的时候要对用户进行认证,只有在认证通过后服务才会被许可。而 client/server 方式的服务客户端和服务端之间通讯都是以明文方式进行的,openssl 正是提供了对传输的数据的一种加密方式。Openssl 可以安装在 Linux 服务器上,它需要一些第三方提供的应用程序来为服务提供加密。

  下面看一些使用 openssl 加密能为我们提供的好处:

  1.数据的保密性

  openssl 实际在真正的数据加密上使用的是对称算法,一个密钥既用来加密也用来解密。我们在公开的网络介质上传输的再不是明文,即使有人能截获这些数据,没有密钥也是很难进行解密的。

  2.数据的完整性

  openssl 对数据用 hash 算法一个消息文摘,然后用对方的公钥对消息文载做数字签名,消息文摘的加密使用的是非对称算法。然后消息文摘和数据一起传给接收方,接收方用自己的密钥先对数字签名进行解密,这样就保证了数据的完整性。

  从下面的站点可以获得 openssl:
  http://www.openssl.org/

  编译安装以后还要执行下面几个命令:

  [root@sound openssl-0.9.5a]# mv /etc/ssl/misc/* /usr/bin/
  [root@sound openssl-0.9.5a]# install -m 644 libRSAglue.a /usr/lib/
  [root@so. openssl-0.9.5a]# install -m 644 rsaref/rsaref.h /usr/include/openssl/

  "/etc/ssl/openssl.cnf"是 openssl 的主配置文件,里面要改动的主要是[CA_default ] 和[ req_distinguished_name ] 两个部分。

  如果你想要使用 "openssl ca" 这个命令做 CA 证书时时,你需要建立一个 "sign.sh" 的脚本,这个脚本实际是存在的,在"/usr/bin/sign.sh", 您所要做的是在这个文件中加入一些东西。在 mod_ssl 的发行版中您也可以找到这个脚本。

  下面我们举个例子讲述 openssl 的应用,我们用自己的 CA 为自己的 apache web server 做一个证书来签名我们自己的证书签名请求(CSR)。
1.为 apache web server 建立一个有密码保护的RSA私钥

  [root@sound ssl]# openssl genrsa -des3 -out server.key 1024

  2.用上面的 RSA 私钥产生一个证书签名请求(CSR)

  [root@sound ssl]# openssl req -new -key server.key -out server.csr

  3.为我们自己的 CA 创建一个 RSA 私钥

  [root@sound ssl]# openssl genrsa -des3 -out ca.key 1024

  4.用 CA 的 RSA 密钥做一个自签名的 X509 格式的证书

  [root@sound ssl]# openssl req -new -x509 -days 365 -key ca.key -out ca.crt

  5.将上面产生的私钥和证书移动到合适的目录下

  [root@deep ssl]# mv server.key private/
  [root@deep ssl]# mv ca.key private/
  [root@deep ssl]# mv ca.crt certs/

  6.最后用我们自己的 CA 对证书签名

  [root@sound ssl]# /usr/bin/sign.sh server.csr

  更详细的信息请参考 man 帮助和程序自带的帮助。

  八.Linux FreeS/WAN VPN

  对于客户端与服务器之间的通讯用SSL进行加密是一个很好的选择,但是很多情况下需要建立一种企业级的通讯通道。在两个网关之间的 Internet上点到点的传递极其私密的数据,出于这种加密和认证的需要,IPSEC 应运而生。

  IPSEC 是 Intenet 协议安全,它使用很强的密码系统提供认证和加密服务。IPSEC 在 IP 层进行加密,所以它对链路层的依赖型不大。它可以工作在各种底层网络上。IPSEC 可以为 IP 层以上的协议提供保护。对于用户来说,这种保护看起来是透明的。

  IPSEC 可以提供在两个网关之间的不安全的互联网上的安全通道的这种能力。在这种通道中传送的数据都是要求保密性非常高的数据,数据在发送者的网关处加密,在接收者的网关处解密。这就是 VPN(Virtual Private Network)。Freeswan 就是在 Linux 下实现 IPSEC 的工具。

  您可以到下面的站点下载 freeswan:
  http://www.freeswan.org/

  由于 freeswan 是以内核补丁形式提供的,所以您必须先下载 Linux 内核,再下载对应于内核的 freeswan。我们先要根据自己的系统情况修改 freeswan 的 Makefile 文件,然后用下面的命令进行编译,并且把 freeswan 加入到 Linux 内核的源代码中:

  [root@sound freeswan-1.3]# make insert
  [root@sound freeswan-1.3]# make programs
  [root@sound freeswan-1.3]# make install

  然后我们就需要编译内核,这里不想再介绍如何编译内核,只提示要改变的内核选项,下面这些选项您都要确定选"Y":

  IPSec options (FreeS/WAN)
  IP Security Protocol (FreeS/WAN IPSEC) (CONFIG_IPSEC) [Y/n/?]
  IPSEC: IP-in-IP encapsulation (CONFIG_IPSEC_IPIP) [Y/n/?]
  IPSEC: PF_KEYv2 kernel/user interface (CONFIG_IPSEC_PFKEYv2) [Y/n/?]
  IPSEC: Enable ICMP PMTU messages (CONFIG_IPSEC_ICMP) [Y/n/?]
  IPSEC: Authentication Header (CONFIG_IPSEC_AH) [Y/n/?]
  HMAC-MD5 authentication algorithm (CONFIG_IPSEC_AUTH_HMAC_MD5) [Y/n/?]
  HMAC-SHA1 authentication algorithm (CONFIG_IPSEC_AUTH_HMAC_SHA1) [Y/n/?]
  IPSEC: Encapsulating Security Payload (CONFIG_IPSEC_ESP) [Y/n/?]
  3DES encryption algorithm (CONFIG_IPSEC_ENC_3DES) [Y/n/?]
  IPSEC Debugging Option (DEBUG_IPSEC) [Y/n/?]

  一些内核选项会被 freeswan 自动打开,即使这些选项原来是关闭的。尽管这样还是建议您不要关闭下面的选项:

  Kernel/User netlink socket (CONFIG_NETLINK) [Y/n/?]
  Netlink device emulation (CONFIG_NETLINK_DEV) [Y/n/?]

  Freeswan 的配置文件 "/etc/ipsec.conf" 许可您设定您的 IPSEC 设置,连接类型以及控制信息等。IPSEC 目前支持两种类型的连接:手工连接和自动连接。手工连接需要的密钥保存在 "/etc/ipsec.conf" 文件中,这种连接没有自动连接安全。对于一个商业应用来说,使用手工(固定)密钥是不安全和不可靠的。在自动密钥连接模式下产生一个 256 位共享密钥,将其复制到连接通道的各个节点上后,那些企图截取数据包的网络攻击者将很难攻破这种安全连接。在自动密钥连接模式下,一个密钥的有效期是 8 个小时,这种配置有效地阻止了那些企图用暴力法猜出密钥的攻击者。自动连接的密钥由一个叫 Pluto 的密钥协商守候进程产生,缺省使用叫 IKE 的密钥协商协议。这个协议根据 "/etc/ipsec.secrets" 文件中的信息确定不同的系统。
我们下面举一个例子论述配置和使用的整个过程。假如我们有下面的 VPN 通道:

  SubnetDeep===Deep------Deepgate..………....Mailgate-------Mail===SubnetMail
              Untrusted net
  左边子网= SubnetDeep (192.168.1.0/24)
  左边的主机 = Deep (deep.openna.com)(202.164.186.1)
  左边的网关 = Deepgate (205.151.222.250)
  Internet = Untrusted net
  右边的网关 = Mailgate (205.151.222.251)
  右边的主机 = Mail (mail.openna.com)( 208.164.186.2)
  右边的子网= SubnetMail (192.168.1.0/24)

  我们要编辑 ipsec.conf 文件来来满足我们的需要。在这个文件中有两大个段落。第一个 "config" 是关于 IPSEC 的一些普通配置信息的,后一个 "conn" 指定特定的 IPSEC 连接通道。具体的配置信息可以参看 man 帮助页。

  "ipsec.secrets" 包含 pluto 守候进程认证网关之间通讯的密钥。有两种类型的密钥,一种是共享的密钥,一种是RSA的私人密钥。下面的命令产生 256 位的共享密钥:

  [root@deep /]# ipsec ranbits 256 > temp

  现在这个共享密钥在 temp 文件中,我们要把它复制到 "ipsec.secrets" 文件中。"ipsec.conf" 和 "ipsec.secrets" 都要拷贝到 VPN 通道另一端的网关上。"ipsec.conf" 文件中的 "config setup" 字段可能要根据接口的不同有所改变。

  接下来我们要创建 RSA 的密钥对了:

  我们在两个网关上都建立密钥对:

  [root@deep /]# ipsec rsasigkey --verbose 1024 > deep-keys
  [root@mail /]# ipsec rsasigkey --verbose 1024 > mail-keys

  然后我们将前面产生的 temp 文件中的共享密钥放在每个网关的 "ipsec.conf" 文件中,在文件中的 "conn" 字段加入下面几行:

  authby=rsasig
  leftrsasigkey=<Public key of deep>
  rightrsasigkey=<Public key of mail>

  然后在两个网关上处理 deep-keys 和 mail-keys 这两个 RSA 公钥,我们把这个个文件中的 "#pubkey=" 部分拷贝到各自的 "ipsec.conf"中去,如下:

  authby=rsasig
  leftrsasigkey=0x010395daee1be05f3038ae529ef2668afd79f5ff1b16203c9ceaef801cea9cb74bcfb51a6ecc08890d3
  eb4b5470c0fc35465c8ba2ce9d1145ff07b5427e04cf4a38ef98a7f29edcb4d7689f2da7a69199e4318b4c8d0ea25d33e4f
  084186a2a54f4b4cec12cca1a5deac3b19d561c16a76bab772888f1fd71aa08f08502a141b611f
rightrsasigkey=0x01037631b81f00d5e6f888c542d44dbb784cd3646f084ed96f942d341c7c4686cbd405b805dc728f86
  97475f11e8b1dd797550153a3f0d4ff0f2b274b70a2ebc88f073748d1c1c8821dc6be6a2f0064f3be7f8e4549f8ab9af649
  44f829b014788dd202cf7d2e320cab666f5e7a197e64efe0bfee94e92ce4dad82d5230c57b89edf

  最后把deep-keys和mail-keys这两个文件中的剩余部分包括(包括私钥)放进"ipsec.secrets"中去。

  然后重新启动带有IPSec支持的内核的系统。系统重启时会出现几个错误,这主要是IPSec在缺省情况下使用了实际并不存在的eth999接口。建议你将ipsec程序的路径加入到用户环境变量中。

  IPSec的网络设置首先,需要允许网关服务器的TCP-IP转发。在Red Hat Linux系统中的实现方法:

  将 FORWARD_IPV4="false" 改为 FORWARD_IPV4="yes" 即可。

  另一个方法是直接修改/proc文件系统,执行以下命令即可:

  cat 1 > /proc/sys/net/ipv4/ip_forward
 
  然后我们要重新启动网络:

  [root@deep /]# /etc/rc.d/init.d/network restart

  这时pluto守候进程要启动,它尝试去连接另一边的网关上的pluto守候进程,这样一个连接就可以建立了。所以我们要在ipchains的配置文件中加入一些包过滤规则许可以下的协议通过网关通往另一边的网关:

  UDP port 500 for IKE implemented by the Pluto daemon
  Protocol 50 for ESP encryption and/or authentication
  Protocol 51 for AH packet-level authentication
 
  必须保证IP欺骗选项没有被打开,可以将下面的命令添加到/etc/rc.d/rc.local文件中:

  [root@deep /]# echo 0 > /proc/sys/net/ipv4/conf/ipsec0/rp_filter
  [root@deep /]# echo 0 > /proc/sys/net/ipv4/conf/eth0/rp_filter

  最后要注意的是, 任何使用了 IPSec 的内部网络的所有伪装(masquerade),规则都必须在允许 IPSec 的规则之后进行,否则主机将试图伪装 (masquerade) 数据包,而不是将它们传递给 IPSec。所以我们还要在两边网关的 ipchains 配置文件中加入下面的设定来保证能够正常的转发 IPSEC 的数据包:

  # Masquerade internal traffic.
  # All internal traffic is masqueraded externally.
  ipchains -A forward -i $EXTERNAL_INTERFACE -s $LOCALNET_1 -j MASQ
  Where EXTERNAL_INTERFACE="eth0" # You external interface to the Internet.
  Where LOCALNET_1=" 192.168.1.0/24" # whatever private range you use.

  现在可以重启机器了,我们所要做的设置都完成了,一个 VPN 已经构建好了。

  详细的信息请参阅 man 帮助和工具自带的帮助文件。
小结

  我们所讨论的以上内容都是为了更好的固化我们的 linux 系统,我们讨论了 linux 服务器的安装和安全设置中要注意的问题,我们还谈到了 linux 的日志系统,概要的举出了一些安全工具。由于篇幅所限不可能讲的非常详细彻底,也有很多其他好的安全工具并没有给大家列出。下面给出一个安全工具的列表供大家参考,详细的说明可详见说明文档和 man文档和 man 文档。

工具名称

工具作用

Sxid

检查系统中的 suid,sgid 以及没有主人的文件

skey

一次性口令工具

logrotate

日志循环工具

logcheck

日志管理工具

swatch

日志管理工具,比 logcheck 实时

Ssh(openssh)

提供安全的连接认证

openssl

提供加密的数据传送和认证

Portsentry

反扫描工具,监视自己的udp和tcp端口

tripwire

提供系统完整性检查

gnupg

对单个文件进行加密以及创建数字签名

hostsentry

基于主机的入侵检测,将连接记入日志

ipchains

Linux发行版自带的包过滤形防火墙

CFS 和 TCFS

密码文件系统和透明的密码文件系统实现目录下所有文件加密,基于 NFS

Anti-sniff

反嗅探工具,检查网络中是否有嗅探器

Freeswan

在 linux 实现 VPN 的工具

Syslog-ng

替代 syslog 的日志文件系统

Scandns

进行 dns 检查追踪的工具

Whisker

Cgi 扫描器

Snoopy

通过跟踪 execve 系统调用记录执行的命令

Linux kernel patch

内核的安全补丁,防止缓冲溢出等

krnsniff

一个基于内核的监听模块

iptable

用来替代ipchains的包过滤防火墙

Imsafe

通过跟踪系统调用来检测缓冲溢出等问题

Iplog

对来往的包进行日志记录

Solaris designer

内核补丁,防止缓冲溢出等

Stackguard

作为补丁修补gcc,防止缓冲溢出

DTK

Honey port欺骗式防御

Antiroute

阻止和记录基于路由的跟踪

  安全工具介绍

  希望您能经常关心最新的安全漏洞和安全新闻,没有任何系统是完全安全的。这篇文章的目的不过是使大家对安全有一个明确的认识,使安全真正能够得到您的重视,做到深入人心。

Linux系统安全管理与工具应用 本文深入探讨了Linux系统中的安全命令和工具,涵盖了系统停止、访问控制、入侵检测、密码管理、网络服务配置等多个方面。通过对各个工具和命令的详细介绍,我们不仅理解了它们的用途和功能,还能掌握在Linux环境下如何实现有效的系统安全管理和防御措施。 阅读详情

相关推荐

Linux系统安全工具与安装指南的深度解读

本文深入探讨了Linux系统中的安全工具与安装指南,分析了如何利用CD-ROM中的软件工具进行网络防护、入侵检测、系统监控和评估。文章从实用角度出发,结合具体命令和操作实例,为读者提供了Linux环境下加强系统安全性的有效方法和步骤。

weixin_36235398的博客 396

Linux系统安全(三): 系统安全工具介绍

下面介绍一些可以用于 Linux 的安全工具,这些工具对于固化您的服务器将起到一定的作用,可以解决各方面的问题。我们的重点只是想让您了解这些工具,对安装配置以及使用不会给出很详细的介绍。 介绍这些工具的目的只是给您一个提示的方向,并不是让您拘泥于这些工具。毕竟安全是一个过程,不是一个产品。 1 Sxid sxid 是一个系统监控程序。它可以监视系统中 suid,sgid 文件以及

1969

Linux系统安全审计与权限提升工具:LinEnum

Linux系统安全审计可以分为多种类型,包括:合规性审计:确保系统符合行业标准和法规要求。系统完整性审计:监控系统文件和目录的完整性,检测潜在的篡改行为。事件响应审计:调查安全事件,及时响应攻击或入侵。用户行为审计:记录用户操作行为,以预防内部威胁。LinEnum 是一个用于 Linux 系统权限提升审计的脚本,其目的是为了快速检测系统潜在的安全问题,特别是那些可能导致权限提升的漏洞。

weixin_33363025的博客 1254

工业AI实战:从数据采集到边缘部署的全流程技术指南

人工智能作为推动产业升级的核心技术,其基本原理是通过算法模型从数据中学习规律并做出智能决策。在工业制造领域,AI技术通过与运营技术(OT)系统深度融合,实现了对物理设备的感知与控制。这种技术融合的价值在于能够提升生产效率、降低运营成本,并实现预测性维护等智能化应用。工业AI的典型应用场景包括基于传感器数据的设备状态监测、利用计算机视觉的质量检测,以及通过优化算法实现的工艺参数调整。在实际工程实践中,数据采集涉及OPC UA、Modbus等工业协议,而模型部署则需要考虑边缘设备的计算资源限制。本文以预测性维护

weixin_34226706的博客 614

掌握Linux系统安全命令与配置

本文从一个Linux系统管理员的角度出发,探讨了Linux安全领域中常用命令和配置的相关知识。通过对一系列安全问题的问答形式,详细介绍了如何使用不同的命令行工具来增强系统的安全性,包括但不限于用户登录环境配置、网络服务监控、文件访问控制、加密文件传输以及系统服务安全配置等。通过阅读本文,读者将能够更好地理解和运用Linux系统安全相关的命令和配置选项,提升系统安全防护能力。

weixin_42453228的博客 433

Linux系统安全工具及漏洞管理

本文介绍了Linux系统中常用的几个安全工具,包括who、whois、xinetd.conf和Xlogmaster,并探讨了它们在系统安全中的作用。同时,文章还强调了安全是一个持续的过程,提醒用户及时关注安全公告并更新系统以修复已知漏洞。此外,附录中列出了Linux系统中一些重要的安全漏洞,并给出了相应的解决方案。

weixin_29859471的博客 436

linux系统安全:开源的反病毒工具ClamAV的安装配置使用和维护介绍

ClamAV 是一个开源的反病毒工具,Linux系统CentOS。提供了命令行工具、守护进程和服务,用于扫描文件系统、邮件服务器和其他网络服务中的病毒和恶意软件。ClamAV专为邮件网关上的电子邮件扫描而设计,也可用于保护系统免受恶意软件和病毒的侵害。能够检测数百万种病毒、蠕虫、特洛伊木马和其他恶意软件,包括宏病毒和移动恶意软件。Sourcefire组织开发,Snort入侵检测引擎的所有者。灵活且可扩展的多线程守护程序、命令行扫描程序,及用于自动数据库更新的高级工具。其核心是以共享库形式提供的反病毒引擎。

weixin_70208651的博客 3921

深入理解Linux系统安全与管理

本文是一本关于Linux系统安全与管理的专业指南,涵盖了系统文件安全性、网络服务配置以及加密通信等多个方面。通过详细介绍了系统文件的监控、网络服务的控制与保护、以及X窗口系统等重要知识,旨在帮助读者提升系统安全性和管理能力。

weixin_36064575的博客 420

Linux系统安全工具之:日志管理工具介绍

Linux系统安全工具之:日志管理工具介绍 摘要:一般的 Linux 发行版中都自带这个工具。日志文件过大如何处理是一个问题。它可以自动使日志循环,删除保存最久的日志。你可以把它放在 crontab 中,每天定期运行。这在很多 linux 发行版中都是缺省设置的。 标签:Linux日志管理日志工具 三个日志管...

weixin_34187822的博客 579

Linux系统安全基础与账户管理

本文探讨了Linux系统安全的基本概念,强调了在使用浏览器和进行软件开发时的安全风险。详细介绍了创建和管理Linux账户的各个方面,包括账户策略、结构、创建和删除普通用户账户以及处理特殊账户的策略。文章还提供了关于如何降低授予shell访问权限风险的具体步骤,以及如何通过命令行和图形界面工具添加用户的详细信息。

weixin_42509507的博客 521

控制台模拟前端请求实现快速刷网课时长

本教程仅用于学习前端技术和网页开发,旨在提供教育与技术指导。对于任何未经授权或违反规定的使用行为,本人不承担任何责任。注意到那个serive后面有timestamp时间戳,暗示它很可能就是每30秒汇报一次进度和播放时长的命令,我们右键——复制——复制为fetch。有的网站上的网课需要的不仅仅是进度,而是时长,所以倍速插件失效,但我们可以使用控制台命令来模拟请求实现快速刷网课时长。尝试修改即可,例如我修改time为800,然后复制粘贴到控制台执行。播放视频,等待前端请求出现,然后复制前端请求为fetch。

m0_74823408的博客 2066

Linux系统安全及应用(账号安全,切换,提权,系统引导,登录控制,加固,弱口令扫描,网络扫描工具)

系统安全和数据防护,数据备份的资质系统安全是计算机系统中非常重要的一个方面,它涉及到保护系统免受未经授权访问、恶意软件、数据泄露等威胁的影响。工信部是有要求的,组织必须保证处理的个人数据的安全性。

qq_51545656的博客 405

【滤波跟踪】多雷达协同下的多目标跟踪:航迹管理优化与卡尔曼滤波融合策略

本文深入探讨了多雷达协同下的多目标跟踪技术,聚焦于航迹管理优化与卡尔曼滤波融合策略两大核心。通过分析分布式融合架构、航迹关联算法(如匈牙利算法)以及应对非线性与机动目标的扩展卡尔曼滤波(EKF)与无迹卡尔曼滤波(UKF)等方法,旨在解决多源信息融合难题,提升复杂环境下目标跟踪的精度与鲁棒性。

weixin_29214199的博客 280

Linux系统安全:能够扫描和清除病毒、木马和其他恶意软件的免费防病毒工具AVG Antivirus介绍

AVG Antivirus 是一款知名的防病毒软件,主要以其在Windows平台上的广泛使用而闻名。然而,AVG 也提供了针对Linux系统的防病毒工具Anti-Virus for Linux。使用命令行工具更新病毒定义库:AVG Anti-Virus for Linux 是一款功能强大且易于使用的防病毒工具,适合企业和个人用户在Linux系统上使用。它提供了全面的病毒扫描、实时保护和集中管理功能,能够有效保护系统免受恶意软件的威胁。提供适用于Linux的免费版本,它能够扫描和清除病毒、木马和其他恶意软件。

weixin_70208651的博客 1422

MiFlash Prime免授权刷机实战:解锁小米9008 EDL救砖新方案

MiFlash Prime作为免授权刷机工具,有效解决了小米设备在9008 EDL模式下因账号验证无法救砖的难题。本文详细介绍了从驱动安装、进入EDL模式到固件刷写的完整流程,帮助用户安全快速地恢复变砖设备,是维修人员和极客的实用解决方案。

5f4d3s2a1q的博客 2874

基于Simulink的H∞鲁棒控制器设计与仿真建模示例

本文介绍了基于Simulink的H∞鲁棒控制器设计与仿真方法。针对质量-弹簧-阻尼系统存在±50%刚度不确定性的问题,详细阐述了从构建广义被控对象、设计性能加权函数,到使用hinfsyn综合控制器的完整流程。通过Simulink仿真验证,所设计的H∞控制器在参数摄动和外部扰动下均保持良好性能,位移控制误差小于2%,扰动衰减超过20dB。相比传统PID控制,H∞方法展现出显著鲁棒性优势。文章还总结了工程实践中的加权函数调参技巧、控制器降阶方法,并展望了μ-综合等扩展方向,为处理系统不确定性提供了实用解决方案。

amy_mhd的博客 70

Linux——系统安全及应用

在执行过程中,分析出来的弱口令账号将即时输出,第一列为密码字串,第二列的括号内为相应的用户名(如用户 zhangsan 的密码为“123456”)。John the Ripper 是一款开源的密码破解工具,能够在已知密文的情况下快速分析出明文的密码字串,支持 DES、MD5 等多种加密算法,而且允许使用密码字典(包含各种密码组合的列表文件)来进行暴力破解。只要获得用户的命令历史文件,该用户的命令操作过程将会一览无余,如果曾经在命令行输入明文的密码,则无意之中服务器的安全壁垒又多了一个缺口。

Lemon__ing的博客 1687

交通仿真软件:SUMO_(1).SUMO基础知识

SUMO 中的交通网络由节点(junctions)和边(edges)组成。节点表示交叉口或路网的连接点,边表示连接节点之间的道路。节点:节点文件(.nod.xml)定义了网络中的所有节点。每个节点有一个唯一的 ID 和坐标。</边:边文件(.edg.xml)定义了连接节点的边。每个边有一个唯一的 ID、起点节点 ID 和终点节点 ID。</车辆文件(.vtype.xml)定义了不同类型的车辆。每个车辆类型可以有不同的参数,例如长度、最大速度、加速度等。</

kkchenjj的博客 1432

Linux系统安全及应用

为了确保系统安全,这些用户账号的登录 Shell 通常是/sbin/nologin,表示禁止终端登录,应确保不被人为改动。各种非登录用户账号中,还有相当一部分是很少用到的,如 games。这些用户账号可以视为冗余账号,直接删除即可。除此之外,还有一些随应用程序安装的用户账号,若卸载程序以后未能自动删除,则需要管理员手动进行清理。对于 Linux 服务器中长期不用的用户账号,若无法确定是否应该删除,可以暂时将其锁 定。如果服务器中的用户账号已经固定,不再进行更改,还可以采取锁定账号配置文件的方 法。

m0_73868728的博客 2528

量子化学仿真软件:VASP_(9).磁性材料计算

在量子化学仿真软件 VASP 中,磁性材料的计算是一个复杂但重要的过程。通过正确设置磁性状态、分析磁性性质、优化计算参数以及研究磁性相变和磁动力学,可以更准确地描述和预测磁性材料的性能。希望本节的内容能够为研究磁性材料的科研人员提供有用的参考和指导。

kkchenjj的博客 1375

Video Diffusion Models:基于扩散模型的视频生成

Diffusion Models专栏文章汇总:入门与实战 前言:扩散模型已经被广泛运用到图像生成、image-to-image转换、时间序列生成、3D点云生成、文本生成、音频生成等领域,谷歌研究院最新的研究成果成功将diffusion models运用到视频生成领域。 目录 模型结构 分解时空体系联合训练 梯度条件法 恐怖的实验结果 论文和代码 个人启发 个人疑问? 模型结构 在前面的博文中,我详细介绍了为什么绝大部分的diffusion models都使用Unet结构.

沉迷单车的追风少年 6671

linux 系统安全及应用

系统安全是我们日常生活和工作中不可或缺的一部分主要探讨系统安全及应用,涵盖了账号安全控制、系统引导和登录控制、弱口令检测以及端口扫描等多个方面了解到如何有效地保护系统安全,减少安全风险,为构建安全、可靠的网络环境提供有力保障。同时,我们还可以通过这些安全措施,提高系统的稳定性和可用性,保障用户数据的安全性和完整性。

2501_91344113的博客 1303

基于巴法云物联网云平台构建可视化控制网页(以控制LED为例)

本文基于巴法云物联网云平台构建可视化控制网页,实现了对LED的控制。

kevin1499的博客 4519

系统安全及应用

随着信息技术的快速发展,系统安全成为我们日常生活和工作中不可或缺的一部分。本章节主要探讨系统安全及应用,涵盖了账号安全控制、系统引导和登录控制、弱口令检测以及端口扫描等多个方面,为我们提供了一系列实用的安金措施和策略。

kgc302的博客 1410

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

上一篇: 系统管理员如何防范黑客攻击?
下一篇: 如何使ctrl-alt-del失效
lonelycloud
博客等级 码龄23年 1粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值