CentOS 7 저장 iptables 설정


58

문제 : 서버가 재부팅 된 후 iptables가 기본 설정으로 재설정됩니다.

다음과 같이 규칙을 설정하려고합니다.

iptables -I INPUT -p tcp --dport 3000 -j ACCEPT

그 후 나는 :

service iptables save

그리고 이런 식으로 다시 씁니다.

iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]

그리고이 후에 나는 방금 달렸다 (이것은 한 번 이루어졌다) :

chkconfig iptables on (재부팅 후 설정을 복원하려면이 작업을 수행해야한다는 것을 읽었습니다)

그 후 재부팅 하고이 명령을 실행하십시오.

systemctl list-unit-files | grep iptables

iptables.service가 활성화되어 있지만 포트 3000을 여는 규칙은 더 이상 작동하지 않습니다.

이 설정을 어떻게 유지합니까?


왜 방화벽을 사용하지 않았습니까? 아마도 여전히 실행 중입니다.
Michael Hampton

아마도 방화벽은 서버 환경에 적합하지 않기 때문에 ...
Juan Jimenez

답변:


67

CentOS 7은 이제 FirewallD를 사용하고 있습니다!

예:

firewall-cmd --zone=public --add-port=3000/tcp --permanent

새로 고침 규칙 :

firewall-cmd --reload

2
AWS AMI의 centos7 이미지에 firewallD가없는 이유는 무엇입니까?
Saad Masood

5
또는 방화벽을 비활성화하고 "iptables-services"패키지를 설치하여 거의 기본 iptables 호환성을 달성 할 수 있습니다 :)
vagarwal

1
나는 80 포트 포워딩 설정 시도 - 보라 (위해> 8180을 --zone=trustedfirewalld-CMD로를)하지만 (이 작동 작동하지 않습니다 --zone=public의 iptables에 이렇게) sudo /sbin/iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8180 ; sudo /sbin/iptables -t nat -I OUTPUT -o lo -p tcp --dport 80 -j REDIRECT --to-port 8180작품 (그러나 각 firewalld --reload상태 해제이 상실)
DJB

@saad : aws는 이미 방화벽 서비스를 제공하기 때문에 ami를 작게 유지할 수 있습니다.
roothahn

그렇지 않습니다! Centos 7 VPS를 주문했는데 기본적으로 iptables가 있습니다! 운영체제 버전 : 7.5.1804 (Core)
codezombie

66

다음 명령으로 방화벽을 비활성화하십시오.

systemctl disable firewalld

그런 다음 다음 명령을 사용하여 iptables-service를 설치하십시오.

yum install iptables-services

그런 다음 iptables를 서비스로 활성화하십시오.

systemctl enable iptables

이제 다음 명령으로 iptable 규칙을 저장할 수 있습니다.

service iptables save

22

CentOS는 최소 7에서 당신은 설치해야 할 iptables-services패키지를 (덕분에 @RichieACC 에 대한 제안을 ) :

sudo yum install -y iptables-services

그런 다음 다음을 사용하여 서비스를 활성화하십시오 systemd.

sudo systemctl enable iptables.service

그리고 initscript를 실행하여 방화벽 규칙을 저장하십시오.

sudo /usr/libexec/iptables/iptables.init save

2

아마도 이런 스크립트가 누군가에게 도움이 되었습니까?

방화벽을 제거하고 INPUT 테이블의 현재 규칙을 플러시하므로 현재 구성된 모든 항목을 잃게됩니다 .

yum remove firewalld && yum install iptables-services

iptables --flush INPUT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT            # Any packages related to an existing connection are OK
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT   # ssh is OK
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 3000 -j ACCEPT   # Port 3000 for IPv4 is OK
iptables -A INPUT -j REJECT # any other traffic is not welcome - this should be the last line
service iptables save       # Save IPv4 IPTABLES rules van memory naar disk
systemctl enable iptables   # To make sure the IPv4 rules are reloaded at system startup

IPv6 트래픽에 의해 시스템이 (현재 또는 나중에) 도달 할 수있는 경우에 동일하게 원하는 것 같습니다.

ip6tables --flush INPUT
ip6tables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT            # Any packages related to an existing connection are OK
ip6tables -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT   # ssh is OK
ip6tables -A INPUT -m state --state NEW -m tcp -p tcp --dport 3000 -j ACCEPT   # Port 3000 for IPv6 is OK
ip6tables -A INPUT -j REJECT # any other traffic is not welcome - this should be the last line
service ip6tables save       # Save IPv6 IPTABLES rules van memory naar disk
systemctl enable ip6tables   # To make sure the IPv6 rules are reloaded at system startup

1

/ etc / sysconfig / iptables 파일을 직접 수정할 수 있습니다. iptables 서비스를 다시로드하여 해당 파일에서 규칙을 다시로드하십시오. 그러나 이미 언급했듯이 Centos의 새로운 기본 방화벽 시스템 인 방화벽은 이것이 사용 방법을 배울 수있는 좋은 기회라고 생각하지 않습니까?


7
CentOS7에 더 더 / etc / sysconfig / iptables 파일이 없습니다
roothahn

1
@roothahn 미안하지만, 패키지를 놓치지 않는 한 확실히 존재합니다. /usr/lib/systemd/system/iptables.service에서 실제로 시작된 것이 "/usr/libexec/iptables/iptables.init start"라는 것을 알 수 있습니다. 이것은 일반적인 오래된 구성 파일을 찾는 일반적인 오래된 스크립트입니다. 에서의 / etc / SYSCONFIG
돌에 맞아

1
그래 /etc/sysconfig/iptables나도 존재하지 않아. 그러나 /etc/sysconfig/iptables-config존재합니다. 그러나 iptables파일에 이전 과 같이 방화벽 규칙이 내부에 없습니다 .
Kentgrav

2
파일이 기본 최소 설치에도 존재하지 않는다는 것을 알았습니다. CentOS 7은 기본적으로 iptables.service를 설치하지 않습니다. "yum install -y iptables.service"는 서비스를 설치하고 기본 / etc / sysconfig / iptables를 작성했습니다.
RichieACC

3
"yum install iptables-services"
qris
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.