• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      解析Linux下vsFTP安全認(rèn)證

      2018-03-03 18:11:15
      網(wǎng)絡(luò)安全和信息化 2018年9期
      關(guān)鍵詞:配置文件命令賬戶

      基本的用戶安全管理功能

      vsFTP是基于PAM進(jìn)行用戶的安全認(rèn)證的,如果讓其支持虛擬用戶,就必須修改PAM配置文件。PAM本身其實(shí)是一個(gè)框架,支持的認(rèn)證機(jī)制很豐富,對應(yīng)的認(rèn)證模塊也很多,允許用戶靈活的定制所需的認(rèn)證機(jī)制。

      PAM需要依靠“/etc/pam.d”目錄下的各種配置文件,以及在“/lib/security”或“/lib64/security”目錄下的認(rèn)證模塊信息。vsFTP是安全性很高的FTP,對文件權(quán)限的檢測很嚴(yán)格。在默認(rèn)情況下,使用“/var/ftp”目錄作為FTP根目錄。該目錄只允許Root賬戶有寫權(quán)限,而對于“vsftpd”進(jìn)程來說,對應(yīng)的是“FTP”賬戶不具有寫權(quán)限。

      為了滿足文件上傳要求,只能在該目錄中創(chuàng)建子目錄,用來讓用戶上傳文件。例如在“/var/ftp/pub”目錄中存儲公開的文件。vsFTP的安裝很簡單,執(zhí)行“yum install vsftpd”命令安裝。執(zhí)行“service vsftpd start”、“chkconfig vsftpd on”命令啟動vsFTP服務(wù)。vsFTP的用戶類型包括anonyous匿名用戶、系統(tǒng)用戶和虛擬用戶三類,實(shí)際上不管哪一類,都需要映射為與之對應(yīng)的系統(tǒng)用戶。例如匿名用戶會被映射為“FTP”用戶。每個(gè)用戶都對應(yīng)各自的家目錄,例如執(zhí)行“finger ftp”命令,可以看到FTP用戶對應(yīng)的是“/var/ftp”目錄。進(jìn)入“/etc/vsftpd”目錄,執(zhí)行“vim vsftpd.conf”命令,打開vsFTP配置文件。

      在“anonymous=”和“l(fā)ocal_enable=”欄中可以設(shè)置是否開啟匿名和系統(tǒng)用戶。為保證可以執(zhí)行寫操作,需要事先 執(zhí)行“setenforce 0”命令將Selinux關(guān)閉。在“write_enable=”欄中設(shè)置是否允許利用系統(tǒng)賬戶上傳文件。在“anon_upload_enable=”欄中設(shè)置是否允許匿名用戶上傳文件。

      注意,執(zhí)行“ps aux|grep vsftpd”命令,可以看到vsFTPS進(jìn)程是以FTP用戶身份運(yùn)行。

      執(zhí)行“l(fā)s -ld /var/ftp/”命令,顯示該目錄屬主為Root賬戶。對于匿名用戶來說,雖然允許其上傳文件,但是還必須開放文件寫權(quán)限。執(zhí)行“mkdir /var/ftp/uploadfile”、“setfacl-m u:ftp:rwx /var/ftp/uploadfile/”命令,為FTP用戶創(chuàng)建名為“uploadfile”的目錄,并開放寫權(quán)限。這樣,匿名用戶就可以向該目錄上傳文件了。

      注意,對于匿名用戶來說,無法刪除文件和創(chuàng)建目錄操作,除非將“anon_mkdir_write_enable=”和“anon_other_write_enable=”的值均設(shè)置為“Yes”。

      為防止以系統(tǒng)用戶身份登錄FTP后,在系統(tǒng)中隨意切換目錄,必須禁錮在其家目錄中。需要刪除“chroot_list_enable=Yes”和“chroot_list_ file=/etc/vsftpd/chroot_list”兩行前面的“#”號激活。在“/etc/vsftpd”目錄下執(zhí)行“touch chroot_list”命令,創(chuàng)建“chroot_list”文件。執(zhí)行“vim chroot_list”命令進(jìn)行編輯,在其中添加需要禁錮的所有用戶名(例如“ftpuser”等),執(zhí)行“service vsftpd restart”命令重啟vsFTP,這樣當(dāng)使用預(yù)設(shè)的用戶登錄FTP后,就只能在其家目錄中活動。如果希望禁錮所有的用戶,可以編輯“vsftpd.conf”文件,將上述指令前面恢復(fù)“#”號禁用,之后添加“chroot_local_user=Yes”行即可。

      默認(rèn)情況下在“/etc/vsftpd”目錄下執(zhí)行“cat ftpusers”命令打開該文件,存儲在其中的所有用戶(例如 root、daemon、operator等)均禁止訪問vsFTP服務(wù)。這是因?yàn)関sFTP的用戶認(rèn)證機(jī)制受到PAM控制,執(zhí)行“cat/etc/pam.d/vsftpd”命令,打開對應(yīng)的PAM認(rèn)證文件,可以看到其中包含“auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr= succeed”行,表示對于“ftpusers”文件中的所有賬戶的敏感度為拒絕狀態(tài),自然無法正常訪問FTP服務(wù)了。在vsFTP配置文件中 的“userlist_enable=”的值為“Yes”,意味著當(dāng)在“/etc/vsftpd”目錄下打開“user_list”文件,其中的用戶也是無法訪問vsFTP的。只有將該文件中的所有用戶名清空,上述“ftpusers”文件才真正擁有控制vsFTP的用戶訪問功能。

      如果在vsFTP配置文件中添加“userlist_deny=No”行,則剛好相反,表示僅僅允許“user_list”文件中的用戶訪問vdFTP服務(wù),如果修改 為“userlist_deny=yes”行,則禁止該文件中的用戶訪問,這就實(shí)現(xiàn)了黑白名單功能。為了控制vsFTP的資源訪問機(jī)制,可以在配置文件中的“max_clients=”和“max_per_ip=”欄分別定制許可的客戶端連接數(shù)及每個(gè)客戶IP運(yùn)行連接的最大值。

      使用證書加密FTP數(shù)據(jù)傳輸

      因?yàn)镕TP協(xié)議是以明文傳輸?shù)?,因此使用抓包命令可以很容易捕獲密碼等敏感信息。

      為了保護(hù)vsFTP的數(shù)據(jù)傳輸安全,就需要進(jìn)行加密處理。vsFTP支持兩種安全通訊方式,包括FTPS和SFTP。前一種采用FTP加SSL或TLS的機(jī)制。后一種是基于SSH來實(shí)現(xiàn)安全的FTP傳輸功能。在OPenSSH中提供了名為SubSystem的子模塊,可以實(shí)現(xiàn)SFTP功能。

      要想讓vsFTP支持基于FTPS的安全通信方式,首先需要創(chuàng)建一張證書,即私有CA,讓其給vsFTP頒發(fā)一張證書,之后在vsFTP配置文件中啟用相關(guān)指令即可。

      執(zhí)行“cd /etc/pki/CA”命令,進(jìn)入目標(biāo)路徑。執(zhí)行“mkdir certs newscerts crl”,“touch index.txt”、“echo 01 > serial”、“(umask 077;openssl genrsa -out private/cakey.pem 2048>)”命令,創(chuàng)建基于RAS的長度為2048的密鑰。執(zhí)行“openssl req-new -x509 -key private/cakey.pem -out cacert.pem-days 3650”命令,創(chuàng)建自簽名證書,依次輸入國家名稱、州或省份名稱、城市名、組織名等內(nèi)容。

      執(zhí)行“mkdir /etc/vsftpd/ssl”、“cd /etc/vsftpd/ssl”、“(umask 077;openssl genrsa -out vsftpd.key 2048; )”命令,在目標(biāo)路徑下創(chuàng)建私鑰。執(zhí)行“openssl req -new -key vsftpd.key -out vsftpd.csr”命令,生成證書頒發(fā)申請文件,根據(jù)提示信息依次輸入國家名稱、州或省份名稱、城市名、組織名、組織單元名稱等信息。執(zhí)行“vim/etc/pki/tls/openssl.cnf/”命令,將該配置文件中的“dir=../../CA”修改為“dir=/etc/pki/CA”。執(zhí)行“openssl ca -in vsftpd.csr -out vsftpd.crt”命令,在提示欄中依次輸入“Y”完成證書簽署操作。

      進(jìn)入“/etc/vsftpd”目錄,執(zhí)行“vim vsftpd.conf”文件,在其中添加“ssl_enable=Yes” 行,啟動SSL加密功能。添加“ssl_tlsv1=Yes” 和“ssl_sslv3=Yes”行,使其支持TLS V1和SSL V3協(xié)議。添加“allow_anno_ssl=No”行,禁止匿名用戶使用加密傳輸。添加“force_local_data_ssl_=Yes”和“force_local_logins_ssl=Yes”行,強(qiáng)制本地用戶在登錄和傳輸數(shù)據(jù)時(shí),必須使用SSL加密協(xié)議。添加“rsa_cert_file=/etc/vsftpd/ssl/vsftpd_cert.crt”,“rsa_private_key_file=/etc/vsftpd/ssl/vsftpd_key.key”行,分別指定RSA格式的證書和密鑰文件路徑。保存該文件,并重啟vsFTP服務(wù)使上述配置生效。

      這樣,使用非匿名賬戶無法使用“FTP”命令進(jìn)行登錄,這就需要使用特定的FTP客戶端來實(shí)現(xiàn)安全傳輸。例如使用CuteFTP、FileZilla、FlashFXP等。

      使用MySQL實(shí)現(xiàn)安全認(rèn)證

      前面談到,vsFTP支持匿名、本地和虛擬用戶。對于虛擬用戶來說,最重要的是存儲用戶賬戶信息的方法。當(dāng)然,其存儲格式必須能夠被認(rèn)證功能支持。

      例如,在MySQL中創(chuàng)建名為vsFTP的數(shù)據(jù)庫,其中包含名為“nmyh”的表,在該表中包含名為“Name”和“Mima”的字段。之后將匿名用戶信息存儲在該表中,當(dāng)進(jìn)行vsFTP認(rèn)證時(shí),只要能讓其去查詢該表中的信息,如果客戶端輸入的賬戶名和密碼域該表中的對應(yīng)行匹配,即可完成認(rèn)證操作。當(dāng)然,也可以采取其他合適的用戶信息存儲方式。

      例 如,在“/etc/vsftp/目錄中創(chuàng)建名為“nmuser”的文本文件,在其中一行存儲用戶名,一行存儲對應(yīng)的密碼。這樣,可以將所有的匿名用戶信息存儲在該文件中。之后使用“db4_utils”工具中的“db_load”之類的命令,將該文件轉(zhuǎn)換為二進(jìn)制格式。使用該文件也可以實(shí)現(xiàn)vsFTP認(rèn)證功能,當(dāng)然,vsFTP的認(rèn)證其實(shí)是基于PAM來實(shí)現(xiàn)的,這樣就必須修改對應(yīng)的PAM文件才可以實(shí)現(xiàn)上述虛擬用戶認(rèn)證功能。

      這里就以使用MySQL數(shù)據(jù)庫實(shí)現(xiàn)認(rèn)證為例進(jìn)行說明,首先需要安裝MySQL數(shù)據(jù)庫和開發(fā)環(huán)境,具體操作起來并不復(fù)雜,執(zhí)行“yum-y install mysql -server mysql -devel”、“yum -y groupinstall "Development Libraries"”命令即可,這里就不再贅述。

      之后需要安裝名為“PAM_MySQL”模塊。執(zhí)行“tar zxvf pam_mysql-0.7rc1.tar.gz”、“cd pam_mysql-0.7rc1”、“./configure-with-mysql=/usrl --withopenssl”、“make”、“make install”、“cp /usr/lib/security/pam_mysql.so /lib/security/”等命令,來安裝該模塊。接下來需要手動編譯安裝vsFTP,執(zhí)行“mkdir -pv /usr/share/empty /var/ftp”、“useradd-s /bin/false -d /var/ftp ftp”、“tar xzvf vsftpd-x.x.x.tar.gz”、“cd vsftp-x.x.x”、“make”、“make install”等命令,執(zhí)行vsFTP的手動編譯安裝。執(zhí)行“cp vsftp.conf /etc”、“vim /etc/vsftpd.conf”命令,在vsFTP配置文件中添加“l(fā)isten=yes”項(xiàng),使vsFTP進(jìn)程處于獨(dú)立運(yùn)行狀態(tài)。

      執(zhí)行“/usr/local/sbin/vsftpd &”、“chmod og-w /var/ftp”命令,來啟動vsFTP服務(wù)。連接到MySQL操作環(huán)境,執(zhí)行“create database vsftp;”命令,創(chuàng)建名為“vsftp”的數(shù)據(jù)庫,執(zhí)行“grant select on vsftp.*to vsftpd@localhost identified by 'vsftpd';”、“grant select on vsftp.*to vsftpd@127.0.0.1 identified by 'vsftpd';”命令,授權(quán)給名為“vsftpd”的用戶進(jìn)行訪問,該用密碼為“vsftpd”,該賬戶可以在Linux中手動建立。執(zhí)行“use vsftp;”、“create table nmyh(id SAMLLINT AUTO_INCREMENT NOT NULL ,name CHAR(20) BINARY NOT NULL,mima CHAR(50) BINARY NOT NULL ,PRIMARY key(id))”命令,創(chuàng)建名為“nmyh”的表,其中存在名為“name”和“mima”的字段,用來存儲匿名用戶信息。

      執(zhí)行“insertinto nmyh(name,mima)values('ftpuser1','123456');”、“insert into nmyh(name,mima)values('ftpuser2','123456');”命令插入兩個(gè)用戶信息,名稱分別為“ftpuser1”和“ftpuser2”。密碼均為“123456”。執(zhí)行“select*from nmyh;”命令,來查看該表中的內(nèi)容。執(zhí)行“mysql -uvsftpd -p”命令,以“vsftpd”賬戶連接MySQL,輸入密碼后可以正常查看上述數(shù)據(jù)庫。因?yàn)樯厦嬷粸槠湓O(shè)置了Select權(quán)限。僅僅有匿名用戶信息還不夠,必須修改用來進(jìn)行PAM認(rèn)證的文件。

      執(zhí)行“vim /etc/pam.d/vsftp.mysql”命令,在該配置文件中添加“auth require /lib/security/pam_mysql.so user=vsftpd password=vsftpd usercolume=name passwordcolume=mimacrypt=0”、“account require/lib/security/pam_mysql.so user=vsftpd password=vsftpd host=localhost db=vsftp table=nmyh usercolumn=name pass wordcolumn=mima crypt=0”等行內(nèi)容。表示當(dāng)?shù)卿泇sFTP服務(wù)器時(shí)必須滿足“pam_mysql.so”模塊的檢查,即從上述MySQL數(shù)據(jù)表中匹配客戶端輸入的用戶名和密碼。在Linux提示符下執(zhí)行“useradd -s /sbin/nologin -d /var/ftp2 vuser”、“chmod go+rx/var/ftp2”命令,創(chuàng)建名為“vuser”的賬戶,并設(shè)定該賬戶對應(yīng)的家目錄,并允許其他用戶讀取和執(zhí)行其家目錄的權(quán)限。當(dāng)然該賬戶無法正常登錄系統(tǒng)。

      對vsFTP的配置文件“/etc/vsftpd.conf” 進(jìn)行修改,設(shè)置“anonyous_enable=Yes”、“l(fā)ocal_enable=Yes”、“write_enable=Yes”、“anon_upload _enable=Yes”、“anon_mkdir_write_enable=Yes”、“anon_other_mkdir_write_enable=Yes”、“chroot_local_user=Yes”、“guest_enable=Yes”、“guest_username=vuser”、“l(fā)isten=Yes”,“pam_service_name=vsftpd.mysql”等行,允許來賓賬戶進(jìn)行訪問。并將來賓賬戶映射為“vuser”用戶,使PAM認(rèn)證服務(wù)使用自定義的“vsftpd.mysql”文件。之后執(zhí)行“service vsftpd restart”命令重啟vsFTP??蛻舳藞?zhí)行“ftp xxx.xxx.xxx.xxx”命令,即可用上述“nmyh”表中的用戶進(jìn)行登錄了。在上述配置文件中允許用戶對FTP路徑具有讀寫操作,所以當(dāng)使用虛擬賬戶登錄后,執(zhí)行的指令均被匿名用戶進(jìn)行匹配,可以上傳下載文件。

      控制匿名用戶訪問權(quán)限

      當(dāng)然,針對不同的虛擬賬戶可設(shè)置不同的權(quán)限。打開vsFTP的配置文件“/etc/vsftpd/vsftpd.conf”, 添加“user_config_dir=/etc/vsftpd/vusers”行設(shè)置用戶配置目錄。執(zhí)行“mkdir /etc/vsftpd/vusers”命令創(chuàng)建該目錄。執(zhí)行“cd /etc/vsftpd/vusers”命令進(jìn)入該目錄,為每一個(gè)匿名用戶創(chuàng)建同名文件。

      執(zhí)行“vi ftpuser1”命令,在該文件中設(shè)置“anon_upload_enable=Yes”、“anon_mkdir_write_enable=Yes”和“anon_other_write_enable=Yes”項(xiàng),允許上傳、下載和刪除文件,如果設(shè)置為“anon_upload_enable=No”、“anon_mkdir_write_enable=No”和“anon_other_write_enable=No”項(xiàng),則禁止該用戶上傳、下載和刪除文件。

      猜你喜歡
      配置文件命令賬戶
      提示用戶配置文件錯誤 這樣解決
      只聽主人的命令
      搭建簡單的Kubernetes集群
      互不干涉混用Chromium Edge
      探索自由貿(mào)易賬戶體系創(chuàng)新應(yīng)用
      中國外匯(2019年17期)2019-11-16 09:31:14
      外匯賬戶相關(guān)業(yè)務(wù)
      中國外匯(2019年10期)2019-08-27 01:58:28
      忘記ESXi主機(jī)root密碼怎么辦
      父親的股票賬戶
      特別健康(2018年4期)2018-07-03 00:38:20
      移防命令下達(dá)后
      這是人民的命令
      南漳县| 西峡县| 日喀则市| 南充市| 灵璧县| 柳江县| 沙洋县| 安岳县| 昌图县| 万年县| 大同市| 中山市| 泸溪县| 台前县| 山东省| 濮阳市| 霍林郭勒市| 盈江县| 横峰县| 湘乡市| 凤冈县| 彭泽县| 广西| 延寿县| 崇左市| 商河县| 金昌市| 南康市| 岳阳市| 行唐县| 绍兴市| 江孜县| 灌南县| 利辛县| 乐业县| 岚皋县| 巴彦县| 永安市| 宿松县| 江门市| 通化县|