- ベストアンサー
iptableコマンドを複数記載したスクリプトを実行したいです。
Linuxのコマンドについてお聞きしたいです。 iptableコマンドを複数記載したスクリプトを作成し、そのスクリプトを実行することによってパケットフィルタリングの設定をしようと思っています。 Windowsで下記のようなファイルを作成しました。 #!/bin/sh iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE iptables -P INPUT DROP iptables -P FORWARD DROP iptables -A FORWARD -i eth1 -s 192.168.0.0/24 -j ACCEPT iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -i eth0 -d 210.98.76.54 -p tcp --dport 80 -j ACCEPT iptables -A INPUT -i eth1 -d 192.168.0.0/24 -p tcp --dport 22 -j ACCEPT iptables -A INPUT -i eth0 -d 202.228.202.2 -p udp --sport 53 --dport 1024:65535 -j ACCEPT iptables -A INPUT -j LOG --log-prefix "### INPUT ###" iptables -A FORWARD -j LOG --log-prefix "### FORWARD ###" これをLinuxの/rootに作成したbinフォルダにフロッピーでコピーしました。 ファイル名をfilterにしたので、[root@linux root]# filter とし、Enterとし、 スクリプトを実行して設定を反映させようとしました。 しかし、: bad interpreter: そのようなファイルやディレクトリはありません と出てしまいます。 何が足りないのでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
スクリプトをWindowsで作成したからです. 改行コードに余分な<CR>があり,/bin/sh<CR>という コマンドは無いので,bad interpreter になります. dos2unix というコマンドが使えれば,簡単コードを 変換できます. まあ,今後のためには,Linux上でエディタを使える ようになることをお勧めします.
その他の回答 (3)
- astronaut
- ベストアンサー率58% (303/516)
> コード変換は、スクリプトに限らず、すべてのファイル > に必要ですか? べつにそういうことは無いと思いますが,システム設定に かかるようなファイルの改行コードは,UNIX流にしておい た方が無難だと思います.
お礼
そうなんですか。二度にわたる回答、有難うございました!
- xjd
- ベストアンサー率63% (1021/1612)
(追加) filterのある場所にパスは通っていますか? または ./filter とかしてみて下さい。
- xjd
- ベストアンサー率63% (1021/1612)
>Windowsで下記のようなファイルを作成しました。 >これをLinuxの/rootに作成したbinフォルダにフロッピーでコピーしました。 改行コードは変換しましたか? 変換していないなら、nkfコマンドなどで変換して下さい。 実行権は与えましたか? chmodコマンドで実行権を付けて下さい。
お礼
皆さん、ご回答、ありがとうございました!!
補足
そういえば、そうゆうのを聞いたことがありました。 スクリプトを作成した時はコード変換されていないといけないんですね。 dos2unixをやってchmodで700に変更したらできました! ちなみにコード変換は、スクリプトに限らず、すべてのファイルに必要ですか? 私はよく、Windowsで作成したものをフロッピーでLinuxにコピーしてしまうのですが、これはだめなんですか? 例えば、ゾーンデータベースのファイルとか。。 2度目の質問のようになってしまいますが、良かったら教えて下さい。