Linux常用服务认识

目录

SHH服务

1.介绍

2.认识ssh服务

3.SSH服务常用的命令 -ssh

4.SSH服务常用的命令 -scp

5.SSH服务免密登陆:

crond服务

1.初步介绍:

2.crond服务配置文件详解

 3.crond服务使用:

4.crond服务命令举例:

NFS服务

1.初步介绍:

2.NFS服务工作原理

3.配置NFS服务:与客户机共享目录

LInux静态路由及临时IP配置 

1.Linux 静态路由相关命令

2.Linux 临时IP地址添加与删除


SHH服务

1.介绍

1、SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程 复制等功能;2、SSH 协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令;

3、SSH 为建立在应用层和传输层基础上的安全协议。对数据进行压缩,加快传输速度。

4、和ssh一样的通信协议还有telnet(端口号23),和ssh不一样的是ssh是密文传输数据,而telnet则是明文传输,所以相对而言ssh的安全性更高一点

5、SSH服务优点:对通信数据进行加密处理,包括登录名称和登陆的密码,所以安全性很高

2.认识ssh服务

1、ssh服务配置文件路经:/etc/ssh/sshd_config

标题

2、查看SSH服务的运行状态:

3.SSH服务配置文件详解

 # semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
 #
 #Port 22           <--设置端口号,默认是22
 #AddressFamily any
 #ListenAddress 0.0.0.0     <--- 设这监听地址,默认是0.0.0.0代表什么都可以连接
 #ListenAddress ::
 ​
 HostKey /etc/ssh/ssh_host_rsa_key
 #HostKey /etc/ssh/ssh_host_dsa_key
 HostKey /etc/ssh/ssh_host_ecdsa_key
 HostKey /etc/ssh/ssh_host_ed25519_key
 ​
 # Ciphers and keying
 #RekeyLimit default none
 ​
 # Logging
 #SyslogFacility AUTH
 SyslogFacility AUTHPRIV
 #LogLevel INFO
 ​
 # Authentication:
 ​
 #LoginGraceTime 2m     <---设置验证登录时间,默认两分钟
 #PermitRootLogin yes     <--默认root可以直接登录
 #StrictModes yes
 #MaxAuthTries 7         <----设置登录重试的次数
 #MaxSessions 10         <----设置最多能够开启会话的个数
 ​
 #PubkeyAuthentication yes
 ​
 # The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
 # but this is overridden so installations will only check .ssh/authorized_keys
 AuthorizedKeysFile      .ssh/authorized_keys
 ​
 #AuthorizedPrincipalsFile none
 ​
 #AuthorizedKeysCommand none
 #AuthorizedKeysCommandUser nobody
 # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
 #HostbasedAuthentication no
 # Change to yes if you don't trust ~/.ssh/known_hosts for
 # HostbasedAuthentication
 #IgnoreUserKnownHosts no
 # Don't read the user's ~/.rhosts and ~/.shosts files
 #IgnoreRhosts yes
 ​
 # To disable tunneled clear text passwords, change to no here!
 #PasswordAuthentication yes
 #PermitEmptyPasswords no   <---默认禁止无密码用户登录
 PasswordAuthentication yes
 ​
 # Change to no to disable s/key passwords
 #ChallengeResponseAuthentication yes
 ChallengeResponseAuthentication no
 ​
 # Kerberos options
 #KerberosAuthentication no
 #KerberosOrLocalPasswd yes
 #KerberosTicketCleanup yes
 #KerberosGetAFSToken no
 #KerberosUseKuserok yes
 ​
 # GSSAPI options
 GSSAPIAuthentication yes
 GSSAPICleanupCredentials no
 #GSSAPIStrictAcceptorCheck yes
 #GSSAPIKeyExchange no
 #GSSAPIEnablek5users no
 ​
 # Set this to 'yes' to enable PAM authentication, account processing,
 # and session processing. If this is enabled, PAM authentication will
 # be allowed through the ChallengeResponseAuthentication and
 # PasswordAuthentication.  Depending on your PAM configuration,
 # PAM authentication via ChallengeResponseAuthentication may bypass
 # the setting of "PermitRootLogin without-password".
 # If you just want the PAM account and session checks to run without
 # PAM authentication, then enable this but set PasswordAuthentication
 # and ChallengeResponseAuthentication to 'no'.
 # WARNING: 'UsePAM no' is not supported in Red Hat Enterprise Linux and may cause several
 # problems.
 UsePAM yes        <--- 开启PAM认证
 ​
 #AllowAgentForwarding yes
 #AllowTcpForwarding yes
 #GatewayPorts no
 X11Forwarding yes
 #X11DisplayOffset 10
 #X11UseLocalhost yes
 #PermitTTY yes
 #PrintMotd yes
 #PrintLastLog yes
 #TCPKeepAlive yes
 #UseLogin no
 #UsePrivilegeSeparation sandbox
 #PermitUserEnvironment no
 #Compression delayed
 #ClientAliveInterval 0
 #ClientAliveCountMax 3
 #ShowPatchLevel no
 #UseDNS yes     <---允许DNS反向解析
 #PidFile /var/run/sshd.pid
 #MaxStartups 10:30:100
 #PermitTunnel no
 #ChrootDirectory none
 #VersionAddendum none
 ​
 # no default banner path
 #Banner none
 ​
 # Accept locale-related environment variables
 AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
 AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
 AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
 AcceptEnv XMODIFIERS
 ​
 # override default of no subsystems
 Subsystem       sftp    /usr/libexec/openssh/sftp-server
 ​
 # Example of overriding settings on a per-user basis
 #Match User anoncvs
 #       X11Forwarding no
 #       AllowTcpForwarding no
 #       PermitTTY no
 #       ForceCommand cvs server
 

