分页: 1 / 2

[问题] iptables配置,请高手给予指点

发表于 : 2008-05-28 16:28
wdb2005
通过看wiki,不是很明白,将我的配置过程设计如下,请高手给予指正。我的服务器提供WEB、FTP、SSH服务。

因为网站在运行,不敢瞎试。我是新手。

iptables -F
iptables -X
#初始化

iptables -P INPUT DROP
#禁止所有连入的请求

iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
#开启80、20-22端口,对应的WEB、FTP、SSH服务。

iptables-save > /etc/iptables.up.rule
#存储当前的iptables的配置到/etc下。

sudo gedit /etc/network/interfaces
#编辑网卡配置

pre-up iptables-restore < /etc/iptables.up.rules
#在配置文件最后加上这一句,启动自动调用已存储的iptables

post-down iptables-save > /etc/iptables.up.rule
#在配置文件最后加上这一句,关机时,把当前iptables 储存

发表于 : 2008-05-29 2:01
gxmama
我很佩服用命令行一点点敲的勇士们,为何不装个图形设置工具?比如:FWbuilder

Re: [问题] iptables配置,请高手给予指点

发表于 : 2008-05-29 2:21
yjcong
wdb2005 写了:通过看wiki,不是很明白,将我的配置过程设计如下,请高手给予指正。我的服务器提供WEB、FTP、SSH服务。

因为网站在运行,不敢瞎试。我是新手。

iptables -F
iptables -X
#初始化

iptables -P INPUT DROP
#禁止所有连入的请求

iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
#开启80、20-22端口,对应的WEB、FTP、SSH服务。

iptables-save > /etc/iptables.up.rule
#存储当前的iptables的配置到/etc下。

sudo gedit /etc/network/interfaces
#编辑网卡配置

pre-up iptables-restore < /etc/iptables.up.rules
#在配置文件最后加上这一句,启动自动调用已存储的iptables

post-down iptables-save > /etc/iptables.up.rule
#在配置文件最后加上这一句,关机时,把当前iptables 储存
问楼主, 怎么用iptables控制连出的端口??

发表于 : 2008-05-29 6:56
hcym
比如:FWbuilder
:roll:

Re: [问题] iptables配置,请高手给予指点

发表于 : 2008-05-30 21:22
sammeme
wdb2005 写了:通过看wiki,不是很明白,将我的配置过程设计如下,请高手给予指正。我的服务器提供WEB、FTP、SSH服务。

因为网站在运行,不敢瞎试。我是新手。

iptables -F
iptables -X
#初始化

iptables -P INPUT DROP
#禁止所有连入的请求

iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
#开启80、20-22端口,对应的WEB、FTP、SSH服务。

iptables-save > /etc/iptables.up.rule
#存储当前的iptables的配置到/etc下。

sudo gedit /etc/network/interfaces
#编辑网卡配置

pre-up iptables-restore < /etc/iptables.up.rules
#在配置文件最后加上这一句,启动自动调用已存储的iptables

post-down iptables-save > /etc/iptables.up.rule
#在配置文件最后加上这一句,关机时,把当前iptables 储存
就策略而言,没什么问题。只是你的内网外网不分。ssh 你最好还是限制连入的IP (或者用 VPN),要不你就等着别人孜孜不倦的用字典暴力攻击吧。

Linux强悍的地方在于命令行,图形界面是它的弱项,所以那些图形化的工具基本上都是鸡肋。

如果你的主机处理器在奔三级别以上,你可以用shorewall。偶的防火墙就一 200兆HZ MIPS 处理器跑shorewall 太吃力只能用iptables.

正在看QoS, 先忙去了。

发表于 : 2008-06-01 10:14
wdb2005
我的服务器是局域网内的,所以不考虑外网上的一些东西。

另外我按这个设置我试了一下,FTP不能用,而且WEB好像速度比以前慢了很多。


我用的是ubuntu 710 server 系统,继续求助中。。。。。

发表于 : 2008-06-02 17:18
sammeme
wdb2005 写了:我的服务器是局域网内的,所以不考虑外网上的一些东西。

另外我按这个设置我试了一下,FTP不能用,而且WEB好像速度比以前慢了很多。


我用的是ubuntu 710 server 系统,继续求助中。。。。。
如果你的ssh, http可以用,我不觉的是防火墙的问题。不管怎样你可以试一下下面的 (如果你的服务器只有一个网卡的话)

iptables -P OUTPUT ACCEPT

不知道你是不是用自己编译的内核?

发表于 : 2008-06-03 8:59
wdb2005
我倒想自己编译内核,关键没那能耐,呵呵

我的服务器一块网卡,配置了两个IP,一个做WEB,一个做FTP

发表于 : 2008-06-03 17:52
sammeme
wdb2005 写了:我倒想自己编译内核,关键没那能耐,呵呵

我的服务器一块网卡,配置了两个IP,一个做WEB,一个做FTP
自己编辑内核,有时候经常少编了内核模块进去。到要用的时候只好抓狂。

