我需要阻止我的服务器发起与远程服务器的任何连接。
但是,我仍然希望服务器能够从通过连接的客户端发起的连接进行回复。
换句话说,我希望其他人能够连接到服务器,但服务器无法启动到其他服务器的远程连接。
我怎样才能做到这一点?
我正在使用 Ubuntu。
Die*_*ina 10
阻止所有传出连接是一个坏主意,因为这会阻止您从在线存储库安装软件、进行 DNS 搜索(这在大多数环境中会很糟糕)、使用 NTP 更新时钟等。无论如何,如果您仍然想要要做到这一点,试试这个:
# Drop all connections initiated from this host
iptables -t filter -I OUTPUT 1 -m state --state NEW -j DROP
# Additionally, log the event (optional)
iptables -t filter -I OUTPUT 1 -m state --state NEW -j LOG --log-level warning \
--log-prefix "Attempted to initiate a connection from a local process" \
--log-uid
Run Code Online (Sandbox Code Playgroud)
您可以通过允许某些流量(例如 DNS)来使规则更智能。您可以通过两种方式实现这一目标:
使比赛更加复杂。一两个“白名单”项目就可以了。例子:
# Only forbid non-UDP traffic
iptables -t filter -I OUTPUT 1 -m state --state NEW \! -p udp -j DROP
Run Code Online (Sandbox Code Playgroud)与一些允许从本地主机启动并带有“-j ACCEPT”目标的所需服务相匹配的前置规则。例子:
# Run this after the "DROP" rule to allow connection to ports
#+ 80 and 443, mostly used for HTTP and HTTPS traffic
iptables -t filter -I OUTPUT 1 -p udp -m multiport --ports 80,443 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
19122 次 |
| 最近记录: |