日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > linux >内容正文

linux

Linux系列教程(13)- 使用 ssh 服务管理远程主机

發(fā)布時(shí)間:2024/3/24 linux 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux系列教程(13)- 使用 ssh 服务管理远程主机 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

使用 ssh 服務(wù)管理遠(yuǎn)程主機(jī)

配置 sshd 服務(wù)

SSH(Secure Shell)是一種能夠以安全的方式提供遠(yuǎn)程登錄的協(xié)議,也是目前遠(yuǎn)程管理
Linux 系統(tǒng)的首選方式。在此之前,一般使用 FTP 或 Telnet 來(lái)進(jìn)行遠(yuǎn)程登錄。但是因?yàn)樗鼈?br /> 以明文的形式在網(wǎng)絡(luò)中傳輸賬戶密碼和數(shù)據(jù)信息,因此很不安全。

想要使用 SSH 協(xié)議來(lái)遠(yuǎn)程管理 Linux 系統(tǒng),則需要部署配置 sshd 服務(wù)程序。sshd 是基于 SSH
協(xié)議開(kāi)發(fā)的一款遠(yuǎn)程管理服務(wù)程序,不僅使用起來(lái)方便快捷,而且能夠提供兩種安全驗(yàn)證的方法:
? 基于口令的驗(yàn)證 — 用賬戶和密碼來(lái)驗(yàn)證登錄;

? 基于密鑰的驗(yàn)證 — 需要在本地生成密鑰對(duì),然后把密鑰對(duì)中的公鑰上傳至服務(wù)器,
并與服務(wù)器中的公鑰進(jìn)行比較;該方式相較來(lái)說(shuō)更安全。

配置

Port 22 默認(rèn)的 sshd 服務(wù)端口
ListenAddress 0.0.0.0 設(shè)定 sshd 服務(wù)器監(jiān)聽(tīng)的 IP 地址
Protocol 2 SSH 協(xié)議的版本號(hào)
HostKey /etc/ssh/ssh_host_key SSH 協(xié)議版本為 1 時(shí),DES 私鑰存放的位置
HostKey /etc/ssh/ssh_host_rsa_key SSH 協(xié)議版本為 2 時(shí),RSA 私鑰存放的位置
HostKey /etc/ssh/ssh_host_dsa_key SSH 協(xié)議版本為 2 時(shí),DSA 私鑰存放的位置
PermitRootLogin yes 設(shè)定是否允許 root 管理員直接登錄
StrictModes yes 當(dāng)遠(yuǎn)程用戶的私鑰改變時(shí)直接拒絕連接
MaxAuthTries 6 最大密碼嘗試次數(shù)
MaxSessions 10 最大終端數(shù)
PasswordAuthentication yes 是否允許密碼驗(yàn)證
PermitEmptyPasswords no 是否允許空密碼登錄(很不安全)

sshd 服務(wù)的配置信息保存在/etc/ssh/sshd_config 文件中。

# cat /etc/ssh/sshd_config

密碼登錄

在 RHEL 7 系統(tǒng)中,已經(jīng)默認(rèn)安裝并啟用了 sshd 服務(wù)程序。接下來(lái)使用 ssh 命令進(jìn)行遠(yuǎn)
程連接,其格式為“ssh [參數(shù)] 主機(jī) IP 地址”。要退出登錄則執(zhí)行 exit 命令。

[root@linuxprobe ~]# ssh 192.168.10.10 root@192.168.10.20's password: [root@linuxprobe ~]# exit

命令

狀態(tài) # systemctl status sshd 重啟 # systemctl restart sshd 開(kāi)機(jī)啟動(dòng) # systemctl enable sshd

公鑰密鑰登錄

可以實(shí)現(xiàn)免輸入密碼進(jìn)行登錄。

在客戶端主機(jī)中生成“密鑰對(duì)”,在.ssh目錄。

# ssh-keygen 一直回車(chē)

把客戶端主機(jī)中生成的公鑰文件傳送至遠(yuǎn)程主機(jī)。

ssh-copy-id -p port user@remotr

# ssh-copy-id 192.168.10.10 Are you sure you want to continue connecting (yes/no)? yes root@192.168.10.10's password:輸入遠(yuǎn)程服務(wù)器密碼

