我有一些iptables规则将端口80的请求重定向到端口8080的应用服务器(GlassFish)(以及SSL端口,但为了简单起见,我将它们遗漏了).
虽然我们的工作正常(而且我个人也没有问题)如果有人希望在网址中指定端口8080,那么端口8080也对外界开放.已经规定,8080端口应该与外界通道关闭,只有80开放.
我不希望更改应用程序服务器上的侦听器(因为使用端口80,这似乎需要提升运行应用程序服务器的用户的权限),并且端口8080上的侦听器需要知道数据包的源IP作为应用程序审核对应用程序的请求(即我们无法将源IP地址更改为本地IP地址).
当前iptables配置如下.有没有人知道是否有办法阻止8080从公共互联网,同时保留从端口80重定向到的数据包中的源IP?
提前谢谢了.
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
# allow establishment of connections initialised by my outgoing packets
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# accept anything on localhost
iptables -A INPUT -i lo -j ACCEPT
################################################################
#individual ports tcp
################################################################
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
#drop everything else
iptables -A …Run Code Online (Sandbox Code Playgroud) 我们有一个进程可以使用包含sed命令的文件来改变管道输入.
我需要用变量值替换输入中的占位符,例如在-e我可以运行的单一类型的命令中;
$ echo "Today is XX" | sed -e "s/XX/$(date +%F)/"
Today is 2012-10-11
Run Code Online (Sandbox Code Playgroud)
但是我只能sed在文件中指定方面(然后将进程指向文件),例如,一个名为的文件replacements.sed可能包含;
s/XX/Thursday/
Run Code Online (Sandbox Code Playgroud)
很明显;
$ echo "Today is XX" | sed -f replacements.sed
Today is Thursday
Run Code Online (Sandbox Code Playgroud)
但是,如果我想使用环境变量或shell值,我找不到一种方法来扩展它,例如if replacements.txtcontains;
s/XX/$(date +%F)/
Run Code Online (Sandbox Code Playgroud)
然后;
$ echo "Today is XX" | sed -f replacements.sed
Today is $(date +%F)
Run Code Online (Sandbox Code Playgroud)
在文件的文本中包含双引号只打印双引号.
有谁知道一种方法可以在sed文件中使用变量?