小编laz*_*dar的帖子

iptables重定向80到8080但阻止公共8080访问

我有一些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)

port redirect http iptables

21
推荐指数
1
解决办法
1万
查看次数

在sed -f中使用变量(其中sed脚本在文件而不是内联中)

我们有一个进程可以使用包含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文件中使用变量?

sed

5
推荐指数
1
解决办法
5697
查看次数

标签 统计

http ×1

iptables ×1

port ×1

redirect ×1

sed ×1