LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1389|回复: 3

slackware-10.1 下 adsl 拨号上网的 iptables 防火墙设置

[复制链接]
发表于 2005-8-2 20:09:23 | 显示全部楼层 |阅读模式
因为家里的机器是使用adls拨号上网,为了防止家伙们对我的机器作端口扫描,因此设置好防火墙显得比较重要起来。
      我尝试了普通方式来设置iptables,发现一般的设置方法并不能很好的满足我的需要,主要是因为ppp的联结建立在放火墙脚本运行(通过手工编写/etc/rc.d/rc.firewall)后。觉得更好的的方法是用rp-pppoe来调用你的防火墙设置,因为rp-pppoe的配置文件(/etc/ppp/pppoe.conf)中有一个选项,具体可以参考slackware下面/etc/ppp目录下的两个放火墙设置脚本,虽然是针对ipchains写的,但可以换成iptabes改写。在ppp建立后,iptables的规则就可以生效了。


在 /etc/ppp目录下有两个脚本firewall-masq和firewall-standalone,对应于/etc/ppp/pppoe.conf中的两个选项 FIREWALL=MASQUERADE 或 FIREWALL= STANDALONE 这两个脚本都是基于ipchains的,
通过 /usr/sbn/adsl-connect 脚本调用(被adsl-start间接调用)。

下面是一个我写的一个基本的/etc/rc.d/rc.firewall示例
  1. #!/bin/sh
  2. # Start/stop/restart the firewall ($IPT)

  3. IPT="/usr/sbin/iptables"

  4. # Start firewall:
  5. firewall_start() {
  6.   $IPT -P INPUT DROP
  7.   $IPT -P FORWARD DROP

  8.   $IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  9.   $IPT -A INPUT -s 127.0.0.0/8 -d 127.0.0.0/8 -i lo -j ACCEPT

  10. # SSHD
  11.   $IPT -A INPUT -p tcp --dport 22 -i ppp0 -j ACCEPT

  12. # Bittorrent
  13.   $IPT -A INPUT -p tcp --dport 6881:6889 -i ppp0 -j ACCEPT

  14. # BitTornado
  15.   $IPT -A INPUT -p tcp --dport 10000:60000 -i ppp0 -j ACCEPT

  16.   $IPT -A INPUT -p icmp -j ACCEPT
  17. }

  18. # Stop firewall:
  19. firewall_stop() {
  20.   $IPT -P INPUT ACCEPT
  21.   $IPT -P FORWARD ACCEPT
  22.   $IPT -F
  23.   $IPT -X
  24. }

  25. # Restart firewall:
  26. firewall_restart() {
  27.   firewall_stop
  28.   sleep 1
  29.   firewall_start
  30. }

  31. case "$1" in
  32. 'start')
  33.   firewall_start
  34.   ;;
  35. 'stop')
  36.   firewall_stop
  37.   ;;
  38. 'restart')
  39.   firewall_restart
  40.   ;;
  41. *)
  42.   echo "usage $0 start|stop|restart"
  43. esac

  44. 下面是用adsl-connect调用的改写后的/etc/ppp/firewall-standalone
  45. #!/bin/sh
  46. # Start the firewall ($IPT)

  47. IPT="/usr/sbin/iptables"

  48. $IPT -P INPUT DROP
  49. $IPT -P FORWARD DROP

  50. $IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  51. $IPT -A INPUT -s 127.0.0.0/8 -d 127.0.0.0/8 -i lo -j ACCEPT

  52. # SSHD
  53. $IPT -A INPUT -p tcp --dport 22 -i ppp0 -j ACCEPT

  54. # Bittorrent
  55. $IPT -A INPUT -p tcp --dport 6881:6889 -i ppp0 -j ACCEPT

  56. # BitTornado
  57. $IPT -A INPUT -p tcp --dport 10000:60000 -i ppp0 -j ACCEPT

  58. $IPT -A INPUT -p icmp -j ACCEPT
复制代码


两种方法都可以对ppp0建立规则,但区别在ppp0连接前建立和连接后建立,那种更好,我也不知道:-P
发表于 2005-8-5 08:53:42 | 显示全部楼层
兄弟能否把防火墙的脚本分享一下?

谢谢。。。

北南 呈上
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-8-5 11:00:15 | 显示全部楼层
在 /etc/ppp目录下有两个脚本firewall-masq和firewall-standalone,对应于/etc/ppp/pppoe.conf中的两个选项 FIREWALL=MASQUERADE 或 FIREWALL= STANDALONE 这两个脚本都是基于ipchains的,
通过 /usr/sbn/adsl-connect 脚本调用(被adsl-start间接调用)。

下面是一个我写的一个基本的/etc/rc.d/rc.firewall示例
  1. #!/bin/sh
  2. # Start/stop/restart the firewall ($IPT)

  3. IPT="/usr/sbin/iptables"

  4. # Start firewall:
  5. firewall_start() {
  6.   $IPT -P INPUT DROP
  7.   $IPT -P FORWARD DROP

  8.   $IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  9.   $IPT -A INPUT -s 127.0.0.0/8 -d 127.0.0.0/8 -i lo -j ACCEPT

  10. # SSHD
  11.   $IPT -A INPUT -p tcp --dport 22 -i ppp0 -j ACCEPT

  12. # Bittorrent
  13.   $IPT -A INPUT -p tcp --dport 6881:6889 -i ppp0 -j ACCEPT

  14. # BitTornado
  15.   $IPT -A INPUT -p tcp --dport 10000:60000 -i ppp0 -j ACCEPT

  16.   $IPT -A INPUT -p icmp -j ACCEPT
  17. }

  18. # Stop firewall:
  19. firewall_stop() {
  20.   $IPT -P INPUT ACCEPT
  21.   $IPT -P FORWARD ACCEPT
  22.   $IPT -F
  23.   $IPT -X
  24. }

  25. # Restart firewall:
  26. firewall_restart() {
  27.   firewall_stop
  28.   sleep 1
  29.   firewall_start
  30. }

  31. case "$1" in
  32. 'start')
  33.   firewall_start
  34.   ;;
  35. 'stop')
  36.   firewall_stop
  37.   ;;
  38. 'restart')
  39.   firewall_restart
  40.   ;;
  41. *)
  42.   echo "usage $0 start|stop|restart"
  43. esac

  44. 下面是用adsl-connect调用的改写后的/etc/ppp/firewall-standalone
  45. #!/bin/sh
  46. # Start the firewall ($IPT)

  47. IPT="/usr/sbin/iptables"

  48. $IPT -P INPUT DROP
  49. $IPT -P FORWARD DROP

  50. $IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  51. $IPT -A INPUT -s 127.0.0.0/8 -d 127.0.0.0/8 -i lo -j ACCEPT

  52. # SSHD
  53. $IPT -A INPUT -p tcp --dport 22 -i ppp0 -j ACCEPT

  54. # Bittorrent
  55. $IPT -A INPUT -p tcp --dport 6881:6889 -i ppp0 -j ACCEPT

  56. # BitTornado
  57. $IPT -A INPUT -p tcp --dport 10000:60000 -i ppp0 -j ACCEPT

  58. $IPT -A INPUT -p icmp -j ACCEPT
复制代码


两种方法都可以对ppp0建立规则,但区别在ppp0连接前建立和连接后建立,那种更好,我也不知道:-P
回复 支持 反对

使用道具 举报

发表于 2005-8-5 13:50:39 | 显示全部楼层
谢谢。兄弟修正的,我已经在第一帖中已经改正了。

已经投入 http://slack.linuxsir.cn

辛苦了。。

北南 呈上
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表