linux限速
『壹』 急!linux下能禁止某個用戶使用Sftp嗎如果能,怎麼操作呢 還有就是如何限制某個用戶SFTP下載及下載的速率
可以用sshd的配置項:DenyUsers,AllowUsers, DenyGroups,AllowGroups
把你希望禁止使用使用sftp服務的用戶都加入某個組比如xyz
然後在/etc/ssh/sshd_config設置
DenyGroups xyz
這樣所有屬於xyz的用戶就沒有登錄ssh的許可權了,自然也沒有使用sftp的許可權了。
注意僅僅在sshd_config禁止掉sftp-server是不夠的,因為只要用戶還能通過
ssh登錄就可以用其他user space 的工具如scp上傳下載文件,效果其實跟sftp是一樣的。
至於限速問題,既然是內網,為什麼要跑sftp?配個vsftpd,配置文件里可以直接做限速和鏈接數的啊
『貳』 linux中如何控制埠流量
配置網卡
建立一台虛擬機,並安裝完成後以橋接的方式在虛擬機上面添加兩張網卡。分別為eth0和eth1。
eth0: a.b.c.d(外網的上網地址)
eth1: 172.16.44.1(做為內網的網關)
Tip
原先我使用eth0:0的這種虛擬網卡的形式去配置一直不成功,後來使用雙網卡的時候一直忘了把eth0:0這張虛擬網卡刪掉導致了限速配置一直不成功,浪費了大把的青蔥。
配置iptables nat
#開啟ip_forward
echo "1">/proc/sys/net/ipv4/ip_forward
#清除原來的防火牆規則
iptables -F
iptables -t nat -F
iptables -t mangle -F
#添加nat轉發
iptables -t nat -A POSTROUTING -s 172.16.44.0/24 -o eth0 -j MASQUERADE
通過執行上面的代碼後,區域網內的電腦就可以上網了。
埠轉發
由於我的內網還掛了網站,所以要開啟80埠的轉發。
iptables -t nat -I PREROUTING -p tcp -d a.b.c.d --dport 80 -j DNAT --to 172.16.44.210:80
iptables -t nat -I POSTROUTING -p tcp -d 172.16.44.210 --dport 80 -j SNAT --to 172.16.44.1
這條命令指定外網地址a.b.c.d的80埠轉發到172.16.44.210:80上。由於是雙網卡,所以需要做一下迴路。
下載限速
下載限速要在eth1上面做,判斷數據包的目的地址來做限制。tc包括三部分:隊列、類、過濾器。我使用了htb方式去限制速度,也可以使用cbq,但cbq配置比較復雜一點,而且據說性能沒htb好。
#刪除原來的tc規則隊列
tc qdisc del dev eth1 root
#添加tc規則隊列
tc qdisc add dev eth1 root handle 10: htb default 256
#生成根類
tc class add dev eth1 parent 10: classid 10:1 htb rate 100mbit ceil 100mbit
#支類列表用於限制速度
#這里的rate指的是保證帶寬,ceil是最大帶寬。
tc class add dev eth1 parent 10:1 classid 10:10 htb rate 400kbps ceil 400kbps prio 1
#添加支類規則隊列
#採用sfq偽隨機隊列,並且10秒重置一次散列函數。
tc qdisc add dev eth1 parent 10:10 handle 101: sfq perturb 10
#建立網路包過濾器,設置fw。
tc filter add dev eth1 parent 10: protocol ip prio 10 handle 1 fw classid 10:10
#在iptables裡面設定mark值,與上面的handle值對應。
iptables -t mangle -A POSTROUTING -d 172.16.44.130 -j MARK --set-mark 1
通過上面的代碼就可以限制172.16.44.130這台機子的下載速度到400kbps。
Tip
經過實際測試這里的kbps實際上就是KB/S每秒千位元組。另一個單位是kbit,這個才是每秒千比特。這里的172.16.44.130也可以寫成一個網段,比如:172.16.44.0/24
上傳限速
上傳限速的原理其實跟下載的差不多,只不過限制的網卡不同,要在eth0上過濾來源地址去限制。
#刪除原來的tc規則隊列
tc qdisc del dev eth0 root
#添加tc規則隊列
tc qdisc add dev eth0 root handle 20: htb default 256
#生成根類
tc class add dev eth0 parent 20: classid 20:1 htb rate 100mbit ceil 100mbit
#支類列表用於限制速度
tc class add dev eth0 parent 20:1 classid 20:10 htb rate 40kbps ceil 40kbps prio 1
#添加支類規則隊列
tc qdisc add dev eth0 parent 20:10 handle 201: sfq perturb 10
#建立網路包過濾器
tc filter add dev eth0 parent 20: protocol ip prio 100 handle 2 fw classid 20:10
iptables -t mangle -A PREROUTING -s 172.16.44.130 -j MARK --set-mark 2
Tip
跟下載不同的是POSTROUTING要改成PREROUTING,-d改成-s。
觀察連接數
通過iptables的nat連接可以通過下面的代碼查看。至於統計連接數可以寫代碼實現,也可以利用awk,grep等工具。反正裡面的內容就是文本,處理起來也比較簡單。
cat /proc/net/ip_conntrack
寫在結尾
到此上網、埠轉發和流量限制都已經實現。下次再考慮配置個dhcp server和dnsmasq。至於一些路由器其它諸如mac地址綁定,限制上網等用到的時候再去研究研究。
『叄』 linux環境下遠程拷貝文件scp -l限速問題
顯示的傳輸速度應該是指文件的實際大小,而scp協議在每一幀數據里會有包頭包尾等標志信息。所以你看到實際攜帶的文件數據是偏小的。
『肆』 linux下如何實現對每個IP進行限制帶寬
linux traffic control,命令是tc。用tc命令設置就可以了。
『伍』 linux下ssh連接限制的問題
問題1:如果你開通的ssh許可權是針對用戶而不是針對組開通的,那默認就是一個賬號一個人登陸啦!問題2:據我所知,ssh目前好像還沒有限速的功能,只是用於給用戶遠程操控的,安全方面可以通過服務本身和系統內部的定義來控制。限速度方面,一般都是用ftp來做的。
『陸』 linux下有什麼可以限制網速的軟體
專門的限速軟體,只有linux防火牆如:pfsence,不過默認的iptables防火牆也可以限速的
如以ip地址來限速
iptables -A FORWARD -m limit -d 202.96.209.6 --limit 2400/s --limit-burst 100 -j ACCEPT
iptables -A FORWARD -d 202.96.209.6 -j DROP
iptables -A FORWARD -m limit -s 202.96.209.6 --limit 2400/s --limit-burst 100 -j ACCEPT
iptables -A FORWARD -s 202.96.209.6 -j DROP
限制某網段
iptables -A FORWARD -s 192.168.100.0/24 -m limit --limit 100/s -j ACCEPT
iptables -A FORWARD -s 192.168.100.0/24 -j DROP
以協議icmp放ddos限速
iptables -A INPUT -f -m limit --limit 150/sec --limit-burst 100 -j ACCEPT
限制ssh接入頻率
iptables -A INPUT -p tcp –dport 22 -s 10.1.0.0/16 -j ACCEPT
iptables -A INPUT -p tcp –dport 22 -j ratelimit
『柒』 想在兩台linux伺服器之間傳輸文件,文件大小1G左右,同時要求可以限制帶寬,請問有什麼好的方法
如果只是一次性的傳輸文件,推薦使用scp。
scp -l 帶寬大小(單位Kbps) 文件名 遠程用戶名@遠程IP
如將/home/user1/file拷貝到192.168.10.11上的user2主目錄下,限速125KB/s(即限1Mbps帶寬),命令為
scp -l 1000 /home/user1/file [email protected]:~/
如果是做遠程同步,就用rsync
rsync -auvzP --bwlimit=速度(KB/s) 本地文件 遠程文件
『捌』 linux伺服器要怎樣針對IP流量限制
不是木馬,是設置問題,下面是流量的控制方法一、Linux流量控制過程分二種:1、隊列控制即QOS,瓶頸處的發送隊列的規則控制,常見的有SFQPRIO2、流量控制即帶寬控制,隊列的排隊整形,一般為TBFHTB二、Linux流量控制演算法分二種:1、無類演算法用於樹葉級無分支的隊列,例如:SFQ2、分類演算法用於多分支的隊列,例如:PRIOTBFHTB三、具體實現:1.在網卡上建立以SFQ演算法的限流#tcqdiscadddeveth0roothandle1:sfqSFQ參數有perturb(重新調整演算法間隔)quantum基本上不需要手工調整:handle1:規定演算法編號..可以不用設置由系統指定..#tcqdiscshdeveth0顯示演算法#tcqddeldeveth0root刪除注:默認eht0支持TOS2.在網卡建立以TBF演算法的限流#tcqdadddeveth1roothandle1:速率256kbit突發傳輸10k最大延遲50ms#tc-sqdshdeveth1統計#tcqddeldeveth1root刪除3.在網卡建立PRIO#tcqdiscadddeveth0roothandle1:prio#此命令立即創建了類:1:1,1:2,1:3(預設三個子類)#tcqdiscadddeveth0parent1:1handle10:sfq#tcqdiscadddeveth0parent1:2handle20:注:此為TBF限速的另一寫法,前文有講解.#tcqdiscadddeveth0parent1:3handle30:sfq4.WEB伺服器的流量控制為5Mbps,SMTP流量控制在3Mbps上.而且二者一共不得超過6Mbps,互相之間允許借用帶寬#tcqdiscadddeveth0roothandle1:#tcclassadddeveth0parent1:0classid1:.這部分按慣例設置了根為1:0,並且綁定了類1:1.也就是說整個帶寬不能超過6Mbps.#tcclassadddeveth0parent1:1classid1:.#tcclassadddeveth0parent1:1classid1:.建立了2個類.注意我們如何根據帶寬來調整weight參數的.兩個類都沒有配置成"bounded",但它們都連接到了類1:1上,而1:1設置了"bounded".所以兩個類的總帶寬不會超過6Mbps.別忘了,同一個CBQ下面的子類的主號碼都必須與CBQ自己的號碼相一致!#tcqdiscadddeveth0parent1:3handle30:sfq#tcqdiscadddeveth0parent1:4handle40:sfq預設情況下,兩個類都有一個FIFO隊列規定.但是我們把它換成SFQ隊列,以保證每個數據流都公平對待.#tcfilteradddeveth0parent1::3#tcfilteradddeveth0parent1::46.過濾器過濾示例#::1在10:節點添加一個過濾規則,優先權1:凡是去往22口(精確匹配)的IP數據包,發送到頻道10:1..#::1在10:節點添加一個過濾規則,優先權1:凡是來自80口(精確匹配)的IP數據包,發送到頻道10:1..#:prio2flowid10:2在eth0上的10:節點添加一個過濾規則,它的優先權是2:凡是上二句未匹配的IP數據包,發送到頻道10:2..#tcfilteradddeveth0parent10:.3.2.1/32flowid10:1去往4.3.2.1的包發送到頻道10:1其它參數同上例#tcfilteradddeveth0parent10:.2.3.4/32flowid10:1來自1.2.3.4的包發到頻道10:1#:prio2flowid10:2凡上二句未匹配的包送往10:2#tcfilteradddeveth0parent10:.3.2.1/:1可連續使用match,匹配來自1.2.3.4的80口的數據包
『玖』 Linux:伺服器:我在root目錄下建一個abc文件,用FTP測試連接時用匿名用戶登錄,put
FTP伺服器配置
VSFTP主配置文件路徑:/etc/vsftpd/vsftpd.conf,重要參數:
anonymous_enable=yes/no 是否允許匿名用戶訪問
anon_upload_enable=yes/no 是否允許匿名用戶上傳文件
anon_mkdir_write_enable=yes/no 是否允許匿名用戶創建目錄
anon_other_write_enable=yes/no 匿名用戶和虛擬用戶是否擁有刪除許可權
local_enable=yes/no 是否允許本地用戶登陸
write_enable=yes/no 設置全局是否可寫
anon_root=/var 指定匿名用戶目錄
chroot_local_user=yes 鎖定所有用戶到用戶主目錄
chroot_list_enable=yes/no 鎖定列表中的用戶到主目錄,需要配合下一參數使用
chroot_list_file=/etc/vsftpd/chroot_list 指定存儲被鎖定用戶的列表文件位置
chown_uploads=yes/no 匿名用戶上傳所有者指定功能,需要與下一參數配合使用
chown_username=用戶名 指定匿名用戶上傳文件的所有者
max_clients=300 最大客戶端連接數為300
anon_max_rate=30000 匿名用戶和虛擬用戶限速為30K/S
local_max_rate=30000 本地用戶限速為30K/S
max_per_ip=10 每個IP最大連接數
listen_port=22 更改監聽埠
實現如下要求:允許匿名用戶登陸,匿名用戶限速為60K/S,只允許下載。監聽埠為22,最大連接數為10。新建用戶ftp1,限速為200K/S,允許上傳下載刪除新建文件夾。進入目錄/etc/vsftpd,用vi編輯器打開vsftpd.conf主配置文件:
直接添加以下選項: [root@LidadeFedora vsftpd]# service vsftpd restart
添加用戶ftp1,設置登錄腳本為 /sbin/nologin:
vsftp默認目錄為:/var/ftp,為方便測試,在/var/ftp下新建一個文件"testLocal",在"/var/ftp/pub"新建一個文件"testAnon"。
由於使用root用戶新建文件,文件的所有者為root,所以需要把文件的許可權設置為644其他用戶才能讀取該文件
設置/var/ftp/pub許可權為777,表示所有用戶均有讀寫許可權.
由於埠22被ssh伺服器佔用,所以需要關閉ssh服務並重啟vsftp服務。
客戶端用Flashfxp測試:新建站點"VsftpTest",輸入Vsftp伺服器的IP地址,埠填22,用戶名填ftp1,密碼填你設置的密碼,然後點擊"連接"按鈕:
由於沒有使用選項:local_root,登陸本地用戶時自動跳轉到該用戶的主目錄.沒有使用chroot_local_user=yes,所以本地用戶可以瀏覽整個文件系統中他有許可權讀取的文件和文件夾:
切換到目錄"/var/ftp/pub",該目錄的許可權為777,上傳一個10M以上的文件,測試ftp1的上傳速度:
新建文件夾和刪除許可權測試省略。下面測試匿名用戶許可權:勾選"匿名"選項並連接:
匿名用戶登陸成功: 進入pub目錄,嘗試刪除testAnon文件失敗,說明這里是配置文件中的anon_other_write_enable=no生效了。最終許可權等於配置文件中的許可權和linux文件系統許可權相或的結果。比如vsftp配置文件中允許匿名用戶下載,但光這樣是不夠的,還需要被下載的文件或文件夾的能夠被其他用戶讀取。
嘗試上傳文件失敗,符合匿名用戶只允許下載的要求:
最後測試匿名用戶的下載速度:
vsftp的配置參數總共也就10來行,但是想要使用好它,絕沒有單單理解這10來行這么簡單,需要對每一行所定義的參數都理解透徹才可以.
匿名用戶的配置:
anonymous_enable=YES //允許匿名用戶登錄
anon_root=/var/ftp/anonymous //設定匿名用戶登錄後的根目錄
anon_upload_enable=YES //允許匿名用戶上傳文件
只需要打開如上的參數即可,不用做其他的設置.本地用戶登錄配置
首先說一下概念,什麼是本地用戶,本地用戶就是你系統/home目錄下的用戶,當然有的用戶建立時候使用-m命令,使用戶在/home下沒有目錄,但是這個詞的意思就是系統裡面有的用戶.
local_enable=YES //允許本地用戶登錄
local_root=/home //限制本地用戶登錄後的根目錄
eg:
[root@centos ftp]# ftp 192.168.0.125
Connected to 192.168.0.125.
220 (vsFTPd 2.0.5)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (192.168.0.125:root): xu
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 (192,168,0,125,135,123)
150 Here comes the directory listing.
drwx------ 2 505 503 4096 Jun 26 09:42 chuan
drwx------ 2 507 507 4096 Jun 30 22:26 ftp
drwx------ 2 504 502 4096 Jun 26 09:42 joe
drwx------ 2 506 503 4096 Jun 26 09:43 laomeng
drwx------ 2 502 504 4096 Jun 26 09:42 master
drwx------ 2 503 502 4096 Jun 26 09:42 mike
drwx------ 2 500 500 4096 Jun 25 21:34 xiaochuan
drwxrwxrwx 2 508 508 4096 Jun 30 22:39 xu
drwx------ 2 501 501 409埂福第核郢姑電太釘咖6 Jun 25 20:25 xujunchuan
226 Directory send OK.
ftp> pwd
257 "/home"
限制用戶目錄部分
chroot_local_use=YES|NO //是否將本地用戶鎖定在家目錄
chroot_list_enable=YES|NO //是否鎖定使用者在家目錄中
chroot_list_file=/etc/vsftpd/chroot_list //一般情況下都將這個文件寫在/etc/vsftpd目錄下,這個文件就是設置鎖定用戶的一個列表文件,其中一行就代表一個用戶
設置歡迎信息
dirmessage_enable=YES
message_file=.message
[root@centos ftp]# cd /home
[root@centos home]# vi .message
welcomt to VSFTP.............
C:\Documents and Settings\Administrator>ftp 192.168.0.125
Connected to 192.168.0.125.
220 (vsFTPd 2.0.5)
User (192.168.0.125:(none)): xu
331 Please specify the password.
Password:
230-welcomt to VSFTP.............
230 Login successful.
ftp>