SSH服务配置文件常用配置项,如下:

#Port                     22                           #登陆端口

#LoginGraceTime 2m                 #登录验证时间为两分钟

#PermitRootLogin yes                 #允许root用户登录(安全考虑,这里可以设置为no,禁止root用户登录)

#MaxAuthTries 6                          #最大重试的次数为6

PasswordAuthentication yes                 #允许空密码用户登录

UseDNS no                                 #禁止DNS反向解析,提高服务器的响应速度

还有一些常用选项的说明:

-Port: 这个选项定义SSH服务器监听的端口号。默认端口是22。您可以更改端口以增加安全性,以避免暴露SSH服务于互联网的常用端口。例如,您可以将端口更改为2222。

-ListenAddress:指定SSH服务监听的IP地址。默认是所有可用的IP地址(即0.0.0.0)。可以指定特定的IP地址,比如本地回环地址127.0.0.1或某个特定的网络接口地址。这在需要限制谁可以访问SSH服务时非常有用。

-HostKey:SSH服务使用的主机密钥文件的路径。通常,在安装SSH服务时,会在/etc/ssh目录下生成三个主机密钥文件:/etc/ssh/ssh_host_rsa_key、/etc/ssh/ssh_host_dsa_key和/etc/ssh/ssh_host_ecdsa_key。如果需要自己生成主机密钥,则可以使用ssh-keygen命令。

- PermitRootLogin:指定是否允许以root用户身份登录SSH服务。默认是yes。为了安全,建议将其修改为no,并创建一个非特权用户进行登录和管理。

- PubkeyAuthentication:指定是否允许使用公钥进行身份验证。默认是yes。为了安全,建议只使用公钥身份验证方式进行登录。

-AuthorizedKeysFile:指定含有公钥的文件的路径。默认是~/.ssh/authorized_keys。如果将此文件放到其他地方,则需要修改此选项的值。

-PermitEmptyPassword:指定是否允许空密码登录。默认是no。建议设置为no,以防止未经授权的登录。

-ChallengeResponseAuthentication:指定是否启用挑战-响应身份验证。默认是no。如果需要使用两因素身份验证(如基于Google Authenticator的身份验证),则需要将其设置为yes。

