建站综合设置
1,目的
现在我们的门户已经被其他人访问了,但是还存在一些问题:
(1)如何取消浏览器输入服务器IP后的8080;
(2)如何提高服务器的安全性。
服务器IP可当做是域名地址,因为后面我们申请到域名后会把域名和服务器IP进行绑定。那么在域名后显示一个:8080是一个非常奇怪的事情,访问起来也不方便。
另外一个方面是我们如何提高安全性。现在我们的门户网是完全暴露在互联网上,我们需要建立一个围墙,防止咱们私有财产被轻易篡改。
2,设计分析
对于消除域名后的":8080"问题,网上搜索很多人的方法是直接将端口由8080改成80,由于80端口是http访问的默认端口,所以在不输入端口时会默认访问80端口。理论上讲这样调整是完全可行的,但是我们使用这个方法会产生新的问题。主要原因是由于小于1024的端口都是系统端口,如果访问这些端口那么必须获取超级用户的权限,在前文中也提到,我们搭建的tomcat采用的是普通用户权限。那么tomcat就无法访问80端口,对于我们来说这个问题并未被解决。
继续查询有发现了几个方法:1)给tomcat访问80端口时获得超级权限,其它端口依旧是普通权限,这样tomcat就具备了此端口的使用权。2)利用系统自带的工具iptables进行端口映射,将系统的80端口映射到8080端口上,那么在访问80端口时就是访问的8080。最终使用的方法是后者。
对于安全性处理,首先我的处理是安装防火墙。其次就是对一些tomcat默认配置网页进行裁切,作为搭建门户网站而言后面不会使用那些配置页面,防止被恶意篡改最好进行删除处理。
3,设计内容
配置转发规则,外网访问80端口时数据直接转发到8080端口,指令如下
sudo iptables -A PREROUTING -t nat -p tcp --dport 80 -j REDIRECT --to-port 8080
现在可以在浏览器中尝试直接输入服务器地址而不加端口号
http://192.168.146.134/
在配置完成后将规则进行保存,保存之前需要先获取超级用户权限。
su root
iptables-save > /etc/iptables.rules
这个指令非常关键,后文中会多次被用到。比如修改防火墙配置、添加新的端口映射等。如果规则调整后但是未进行保存,那么重启后规则将会被还原(前次配置不会生效)。
自动启用规则方法如下:
sudo vi /etc/network/if-pre-up.d/iptables
添加如下内容
#!/bin/bash
/sbin/iptables-restore < /etc/iptables.rules
对此脚本添加系统权限
sudo chmod +x /etc/network/if-pre-up.d/iptables
这里需要说明一下,为什么开机自启动文件放置在if-pre-up.d而非是.bashrc或者.profile,主要因为我们规则启用必须是root权限。
安装防火墙
sudo apt-get install ufw
开启防火墙
sudo ufw enable
输入Y
查看防火墙状态
sudo ufw status
显示“Status: active”表示已经激活
现在我们的网站已经无法打开了,我们需要添加允许通过的端口。
sudo ufw allow 22
sudo ufw allow 80
sudo ufw allow 8080
允许22、80和8080端口号通过,允许后我们的网站又可以被访问了。其中22是我们使用ssh服务的端口,我们后续的操作都需要的所以必须要打开。
查看防火墙已经开通的端口状态
sudo ufw status
由于我们修改了防火墙的允许规则,那么需要重新保存iptables规则
su root
iptables-save > /etc/iptables.rules
现在我们就可以重启了,再次启动后查看所有的配置是否正常。
关闭自动部署功能,仿真黑客安装未确认的应用程序。
sudo vi /opt/tomcat/conf/server.xml
找到下图位置进行修改将autoDeploy="true"改成false
删除docs、examples、host-manager、manager目录。
注意:第三条指令“ls | grep -v ROOT |xargs rm -rf”必须在webapps 路径下执行。
注意:第三条指令“ls | grep -v ROOT |xargs rm -rf”必须在webapps 路径下执行。
注意:第三条指令“ls | grep -v ROOT |xargs rm -rf”必须在webapps 路径下执行。
su root
cd /opt/tomcat/webapps/
ls | grep -v ROOT |xargs rm -rf
当请求处理发生错误时,Tomcat会向请求者显示调试信息,在Tomcat根目录下的conf/web.xml文件里面的web-app添加子节点:
<error-page>
<exception-type>java.lang.Throwable</exception-type>
<location>/error.jsp</location>
</error-page>
当访问未定义的网址或错误页面时,自动跳转到error.html页面
<error-page>
<error-code>404</error-code>
<location>/error.html</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/error.html</location>
</error-page>
4,总结
IP映射功能设置完成后,页面就可以通过IP访问了。防火墙在修改或配置完成后需要重新保存iptables规则,不然重启后规则会丢失。
对于安全性考虑,我们现在使用的是http服务,所有信息是以明文传输的。后面有了域名我们就可以采用https服务,这样安全性会进一步提高。
现在我们就抓紧时间去租借域名和服务器了。域名需要实名认证和域名信息设置,域名审核的时间比较快1~2天就好了。域名和服务器绑定需要进行备案,这个时间较长,我办下来超过1周。
https://www.simbahiker.com/news/0220200426001.html