
非常高的安全性需求
带宽限制
良好的可伸缩性
创建虚拟用户的可能性
分配虚拟IP地址的可能性
一、vsftpd的启动
#service vsftpd start
如果允许用户匿名访问,需创建用户ftp和目录/var/ftp
# mkdir /var/ftp
# useradd –d /var/ftp ftp
二、vsftpd的配置
Vsftpd的配置文件存放在/etc/vsftpd/vsftpd.conf 我们可根据实际数要对如下信息进行配置:
1. 连接选项
☆监听地址和控制端口
(1) listen_address=ip address
定义主机在哪个IP 地址上监听FTP请求。即在哪个IP地址上提供FTP服务。
(2) listen_port=port_value
指定FTP服务器监听的端口号。默认值为21。
2. 性能与负载控制
☆超时选项
(1) idle_session_timeout=
空闲用户会话的超时时间,若是超过这段时间没有数据的传送或是指令的输入,则会被迫断线。默认值是300s
(2) accept_timeout=numerical value
接受建立联机的超时设定。默认值为60s
☆负载选项
(1) max_clients= numerical value
定义FTP服务器最大的兵法连接数。当超过此连接数时,服务器拒绝客户端连接。默认值为0,表示不限最大连接数。
(2) max_per_ip= numerical value
定义每个IP地址最大的并发连接数目。超过这个数目将会拒绝连接。此选项的设置将会影响到网际快车、迅雷之类的多线程下载软件。默认值为0,表示不限制。
(3) anon_max_rate=value
设定匿名用户的最大数据传输速度,以B/s为单位。默认无。
(4) local_max_rate=value
设定用户的最大数据传输速度。以B/s为单位。默认无。此选项对所有的用户都生效。
3. 用户选项
vsftpd的用户分为3类:匿名用户、本地用户(local user)及虚拟用户(guest)
☆ 匿名用户
(1) anonymous_enable=YES|NO
控制是否允许匿名用户登录
(2) ftp_username=
匿名用户使用的系统用户名。默认情况下,值为ftp
(3) no_anon_password= YES|NO
控制匿名用户登录时是否需要密码。
(4) anon_root=
设定匿名用户的根目录,即匿名用户登录后,被定位到此目录下。主配置文件中默认无此项,默认值为/var/ftp/
(5) anon_world_readable_only= YES|NO
控制是否只允许匿名用户下载可阅读的文档。YES,只允许匿名用户下载可阅读的文件。NO,允许匿名用户浏览整个服务器的文件系统。
(6) anon_upload_enable= YES|NO
控制是否允许匿名用户上传文件。除了这个参数外,匿名用户要能上传文件,还需要两个条件,write_enable参数为YES;在文件系统上,FTP匿名用户对某个目录有写权限。
(7) anon_mkdir_wirte_enable= YES|NO
控制是否允许匿名用户创建新目录。在文件系统上,FTP匿名用户必须对新目录的上层目录拥有写权限。
(8) anon_other_write_enbale= YES|NO
控制匿名用户是否拥有除了上传和新建目录之外的其他权限。如删除、更名等。
(9) chown_uploads= YES|NO
是否修改匿名用户所上传文件的所有权。YES,匿名用户上传得文件所有权改为另一个不同的用户所有,用户由chown_username参数指定。
(10) chown_username=whoever
指定拥有匿名用户上传文件所有权的用户。
☆本地用户
(1) local_enable= YES|NO
控制vsftpd所在的系统的用户是否可以登录vsftpd。
(2) local_root=
定义本地用户的根目录。当本地用户登录时,将被更换到此目录下。
☆虚拟用户
(1) guest_enable= YES|NO
启动此功能将所有匿名登入者都视为guest
(2) guest_username=
定义vsftpd的guest用户在系统中的用户名。
4. 安全措施
☆用户登录控制
(1) /etc/vsftpd.ftpusers
Vsftpd禁止列在此文件中的用户登录FTP服务器。此机制是默认设置的。
(2) userlist_enable= YES|NO
此选项激活后,vsftpd将读取userlist_file参数所指定的文件中的用户列表。
(3) userlist_file=/etc/vsftpd.user_list
指出userlist_enable选项生效后,被读取的包含用户列表的文件。默认值是/etc/vsftpd.user_list
(4) userlist_deny= YES|NO
决定禁止还是只允许由userlist_file指定文件中的用户登录FTP服务器。userlist_enable选项启动后才能生效。默认值为YES,禁止文中的用户登录,同时不向这些用户发出输入口令的指令。NO,只允许在文中的用户登录FTP服务器。
☆目录访问控制
(1) chroot_list_enable= YES|NO
锁定某些用户在自己的目录中,而不可以转到系统的其他目录。
(2) chroot_list_file=/etc/vsftpd/chroot_list
指定被锁定在主目录的用户的列表文件。
(3) chroot_local_users= YES|NO
将本地用户锁定在主目中。
三、vsftpd服务器的配置实例:
基于IP的虚拟FTP服务器配置
假设服务器有两个IP地址,192.168.1.199和192.168.1.200。vsftpd是建立在192.168.1.199上的。现在在192.168.1.200上再提供一个虚拟FTP服务器。
☆创建虚拟FTP服务器根目录
# mkdir –p /var/ftp2/pub
确保/var/ftp2和/var/ftp2/pub目录的所有者和组均为root,掩码为755
# chmod 755 /var/ftp2 # chmod 755 /var/ftp2/pub
# chown –R root /var/ftp2# chown –R : root /var/ftp2
☆ 增加虚拟FTP服务器的匿名用户帐号ftp2
# useradd –d /var/ftp2 –M ftp2
☆ 创建虚拟FTP服务器的配置文件
复制原来的vsftpd.conf作为虚拟FTP服务器的配置文件,并修改相关参数
# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd2.conf
# vi /etc/vsftpd/vsftpd2.conf
添加或修改参数:
Listen=YES
Listen_address=192.168.1.200
ftp_username=ftp2
anon_root=/var/ftp2
并可参考vsftpd的配置部分的说明做其他配置,如:
•允许匿名用户上传文件
Write_enable=YES
Anon_world_readable_only=NO
Anon_upload_enable=YES
Anon_mkdir_write_enable=YES
创建匿名用户上传文件的目录,并设置权限:
# mkdir /var/ftp/incoming # chmod o+w /var/ftp/incoming
•取消写权限
Write_enable=NO
Anon_upload_enable=NO
Anon_mkdir_write_enable=NO
Anon_other_write_enable=NO
•限制下载速度为80KB/s
Anon_max_rate=8000
•控制并发数,以及每个IP地址的并发数
Max_clients=100
Max_per_ip=3
☆启动虚拟FTP服务器
# /usr/sbin/vsftpd /etc/vsftpd/vsftpd2.comf &
下面是在虚拟机中的linux的ftp的基本配置(redhat AS 4.0为例): 首先要安装linux下的vsftp软件包。 rpm -qa|gerp vsftpd //查找vsftpd有没有安装 如果没有安装就 vsftpd-2.0.1-5.i386.rpm (在第一张光盘) 在linux中有一个非常重要的一点就是要挂载光驱 mount /media/cdrom 在这里我们就不用源代码安装了。用的是rpm安装 #rpm -ivh vsftpd-2.0.1-5.i386.rpm 这里就安装好了。 service vsftpd start 启动vsftpd服务 如果在不设置任何的情况下,可以以匿名的方式访问该ftp。 注.如果访问不了的时候请大家要把linux的防火墙也要关闭: iptables -F 清除防火墙 在安装好ftp会产生几个文件: /etc/vsftpd/vsftpd.conf 主配置文件 /etc/vsftpd.ftpusers 指定哪些用户不能访问FTP服务器 /etc/vsftpd.user_list 文件中指定的用户是否可以访问ftp服务器由vsftpd.conf文件中的userlist_deny的取值来决定。 这几个文件就是整个ftp控制和禁止用户的权限配置。。。 下面我们就来设置一个vsftpd的核心文件 # cd /etc/vsftpd/vsftpd.conf 这就是vsftpd的核心配置文件 anonymous_enable=YES/no 是否允许匿名用户登录 anonymous_enable=yes/no 是否允许匿名上传文件 local_enable= YES/no 是否允许本地用户登录 write_enable= YES/no 是否允许本地用户上传 guest_enable=yes/no 是否允许虚拟用户登录; local_mask=022 设置本地用户的文件生成掩码为022,默认值为077 dirmessage_enable= YES 设置切换到目录时显示.message隐含文件的内容 xferlog_enable= YES 激活上传和下载日志 connect_from_port_20=YES 启用FTP数据端口连接 pam_service_name=vsftpd 设置PAM认证服务的配置文件名称, 该文件存放在/etc/pam.d目录下 userlist_enable= YES 允许vsftpd.user_list文件中的用户访问服务器 userlist_deny= YES 拒绝vsftpd.user_list文件中的用户访问服务器 listen= YES/no 是否使用独占启动方式(这一项比较重要) tcp_wrappers= YES/no 是否使用tcp_wrappers作为主机访问控制方式 最主要的就是这些设置了。(这是一般都是默认的不是太懂的不要动) 。《Linux就该这么学》里有相关介绍,建议看看。查看系统允许的最大线程数:
Linux无法直接控制单个进程可拥有的线程数,但有参考公式max = VM/stack_size,默认stack为8k,可通过降低stack大小或增加虚拟内存来调大每个进程可拥有的最大线程数;
对于支持多线程的程序如Java,有可能会遇到一个进程无法创建更多线程的情形,其原因多种多样,而OS端可能由此参数造成.
查看系统允许的最大进程数:
ulimit -a 显示当前所有的资源限制
root用户下执行 ulimit -a 然后查看 max user processes这个值通常是系统最大线程数的一半:/proc/sys/kernel/threads-max/2
普通用户下 ulimit -u 出现的max user processes的值 默认是 /etc/security/limits.d/20-nproc.conf(centos6 是90-nproc.conf) 文件中的
普通用户默认是1024
打开/etc/security/limits.conf (部分的系统是在/etc/security/limits.d/90-nproc.conf)
设置限制数量,第一列表示用户,* 表示所有用户
soft nproc :单个用户可用的最大进程数量(超过会警告)
hard nproc:单个用户可用的最大进程数量(超过会报错)
soft nofile :可打开的文件描述符的最大数(超过会警告)
hard nofile :可打开的文件描述符的最大数(超过会报错)
重启后生效
reboot
查询当前某程序的线程数
pstree -p 进程号 | wc -l
管道符号"|"左边命令的输出作为右边命令的输入
直接修改/etc/security/limits.conf 文件中的 * softnproc 65535 值后,普通用户最大进程数无法达到65535 ,因为用户的max user processes的值,最后是受全局的kernel.pid_max的值限制。也就是说kernel.pid_max=1024 ,那么你用户的max user processes的值是127426 ,用户能打开的最大进程数还是1024。
永久修改系统最高进程数的方法
在/etc/sysctl.conf中添加kernel.pid_max = 65535
vim /etc/sysctl.conf
kernel.pid_max = 65535
或者:
echo "kernel.pid_max = 65535" >>/etc/sysctl.conf
然后重启机器。
临时修改的方法:
echo 65535 >/proc/sys/kernel/pid_max
所以以上都 *** 作完成后,才算是正确修改了max user processes 的值
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)