-UsePAM:指定是否在登录时使用PAM进行身份验证。默认是yes。建议不要禁用此选项,以便使用系统中其他PAM模块来增强安全性。

-X11Forwarding:指定是否启用X11转发。默认是no。在需要在SSH会话中运行图形界面应用程序时,需要将其设置为yes。

-MaxAuthTries:指定登录尝试次数上限。默认是6。为了避免暴力攻击,建议将其调低。

-AllowUsers和DenyUsers:分别用于指定允许登录的用户和禁止登录的用户。可以使用通配符进行匹配。

-LogLevel:指定日志记录的级别。默认是INFO。可以设置为DEBUG、VERBOSE、SILENT等级别。

3.SSH服务常用的命令 -ssh

1、systemctl status/stop/start/restart sshd.service # SSH服务器 启动/关闭/重启

2、ssh [远程主机用户名]@[远程服务器主机名或IP地址] [-p port] # SSH使用语法

3、如果没有指定-p参数,则默认ssh端口为22,22端口是高危端口

4.SSH服务常用的命令 -scp

利用ssh协议传输文件和获取文件:

1、scp root@xxxx:/etc/passwd /root/passwd10.txt #下行复制,将远程主机中的etc/passwd文件复制到本机

2、scp -r /etc/ssh root@xxxx:/opt #上行复制,将本机的etc/ssh复制到远程主机,因为是复制目录所以要-r

SCP(Secure Copy)是SSH协议的一部分,用于在本地和远程计算机之间安全地复制文件和目录。下面是一些常用的SCP命令示例:

  1. 从远程服务器下载文件到本地:

     scp username@remote_host:/path/to/file /local/path

    将远程服务器上的文件复制到本地计算机指定的路径。

  2. 将本地文件上传到远程服务器:

     scp /local/file username@remote_host:/path/to/destination

    将本地计算机上的文件复制到远程服务器的指定路径。

  3. 复制整个目录:

     scp -r /local/directory username@remote_host:/path/to/destination

    这将递归地复制本地目录及其所有子目录和文件到远程服务器。

  4. 指定端口:

     scp -P port /local/file username@remote_host:/path/to/destination

    如果SSH服务器监听非标准端口(默认为22),您可以使用此选项指定使用的端口号。

  5. 从远程服务器下载文件到本地,并保留文件的时间戳和权限:

     scp -p username@remote_host:/path/to/file /local/path

    使用-p选项将会保留复制文件的原始时间戳和权限。

这些是使用SCP命令进行常见文件复制操作的示例。请记住,您需要替换实际的用户名、主机名或路径来适应您的环境

使用方式:

scp [参数] [原路径] [目标路径]

常用可选参数:

-B 使用批处理模式(传输过程中不询问传输口令或短语)

-C 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)

-p 保留原文件的修改时间,访问时间和访问权限。

-r 递归复制整个目录。

-P port 注意是大写的P, port是指定数据传输用到的端口号 路径规则:

user@IP:dirname

user:登录用户名

IP:登录服务器地址

dirname:文件路径

例如: root@123.123.123.123:/etc/share/test.js 表示123.123.123.123服务器上,root用户/etc/share/下的test.js文件

注意:

  1. 执行scp命令之后,会要求输入user的登录密码,(如果两台机器之前已部署ssh身份验证,则不需要);

  2. 如果是从服务器获取文件,则目标路径直接填写本地存放路径即可。

  3. 如果是上传文件到服务器,则原路径填写本地文件路径即可。

例子:

例1:从远程服务器复制文件到本地目录:

例2:传输本机文件到远程机器指定目录

5.SSH服务免密登陆:

免密登陆原理:

基于公钥加密技术实现。在Linux中每一个用户都有一对公钥和私钥,公钥可以自由传输给其他主机,私钥则需要妥善保管。公钥:id_rsa.pub私钥:id_rsa

