明確なSuSE - ファイアウォールを設定するには?

明確なSuSE - ファイアウォールを設定するには?

ファイアウォールが無効になっているコンピュータでいくつかのルールを実行していますが、rcSuSEfirewall2を実行すると、デフォルトで多くのルールとポリシーが適用されます。

iptables -L

Chain INPUT (policy DROP)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere            state ESTABLISHED
ACCEPT     icmp --  anywhere             anywhere            state RELATED
input_ext  all  --  anywhere             anywhere
input_ext  all  --  anywhere             anywhere
LOG        all  --  anywhere             anywhere            limit: avg 3/min bu                                                                                        rst 5 LOG level warning tcp-options ip-options prefix `SFW2-IN-ILL-TARGET '
DROP       all  --  anywhere             anywhere

Chain FORWARD (policy DROP)
target     prot opt source               destination
LOG        all  --  anywhere             anywhere            limit: avg 3/min bu                                                                                        rst 5 LOG level warning tcp-options ip-options prefix `SFW2-FWD-ILL-ROUTING '

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere

Chain forward_ext (0 references)
target     prot opt source               destination

Chain input_ext (2 references)
target     prot opt source               destination
DROP       all  --  anywhere             anywhere            PKTTYPE = broadcast                                                                                        
ACCEPT     icmp --  anywhere             anywhere            icmp source-quench
ACCEPT     icmp --  anywhere             anywhere            icmp echo-request
LOG        all  --  anywhere             anywhere            limit: avg 3/min bu                                                                                        rst 5 PKTTYPE = multicast LOG level warning tcp-options ip-options prefix `SFW2-                                                                                        INext-DROP-DEFLT '
DROP       all  --  anywhere             anywhere            PKTTYPE = multicast                                                                                        
DROP       all  --  anywhere             anywhere            PKTTYPE = broadcast                                                                                        
LOG        tcp  --  anywhere             anywhere            limit: avg 3/min bu                                                                                        rst 5 tcp flags:FIN,SYN,RST,ACK/SYN LOG level warning tcp-options ip-options pre                                                                                        fix `SFW2-INext-DROP-DEFLT '
LOG        icmp --  anywhere             anywhere            limit: avg 3/min bu                                                                                        rst 5 LOG level warning tcp-options ip-options prefix `SFW2-INext-DROP-DEFLT '
LOG        udp  --  anywhere             anywhere            limit: avg 3/min bu                                                                                        rst 5 state NEW LOG level warning tcp-options ip-options prefix `SFW2-INext-DROP                                                                                        -DEFLT '
DROP       all  --  anywhere             anywhere

Chain reject_func (0 references)
target     prot opt source               destination
REJECT     tcp  --  anywhere             anywhere            reject-with tcp-res                                                                                        et
REJECT     udp  --  anywhere             anywhere            reject-with icmp-po                                                                                        rt-unreachable
REJECT     all  --  anywhere             anywhere            reject-with icmp-pr                                                                                        oto-unreachable

私の質問で続ける:起動時にACCEPTチェーンのすべてのポリシーを表示するようにSuseファイアウォールを設定するにはどうすればよいですか?このように:

iptables -L

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
(my custom DROP Rule)

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

PS:無意味に聞こえますが、ルールを追加したからです。/etc/sysconfig/scripts/SuSEfirewall2-custom

SuSE Linux Enterprise Server 11 Service Pack 3を使用しています。

修正する:

ポリシーを「承認」に設定するオプションがあるかどうかを確認するために、Yast Firewallを再確認しました。

答え1

まあ、私はこの回避策を共有したいと思います。私が望むほどエレガントではありませんが、うまくいきます。

まずファイルを作成し、必要に応じて呼び出します。fwsrv

#!/bin/bash
# Author: Francisco Tapia
#
# /etc/init.d/fwsrv
#
### BEGIN INIT INFO
# Provides:          fwsrv
# Required-Start:    network
# Should-Start:      $null
# Required-Stop:     $null
# Should-Stop:       $null
# Default-Start:     5
# Default-Stop:      5
# Short-Description: Executes iptables rules.
# Description:       this is not a service.
### END INIT INFO

. /etc/rc.status

rc_reset

case "$1" in
   start)
     # use colour for ease of spotting
      echo -e "\E[36mRunning $0 (start)...\E[0m";
      /etc/init.d/fwsrv.d/start
      echo -e "\E[36mDone $0 \E[0m";
   ;;
   stop)

      echo -e "\E[36mRunning $0 (stop)...\E[0m";
      /etc/init.d/fwsrv.d/stop
      echo -e "\E[36mDone $0 \E[0m";
   ;;
   restart)
      $0 stop
      $0 start
      rc_status
      ;;
   *)
      echo "Usage $0 (start|stop|restart)"
      exit 1; 
      ;;
esac 

rc_exit

次に、2つのファイルを生成します。 1 つは名前が付けられ、startもう 1 つstopはスクリプトにこの内容が含まれます。

#!/bin/bash

# run scripts with names starting 0-9 in foreground. if you want to
# put a script in start.d and you care about when it gets run in relation
# to other scripts, give it a name starting 0-9
for i in $(dirname $0)/start.d/[0-9]*;do
   test -x $i && echo -e "\E[36mRunning ${i} \E[0m" && $i
done

# run scripts with names starting a-z in the background 
# as this reduces the over all time this script takes to run.
for i in $(dirname $0)/start.d/[a-z]*;do
   test -x $i && echo -e "\E[36mRunning ${i} \E[0m" && $i &
done

# wait for children to exit
wait;

最後のルールはルールと呼ばれ、これには私が望むすべてのルールが含まれます。

#!/bin/bash
rcSuSEfirewall2 start
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -F
#My Desired Rules

次に、端末で次のコマンドを実行します。

cp fwsrv /etc/init.d/fwsrv
chmod u+x /etc/init.d/fwsrv
mkdir -p /etc/init.d/fwsrv.d/start.d
mkdir -p /etc/init.d/fwsrv.d/stop.d
cp start /etc/init.d/fwsrv.d/start
cp stop /etc/init.d/fwsrv.d/stop
chmod u+x /etc/init.d/fwsrv.d/start
chmod u+x /etc/init.d/fwsrv.d/stop
cp rules /etc/init.d/fwsrv.d/start.d/rules
chmod u+x /etc/init.d/fwsrv.d/start.d/rules
insserv /etc/init.d/fwsrv

マシンは起動時にファイアウォールを起動し、すべてのルールをクリーンアップし、カスタムルールを適用します。さらにルールを追加するには、ルールファイルを編集してください。/etc/init.d/fwsrv.d/start.d/

関連情報