歡迎您光臨本站 註冊首頁

linux下ftp服務的搭建與應用

←手機掃碼閱讀     火星人 @ 2014-03-08 , reply:0

vsftpd伺服器的配置:

查找並安裝ftp包:

[root@localhost ~]# mount /dev/cdrom /mnt/cdrom

[root@localhost ~]# yum list all |grep ftp

[root@localhost ~]# yum info vsftpd

[root@localhost ~]# yum install -y vsftpd

[root@localhost ~]# rpm -qc vsftpd

編輯配置文件允許匿名訪問:

[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf

[root@localhost ~]# chkconfig vsftpd on

[root@localhost ~]# service vsftpd start

查看ftp使用的埠:

[root@localhost ~]# netstat -tupln |grep ftp

本地進行匿名訪問:

[root@localhost ~]# ftp 127.0.0.1

[root@localhost ~]# lftp 127.0.0.1

[root@localhost ~]# useradd user1

[root@localhost ~]# echo "123" |passwd --stdin user1

本地用戶進行訪問:

[root@localhost ~]# ftp 127.0.0.1

文件上傳許可權設置:

[root@localhost ~]# cd /var/ftp

用戶無上傳許可權:

修改文件許可權,賦予用戶上傳許可權:

[root@localhost ftp]# chmod o wt pub

[root@localhost ftp]# vim /etc/vsftpd/vsftpd.conf

[root@localhost ftp]# service vsftpd restart

拒絕文件下載許可權設置

[root@localhost ftp]# vim /etc/vsftpd/vsftpd.conf

[root@localhost ftp]# service vsftpd restart

其它有關ftp許可權設置:

[root@localhost ftp]# vim /etc/vsftpd/vsftpd.conf

可以創建文件夾許可權:

設置重命名和刪除許可權:

設置用戶訪問ftp的目錄提示信息:

[root@localhost ftp]# cd pub/

[root@localhost pub]# vim .message

用戶訪問是出現提示信息:

查看ftp日誌:

[root@localhost pub]# cd /var/log/

[root@localhost log]# ll |grep xferlog

數據傳輸方式:

ascii碼傳輸:

二進位傳輸:

設置訪問歡迎消息:

限制用戶只能訪問指定目錄:

[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf

將用戶加入到chroot—list中,限定其訪問目錄:

[root@localhost vsftpd]#vim /etc/vsftpd/chroot_list

user1

[root@localhost ~]# service vsftpd restart

設置目錄下用戶能切換目錄,其他用戶不能切換用戶

user1和root都不能登錄,(不要密碼):

[root@localhost vsftpd]# vim user_list

user1

user1和root都不能登錄,(要密碼):

[root@localhost vsftpd]# vim ftpusers

user1

設置目錄中用戶user1可以訪問不是目錄中用戶不允許訪問:

[root@localhost vsftpd]# service vsftpd restart

[root@localhost vsftpd]# echo "user2" >>user_list

安全設置,只允許指定ip用戶訪問:

[root@localhost vsftpd]# vim /etc/hosts.deny

[root@localhost vsftpd]# vim /etc/hosts.allow

本機(ip 192.168.1.100)進行訪問:

外部主機(ip 192.168.1.2)進行訪問:

ftps服務的安全及應用:

ftp證書的創建:

安裝抓包工具wireshark測試ftp安全性:

[root@localhost ~]# yum list all |grep wireshark

[root@localhost ~]# yum list all |grep wireshark

用抓包工具抓去伺服器eth0網卡的埠信息:

[root@localhost ~]# tshark -ni eth0 -R "tcp.dstport eq 21"

[root@localhost ~]# service vsftpd start

外部用戶訪問時發現用戶名及密碼被抓取(安全性很低):

創建ftp證書,增強用戶訪問安全性:

證書的創建:

[root@localhost ~]# cd /etc/pki/

[root@localhost pki]# vim tls/openssl.cnf

[root@localhost pki]# cd CA/

證書相關配置:

[root@localhost CA]# mkdir crl certs newcerts

[root@localhost CA]# touch index.txt serial

[root@localhost CA]# echo "01" >serial

[root@localhost CA]# openssl genrsa 1024 >private/cakey.pem

[root@localhost CA]# openssl req -new -key vsftpd.key -out vsftpd.csr

產生證書,並配置相關信息:

[root@localhost CA]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3650

ftps服務證書的頒發:

[root@localhost CA]# chmod 600 private/cakey.pem

[root@localhost CA]# mkdir /etc/vsftpd/certs

[root@localhost CA]# cd /etc/vsftpd/certs/

[root@localhost certs]# openssl genrsa 1024 >vsftpd.key

[root@localhost certs]# openssl req -new -key vsftpd.key -out vsftpd.csr

檢索證書頒發信息:

[root@localhost certs]# openssl ca -in vsftpd.csr -out vsftpd.cert

配置證書相關服務:

[root@localhost certs]# chmod 600 *

[root@localhost certs]# vim /etc/vsftpd/vsftpd.conf

[root@localhost certs]# service vsftpd restart

外部用戶進行訪問:

此時在查看抓包工具,以及無法抓去合法用戶信息(安全性提高):

虛擬用戶的使用:

虛擬用戶的創建:

[root@localhost ~]# cd /etc/vsftpd/

[root@localhost vsftpd]# vim vuser.txt

資料庫文件的創建與安裝:

[root@localhost vsftpd]# cd /mnt/cdrom/Server/

[root@localhost Server]# ll |grep db

[root@localhost Server]# rpm -qlp db4-utils-4.3.29-10.el5.i386.rpm

[root@localhost Server]# yum install db4-utils -y

[root@localhost ~]# cd /etc/vsftpd/

建立訪問者的庫文件:

[root@localhost vsftpd]# db_load -T -t hash -f vuser.txt vuser.db

進入/etc/pam.d/下創建vsftpd.vu並作相關的配置:

[root@localhost Server]# cd /etc/pam.d/

[root@localhost pam.d]# cp vsftpd vsftpd.vu

[root@localhost pam.d]# vim vsftpd.vu

創建本地用戶,用於虛擬用戶的映射:

[root@localhost home]# useradd -D -b /home

[root@localhost home]# useradd user3

[root@localhost home]# echo "123" |passwd --stdin user3

[root@localhost home]# chmod 777 user3

將虛擬用戶映射為本地用戶:

[root@localhost pam.d]# vim /etc/vsftpd/vsftpd.conf

[root@localhost home]# service vsftpd restart

利用虛擬用戶訪問ftp:

ftps的簡單管理應用實例:

要求簡介:新增一塊硬碟,將新的硬碟掛在到本地/mnt/ftppart/,並創建公共目錄/mnt/ftppart/public,為每個訪問用戶創建一個家目錄/mnt/ftppart/home/,並指定大小為10M,允許匿名登錄下載,但下載速度為100K/s,本地用戶可以下載,上傳,創建,修改,和刪除,下載速度為1M/s.並且限制同時訪問用戶不超過2個,每個用戶最大鏈接數為2個.

配置步驟:

查看新增磁碟並格式化:

[root@localhost ~]# fdisk –l

[root@localhost ~]# fdisk /dev/sdb

[root@localhost ~]# partprobe /dev/sdb

[root@localhost ~]# mkfs -t ext3 /dev/sdb1

創建本地掛載點並掛在新增磁碟:

[root@localhost ~]# mkdir /mnt/ftppart

[root@localhost ~]# mount /dev/sdb1 /mnt/ftppart/

[root@localhost ~]# df –h

安裝ftp服務:

[root@localhost ~]# mount /dev/cdrom /mnt/cdrom/

[root@localhost ~]# cd /mnt/cdrom/Server/

[root@localhost Server]# rpm -ivh vsftpd-2.0.5-16.el5.i386.rpm

創建公共目錄和用戶個人家目錄:

[root@localhost Server]# cd /mnt/ftppart/

[root@localhost ftppart]# mkdir public

[root@localhost ftppart]# cd public/

[root@localhost public]# touch p1 p2

修改用戶家目錄:

[root@localhost public]# grep user /etc/passwd

[root@localhost public]# vim /etc/passwd

[root@localhost public]# cd /mnt/ftppart/

[root@localhost ftppart]# mkdir home

[root@localhost home]# cd /home/

[root@localhost home]# mv * /mnt/ftppart/home/

修改新建用戶家目錄:

[root@localhost home]# useradd -D -b /mnt/ftppart/home

設置新磁碟啟動時自動掛載:

[root@localhost ~]# vim /etc/fstab

[root@localhost ~]# mount -o remount /dev/sdb1

[root@localhost ~]# cd /mnt/ftppart/

[root@localhost ftppart]# quotacheck -augv –c

[root@localhost ftppart]# edquota -p user1 user2

[root@localhost ftppart]# quotaon /dev/sdb1

[root@localhost ftppart]# echo "quotaon /dev/sdb1" >>/etc/rc.d/rc.local

修改ftp配置文件實現各種要求限制:

[root@localhost ftppart]# vim /etc/vsftpd/vsftpd.conf

[root@localhost ftppart]# service vsftpd restart

外部主機匿名訪問:

匿名上傳文件:

利用user1進行登錄:

用戶user1可以上傳,創建,修改,和刪除.

上傳文檔wj.doc:

創建文件夾2:

最大鏈接用戶為2個驗證:

vsftpd服務的拓展延伸:

vsftpd.conf的參數:

Anonymous_enable=yes

允許匿名登陸

Dirmessage_enable=yes

切換目錄時,顯示目錄下.message的內容

Local_umask=022

FTP上本地的文件許可權,默認是077

Connect_form_port_20=yes

啟用FTP數據埠的數據連接 *

Xferlog_enable=yes

激活上傳和下傳的日誌

Xferlog_std_format=yes

使用標準的日誌格式

Ftpd_banner=XXXXX

歡迎信息

Pam_service_name=vsftpd

驗證方式 *

Listen=yes

獨立的VSFTPD伺服器 *

Anon_upload_enable=yes

開放上傳許可權

Anon_mkdir_write_enable=yes

可創建目錄的同時可以在此目錄中上傳文件

Write_enable=yes

開放本地用戶寫的許可權

Anon_other_write_enable=yes

匿名帳號可以有刪除的許可權

Anon_world_readable_only=no

放開匿名用戶瀏覽許可權

Ascii_upload_enable=yes

啟用上傳的ASCII傳輸方式

Ascii_download_enable=yes

啟用下載的ASCII傳輸方式

Banner_file=/var/vsftpd_banner_file

用戶連接后歡迎信息使用的是此文件中的相關信息

Idle_session_timeout=600(秒)

用戶會話空閑后10分鐘

Data_connection_timeout=120(秒)

將數據連接空閑2分鐘斷

Accept_timeout=60(秒)

將客戶端空閑1分鐘后斷

Connect_timeout=60(秒)

中斷1分鐘后又重新連接

Local_max_rate=50000(bite)

本地用戶傳輸率50K

Anon_max_rate=30000(bite)

匿名用戶傳輸率30K

Pasv_min_port=50000

將客戶端的數據連接埠改在

Pasv_max_port=60000

50000—60000之間

Max_clients=200

FTP的最大連接數

Max_per_ip=4

每IP的最大連接數

Listen_port=5555

從5555埠進行數據連接

Local_enble=yes

本地帳戶能夠登陸

Write_enable=no

本地帳戶登陸后無權刪除和修改文件

下面這是一組

Chroot_local_user=yes

本地所有帳戶都只能在自家目錄

Chroot_list_enable=yes

文件中的名單可以調用

Chroot_list_file=/任意指定的路徑/vsftpd.chroot_list

前提是chroot_local_user=no

這又是一組

Userlist_enable=yes

在指定的文件中的用戶不可以訪問

Userlist_deny=yes

Userlist_file=/指定的路徑/vsftpd.user_list

又開始單的了

Banner_fail=/路徑/文件名

連接失敗時顯示文件中的內容

Ls_recurse_enable=no

Async_abor_enable=yes

one_process_model=yes

Listen_address=10.2.2.2

將虛擬服務綁定到某埠

Guest_enable=yes

虛擬用戶可以登陸

Guest_username=所設的用戶名

將虛擬用戶映射為本地用戶

User_config_dir=/任意指定的路徑/為用戶策略自己所建的文件夾

指定不同虛擬用戶配置文件的路徑

又是一組

Chown_uploads=yes

改變上傳文件的所有者為root

Chown_username=root

又是一組

Deny_email_enable=yes

是否允許禁止匿名用戶使用某些郵件地址

Banned_email_file=//任意指定的路徑/xx/

又是單的

Pasv_enable=yes

伺服器端用被動模式

User_config_dir=/任意指定的路徑//任意文件目錄

指定虛擬用戶存放配置文件的路徑

打開vsFTP伺服器的日誌功能:

把下面xferlog_file前面的#號對掉,也就是把vsftp的log功能打開,這樣我們就能在/var/log目錄下查看vsftpd.log.這是vsFTP的日誌功能,這對於我們來說是極為重要的.

#xferlog_file=/var/log/vsftpd.log

綁定IP到vsFTP:

也就是說,如何讓用戶只能通過某個IP來訪問FTP.其實這個功能很有意思.如果綁定的是內網的IP,外部是沒有辦法訪問的.如果綁定的是對外服務的IP,內網也只能通過對外服務的IP來訪問FTP

在/etc/vsftpd/vsftpd.conf中加一行,以我的區域網為例,請看第一帖中的操作環境,這樣外網就不能訪問我的FTP了,內網也可能通過192.168.0.2來訪問FTP

listen_address=192.168.0.2

加完后,要重啟vsFTP伺服器

[root@linuxsir001 root]# /etc/init.d/vsftpd restart

關閉 vsftpd: [ 確定 ]

啟動 vsftpd: [ 確定 ]

磁碟空間有限解決辦法:

我的硬碟空間有限,如何把帳號ftp默認的路徑/var/ftp更改到別處?或者是,我的linux所有的目錄都放在/根分區,因為空間緊張,我能否把ftp這個用戶的默認路徑放到別的分區?

可以,應該如下操作!

要把ftp這個用戶刪除

#userdel -r ftp

會有錯誤信息,不過不用理,這是正常的.

然後我們再把這個用戶添加上,比如我想為帳號ftp的家目錄設置在/mnt/LinG/ftp,我們就可以如下操作

[root@linuxsir001 root]# mkdir /mnt/LinG

[root@linuxsir001 root]# adduser -d /mnt/LinG/ftp -g ftp -s /sbin/nologin ftp

僅僅是這樣做還不行,因為這樣還是不能讓匿名用戶找到它的家目錄,所以我們必須改變/mnt/LinG/ftp這個目錄的許可權.

[root@linuxsir001 root]# chmod 755 /mnt/LinG/ftp/

[root@linuxsir001 root]# chown -R root.root /mnt/LinG/ftp/

把系統默認用standalone啟動改為用xinetd啟動:

如何把Redhat 9.0中系統默認安裝的vsftpd-1.1.3-8.i386.rpm,系統默認vsFTPd是用standalone啟動方式 ,改為xinetd啟動方式 ?如果是用源碼包安裝的,安裝后就是xinetd模式,如果是用RPM包安裝的,在Redhat 9.0中,應該用下面的方法來解決.

1.在/etc/xinetd.d/目錄中創建一個文件vsftpd

[root@linuxsir001 root]# touch /etc/xinetd.d/vsftpd

/etc/xinetd.d/vsftpd內容如下:

service ftp { socket_type = stream wait = no user = root server = /usr/sbin/vsftpd

# server_args =

# log_on_success = DURATION USERID

# log_on_failure = USERID nice = 10 disable = no }

2.複製vsftpd.conf到/etc/目錄下,因為xinetd對vsFTPd配製文件應該在/etc目錄下,所以我們就必須把這個文件複製到/etc目錄下,否則會出現系統中local用戶無法登入,也就是說,不複製這個文件會出現ftp非匿名用戶無法訪問,只能用匿名用戶訪問.

[root@linuxsir001 root]# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd.conf

3.更改配製文件/etc/vsftpd.conf,把如下的項注掉:也就是把

listen=YES

改為

#listen=YES

或者是把這行刪除也行.

4.把/etc/init.d/vsftpd這個文件刪除.其實最好的備份到別處,因為我們有時實驗來實驗去,可能還會轉到standalone模式啟動.我就直接移動到別的目錄,比如是/root下面的backup目錄.

[root@linuxsir001 root]#mkdir /root/backup

[root@linuxsir001 root]# mv /etc/init.d/vsftpd /root/backup

5.運行ntsysv,把vsftpd的服務取消

[root@linuxsir001 root]#ntsysv [ ] vsftpd

6.重啟xinetd服務

[root@linuxsir001 root]# service xinetd restart


[火星人 ] linux下ftp服務的搭建與應用已經有560次圍觀

http://coctec.com/docs/linux/show-post-46236.html