新しくインストールしたホームサーバーで準備中の問題がいくつかあります。 CentOS7をインストールしましたが、デフォルトでポート80と443がオフになっています。したがって、次のコマンドを使用してそれらをiptablesに追加しました。
iptables -I INPUT 5 -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -I INPUT 5 -i eth0 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
service iptables save
存在しないiptableサービスもインストールしました。問題は、マシンをリブートするたびに新しい構成が消去されることです。
Iptableサービスをchkconfigに追加しようとしましたが、次のエラーが発生しました。
[root@CentOS-7]# chkconfig --add iptables
error reading information on service iptables: No such file or directory
このエラーが発生する理由は、/ etc/init.d /にiptableスクリプトがないためだと思いますが、実際に正しいことをしている場合や、より簡単な方法がある場合は、誰かにアイデアがありますこの?そうでない場合、どうすればこの問題を解決できますか?最後に、ホームサーバーをWeb /メールサーバーとして使用する必要があります...
私はまた、フレミングゴウイルスが親切に提案したように 'systemctl enable iptables'コマンドを使用しようとしましたが、成功しませんでした。コマンドを入力した後、次の出力が表示されました。
ln -s '/usr/lib/systemd/system/iptables.service' '/etc/systemd/system/basic.target.wants`/iptables.service'`
更新:iptablesを見てきましたが、コマンド "service iptables save"は正しく機能しました。問題は、再起動時にサービスが開始されないことが原因のようです。 /etc/rc.localに次の行を追加した後、再起動時にサービスを実行することができました
systemctl start iptables.service
ただし、この場合、「systemctl enable iptables」コマンドが機能しないのはなぜですか。何か不足していますか?ありがとう
この質問は古いですが、同じ問題に遭遇し、解決策 here を発見しました。
systemctl mask firewalld
systemctl stop firewalld
基本的にファイアウォールで保護されているとiptablesが競合するため、iptablesが読み込まれなくなります。
# cat /usr/lib/systemd/system/firewalld.service
[Unit]
Description=firewalld - dynamic firewall daemon
Before=network.target
Before=libvirtd.service
Before=NetworkManager.service
Conflicts=iptables.service ip6tables.service ebtables.service
...
私は、firewalldをマスクして、自動的に起動せず、その後は起動しないようにすることで、これを解決できました。もちろん、iptablesが有効になっていることを確認する必要があります。
systemctl enable iptables
initスクリプトはなくなりました。現在はsystemctl
です。すべてのCentOS7ドキュメントにあります。起動時にchtconfig ipatablesまたはiptablesサービスを開始するには、これを使用する必要があります:-
systemctl enable iptables
iptables のCybercitiドキュメントで、systemctlについて知っておくべき簡単なことをチェックアウトする必要があります。
まず最初に#chkconfig --add /sbin/iptables
を試してみてください。これにより「iptables」が認識されます。次に、iptables構成用のスクリプトを作成し、そのスクリプトを起動時に開始するようにします。スクリプトを作成します。
#!/bin/bash
#
iptables -I INPUT 5 -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -I INPUT 5 -i eth0 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
/sbin/service iptables save
たとえば、myfirewall
などの名前を付けます。 chmod +x myfirewall
で実行可能にして、これを./myfirewall
に/etc/rc.local
に書き込んで、起動時にスクリプトを開始します。