Vsftp配置以及虛擬用戶配置
1,安裝
[root@rhel6 ~]# yum install -y vsftpd
2,Vsftp啟動模式
通過rpm -ql vsftpd | grep conf可以看到不同的配置文件說明,如下:
[root@rhel6 ~]# rpm -ql vsftpd | grep conf /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd_conf_migrate.sh /usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE/README.configuration /usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE/vsftpd.conf /usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE_NOINETD/README.configuration /usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE_NOINETD/vsftpd.conf /usr/share/doc/vsftpd-2.2.2/EXAMPLE/PER_IP_CONFIG/README.configuration /usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_USERS/README.configuration /usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_USERS/vsftpd.conf /usr/share/man/man5/vsftpd.conf.5.gz |
2.1 守護進程模式
首先,看看官方配置文件示例中的說法:
more /usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE/README.configuration
1,創建守護進程配置文件
找到vsftpd.xinetd 拷貝vsftpd.xinetd為/etc/xinetd.d/vsftpd: 命令如下: 查找: [root@rhel6 ~]# rpm -ql vsftpd | grep xinetd /usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE/vsftpd.xinetd <-這個 /usr/share/doc/vsftpd-2.2.2/vsftpd.xinetd 拷貝: [root@rhel6 ~]# cp /usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE/vsftpd.xinetd /etc/xinetd.d/vsftpd [root@rhel6 ~]# ll /etc/xinetd.d/ total 8 -rw-r--r--. 1 root root 332 Mar 28 2014 rsync -rw-r--r-- 1 root root 533 Oct 15 11:38 vsftpd 然后修改配置/etc/xinetd.d/vsftpd,詳情查看附錄1 |
2,創建vsftpd配置文件
查找到官方示例配置文件 將官方示例復制為vsftpd配置文件,命令如下: [root@rhel6 ~]# rpm -ql vsftpd | grep conf /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd_conf_migrate.sh /usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE/README.configuration /usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE/vsftpd.conf /usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE_NOINETD/README.configuration /usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE_NOINETD/vsftpd.conf /usr/share/doc/vsftpd-2.2.2/EXAMPLE/PER_IP_CONFIG/README.configuration /usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_USERS/README.configuration /usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_USERS/vsftpd.conf /usr/share/man/man5/vsftpd.conf.5.gz [root@rhel6 ~]# cp /usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE/vsftpd.conf /etc/vsftpd/vsftpd.conf 注意,上面可以看到一個紅色和兩個藍色的行,都是配置文件,紅色的是用來配置xinetd模式的配置文件;第二個配置文件,可以看他所在的目錄,是INTERNET_SITE_NOINETD,意思是網絡站點-非inetd模式,即standalone模式,后面會講;然后第三個,同樣看配置文件所在目錄,是virtual_users,表示是虛擬用戶配置文件,這個后面會重點學習。 修改配置vsftpd配置文件,參考附錄2 |
3,重啟守護進程
[root@rhel6 ~]# /etc/init.d/xinetd status xinetd is stopped [root@rhel6 ~]# /etc/init.d/xinetd start Starting xinetd: [ OK ] |
2.2獨立模式
獨立模式就是不依靠xinetd來啟動,直接自己啟動,主要的變化如下:
1,配置文件: 2,最大連接數和每個ip連接數,之前是在/etc/xinetd.d/vsftpd配置的,既然是獨立模式,那么就在/etc/vsftpd/vsftpd.conf中配置: max_per_ip=4 3,監聽虛擬ip: 只需要為每個虛擬ip分配一個vsftpd副本即可,並且要為每個副本指定配置文件: 在配置文件中指定監聽的ip: listen_address=192.168.1.2 vsftpd /etc/vsftpd.conf.site1 &
|
3,配置虛擬用戶(用戶主目錄)
創建虛擬用戶數據庫
我們將使用pam_userdb對虛擬用戶進行身份驗證。 這需要用戶名/密碼文件,采用“ db”格式-一種常見的數據庫格式。要創建“ db”格式的文件,請首先使用用戶名和密碼交替顯示即奇數行是賬號,偶數行是密碼,賬號在密碼之前。
這里我創建了一個賬號密碼文本文件:
[root@rhel6 ~]# cat /usr/local/login.txt test test zhangsan 123456 |
這里有兩個賬號:test和zhangsan,密碼分別是test和123456
然后切換到root賬戶,創建數據文件,命令如下:
db_load -T -t hash -f /usr/local/login.txt /etc/vsftpd_login.db |
注意,如果機器上有多個版本的db_load命令,一般是用db3_load。
上面的命令會創建/etc/vsftpd_login.db數據庫文件,修改權限:
chmod 600 /etc/vsftpd_login.db |
創建pam文件來使用賬戶數據庫
先看看在示例中有沒有pam例子:
[root@rhel6 ~]# rpm -ql vsftpd | grep pam /etc/pam.d/vsftpd /usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_USERS/vsftpd.pam [root@rhel6 ~]# cat /usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_USERS/vsftpd.pam auth required /lib64/security/pam_userdb.so db=/etc/vsftpd_login account required /lib64/security/pam_userdb.so db=/etc/vsftpd_login |
可以看到本身就有pam文件例子,將這個示例pam文件拷貝到/etc/pam.d/下:
[root@rhel6 ~]# cp /usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_USERS/vsftpd.pam /etc/pam.d/vsftpd |
這里記得將內容修改一下,原本的內容如下:
auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login account required /lib/security/pam_userdb.so db=/etc/vsftpd_login |
修改為:
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd_login account required /lib64/security/pam_userdb.so db=/etc/vsftpd_login |
否則用戶校驗會出問題。
創建虛擬用戶本地文件
3.1,創建虛擬用戶
[root@rhel6 ~]# useradd -d /home/ftpsite virtual |
我這里創建了一個用戶是vsftpd,家目錄是/home/ftpsite
3.2,然后往這里添加一些文件,並修改權限:
[root@rhel6 ~]# cp /etc/hosts /home/ftpsite [root@rhel6 ~]# chown virtual.virtual /home/ftpsite/hosts |
3.3創建vsftpd.conf配置文件
同樣,先查看自帶的虛擬用戶配置文件:
[root@rhel6 ~]# rpm -ql vsftpd | grep conf /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd_conf_migrate.sh /usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE/README.configuration /usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE/vsftpd.conf /usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE_NOINETD/README.configuration /usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE_NOINETD/vsftpd.conf /usr/share/doc/vsftpd-2.2.2/EXAMPLE/PER_IP_CONFIG/README.configuration /usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_USERS/README.configuration /usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_USERS/vsftpd.conf /usr/share/man/man5/vsftpd.conf.5.gz [root@rhel6 ~]# more /usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_USERS/vsftpd.conf anonymous_enable=NO local_enable=YES write_enable=NO anon_upload_enable=NO anon_mkdir_write_enable=NO anon_other_write_enable=NO chroot_local_user=YES guest_enable=YES guest_username=virtual listen=YES listen_port=10021 pasv_min_port=30000 pasv_max_port=30999 [root@rhel6 ~]# 詳細解析看附錄。 |
直接拷貝到/etc/vsftpd下:
[root@rhel6]# cp /usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS/vsftpd.conf /etc/vsftpd |
然后在配置文件中添加一行:pam_service_name=vsftpd;這樣,才能找到pam文件用來驗證用戶。
然后啟動vsftpd,登錄測試:
[root@rhel888 vsftpd]# ftp localhost Trying ::1... ftp: connect to address ::1Connection refused Trying 127.0.0.1... Connected to localhost (127.0.0.1). 220 (vsFTPd 3.0.2) Name (localhost:root): ddd 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> ls 227 Entering Passive Mode (127,0,0,1,173,146). 150 Here comes the directory listing. 226 Transfer done (but failed to open directory). |
可以看到,這樣做會有很多限制,首先,目錄在home文件夾下,這樣導致讀寫配置都有一些不方便,特別是在開啟selinux的情況下,所以,后面再學習一種用來配置虛擬用戶的方法。
4,配置虛擬用戶(多用戶多目錄)
整個過程類似於之前配置的虛擬用戶(用戶主目錄),但是有一些不同, 這里還是一步步來,讓整個學習過程更詳細:
4.1,創建虛擬用戶數據庫
[root@rhel6 ~]# cat /usr/local/login.txt lanzige 123456 ddd 123456 |
這里有兩個賬號:test和zhangsan,密碼分別是test和123456
然后切換到root賬戶,創建數據文件,命令如下:
db_load -T -t hash -f /usr/local/login.txt /etc/vsftpd_login.db |
注意,如果機器上有多個版本的db_load命令,一般是用db3_load。
上面的命令會創建/etc/vsftpd_login.db數據庫文件,修改權限:
chmod 600 /etc/vsftpd_login.db |
4.2,創建pam文件來使用賬戶數據庫
先看看在示例中有沒有pam例子:
[root@rhel6 ~]# rpm -ql vsftpd | grep pam /etc/pam.d/vsftpd /usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_USERS/vsftpd.pam [root@rhel6 ~]# cat /usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_USERS/vsftpd.pam auth required /lib64/security/pam_userdb.so db=/etc/vsftpd_login account required /lib64/security/pam_userdb.so db=/etc/vsftpd_login |
可以看到本身就有pam文件例子,將這個示例pam文件拷貝到/etc/pam.d/下:
[root@rhel6 ~]# cp /usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_USERS/vsftpd.pam /etc/pam.d/vsftpd |
這里記得將內容修改一下,原本的內容如下:
auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login account required /lib/security/pam_userdb.so db=/etc/vsftpd_login |
修改為:
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd_login account required /lib64/security/pam_userdb.so db=/etc/vsftpd_login |
否則用戶校驗會出問題。
4.3,創建配置文件
先查看自帶的虛擬用戶配置文件:
[root@rhel6 ~]# rpm -ql vsftpd | grep conf /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd_conf_migrate.sh /usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE/README.configuration /usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE/vsftpd.conf /usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE_NOINETD/README.configuration /usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE_NOINETD/vsftpd.conf /usr/share/doc/vsftpd-2.2.2/EXAMPLE/PER_IP_CONFIG/README.configuration /usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_USERS/README.configuration /usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_USERS/vsftpd.conf /usr/share/man/man5/vsftpd.conf.5.gz [root@rhel6 ~]# more /usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_USERS/vsftpd.conf anonymous_enable=NO local_enable=YES write_enable=YES anon_upload_enable=NO anon_mkdir_write_enable=NO anon_other_write_enable=NO chroot_local_user=YES guest_enable=YES guest_username=virtual listen=YES listen_port=10021 pasv_min_port=30000 pasv_max_port=30999 [root@rhel6 ~]# 詳細解析看附錄。 |
直接拷貝到/etc/vsftpd下:
[root@rhel6]# cp /usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS/vsftpd.conf /etc/vsftpd |
然后在配置文件中添加一行:pam_service_name=vsftpd;這樣,才能找到pam文件用來驗證用戶。
還需要添加一行:
user_config_dir=/etc/vsftpd/vusers_ //設定虛擬用戶個人vsftp的配置文件存放路徑。 |
在指定的文件夾下創建虛擬用戶配置文件:
[root@rhel888 vusers]# cat lanzige anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES [root@rhel888 vusers]# cat ddd anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES |
虛擬用戶配置解釋: local_root=/var/ftp/virtual/username #指定虛擬用戶的具體主路徑 anonymous_enable=NO #設定不允許匿名用戶訪問 write_enable=YES #設定允許寫操作 local_umask=022 #設定上傳文件權限掩碼 anon_world_readable_only=YES #可以瀏覽ftp目錄和下載文件 anon_upload_enable=NO #不允許用戶上傳 anon_mkdir_write_enable=NO #設定不允許用戶建立目錄 anon_other_write_enable=YES #具有文件改名和刪除文件的權限 idle_session_timeout=600 #設定空閑連接超時時間 data_connection_timeout=120 #設定單次連續傳輸最大時間 max_clients=10 #設定並發客戶端訪問個數 max_per_ip=5 #設定單個客戶端的最大線程數,這個配置主要來照顧Flashget、迅雷等多線程下載軟件 local_max_rate=50000 #設定該用戶的最大傳輸速率,單位b/s |
這樣就可以使用虛擬用戶登錄,但是登錄的位置是virtual的家目錄,由於vsftpd修改了安全策略,在登錄到家目錄的時候有很多限制,一般看不到文件,最好是將目錄修改到其它地方。
我們這里將虛擬用戶登錄目錄修改到其它地方,進入虛擬用戶配置目錄,修改虛擬用戶配置文件:
[root@rhel888 vusers]# cat lanzige anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES anon_world_readable_only=NO local_root=/ftp/lanzige allow_writeable_chroot=YES |
4.4,測試
重啟下vsftpd軟件,就可以直接使用lanzige這個賬戶登錄到/ftp/lanzige目錄中了
5,日志配置
FTP服務器的日志設置,可以通過修改主配置文件/etc/vsftpd.conf實現。主配置文件中與日志設置有關的選項包括xferlog_enable 、xferlog_file 和dual_log_enable 等。
xferlog_enable:
如果啟用該選項,系統將會維護記錄服務器上傳和下載情況的日志文件。默認情況下,該日志文件為 /var/log/vsftpd.log。但也可以通過配置文件中的 vsftpd_log_file 選項來指定其他文件。默認值為NO。
xferlog_std_format:
如果啟用該選項,傳輸日志文件將以標准 xferlog 的格式書寫,該格式的日志文件默認為 /var/log/xferlog,也可以通過 xferlog_file 選項對其進行設定。默認值為NO。
dual_log_enable:
如果啟用該選項,將生成兩個相似的日志文件,默認在 /var/log/xferlog 和 /var/log/vsftpd.log 目錄下。前者是 wu-ftpd 類型的傳輸日志,可以利用標准日志工具對其進行分析;后者是Vsftpd類型的日志。
syslog_enable:
如果啟用該選項,則原本應該輸出到/var/log/vsftpd.log中的日志,將輸出到系統日志中。
常見的日志解決方案如下:
xferlog_enable=YES
xferlog_std_format=YES
xferlog_file=/var/log/xferlog
dual_log_enable=YES
vsftpd_log_file=/var/log/vsftpd.log
該方案將xferlog_enable設置為YES,表明FTP服務器記錄上傳下載的情況,而將xferlog_std_format也設置為YES,則表明將記錄的上傳下載情況寫在xferlog_file所指定的文件中,即/var/log/xferlog文件。
同時,該方案啟用dual_log_enable,表明啟用了雙份日志。在用xferlog文件記錄服務器上傳下載情況的同時,vsftpd_log_file所指定的文件,即/var/log/vsftpd.log,也將用來記錄服務器的傳輸情況。
下面分別查看xferlog文件和vsftpd.log文件的內容。
附錄:
1,守護進程的vsftpd配置文件解析:
[root@rhel6 ~]# cat /etc/xinetd.d/vsftpd disable = no socket_type = stream wait = no 上面三項表示vsftpd服務是自動啟動的,使用的標准TCP接口,以及不等待,即多線程方式運行。 user = root server = /usr/local/sbin/vsftpd 上面兩項表示,服務使用/usr/local/sbin/vsftpd來處理進來的ftp請求,但是,當我們去查找的時候: [root@rhel6 ~]# ll /usr/local/sbin/ | grep vsftp [root@rhel6 ~]# 發現既讓沒有,然后使用rpm -ql vsftpd 可以看到真正所在的位置: [root@rhel6 ~]# rpm -ql vsftpd /etc/logrotate.d/vsftpd /etc/pam.d/vsftpd /etc/rc.d/init.d/vsftpd /etc/vsftpd /etc/vsftpd/ftpusers /etc/vsftpd/user_list /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd_conf_migrate.sh /usr/sbin/vsftpd /usr/share/doc/vsftpd-2.2.2 ... ... 可以看到真正在的位置是/usr/sbin/vsftpd,所以這里需要更改。 User這項表示啟動的時候使用的root權限。 per_source = 5 instances = 200 這兩項表示每個IP源最多只能有5個連接,總共最多同時有200個連接。 no_access = 192.168.1.3 這項表示禁止連接的ip banner_fail = /etc/vsftpd.busy_banner 當連接被拒絕的時候,這個文件的內容將會顯示給用戶看 log_on_success += PID HOST DURATION log_on_failure += HOST 上面兩項是記錄日志,將成功的日志以pid host duration這個格式記錄,失敗的日志只記錄host,如果使用的是紅帽系統,將記錄在/var/log/secure中 |
2,vsftpd配置文件解析
[root@rhel6 ~]# cat /usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE/vsftpd.conf # Access rights anonymous_enable=YES local_enable=NO write_enable=NO anon_upload_enable=NO anon_mkdir_write_enable=NO anon_other_write_enable=NO # Security anon_world_readable_only=YES connect_from_port_20=YES hide_ids=YES pasv_min_port=50000 pasv_max_port=60000 # Features xferlog_enable=YES ls_recurse_enable=NO ascii_download_enable=NO async_abor_enable=YES # Performance one_process_model=YES idle_session_timeout=120 data_connection_timeout=300 accept_timeout=60 connect_timeout=60 anon_max_rate=50000 可以看出,配置文件分4大塊,分別是連接權限,安全,特性,性能。 連接權限: anonymous_enable=YES #是否允許匿名用戶登錄 local_enable=NO #是否允許本地用戶登錄 write_enable=NO #是否允許用戶寫入(上傳修改刪除) anon_upload_enable=NO #匿名用戶的上傳權限 anon_mkdir_write_enable=NO #匿名用戶的創建和刪除文件夾權限 anon_other_write_enable=NO #匿名用戶的寫入權限(創建和刪除文件) 上面的這些配置使FTP服務器處於僅匿名模式,並且所有和上傳權限被禁用。 請注意,其中大多數設置是無論如何都與默認值相同。 安全設置: # Security anon_world_readable_only=YES #文件權限中,其它人的權限是可讀取時,才能下載(針對匿名用戶?) connect_from_port_20=YES #從20端口連接 hide_ids=YES #隱藏ID pasv_min_port=50000 #被動模式端口號范圍 pasv_max_port=60000 特性: # Features xferlog_enable=YES #允許將日志記錄到/var/log/vsftpd.log ls_recurse_enable=NO #禁用ls -R,防止ddos攻擊 ascii_download_enable=NO #禁止以ASCII模式下載 async_abor_enable=YES #使較舊的FTP客戶端可以取消正在進行的傳輸。 # Performance one_process_model=YES #一個連接一個進程模式 idle_session_timeout=120 #空閑會話120秒斷開 data_connection_timeout=300 #數據傳輸超時300秒 accept_timeout=60 #PASV請求超時 connect_timeout=60 #PROT模式連接超時 anon_max_rate=50000 #每個用戶最多50kbytes / sec下載速度
|
3,配置文件-虛擬用戶相關解析
[root@rhel6 ~]# more /usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_USERS/vsftpd.conf #########接入權限######### anonymous_enable=NO local_enable=YES #為了安全,禁止匿名用戶登錄,允許本地用戶登錄 #########安全配置######### write_enable=YES anon_upload_enable=NO anon_mkdir_write_enable=NO anon_other_write_enable=NO #其它寫權限,比如重命名,刪除等 chroot_local_user=YES #允許寫,若是不能寫入,那么即使在虛擬用戶配置文件中允許寫入都不行,不允許匿名用戶上傳,創建文件夾,重命名和刪除 #chroot_local_user=YES,表示用戶被限制在虛擬ftp目錄中, 本文件中,例子是/home/vsftpd guest_enable=YES guest_username=vsftpd #允許使用虛擬用戶,虛擬用戶的用戶名為vsftpd #########特性######### listen=YES listen_port=10021 #表示軟件自己監聽,不適用xinetd模式,監聽端口是10021 #########性能######### pasv_min_port=30000 pasv_max_port=30999 #被動端口這是在30000-30999之間,這樣方便與配置防火牆 |
虛擬用戶配置:
local_root=/var/ftp/virtual/username #指定虛擬用戶的具體主路徑 anonymous_enable=NO #設定不允許匿名用戶訪問 write_enable=YES #設定允許寫操作 local_umask=022 #設定上傳文件權限掩碼 anon_world_readable_only=YES #可以瀏覽ftp目錄和下載文件 anon_upload_enable=NO #設定不允許用戶上傳 anon_mkdir_write_enable=NO #設定不允許匿名用戶建立目錄 anon_other_write_enable=YES #具有文件改名和刪除文件的權限 idle_session_timeout=600 #設定空閑連接超時時間 data_connection_timeout=120 #設定單次連續傳輸最大時間 max_clients=10 #設定並發客戶端訪問個數 max_per_ip=5 #設定單個客戶端的最大線程數,這個配置主要來照顧Flashget、迅雷等多線程下載軟件 local_max_rate=50000 #設定該用戶的最大傳輸速率,單位b/s |