1.执行命令ssh-keygen -t rsa,生成公钥和私钥

2.会在当前用户的家目录的.ssh/生成公钥和私钥

3.执行ssh-copy-id -i 将公钥文件传输给远程的主机,输入远程主机对应的密码。命令如下: ssh-copy-id -i /root/.ssh/id_rsa.pub root@xxxx

4.此时在执行登录远程主机 ssh root@xxxx,不会再输入密码:

所以就是接受公钥的主机,从发出公钥的主机的机子,登会接受的机子不需要密码。

crond服务

1.初步介绍:

1、crond是Linux中一个可以定时进行任务调度的后台程序。

2、任务调度是指系统在某个时间执行的特定的命令或程序。

3、任务调度分类:

        >系统工作--有些重要的工作必须周而复始地执行。如病毒扫面等。

       > 个别用户工作--个别用户可能希望执行某些程序。编写脚本shell来使crond进行定时调用比如mysql数据库的备份;使crond定时调用简单任务,比如一条指令。

systemctl status crond.service  #查看crond服务的状态

2.crond服务配置文件详解

1、crond服务配置文件路径:/etc/crontab

1.minute:表示分钟,可以是从0到59之间的任何整数。

2.hour:表示小时,可以是从0到23之间的任何整数。

3.day:表示日期,可以是从1到31之间的任何整数。

4.month:表示月份,可以是从1到12之间的任何整数。

5.week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。

6.command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。

 3.crond服务使用:

crontab 命令使用详解:

         -e:执行文字编辑器来设定时程表,内定的文字编辑器是 VI,重启服务器则失效。

        -l:列出目前的时程表。

        -r:删除目前的时程表。

        -i:在删除用户的crontab文件时给确认提示。

基本格式:

 * * * * * cmd

分 时 日 月 周 需要执行的命令

代表意义

分钟

小时

日期

月份

命令

数字范围

0~59

0~23

1~31

1~12

0~7

需要执行的命令

 周 -- 0或7都代表"星期天"的意思。

特殊字符代表含义
*

星号代表任何时刻,就是“每”的意识。取值范围所有数字

举例: 00 01 * * * cmd 表示每天的01点执行命令

,

逗号代表分割时段。

举例: 30 09,10 * * * cmd 表示每天的9点30分和10点分执行命令

-

减号代表一个时间范围段。

举例: 20 09-12 * * * cmd 表示每天的9点到12点的20分(9点20|10点20|11点20|12点20)执行命令

/n

n代表数字范围内的数字,即每隔n单位间隔的意识,例如每隔15分钟:*/15 * * * * cmd

举例: 15 */3 * * * cmd 表示每隔3小时的15分钟执行命令


 

4.crond服务命令举例:

1.每两个小时重启一次apache

0 */2 * * * /sbin/service httpd restart

2.每天7:50开启ssh服务

50 7 * * * /sbin/service sshd start

3.每天22:50关闭ssh服务

50 22 * * * /sbin/service sshd stop

4.每月1号和15号检查/home 磁盘

0 0 1-15 * * fsck /home

0 0 1,15 * * fsck /home

5.每小时的第一分执行 /home/bruce/backup这个文件

1 * * * * /home/bruce/backup

6.每周一至周五3点钟,在目录/home中,查找文件名为*.xxx的文件,并删除4天前的文件。

00 03 * * 1-5 find /home "*.xxx" -mtime +4 -exec rm {} \;

7.意思是每月的1、11、21、31日是的6:30执行一次ls命令

30 6 */10 * * ls
 

NFS服务

1.初步介绍:

NFS(Network File System)即网络文件系统。

         >它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。

        >最早由sun公司开发,是类unix系统间实现磁盘共享的一种方法。

缺点:

        >客户端的数据都是通过明文传送。客户端没有用户认证机制,安全性能一般,所以建议一般在局域网内使用。

        >容易发生单点故障,即server服务器宕机所有的客户端都不能访问(产生的后果:在linux中执行df -h命令会直接hung住)

