CenOS/RHEL7에서 다시 시작한 후 iptables 서비스가 자동으로 시작되도록 하는 방법은 무엇입니까?

CenOS/RHEL7에서 다시 시작한 후 iptables 서비스가 자동으로 시작되도록 하는 방법은 무엇입니까?

준비하고 있는 새로 설치한 홈서버에 문제가 생겼습니다. 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 서비스도 설치했습니다. 문제는 컴퓨터를 재부팅할 때마다 새 구성이 지워진다는 것입니다.

chkconfig에 iptable 서비스를 추가하려고 시도했지만 다음 오류가 발생했습니다.

[root@CentOS-7]# chkconfig --add iptables
error reading information on service iptables: No such file or directory

이 오류가 발생하는 이유는 /etc/init.d/에 iptable 스크립트가 없기 때문이라고 생각합니다. 그러나 실제로 올바른 일을 하고 있거나/또는 더 쉽고 안정적인 방법이 있다면 누구든지 스크립트를 가지고 계시나요? 이에? 그렇지 않다면 어떻게 이 문제를 해결할 수 있습니까? 결국 홈 서버를 웹/메일 서버로 사용해야 했는데...

나는 또한 flemingovirus가 제안한 대로 "systemctl 활성화 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 활성화 iptables" 명령이 작동하지 않는 이유를 알고 싶습니다. 내가 뭐 놓친 거 없니? 감사해요

답변1

이 질문은 오래되었지만 동일한 문제에 직면하여 해결책을 찾았습니다.여기.

systemctl mask firewalld
systemctl stop firewalld

기본적으로 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

...

방화벽이 자동으로 시작되지 않고 다시 시작되지 않도록 차단하여 이 문제를 해결할 수 있었습니다. 물론 iptables가 활성화되어 있는지 확인해야 합니다.

systemctl enable iptables

답변2

초기화 스크립트가 사라졌습니다. 이제 systemctl모든 CentOS7 문서에 있습니다. 부팅 시 ipatables를 chkconfig하거나 iptables 서비스를 시작하려면 다음 명령을 사용해야 합니다.

systemctl은 iptable을 활성화합니다.

Cyberciti 문서에서 systemctl에 대한 간단한 지식을 확인해야 합니다.iptables.

답변3

먼저 시도해 보면 #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

관련 정보