在客戶端嘗試登錄到服務(wù)器,此時(shí)無(wú)須輸入密碼也可成功登錄。

遠(yuǎn)程傳輸命令

scp(secure copy)是一個(gè)基于 SSH 協(xié)議在網(wǎng)絡(luò)之間進(jìn)行安全傳輸?shù)拿?#xff0c;其格式為“scp
[參數(shù)] 本地文件 遠(yuǎn)程帳戶@遠(yuǎn)程 IP 地址:遠(yuǎn)程目錄”。

由于 scp 命令是基于 SSH 協(xié)議進(jìn)行文件傳送的,上節(jié)又設(shè)置好了密鑰驗(yàn)證,因
此當(dāng)前在傳輸文件時(shí),并不需要賬戶和密碼。

[root@linuxprobe ~]# echo "Welcome to LinuxProbe.Com" > readme.txt [root@linuxprobe ~]# scp /root/readme.txt 192.168.10.20:/home 輸入遠(yuǎn)程root管理員密碼

此外,還可以使用 scp 命令把遠(yuǎn)程主機(jī)上的文件下載到本地主機(jī),其命令格式為“scp [參
數(shù)] 遠(yuǎn)程用戶@遠(yuǎn)程 IP 地址:遠(yuǎn)程文件 本地目錄”。例如,可以把遠(yuǎn)程主機(jī)的系統(tǒng)版本信息文
件下載過(guò)來(lái),這樣就無(wú)須先登錄遠(yuǎn)程主機(jī),再進(jìn)行文件傳送了,也就省去了很多周折。

[root@linuxprobe ~]# scp 192.168.10.20:/etc/redhat-release /root root@192.168.10.20's password: root redhat-release 100% 52 0.1KB/s 00:00 [root@linuxprobe ~]# cat redhat-release

遠(yuǎn)程登錄客戶端

Linux 系統(tǒng)中是通過(guò) ssh 服務(wù)實(shí)現(xiàn)的遠(yuǎn)程登錄功能,默認(rèn) ssh 服務(wù)端口號(hào)為 22。

Window 系統(tǒng)上 Linux 遠(yuǎn)程登錄客戶端有Xshell ,SecureCRT, Putty, SSH Secure Shell 等

xshell上使用公鑰登陸Linux服務(wù)器

1.設(shè)置連接

設(shè)置協(xié)議=SSH、IP、端口

2.設(shè)置用戶身份驗(yàn)證

方法=public key 用戶名=root

3.生成公鑰

點(diǎn)擊瀏覽生成,一直下一步,輸入密碼123456

最后保存成文件如:id_rsa_2048.pub,然后填寫(xiě)生成公鑰過(guò)程中輸入的密碼 ,文件內(nèi)容如下

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAn6gjMhvBsm5lghzmWNlQlrL0DByMtslErHbzrmp4l8qCdOgRMhJH8zI3IoBPqnFv+9Vf5+qGlMdG+DfW17HEiz8tnqvhjdjviGK0ZVBANNIjVaTst5GsMVfOdR9pBdudMQa6bffV6wV7UiJ0XLQYD3GSEjBDH+ZTt7cU/zTV5ph8n4evaK301IwGcBU90pQmoMSmkYqu+wnkS8OApyX9OEsoTe4H7l8EImVdzw5nCrnSKBgPMd1JGqo1wpBrK+3ZwdDhc/Q/TNX1TpNd/nbB2JJGdOzBdugVZyW/8hoVAaWt6uVRStq4jWoSRUagmuA1Anrs2lPyIQVEmX/GxUZ9GQ==

4.上傳公鑰文件到linux服務(wù)器的~/.ssh/目錄

5.執(zhí)行命令cat id_rsa_2048.pub >> authorized_keys,如果沒(méi)有authorized_keys,則自己創(chuàng)建一個(gè)

6.修改權(quán)限chmod 600 authorized_keys

7.打開(kāi)之前設(shè)置的連接就可以使用公鑰連上服務(wù)器了

sftp 服務(wù)程序

sftp采用的是ssh加密隧道,安全性方面比f(wàn)tp強(qiáng),而且依賴的是系統(tǒng)自帶的ssh服務(wù),不像ftp還需要額外的進(jìn)行安裝,默認(rèn)已經(jīng)安裝,可以