使用场景:

        > web集群中NFS服务器主要用于存储用户上传的信息,方便集群中机器获取用户数据。如图片 附件 头像 视频 音频,就比如oracle数据泵需要有一个本地存放备份文件的空间,这种情况下就需要个较大的存储空间,这时候就会用到nfs

NAS服务、SAN、NFS(共享目录)、isci(共享硬盘)

2.NFS服务工作原理

NFS服务依赖于RPC(Remote Procedure Call)服务。nfs默认端口2049,实际使用过程中因为需要提供不同的服务,因此NFS启动时还会随机调用系统的空闲端口。因为NFS随机端口的原因所以需要RPC服务来和client端确认传输端口等。因为NFS服务启动时需要向RPC注册端口信息,所以RPC要在NFS服务启动之前启动。 在NFS server上创建用于共享的目录/data,client用mount将/data挂载到自己本地一个目录上,挂载目录可以和/data名称不同。将挂载信息写入本机开机启动文件里 如 /etc/rc.local 客户端无需启动NFS服务,但需要启动RPC服务。

3.配置NFS服务:与客户机共享目录

一.在主机配置文件内容:

1.安装 nfs-utils、rpcbind 软件包

yum -y install nfs-utils rpcbind

2.创建共享目录,并赋予权限

mkdir /share

chmod 777 /share

3.在vim /etc/exports中配置(xxxx为端口号)

/share 192.168.231.148/24(rw,sync,no_root_squash)

客户机地址可以是主机名、IP 地址、网段地址,允许使用“*”、 “?”通配符。 “rw” 表示允许读写,“ro” 表示为只读。 sync :表示同步写入到内存与硬盘中。 no_root_squash : 表示当客户机以root身份访问时赋予本地root权限(默认是root_squash)。 root_squash :表示客户机用root用户访问该共享目录时,将root用户映射成匿名用户。

其它常用选项

all_squash :所有访问用户都映射为匿名用户或用户组。 async :将数据先保存在内存缓冲区中,必要时才写入磁盘。 subtree_check(默认):若输出目录是一个子目录,则nfs服务器将检查其父目录的权限。 no_subtree_check :即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率。 NFS 服务程序


4.手动加载NFS共享服务时,应该先启动rpcbind,再启动nfs 

systemctl start rpcbind
systemctl start nfs
systemctl enable rpcbind
systemctl enable nfs

5.查看本机发布的 NFS 共享目录

exportfs -rv

showmount -e

 

二、在客户机中访问NFS共享资源

yum -y install nfs-utils rpcbind

systemctl start rpcbind

systemctl enable rpcbind

 

2.查看 NFS 服务器端共享了哪些目录,并挂载

showmount -e xxxx (xxxx为主机端口号)

mkdir /share1 #客户端创建挂载目录

mount xxxx:/share /share1 挂载目录

df -h #确认挂载结果

3.设置自动挂载

vim /etc/fstab

xxxx:/share /share1 nfs defaults,_netdev 0 0 #(xxxx为端口号)

_netdev :表示挂载设备需要网络

注意:强制卸载 NFS 如果服务器端NFS服务突然间停掉了,而客户端正在挂载使用时,在客户端就会出现执行 df -h 命令卡死的现象。这个时候直接使用umount 命令是无法直接卸载的,需要加上 -lf 选项才能卸载。 umount -lf /share1

LInux静态路由及临时IP配置 

1.Linux 静态路由相关命令

1、查看当前路由表:route -n

2、添加静态路由:route add -net 10.10.170.0/24 gw 10.10.180.254

3、删除静态路由:route del -net 10.10.170.0/24 gw 10.10.180.254

2.Linux 临时IP地址添加与删除

1、添加临时IP:ifconfig bond0 192.168.1.11 netmask 255.255.255.0

2、删除临时IP:ip a/addr/address del/delete 192.168.1.1/24 dev eth0
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值