帮你改了一下:

代码: 全选

#!/bin/bash

IPTABLES=/sbin/iptables

$IPTABLES -F
$IPTABLES -F -t nat
$IPTABLES -F -t mangle
$IPTABLES -X
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

$IPTABLES -P INPUT ACCEPT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT

$IPTABLES -A INPUT -m multiport -p tcp --dport 20:21 -j LOG --log-prefix "网路接入..FTP..  "
$IPTABLES -A INPUT  -p tcp --dport 22 -j LOG --log-prefix "网路接入..SSH..  "
$IPTABLES -A INPUT  -p tcp --dport 80 -j LOG --log-prefix "网路接入..HTTP..  "


$IPTABLES -A INPUT -m multiport -p tcp --dport 20:22,80 -j ACCEPT

$IPTABLES -A INPUT DROP

$IPTABLES -A FORWARD DROP

echo 1 > /proc/sys/net/ipv4/ip_forward

echo "[+] iptables policy activated"
查看系统日志如下

tail -f /var/log/syslog

如果有人链接到你服务器上那些指定的服务的话,系统日志会显示详细的链接信息。

发表于 : 2008-06-03 19:25
wdb2005
我可能说得不对啊,我对你的配置提点疑问

1、iptables是从上往下执行的,我看了好几个配置都是先禁止所有联接,然后允许需要打开的连接,你在最后禁止了所有的连接,是不是最后全部禁止连接了。(从网上看资料自己理解的)你之所以这么设是不是在这之前的三个允许全部通过设置起作用?

2、我想知道你为什么不设 iptables -P OUTPUT DROP 呢?

3、有三个设置后面你写了注释,但这之后的一条设置允许20.22.80是为什么?这之前你不是已经允许20.21.22.80通过了吗?最好你能将每条设置后面都加个注释最好了,我好多没看明白,尤其是最后两条。


第一次搞iptables,问的问题你别见笑啊

发表于 : 2008-06-04 18:47
sammeme
wdb2005 写了:我可能说得不对啊,我对你的配置提点疑问

1、iptables是从上往下执行的,我看了好几个配置都是先禁止所有联接,然后允许需要打开的连接,你在最后禁止了所有的连接,是不是最后全部禁止连接了。(从网上看资料自己理解的)你之所以这么设是不是在这之前的三个允许全部通过设置起作用?

2、我想知道你为什么不设 iptables -P OUTPUT DROP 呢?

3、有三个设置后面你写了注释,但这之后的一条设置允许20.22.80是为什么?这之前你不是已经允许20.21.22.80通过了吗?最好你能将每条设置后面都加个注释最好了,我好多没看明白,尤其是最后两条。


第一次搞iptables,问的问题你别见笑啊
1. iptables 规则是有先后顺序的,最先启用的规则有优先权(即先被执行)。如果有两条规则相抵触那么根据最先执行的规则为准。我这里说的是规则而不是默认的策略(-P)
2. 为什么我不设这个默认的“出”策略。所有的沟通都是双向的,所以有进无出只是监听机器人的行为。
3. 注释仅仅是注释,它不具有允许或者阻止连接的功能。

令:倒数第两条是允许网络连结的再传递,你的box即不做gateway 也不做 路由 我觉得你暂时用不到。最后一条是提示你该脚本执行完毕。

发表于 : 2008-06-05 10:35
wdb2005
$IPTABLES -A INPUT -m multiport -p tcp --dport 20:21 -j LOG --log-prefix
$IPTABLES -A INPUT -p tcp --dport 22 -j LOG --log-prefix
$IPTABLES -A INPUT -p tcp --dport 80 -j LOG --log-prefix


这三条与下面这条设置是什么关系啊?能解释一下吗?

$IPTABLES -A INPUT -m multiport -p tcp --dport 20:22,80 -j ACCEPT

发表于 : 2008-06-05 22:06
sammeme
wdb2005 写了:$IPTABLES -A INPUT -m multiport -p tcp --dport 20:21 -j LOG --log-prefix
$IPTABLES -A INPUT -p tcp --dport 22 -j LOG --log-prefix
$IPTABLES -A INPUT -p tcp --dport 80 -j LOG --log-prefix


这三条与下面这条设置是什么关系啊?能解释一下吗?

$IPTABLES -A INPUT -m multiport -p tcp --dport 20:22,80 -j ACCEPT
在上封回复我已经解释的很清楚了。前三句用来做日志记录,最后一句是真正的允许规则.

发表于 : 2008-06-10 16:41
wdb2005
iptables v1.3.6: Unknown arg `--log-prefix'


执行到
IPTABLES -A INPUT -m multiport -p tcp --dport 20:21 -j LOG --log-prefix "网路接入..FTP.. "

提示上面的错误。

发表于 : 2008-06-19 16:28
myit_sh
iptables 的优先级是按队列 顺序执行的, -A, (append)即在加在队列后面, 优先级较低, -I (insert) 加到队列前面, 强制提高优先级.