Debian 11で「見つかりません:/ sbin / iptables」を修正する方法

Debian 11で「見つかりません:/ sbin / iptables」を修正する方法

研究用プロキシサーバーで実験的な作業をしようとしています。私はこのトピックについて何も知りませんが、助けが必要であることをすぐに警告する必要があります。私は先生の指示に従ってすべてのことをしました。したがって、問題の鍵は次のとおりです。

iptables.sh file次のようなものがあります。

    #!/bin/bash
    
    IPTABLES=' /sbin/iptables'
    EXTIF='enp0s3'
    INTIF1='enp0s8'
    /bin/echo 1 > /proc/sys/net/ipv4/ip_forward
    $IPTABLES -F
    $IPTABLES -t nat -F
    $IPTABLES -t mangle -F
    $IPTABLES -X
    $IPTABLES -t nat -X
    $IPTABLES -t mangle -X
    $IPTABLES -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE
    $IPTABLES -A FORWARD -i $INTIF1 -o $EXTIF -m state --state NEW,ESTABLISHED -j ACCEPT
    
    iptables -t nat -A PREROUTING -p tcp -m tcp -s 10.20.2.0/24 --dport 443 -j REDIRECT --to-ports 3129
    iptables -t nat -A PREROUTING -p tcp -m tcp -s 10.20.2.0/24 --dport 80 -j REDIRECT --to-ports 3128
    
    #iptables -t nat -A OUTPUT -o lo -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
    #iptables -t nat -A PREROUTING -i enp0s3 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
    #iptables -t nat -A OUTPUT -o lo -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 3128
    #iptables -t nat -A PREROUTING -i enp0s3 -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 3128
    
    $IPTABLES -A INPUT --protocol tcp --dport 22 -j ACCEPT
    $IPTABLES -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
    $IPTABLES -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT
    $IPTABLES -A INPUT -i $EXTIF -m state --state NEW,INVALID -j DROP
    #$IPTABLES -A FORWARD -i $EXTIF -m state --state NEW,INVALID -j DROP

仮想マシンで root として次のコマンドを実行すると、sh iptables.sh次の結果が表示されます。

ここに画像の説明を入力してください。

見つかりません: /sbin/iptables

原因は何ですか?解決策は何ですか?

答え1

ファイルにWindowsスタイルの行終端があるようです。

テストするにはコマンドを使用してくださいfile iptables.sh

出力は次のようになります。

iptables.sh: Bourne-Again shell script, ASCII text executable, with CRLF line terminators

存在する場合は、with CRLF line terminatorsUnixスタイルの行終端を使用するようにスクリプトを変換する必要があります。

fromdos iptables.sh   # in package "tofrodos"

または

dos2unix iptables.sh   # in package "dos2unix"

それでもエラーが発生する場合は、行3で変数の割り当てを確認してください。

IPTABLES=' /sbin/iptables'

先頭の空白文字が/sbinALT空白またはその他の空白以外の文字の場合、一部のエラーが発生する可能性があります。スペースは不要なので削除してください。

IPTABLES='/sbin/iptables'

関連情報