Linux 下普通用户无法使用80(www)端口

在 Linux 中为了安全起见,小于1024的端口都归root用户所有,其他用户没有使用这些端口的权限。

因此大量的新手或粗心的运维就会遇到伤害了。怎么解决呢?有两种方式,一种是用 root 账户来执行,另一种就是利用 iptables 进行端口转发。

但是若是用 root 账户来启动服务,如 tomcat ,那是极度不安全的作法,这里就推荐使用 iptables 来进行端口的转发了。

#使用root用户执行,将80端口映射到8080上
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080

这里有一段摘于他人的解释:

原因是,如果你连接到1024以下的端口,你可以很确定你正在使用的服务由系统的系统管理员设置,而不是由恶意或天真的用户设置的一些“木马”。

如果你真的需要 Tomcat 来听端口80,那么你有两个选择:

(1)将 Tomcat 作为“root”运行。

(2)运行一些其他软件作为“root”,它将 http 请求交给作为普通用户运行的 Tomcat。

第一个选项是危险的,不推荐用于实际使用。例如它可能允许Web应用程序代码无意中损坏系统文件。第二个选项通常是通过在端口80上运行Web服务器(如Apache或Nginx)它将所有或某些Web请求交给Tomcat服务器。这是一个受欢迎的选项,Tomcat网站上有完整的设置详细信息。

为什么将Tomcat运行为“root”是危险的?它如何允许Web应用程序代码无意中损坏系统文件?

Unix / Linux系统总是设置不同级别的用户权限。每个文件对三类用户具有单独的读,写和执行权限:“拥有”文件的用户,与所有者在同一“组”中的用户,以及其他所有人。这种细粒度的访问控制允许系统配置是可读的,但不能由普通用户写入,例如,允许单个用户将私人信息标记为其他用户不可读。

“root”用户可以完全绕过此保护。 “root”是超级用户,能够读取,写入和/或执行系统上的任何文件。 “root”访问应该是任何系统上最密切保护的秘密。如果进程由“root”拥有,它可以在系统上执行任何操作。

现在想象我有一个运行为“root”的Tomcat服务器,并部署一个允许输入文件名并显示命名文件内容的Web应用程序。只需将输入框中的私人文件的完整路径,任何地方的任何用户就可以读取秘密文件。如果服务器在一般的互联网上,你甚至可能会发现Google已索引这些秘密文件,并使他们可被搜索!

你可能认为你从这种事情中是安全的,但如果你的程序建立一个本地文件名从一些外部输入读取(或更糟,写入),几乎没有阻止角色进入相对路径只有一个文件名,并可以访问整个系统与超级用户权限。

底线:除非你既是Linux / Unix系统管理员又是Tomcat配置大师,甚至没有想过
运行像“root”这样的东西。

我要评论!

想一个你喜欢的昵称。
给一个你的常用邮箱。
想和萌萌哒的TA们说点啥。
  • 源码安装软件时一直make不了,后来重新./configure了下,发现后面出现错误:error: mbed TLS libraries not found。 这样的问题其实是出在缺少「mbed TLS」库,那么我们开始缺啥补啥。需要先安装mbed库,从官网 https://tls.mbe...
  • apt-get install rungetty echo "exec /sbin/rungetty tty1 --autologin root" &&/etc/init/tty1.conf echo startx && /root/.bash_profile 重启就...
  • 一般我们在更换DNS源或配置了HOSTS后,刷新DNS缓存让你可以得到新的域名解析。当你无法正确访问一个新注册的域名时就可以刷新dns缓存试试,但是不同的系统如Windows、Mac OS和Linux上的方法是不一样的。 如果是 Win 系统:1.在附件中找到 cmd 或Win+R快捷键并输入cmd...
  • httponly和secure两个标识是现代化浏览器对cookie安全保护的一大举措,我们来简单看下其作用。httponly是为了防护xss对cookie的劫持,在通用的攻击场景中,通过植入xss来劫持到管理者或用户的cookie,然后绕过应用的账户管控措施进入到操作页面完成非法的操作。secure...
  • 这个问题产生的原因就是编码不同导致的,或是默认配置下不识别除utf-8之外的编码,既然是不支持,我们添加上不就行了。 编辑vimrc文件,mac os中vimrc位置:/usr/shared/vim/vimrc,当然我们更建议使用用户目录:~/.vimrc。 添加内容为『set fileencodi...
微信扫一扫即可带走我!