# ssh -V # sftp 127.0.0.1 Connected to 127.0.0.1. sftp> ls

眾所周知sftp賬號(hào)是基于ssh賬號(hào)的,所以在默認(rèn)情況下訪問(wèn)服務(wù)器的權(quán)限是非常大的,進(jìn)行sftp用戶權(quán)限設(shè)置

你的openssh-server版本至少得失4.8p1。

1、創(chuàng)建sftp用戶組

groupadd sftp

2、創(chuàng)建ftp用戶

useradd -g sftp -s /sbin/nologin -M sftpuser passwd sftpuser

3、創(chuàng)建家目錄并指定權(quán)限

注釋:給家目錄更改屬主并授權(quán)家目錄屬主必須是root,權(quán)限可以是755或者750

mkdir -p /opt/data usermod -d /opt/data sftpuserchown root:root /opt/data chmod 755 /opt/data

4、創(chuàng)建可寫(xiě)目錄

mkdir /opt/data/file -p chown sftpuser:sftp /opt/data/file

5、編輯配置文件/etc/ssh/sshd_config

注釋掉X11Forwarding yes 這句話,大概在101行 注釋掉Subsystem sftp /usr/libexec/openssh/sftp-server 這句話,大概在132行并在文件末尾添加如下語(yǔ)句: Subsystem sftp internal-sftp Match User sftpuser ChrootDirectory /opt/data ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no# systemctl restart sshd

6、驗(yàn)證

# sftp sftpuser@127.0.0.1

注釋:文件只能刪除至/opt/data/file目錄下,可以上傳和刪除。默認(rèn)端口22

使用 vsftpd 服務(wù)傳輸文件

文件傳輸協(xié)議

今天的互聯(lián)網(wǎng)是由幾千萬(wàn)臺(tái)個(gè)人計(jì)算機(jī)、工作站、服務(wù)器、小型機(jī)、大型
機(jī)、巨型機(jī)等具有不同型號(hào)、不同架構(gòu)的物理設(shè)備共同組成的,而且即便是個(gè)人計(jì)算機(jī),也
可能會(huì)裝有 Windows、Linux、UNIX、Mac 等不同的操作系統(tǒng)。為了能夠在如此復(fù)雜多樣的
設(shè)備之間解決問(wèn)題解決文件傳輸問(wèn)題,文件傳輸協(xié)議(FTP)應(yīng)運(yùn)而生。

FTP 是一種在互聯(lián)網(wǎng)中進(jìn)行文件傳輸?shù)膮f(xié)議,基于客戶端/服務(wù)器模式,默認(rèn)使用 20、21
號(hào)端口,其中端口 20(數(shù)據(jù)端口)用于進(jìn)行數(shù)據(jù)傳輸,端口 21(命令端口)用于接受客戶端
發(fā)出的相關(guān) FTP 命令與參數(shù)。

FTP 協(xié)議有下面兩種工作模式。
? 主動(dòng)模式:FTP 服務(wù)器主動(dòng)向客戶端發(fā)起連接請(qǐng)求。
? 被動(dòng)模式:FTP 服務(wù)器等待客戶端發(fā)起連接請(qǐng)求(FTP 的默認(rèn)工作模式)。

防火墻一般是用于過(guò)濾從外網(wǎng)進(jìn)入內(nèi)網(wǎng)的流量,因此有些時(shí)候需要將 FTP 的工作模式設(shè)置為

主動(dòng)模式,才可以傳輸數(shù)據(jù)。

vsftpd(very secure ftp daemon,非常安全的 FTP 守護(hù)進(jìn)程)是一款運(yùn)行在 Linux 操作系
統(tǒng)上的 FTP 服務(wù)程序,不僅完全開(kāi)源而且免費(fèi),此外,還具有很高的安全性、傳輸速度,以
及支持虛擬用戶驗(yàn)證等其他 FTP 服務(wù)程序不具備的特點(diǎn)。

# yum install vsftpd

vsftpd 服務(wù)程序的主配置文件(/etc/vsftpd/vsftpd.conf)

[root@linuxprobe ~]# mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf_bak [root@linuxprobe ~]# grep -v "#" /etc/vsftpd/vsftpd.conf_bak > /etc/vsftpd/vsftpd.conf [root@linuxprobe ~]# cat /etc/vsftpd/vsftpd.confdirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES listen=YES listen_ipv6=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES

配置參數(shù)說(shuō)明:

listen=[YES|NO] 是否以獨(dú)立運(yùn)行的方式監(jiān)聽(tīng)服務(wù) listen_address=IP 地址 設(shè)置要監(jiān)聽(tīng)的 IP 地址 listen_port=21 設(shè)置 FTP 服務(wù)的監(jiān)聽(tīng)端口 download_enable=[YES|NO] 是否允許下載文件 userlist_enable=[YES|NO] userlist_deny=[YES|NO] 設(shè)置用戶列表為“允許”還是“禁止”操作 max_clients=0 最大客戶端連接數(shù),0 為不限制 max_per_ip=0 同一 IP 地址的最大連接數(shù),0 為不限制 anonymous_enable=[YES|NO] 是否允許匿名用戶訪問(wèn) anon_upload_enable=[YES|NO] 是否允許匿名用戶上傳文件 anon_umask=022 匿名用戶上傳文件的 umask 值 anon_root=/var/ftp 匿名用戶的 FTP 根目錄 anon_mkdir_write_enable=[YES|NO] 是否允許匿名用戶創(chuàng)建目錄 anon_other_write_enable=[YES|NO] 是否開(kāi)放匿名用戶的其他寫(xiě)入權(quán)限(包括重命名、刪 除等操作權(quán)限) anon_max_rate=0 匿名用戶的最大傳輸速率(字節(jié)/秒),0 為不限制 local_enable=[YES|NO] 是否允許本地用戶登錄 FTP local_umask=022 本地用戶上傳文件的 umask 值 local_root=/var/ftp 本地用戶的 FTP 根目錄 chroot_local_user=[YES|NO] 是否將用戶權(quán)限禁錮在 FTP 目錄,以確保安全 local_max_rate=0 本地用戶最大傳輸速率(字節(jié)/秒),0 為不限制

vsftpd 服務(wù)程序

vsftpd 作為更加安全的文件傳輸?shù)姆?wù)程序,允許用戶以三種認(rèn)證模式登錄到 FTP 服務(wù)
器上。
? 匿名開(kāi)發(fā)模式 :是一種最不安全的認(rèn)證模式,任何人都可以無(wú)需密碼驗(yàn)證而直接登錄
到 FTP 服務(wù)器。
?本地用戶模式 :是通過(guò) Linux 系統(tǒng)本地的賬戶密碼信息進(jìn)行認(rèn)證的模式,相較于匿名
開(kāi)放模式更安全,而且配置起來(lái)也很簡(jiǎn)單。但是如果被黑客破解了賬戶的信息,就可
以暢通無(wú)阻地登錄 FTP 服務(wù)器,從而完全控制整臺(tái)服務(wù)器。
? 虛擬用戶模式:是這三種模式中最安全的一種認(rèn)證模式,它需要為 FTP 服務(wù)單獨(dú)
建立用戶數(shù)據(jù)庫(kù)文件,虛擬出用來(lái)進(jìn)行口令驗(yàn)證的賬戶信息,而這些賬戶信息在
服務(wù)器系統(tǒng)中實(shí)際上是不存在的,僅供 FTP 服務(wù)程序進(jìn)行認(rèn)證使用。這樣,即使
黑客破解了賬戶信息也無(wú)法登錄服務(wù)器,從而有效降低了破壞范圍和影響。
ftp 是 Linux 系統(tǒng)中以命令行界面的方式來(lái)管理 FTP 傳輸服務(wù)的客戶端工具。

# yum install vsftpd # systemctl restart vsftpd.service # 重啟服務(wù) # systemctl start vsftpd.service # 啟動(dòng)服務(wù) # systemctl status vsftpd.service # 服務(wù)狀態(tài)查看

匿名開(kāi)放模式

無(wú)需密碼驗(yàn)證而直接登錄到 FTP 服務(wù)器。這種模式一般用來(lái)訪問(wèn)不重要的公開(kāi)文件。

vsftpd 服務(wù)程序默認(rèn)開(kāi)啟了匿名開(kāi)放模式,我們需要做的就是開(kāi)放匿名用戶的上傳、下
載文件的權(quán)限,以及讓匿名用戶創(chuàng)建、刪除、更名文件的權(quán)限。添加配置

