我最近在蜂窝网络上激活了 3G(UMTS)连接。我使用 Nokia S60 手机作为调制解调器,并从 Scientific Linux 6 进行连接。
虽然我可以很好地访问网络,但问题是我的电脑被托管了。通过在 Web 浏览器中使用 ip 地址,任何人都可以访问我的本地主机(运行 apache),而在我的有线(ADSL)连接上永远不会发生这种情况。此外,甚至 Shell 提示符也从:
[mach2@localhost ~]$
到
[[email protected] ~]$
其中 XX.XX.XX.XX 是 3G 连接的 IP。将我的机器“置于野外”的想法令人不安。我该如何在不禁用 apache、sshd 等服务的情况下纠正这种情况?
答案1
由于 GSM 运营商为您分配了公共 IP,因此您应该确保在连接上启用了防火墙。在 Linux 中,防火墙基于 netfilter(iptables)。大多数发行版都有 GUI 来设置它。但是,如果您错过了,您可以手动设置最小规则集:
$ iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$ iptables -A INPUT -p icmp -j ACCEPT
$ iptables -A INPUT -i lo -j ACCEPT
$ iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited
$ iptables -A FORWARD -j REJECT --reject-with icmp-host-prohibited
或者把规则放进去/etc/sysconfig/iptables
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
然后确保 iptables init 脚本在启动时启动:
$ chkconfig iptables on
并启动它:
$ service iptables start
答案2
如果不了解配置细节,很难回答这个问题。但是,使用 ADSL 时,您最有可能连接到运行防火墙 (iptables) 的路由器,该防火墙不允许任何外部连接。这就是为什么当想要从外部看到 sshd 时,必须明确转发端口的原因。
使用 3G 取决于您的移动提供商的配置。有些提供商禁止来自外部的连接,但大多数提供商不禁止。因此,您必须正确设置 iptables 防火墙,以拒绝来自 3G 设备的任何不属于已建立连接的传入数据包。
您的提示符(假设您使用 bash)由环境变量设置$PS1
,通常显示主机名。它可以通过 in 设置。根据您的配置,当您连接到提供商时,您的主机名可能会被 DHCP 更改。尝试使用in/etc/sysconfig/network
设置您想要的主机名(将 eth0 更改为您的网络设备)dhcp_hostname=your.hostname.here
/etc/sysconfig/network-scripts/ifcfg-eth0