我是 Linux 服务器新手。我目前正在尝试首次启动并运行 Ubuntu 10.10 服务器,并使用 Webmin 进行管理。我在设置防火墙时遇到困难。我需要做的是仅允许一定范围的 IP(例如 128.171.21.1 - 128.171.21.100)访问 HTTP 服务器和 Webmin。我看过很多教程,但没有一个符合我的需要。
提前致谢!
答案1
DROP
假设您已将默认策略设置为forINPUT
和OUTPUT
chains,则可以使用以下命令来允许访问 HTTP 服务器。
$ sudo iptables -A INPUT -i lo -j ACCEPT
$ sudo iptables -A OUTOUT -i lo -j ACCEPT
$ sudo iptables -A INPUT -s 128.171.21.0/24 -p tcp -m tcp --dport 80 -j ACCEPT
$ sudo iptables -A OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
$ sudo iptables -A OUTPUT -p udp -m udp --dport 53 -j ACCEPT
$ sudo iptables -A INPUT -p udp --sport 53 -m state --state ESTABLISHED -j ACCEPT
$ sudo iptables -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT
$ sudo iptables -A INPUT -p tcp -m tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
所有子网 128.171.21.0/24 都将被允许访问您的 Web 服务器。您可以根据需要进行自定义。
请注意,您可能需要允许其他协议(例如 SSH(端口 22))才能远程访问服务器。
编辑:添加的最后四条规则允许服务器请求 DNS 和 HTTP。
答案2
如果你觉得 iptables 太过神秘,Ubuntu 有一个简单的 iptables 包装器,名为联邦快递。