[root@linuxprobe ~]# vim /etc/vsftpd/vsftpd.conf anonymous_enable=YES anon_umask=022 anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES ...... [root@linuxprobe ~]# systemctl restart vsftpd [root@linuxprobe ~]# systemctl enable vsftpd

現(xiàn)在就可以在客戶端執(zhí)行 ftp 命令連接到遠(yuǎn)程的 FTP 服務(wù)器了。在 vsftpd 服務(wù)程序的匿
名開(kāi)放認(rèn)證模式下,其賬戶統(tǒng)一為 anonymous,密碼為空。而且在連接到 FTP 服務(wù)器后,默
認(rèn)訪問(wèn)的是/var/ftp 目錄。我們可以切換到該目錄下的 pub 目錄中,然后嘗試創(chuàng)建一個(gè)新的目
錄文件,以檢驗(yàn)是否擁有寫(xiě)入權(quán)限

[root@linuxprobe ~]# ftp 192.168.10.10 ftp> cd pub 250 Directory successfully changed. ftp> mkdir files 550 Permission denied.

下面將目錄的所有者身份改成系統(tǒng)賬戶 ftp 即可

[root@linuxprobe ~]# ls -ld /var/ftp/pub drwxr-xr-x. 3 root root 16 Jul 13 14:38 /var/ftp/pub [root@linuxprobe ~]# chown -Rf ftp /var/ftp/pub [root@linuxprobe ~]# ls -ld /var/ftp/pub drwxr-xr-x. 3 ftp root 16 Jul 13 14:38 /var/ftp/pub

本地用戶模式

相較于匿名開(kāi)放模式,本地用戶模式要更安全,而且配置起來(lái)也很簡(jiǎn)單。

anonymous_enable=NO 禁止匿名訪問(wèn)模式
local_enable=YES 允許本地用戶模式
write_enable=YES 設(shè)置可寫(xiě)權(quán)限
local_umask=022 本地用戶模式創(chuàng)建文件的 umask 值
userlist_enable=YES 啟用“禁止用戶名單”,名單文件為 ftpusers 和 user_list
userlist_deny=YES 開(kāi)啟用戶作用名單文件功能

[root@linuxprobe ~]# vim /etc/vsftpd/vsftpd.conf anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 [root@linuxprobe ~]# systemctl restart vsftpd [root@linuxprobe ~]# systemctl enable vsftpd

vsftpd 服務(wù)程序所在的目錄中默認(rèn)存放著兩個(gè)名為“用戶名單”的文件(ftpusers 和 user_list)。

在采用本地用戶模式登錄 FTP 服務(wù)器后,默認(rèn)訪問(wèn)的是該用戶的家目錄。而且該目錄的默認(rèn)所有者、所屬組都是該用戶自己,因此不存在寫(xiě)入權(quán)限不足的情況。可以采用如下屬性修改默認(rèn)更目錄。

local_root=/var/ftp 本地用戶的 FTP 根目錄

虛擬用戶模式

虛擬用戶模式是這三種模式中最安全的一種認(rèn)證模式

數(shù)據(jù)庫(kù)文件創(chuàng)建

創(chuàng)建用于進(jìn)行 FTP 認(rèn)證的用戶數(shù)據(jù)庫(kù)文件,其中奇數(shù)行為賬戶名,偶數(shù)行為密
碼。例如,我們分別創(chuàng)建出 ftpuser1和 ftpuser2兩個(gè)用戶,密碼均為 ftpuser2

# cd /etc/vsftpd/ # vi vuser.list ftpuser1 ftpuser2 ftpuser2 ftpuser2

但是,明文信息既不安全,也不符合讓 vsftpd 服務(wù)程序直接加載的格式,因此需要使
用 db_load 命令用哈希(hash)算法將原始的明文信息文件轉(zhuǎn)換成數(shù)據(jù)庫(kù)文件,并且降低
數(shù)據(jù)庫(kù)文件的權(quán)限(避免其他人看到數(shù)據(jù)庫(kù)文件的內(nèi)容),然后再把原始的明文信息文件
刪除。

