《Ubuntu下安装tomcatJavamysqlsftpd》由会员分享,可在线阅读,更多相关《Ubuntu下安装tomcatJavamysqlsftpd(21页珍藏版)》请在金锄头文库上搜索。
1、Ubuntu自带的 FTP 服务器 vsftpd技巧时间 : 2009-05-12 17:26来源 : 互联网实现了 Apache多用户的虚拟主机设置,那么一般这些用户都会选择用ftp 上传的方式来管理自己的web 内容,这就需要我们再为他们开设FTP 服务。Ubuntu自带的 FTP 服务器是 vsftpd. 1、安装 vsftpd Ubuntu安装软件倒不是件困难的事,输入:sudo apt-get install vsftpd 如果没换实现了 Apache多用户的虚拟主机设置,那么一般这些用户都会选择用ftp 上传的方式来管理自己的web 内容,这就需要我们再为他们开设FTP 服务。Ub
2、untu自带的 FTP 服务器是vsftpd. 1、安装 vsftpd Ubuntu安装软件倒不是件困难的事,输入:sudo apt-get install vsftpd 如果没换源可能会提示你使用光盘,放进去再按回车就行了。我用 CN99 的源,速度是300K每秒,够快吧。安装了之后会在/home/下建立一个ftp目录。 这时候你可以试着访问下ftp:/IP地址。 应该可以看到一个空白内容的ftp 空间。默认设置下匿名用户可以下载,但不能写入或是上传2、设置vsftpd.conf文件现在我们要让匿名用户无法访问,并且得输入linux上的用户密码后才能访问到他们自己目录里的内容。首先找到设置v
3、sftpd的文件,位置在/etc/vsftpd.conf 修改之前最好先备份下这个文件:sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.old 然后可以改动了:# 不让匿名用户使用#anonymous_enable=YES # 本地用户可用local_enable=YES # 可用写操作write_enable=YES # 不需要显示某目录下文件信息#dirmessage_enable=YES # 加点 banner提示ftpd_banner=Hello #FTP服务器最大承载用户max_clients=100 新的问题1、输入用户名密码后显示的位置是在用户
4、的根目录下,而我们的WEB 内容是在public_html目录里2、用户可以跳到任何其他目录要解决这些问题我们还得设置下vsftpd.conf # 启动 chroot列表 (Change root) chroot_list_enable=YES # 指定列表位置(我这用的是默认地址) chroot_list_file=/etc/vsftpd.chroot_list 接下来我们得在vsftpd.chroot_list上写进去我们要限制哪些用户,不让他们“ 漂移 ”现在有用户linyupark,所以只要sudo nano一下,往里面写就行了这样我们已经解决第2 个问题了,登陆的用户只能在它的用户文
5、件夹里活动,下面我们要更狠一点,让他只能在public_html里活动依然还是找vsftpd.conf # 这句默认设置里是没有的,自己加user_config_dir=/etc/自己定义一个设置个别用户用的文件夹地址根据自己设置的地址,建立一个相应的文件夹,然后往里面建立和用户名相同的文件,nano一下:# 本地用户的根地址,假设用户是linyupark local_root=/home/linyupark/public_html 重启下服务器。MySQL 安装指南安装 MySQL sudo apt-get install mysql-server 这个应该很简单了,而且我觉得大家在安装方面
6、也没什么太大问题,所以也就不多说了,下面我们来讲讲配置。配置 MySQL 注意,在 Ubuntu下 MySQL 缺省是只允许本地访问的,如果你要其他机器也能够访问的话,那么需要改变/etc/mysql/f配置文件了!下面我们一步步地来:默认的 MySQL 安装之后根用户是没有密码的,所以首先用根用户进入:$mysql -u root 在这里之所以用 -u root是因为我现在是一般用户(firehare),如果不加 -u root的话, mysql会以为是firehare在登录。注意,我在这里没有进入根用户模式,因为没必要。一般来说,对mysql中的数据库进行操作,根本没必要进入根用户模式,只
7、有在设置时才有这种可能。进入 mysql之后,最要紧的就是要设置Mysql中的 root用户密码了,否则,Mysql服务无安全可言了。mysql GRANT ALL PRIVILEGES ON *.* TO rootlocalhost IDENTIFIED BY 123456; 注意,我这儿用的是123456做为 root用户的密码,但是该密码是不安全的,请大家最好使用大小写字母与数字混合的密码,且不少于8 位。这样的话,就设置好了MySQL中的 root用户密码了,然后就用root用户建立你所需要的数据库。我这里就以 xoops为例:mysqlCREATE DATABASE xoops;my
8、sqlGRANT ALL PRIVILEGES ON xoops.* TO xoops_rootlocalhost IDENTIFIED BY 654321; 这样就建立了一个xoops_roots的用户,它对数据库xoops有着全部权限。以后就用xoops_root来对xoops数据库进行管理,而无需要再用root用户了,而该用户的权限也只被限定在xoops数据库中。如果你想进行远程访问或控制,那么你要做两件事:其一:mysqlGRANT ALL PRIVILEGES ON xoops.* TO xoops_root% IDENTIFIED BY 654321; 允许 xoops_root用
9、户可以从任意机器上登入MySQL 。其二:$sudo gedit /etc/mysql/f 老的版本中skip-networking = # skip-networking 新的版本中bind-address=127.0.0.1 = bind-address= 你机器的 IP 这样就可以允许其他机器访问MySQL了。安装 Tomcat Tom cat 是由 Apache Foundation研发用于支持JSP(Java Server Page)的网络服务软件。sudo apt-get install tomcat6 稍等片刻, Tom cat6 即会被自动安装在 /usr /shar e/to
10、mcat6 的目录中编辑 设置 Tomcat运行的JAVA 环境首先请确保Sun 的 Java Development Toolkit已经安装。如果尚未安装,参照Java 。编辑 启动和停止Tomcat 要启动 Tom cat ,运行qiiubuntu:$ sudo /etc/init.d/tomcat6 start * Starting Tomcat servlet engine tomcat6 OK 此时打开浏览器,在地址栏内输入http:/localhost:8080Tom cat 安装成功要停止 Tom cat ,运行qiiubuntu:$ sudo /etc/init.d/tomca
11、t6 stop * Stopping Tomcat servlet engine tomcat6 OK 编辑 Tomcat 配置文件路径Tomcat home directory : /usr/share/tomcat6 Tomcat base directory : /var/lib/tomcat6 编辑 设置 Tomcat管理员帐号Tom cat 的用户帐号信息都保存在tom cat-users.xml的文件中,运行sudo nano /var/lib/tomcat6/conf/tomcat-users.xml 在 的标签前添加一行 保存并关闭。重新运行tom cat 即可输入该用户名和密
12、码,登录Tom cat 的管理页面。编辑 弊端Ubuntu 默认把Tom cat 分到 2 个目录,在之后配置Eclipse Server 时会把人逼疯的,配置哪个路径都不对,Eclipse 无法识别安装的Tom cat 。 解决方案:sudo ln -s /var/lib/tomcat6/conf /usr/share/tomcat6/conf sudo ln -s /etc/tomcat6/policy.d/03catalina.policy /usr/share/tomcat6/conf/catalina.policy sudo ln -s /var/log/tomcat6 /usr/s
13、hare/tomcat6/log sudo chmod -R 777 /usr/share/tomcat6/conf 编辑 下载安装最新版本的Tomcat 这种方法绕过Ubuntu 自身的包管理器,直接从Apache Tomcat 的主页上下载并使用Tom cat 软件,该方法方便快捷的安装旧版或新测试版Tom cat 而并不影响系统的稳定性,轻松自在。从 tomc at 的官方下载页面http:/tomcat.apache.org/download-70.cgi 下载 Binary-Core 分类中的 zip 或者 tar.gz包后,本地解压缩并将新生成的目录重命名为tom cat ,以方便
14、使用。将这个文件夹移动至某路径PATH/ 。 参考以上设置环境变量和端口设置等步骤,大功告成!直接运行PATH/tomcat/bin/./startup.sh Tom cat 便即刻在后台服务了。(请将 PATH 替换成适合您的路径)Tom cat 启动成功编辑 配置开发环境编辑 Eclipse 以下载的Eclipse for Java EE 为例,右击底部面板分页Server s - New - Server,选择你要的Tom cat 版本,添加进路径。添加 Tom cat 进 Eclipse Prefer enc es - Server - Runtime Envir onments 添加
15、 Tom cat 进 Eclipse Vsftpd vsftpd,ftp 服务端目录 隐藏1 stand alone和 super daemon2 安装3 文件结构4 运行o4.1 standaloneo4.2 super daemon5 /etc/vsftpd.confo5.1 上传文件o5.2 重命名、删除文件6 仅能上传,无法下载7 认证 FTP 配置8 Chrooto8.1 限制所有o8.2 开放所有,限制特定o8.3 限制所有,开放特定9 账号登录o9.1 /etc/ftpusers文件o9.2 userlist_file 文件o9.3 限制一切,开放特定o9.4 root登录10
16、主机访问o10.1 tcp_wrappers配置o10.2 super daemon限制主机访问10.2.1 只允许指定主机访问10.2.2 指定不能访问的主机10.2.3 主机表11 限制o11.1 限制连接数o11.2 限制下载速度o11.3 super daemon限制连接数12 欢迎信息13 虚拟路径14 虚拟用户15 实例16 缺陷17 参考编辑 stand alone和 super daemon stand alone指的是一直运行vsftpd ,占用资源,提供ftp 服务。super daemon指的是有需要时由xinetd启动 vsftpd服务。如果服务器不是那种长期开ftp
17、,提供大量的上传下载服务的话,会选择后者。编辑 安装安装$ sudo apt-get install vsftpd 查看是否打开21 端口$ sudo netstat -npltu | grep 21 tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 15601/vsftpd 登录ftp localhost 输入 Ubuntu的用户名、密码登录ls 会显示 home目录的文件编辑 文件结构匿名用户根路径/srv/ftp 配置文件/etc/vsftpd.conf 查阅配置文件详细信息man 5 vsftpd.conf 设定 log 保存位置,默认如下xferlog_file
18、=/var/log/vsftpd.log 编辑 运行编辑standalone 最普遍的方式sudo service vsftpd start 编辑super daemon 需要修改 vsftpd.conf listen=NO 这里若不改成NO ,会出现下列错误500 OOPS: could not bind listening IPv4 socket 安装 xinetd sudo apt-get install xinetd sudo vi /etc/xinetd.conf service ftp socket_type = stream wait = no user = root serve
19、r = /usr/sbin/vsftpd log_on_success += DURATION USERID log_on_failure += USERID nice = 10 disable = no 停止 vsftpd,启动 xinetd sudo service vsftpd stop sudo service xinetd start 查看端口$ sudo netstat -tulnp| grep 21 tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 16787/xinetd 编辑 /etc/vsftpd.conf listen= :设置为 YES时 vsft
20、pd 以独立运行方式启动,设置为NO时以 xinetd方式启动( xinetd是管理守护进程的,将服务集中管理,可以减少大量服务的资源消耗)listen_port= :设置控制连接的监听端口号,默认为21 listen_address= :将在绑定到指定IP 地址运行,适合多网卡connect_from_port_20= :若为 YES ,则强迫 FTP DATA的数据传送使用port 20 ,默认 YES pasv_enable= : 是否使用被动模式的数据连接,如果客户机在防火墙后,请开启为YES pasv_min_port= pasv_max_port= : 设置被动模式后的数据连接端口
21、范围在n 和 m之间, 建议为 5000060000端口message_file= :设置使用者进入某个目录时显示的文件内容,默认为 .message dirmessage_enable= : 设置使用者进入某个目录时是否显示由message_file指定的文件内容ftpd_banner= :设置用户连接服务器后的显示信息,就是欢迎信息banner_file= :设置用户连接服务器后的显示信息存放在指定的filename文件中connect_timeout= :如果客户机连接服务器超过N秒,则强制断线,默认60 accept_timeout= :当使用者以被动模式进行数据传输时,服务器发出pa
22、ssive port指令等待客户机超过N秒,则强制断线,默认 60 accept_connection_timeout= :设置空闲的数据连接在N秒后中断,默认120 data_connection_timeout= : 设置空闲的用户会话在N秒后中断,默认300 max_clients= : 在独立启动时限制服务器的连接数,0 表示无限制max_per_ip= : 在独立启动时限制客户机每IP 的连接数, 0 表示无限制(不知道是否跟多线程下载有没干系)local_enable= :设置是否支持本地用户帐号访问guest_enable= : 设置是否支持虚拟用户帐号访问write_enabl
23、e= :是否开放本地用户的写权限local_umask= :设置本地用户上传的文件的生成掩码,默认为077 local_max_rate :设置本地用户最大的传输速率,单位为bytes/sec ,值为 0 表示不限制local_root= :设置本地用户登陆后的目录,默认为本地用户的主目录chroot_local_user= :当为 YES时,所有本地用户可以执行chroot chroot_list_enable= chroot_list_file= :当 chroot_local_user=NO 且 chroot_list_enable=YES时,只有 filename文件指定的用户可以执行
24、 chroot anonymous_enable= :设置是否支持匿名用户访问anon_max_rate= : 设置匿名用户的最大传输速率,单位为B/s,值为 0 表示不限制anon_world_readable_only= 是否开放匿名用户的浏览权限anon_upload_enable= 设置是否允许匿名用户上传anon_mkdir_write_enable= :设置是否允许匿名用户创建目录anon_other_write_enable= :设置是否允许匿名用户其他的写权限(注意,这个在安全上比较重要,一般不建议开,不过关闭会不支持续传)anon_umask= : 设置匿名用户上传的文件的生
25、成掩码,默认为077 =匿名用户 = 先备份sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.old 打开sudo vi /etc/vsftpd.conf 允许匿名访问# Allow anonymous FTP? (Disabled by default) anonymous_enable=YES 编辑上传文件允许匿名上传write_enable=YES anon_mkdir_write_enable=YES anon_upload_enable=YES 注意 2 点:1. 匿名用户就是ftp ,想要匿名用户写入,必须文件夹的权限为ftp 可写。2. 匿名用户
26、的根目录不允许写,所以根目录的权限绝对不能是ftp 可写和其他用户 可写,如果根目录所有者为ftp 的话,所有者的权限也不能写。所以解决方法是建个单独的public文件夹用于上传文件,设置其为ftp 可写或 ” 其他用户可写 “还可建个 download文件夹只用于下载,设置其他用户没有写权限便可。编辑重命名、删除文件开放重命名,删除文件等权限,不开的话没法续传。anon_other_write_enable=YES 编辑 仅能上传,无法下载write_enable=YES anon_mkdir_write_enable=YES anon_upload_enable=YES chown_upl
27、oads=YES chown_username=root 上传的文件所有者被改为root ,匿名用户的 ftp用户就无法读取,下载了。编辑 认证 FTP 配置设定 vsftp认证系统用户,并允许他们上传文件,编辑 /etc/vsftpd.conf :local_enable=YES write_enable=YES 重启 vsftp sudo service vsftpd restart 系统用户登录ftp 便进入他们的home目录编辑 Chroot 编辑限制所有限制登录用户访问其他目录,改之前登录显示的路径比如是 ,改之后则是/ 。效果是像这样的。注:我的本地用户(local user为 y
28、eshuai,home directory为/home/yeshuai) rootubuntu:# ftp localhost Connected to localhost. 220 (vsFTPd 2.3.2) Name (localhost:yeshuai): yeshuai 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp ftp pwd 257 / 看上边,正常情况下,输
29、入pwd 时,应该是显示 /home/yeshuai. 由于我做了chroot.所以, /home/yeshuai变成 / chroot_local_user=YES 编辑开放所有,限制特定可指定一组用户限制chroot_local_user=NO chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list 随后创建列表sudo vi /etc/vsftpd.chroot_list 一行一个用户名重启 vsftp sudo service vsftpd restart 编辑限制所有,开放特定上面的规则是限制/etc/vsftp
30、d.chroot_list 中的用户,反过来限制一切,只解禁 /etc/vsftpd.chroot_list 的用户。这样:chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list 编辑 账号登录编辑/etc/ftpusers文件该文件内的用户一律禁止ftp 连接,默认列表包括了root, daemon, nobody等。需要禁止某个用户,添加进来便是。这个文件是由PAM 模块的/etc/pam.d/vsftpd 指定的qiiubuntu:$ sudo cat /etc/pam.d
31、/vsftpd # Standard behaviour for ftpd(8). auth required pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed # Note: vsftpd handles anonymous logins on its own. Do not enable pam_ftp.so. # Standard pam includes include common-account include common-session include common-auth auth r
32、equired pam_shells.so 编辑userlist_file 文件vsftpd自订的列表,跟 /etc/ftpusers 类似,具体文件名和路径是由用户自己指定的。这边设成/etc /vsftpd.user_list 添加配置文件字段:userlist_enable=YES userlist_deny=YES userlist_file=/etc/vsftpd.user_list 编辑限制一切,开放特定上述 2 个方法都是限制列表文件中的用户,如果要反过来,限制一切用户登录,只允许列表文件中的用户,用userlist_file ,这样:userlist_enable=YES us
33、erlist_deny=NO 编辑root 登录之所以限制root这类账号登录就是托上面几个文件,要是你非要用系统账号登录,如上所述,将列表文件中的特定用户名删除便是。编辑 主机访问编辑tcp_wrappers配置stand alone模式下提供基于主机的访问控制的配置tcp_wrappers 使用/etc/hosts.allow和/etc/hosts.deny两个配置文件实现访问控制,hosts.allow是一个许可表,hosts.deny是一个拒绝表在 hosts.allow中也可以使用 DENY, 所以通常可以只使用hosts.allow来实现访问控制。 对 vsftpd而言,书写hos
34、ts.allow有三种语法形式1: vsftpd:主机表(设置允许访问的主机表)2: vsftpd:主机表:DENY (设置拒绝访问的主机表)3: vsftpd:主机表:setenv VSFTPD_LOAD_CONF 配置文件名(对指定的主机使用另外的配置)setenv VSFTPD_LOAD_CON F 的值为指定的配置文件名,意图是让vsftpd守护进程读取新的配置项来覆盖主配置文件中的项,实现特定待遇这有一个小例子来说明tcp_wrappers 功能:1. 拒绝 192.168.2.0/24访问2. 对 192.168.1.0/24内的所有主机不作连接限制和最大传输速率限制3. 对其他主
35、机的访问限制为:每ip 连接数为 1,最大传输速率为10kb/s (在主配置文件中设置就好了) 首先保证设定tcp_wrappers=YES 然后编辑sudo vi /etc/hosts.allow vsftpd:192.168.2.0/24: DENY (阻止 192.168.2.0子网的访问)vsftpd:192.168.1.0/24 (允许 192.168.1.0子网的访问)vsftpd:192.168.1.0/24: setenv VSFTPD_LOAD_CONF /etc/xxx.conf (对 192.168.1.0/24指定专有配置文件xxx.conf ,xxx 可以自己指定文件
36、名,需要建立) 然后建立 xxx.c onf文件,并编辑(建立文件可以用sudo touch /etc/xxx.conf 建立)编辑super daemon限制主机访问编辑只允许指定主机访问在配置文件 /etc/xinetd.d/vsftpd的中添加如下的配置语句:only_from 如 only_fr om 192.168.1.0 表示只允许 192.168.1.0网段内的主机访问。编辑指定不能访问的主机no_access 如:no_acc ess 192.168.1.0 表示只有 192.168.1.0网段内的主机不能访问。编辑主机表关于主机表的书写形式,见下表:访问控制表时主机表的书写语
37、法选项值含义Hostname 可解析的主机名IP Address 十进制表示的IP 地址Net_name 在/etc/networks中定义的网络名x.x.x.0 x.x.0.0 x.0.0.0 0.0.0.0 0作为通配符看待。如:191.72.61.0匹配从 191.72.61.0到 191.72.61.255的所有 IP 地址。0.0.0.0表示匹配所有的IP 地址x.x.x.a,b,. x.x.a,b,. x.a,b,. 指定主机表。如:191.72.61.1,3,123表示包含地址191.72.61.1 、191.72.61.2和191.72.61.123 IPAddress/net
38、mask 定义要匹配的网络或子网。如:172.19.16/20匹配从 172.19.16.0到 172.19.31.255 编辑 限制编辑限制连接数前者为服务器最大支持连接数,后者为每个ip 允许最多连接数。max_clients= 数字max_per_ip= 数字错误提示分别是qiiubuntu:$ ftp localhost Connected to localhost. 421 There are too many connected users, please try later. qiiubuntu:$ ftp localhost Connected to localhost. 42
39、1 There are too many connections from your internet address. 编辑限制下载速度单位是字节, 所以需要换算。 比如我想让匿名用户和vsFTP上的用户都以 80KB 下载,所以这个数字应该是1024x80=81920 anon_max_rate=数字 #匿名用户下载速度local_max_rate=数字 # 普通用户下载速度编辑super daemon限制连接数instanc es 是服务器最多的连接数,per_source 是单个 IP 地址最多的连接数。service ftp socket_type = stream wait = n
40、o user = root server = /usr/sbin/vsftpd server_args = /etc/vsftpd.conf log_on_success += DURATION USERID log_on_failure += USERID nice = 10 disable = no per_source = 10 instances = 10 错误提示都是qiiubuntu:$ ftp localhost Connected to localhost. 421 Service not available, remote server has closed connecti
41、on 定制错误提示,添加banner_fail = /etc/vsftpd.busy_banner 编辑提示内容sudo vi /etc/vsftpd.busy_banner 比如qiiubuntu:$ ftp localhost Connected to localhost. 服务器大姨妈中编辑 欢迎信息dirmessage_enable=YES 然后编辑各用户home目录下的 .message vi .message qiiubuntu:$ cat .message 欢迎来到 vsftpd qiiubuntu:$ ftp localhost Connected to localhost.
42、220 (vsFTPd 2.2.2) Name (localhost:qii): qii 331 Please specify the password. Password: 230-欢迎来到 vsftpd 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp 若是匿名用户,就放到/var/ftp 编辑 虚拟路径比如我的 ftp 的默认目录是 /srv/ftp,我想把 /m nt/LinG/WinSoft文件夹,映射到 /srv/ftp目录中,我就如下操作命令:#mount -bind 原有的目录 新目录 先创建文件夹sudo mkdir /srv/ftp/WinSoft 执行 mount命令sudo mount -bind /mnt/LinG/WinSoft /srv/ftp/WinSoft 编辑 虚拟用户Vsftpd虚拟用户设置Vsftpd和 m ysql 配置编辑 实例Vsftpd实例Vsftpd实例 2(oneleaf的 vsftpd配置 )编辑 缺陷Vsftpd的虚拟用户 无法实现磁盘限额,系统用户倒是可以用quota工具实现磁盘限额。