1. 删除webapps目录下的所有文件,禁用tomcat管理界面
rm -rf /usr/local/tomcat/apache-tomcat-9.0.1/webapps/*
2.注释或删除tomcat-users.xml文件内的所有用户权限:
3.隐藏版本信息,修改conf/server.xml
3.用户问题:
nginx,httpd 使用root用户启动守护80端口,子进程/线程会通过setuid(),setgid()两个函数切换到普通用户。即父进程所有者是root用户,子进程与多线程所有者是一个非root用户,这个用户没有shell,无法通过ssh与控制台登陆系统;
而Java 的JVM 是与系统无关的,是建立在OS之上的,使用什么用户启动Tomcat,那麽Tomcat 就会继承该所有者的权限。
这造成了一个问题,Linux系统小于1024的端口只有root可以使用,这也是Tomcat默认端口是8080。如果想使用80端口只能使用root启动Tomcat。这有带来了很多安全问题。
创建一个用户,只能用于启动tomcat:
groupadd -g 80 tomcat
adduser -o --home /tomcat --shell /sbin/nologin --uid 80 --gid 80 -c "Web server" tomcat
chown tomcat:tomcat -R /usr/local/tomcat/apache-tomcat-9.0.1/*
su - tomcat -c "/usr/local/tomcat/apache-tomcat-9.0.1/bin/startup.sh"
做一个端口映射,访问80时调用8080端口
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080