# db_load -T -t hash -f vuser.list vuser.db # file vuser.db vuser.db: Berkeley DB (Hash, version 9, native byte-order) # chmod 600 vuser.db # rm -f vuser.list
建立linux用戶

創(chuàng)建 vsftpd 服務(wù)程序用于存儲(chǔ)文件的根目錄以及虛擬用戶映射的系統(tǒng)本地
用戶。FTP 服務(wù)用于存儲(chǔ)文件的根目錄指的是,當(dāng)虛擬用戶登錄后所訪問(wèn)的默認(rèn)位置。

由于 Linux 系統(tǒng)中的每一個(gè)文件都有所有者、所屬組屬性,例如使用虛擬賬戶“張三”
新建了一個(gè)文件,但是系統(tǒng)中找不到賬戶“張三”,就會(huì)導(dǎo)致這個(gè)文件的權(quán)限出現(xiàn)錯(cuò)誤。為此,
需要再創(chuàng)建一個(gè)可以映射到虛擬用戶的系統(tǒng)本地用戶。簡(jiǎn)單來(lái)說(shuō),就是讓虛擬用戶默認(rèn)登錄
到與之有映射關(guān)系的這個(gè)系統(tǒng)本地用戶的家目錄中,虛擬用戶創(chuàng)建的文件的屬性也都?xì)w屬于
這個(gè)系統(tǒng)本地用戶,從而避免 Linux 系統(tǒng)無(wú)法處理虛擬用戶所創(chuàng)建文件的屬性權(quán)限。

為了方便管理 FTP 服務(wù)器上的數(shù)據(jù),可以把這個(gè)系統(tǒng)本地用戶的家目錄設(shè)置為/var 目錄
(該目錄用來(lái)存放經(jīng)常發(fā)生改變的數(shù)據(jù))。并且為了安全起見(jiàn),我們將這個(gè)系統(tǒng)本地用戶設(shè)置
為不允許登錄 FTP 服務(wù)器,這不會(huì)影響虛擬用戶登錄,而且還可以避免黑客通過(guò)這個(gè)系統(tǒng)本
地用戶進(jìn)行登錄。

# useradd -d /var/ftproot -s /sbin/nologin virtual # ls -ld /var/ftproot/ drwx------. 3 virtual virtual 74 Jul 14 17:50 /var/ftproot/ # chmod -Rf 755 /var/ftproot/
建立用于支持虛擬用戶的 PAM 文件。

PAM(可插拔認(rèn)證模塊)是一種認(rèn)證機(jī)制,通過(guò)一些動(dòng)態(tài)鏈接庫(kù)和統(tǒng)一的 API 把系統(tǒng)提
供的服務(wù)與認(rèn)證方式分開(kāi),使得系統(tǒng)管理員可以根據(jù)需求靈活調(diào)整服務(wù)程序的不同認(rèn)證方式。

通俗來(lái)講,PAM 是一組安全機(jī)制的模塊,系統(tǒng)管理員可以用來(lái)輕易地調(diào)整服務(wù)程序的認(rèn)
證方式,而不必對(duì)應(yīng)用程序進(jìn)行任何修改。PAM 采取了分層設(shè)計(jì)(應(yīng)用程序?qū)印?yīng)用接口層、
鑒別模塊層)的思想。

新建一個(gè)用于虛擬用戶認(rèn)證的 PAM 文件 vsftpd.vu,其中 PAM 文件內(nèi)的“db=”參數(shù)為
使用 db_load 命令生成的賬戶密碼數(shù)據(jù)庫(kù)文件的路徑,但不用寫(xiě)數(shù)據(jù)庫(kù)文件的后綴:

# vi /etc/pam.d/vsftpd.vu auth required pam_userdb.so db=/etc/vsftpd/vuser account required pam_userdb.so db=/etc/vsftpd/vuser
配置PAM認(rèn)證

在 vsftpd 服務(wù)程序的主配置文件中通過(guò) pam_service_name 參數(shù)將 PAM 認(rèn)證
文件的名稱(chēng)修改為 vsftpd.vu,PAM 作為應(yīng)用程序?qū)优c鑒別模塊層的連接紐帶,可以讓?xiě)?yīng)用程
序根據(jù)需求靈活地在自身插入所需的鑒別功能模塊。當(dāng)應(yīng)用程序需要 PAM 認(rèn)證時(shí),則需要在
應(yīng)用程序中定義負(fù)責(zé)認(rèn)證的 PAM 配置文件,實(shí)現(xiàn)所需的認(rèn)證功能。
例如,在 vsftpd 服務(wù)程序的主配置文件中默認(rèn)就帶有參數(shù) pam_service_name=vsftpd,表
示登錄 FTP 服務(wù)器時(shí)是根據(jù)/etc/pam.d/vsftpd 文件進(jìn)行安全認(rèn)證的。現(xiàn)在我們要做的就是把
vsftpd 主配置文件中原有的 PAM 認(rèn)證文件 vsftpd 修改為新建的 vsftpd.vu 文件即可。該操作中
用到的參數(shù)以及作用如表 11-4 所示。

anonymous_enable=NO 禁止匿名開(kāi)放模式
local_enable=YES 允許本地用戶模式

guest_enable=YES 開(kāi)啟虛擬用戶模式
guest_username=virtual 指定虛擬用戶賬戶
pam_service_name=vsftpd.vu 指定 PAM 文件
allow_writeable_chroot=YES允許對(duì)禁錮的FTP 根目錄執(zhí)行寫(xiě)入操作,而且不拒絕用戶的登錄請(qǐng)求

[root@linuxprobe ~]# vi /etc/vsftpd/vsftpd.conf anonymous_enable=NO local_enable=YES guest_enable=YES guest_username=virtual allow_writeable_chroot=YES pam_service_name=vsftpd.vu
為虛擬用戶設(shè)置不同的權(quán)限

為虛擬用戶設(shè)置不同的權(quán)限。雖然賬戶 ftpuser1和 ftpuser1 都是用于 vsftpd 服務(wù)程
序認(rèn)證的虛擬賬戶,但是我們依然想對(duì)這兩人進(jìn)行區(qū)別對(duì)待。比如,允許ftpuser1上傳、創(chuàng)建、修
改、查看、刪除文件,只允許ftpuser2查看文件。這可以通過(guò) vsftpd 服務(wù)程序來(lái)實(shí)現(xiàn)。只需新建
一個(gè)目錄,在里面分別創(chuàng)建兩個(gè)以 ftpuser1和 ftpuser2命名的文件,其中在名為 ftpuser1的文件
中寫(xiě)入允許的相關(guān)權(quán)限(使用匿名用戶的參數(shù)):

# mkdir /etc/vsftpd/vusers_dir/ # cd /etc/vsftpd/vusers_dir/ # touch ftpuser1 # vi ftpuser1 anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES

也可以分別設(shè)置需求用戶登錄后看到不同的目錄,要設(shè)置權(quán)限

# cd /etc/vsftpd/vusers_dir/ # vi ftpuser1 local_root=/var/ftproot/ftpuser1# mkdir -p /var/ftproot/ftpuser1/ # chown -R virtual:virtual /var/ftproot/ftpuser1/

然后再次修改 vsftpd 主配置文件,通過(guò)添加 user_config_dir 參數(shù)來(lái)定義這兩個(gè)虛擬用戶
不同權(quán)限的配置文件所存放的路徑。

# vi /etc/vsftpd/vsftpd.conf user_config_dir=/etc/vsftpd/vusers_dir # systemctl restart vsftpd # systemctl enable vsftpd
測(cè)試
[root@linuxprobe ~]# ftp 192.168.10.10 ftpuser1/ftpuser2 ftp> mkdir files 257 "/files" created ftp> rename files database 350 Ready for RNTO. 250 Rename successful. ftp> rmdir database 250 Remove directory operation successful. ftp> exit 221 Goodbye.

附錄:vi /etc/vsftpd/vsftpd.conf

anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_file=/var/log/xferlog xferlog_std_format=YES listen=YES pam_service_name=vsftpd.vu userlist_enable=YES tcp_wrappers=YES dual_log_enable=YES vsftpd_log_file=/var/log/vsftpd.log guest_enable=YES guest_username=virtual allow_writeable_chroot=YES user_config_dir=/etc/vsftpd/vusers_dir

總結(jié)

以上是生活随笔為你收集整理的Linux系列教程(13)- 使用 ssh 服务管理远程主机的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。