Centos7에서 방화벽을 사용하여 포트에 대한 액세스를 제거하는 방법은 무엇입니까?


13

firewall-cmd를 사용하여 공개용으로 포트를 열었을 때이 포트를이 사이트 에서 답을 찾은 특정 IP로 제한하고 싶었습니다 .

다음을 사용하여 열었습니다.

$ firewall-cmd --permanent --zone=public --add-port=10050/tcp
$ firewall-cmd --reload

이제 내가 찾은 정보의 정보를 사용하여이 포트에 대한 액세스를 특정 IP 주소로 제한하려고했습니다. 먼저이 포트를 공개 액세스에서 제거해야합니까?

또는 다음과 같이 새 규칙을 추가하면 문제가 해결 될 수 있습니까?

$ firewall-cmd --new-zone=special
$ firewall-cmd --permanent --zone=special --add-rich-rule='
  rule family="ipv4"
  source address=”123.1.1.1"
  port protocol="tcp" port="10050" accept'

나는 다음을 시도했다.

$ firewall-cmd --zone=public --remove-port=10050/tcp
$ firewall-cmd --reload

그러나 내가 다음을 실행할 때 :

$ firewall-cmd --list-ports 

10050/tcp 여전히 표시됩니다.

서버 측 구성에 익숙하지 않다는 것을 이해하십시오.

Soultion : 영구적 인 실행 시간을 잊지 마십시오

$ firewall-cmd --zone=public --remove-port=10050/tcp
$ firewall-cmd --runtime-to-permanent
$ firewall-cmd --reload 

아 나는 잊었 --permanent
MCV

1
이 답변을 게시하고 수락해야합니다. 자신의 답변을 받아들이는 것이 완벽합니다. 이런 식으로 질문이 해결 된 것으로 표시됩니다.
제랄드 슈나이더

1
방화벽 규칙에 실수가있을 경우에는를 사용 하지 않는 것이 좋습니다 --permanent. --permanent자신 을 사용 하고 잠그면 회복 할 방법이 없기 때문에 다시 들어가기가 매우 어렵습니다. 대신을 사용하지 말고 --permanent규칙에 만족하면 규칙 firewall-cmd --runtime-to-permanent을 커밋하십시오. 잠기면 방화벽을 다시로드하거나 다시 부팅합니다.
Michael Hampton

그렇다면 이것이 firewall-cmd --runtime-to-permanent적용될 수 firewall-cmd --reload있습니까? 아니면 완전히 대체됩니까? 나는 이것을 확실히 시도 할 것입니다.
mcv

답변:


28

솔루션 : --run-to-permanent를 잊지 마십시오

$ firewall-cmd --zone=public --remove-port=10050/tcp
$ firewall-cmd --runtime-to-permanent 
$ firewall-cmd --reload 

1
나는 여전히 따라야했다 systemctl restart firewalld.
JaKu

이것은 나를 위해 작동하지 않았습니다. systemctl버전 219이며 CentOS 7.5 64 비트 firewall-cmd버전 0.5.3입니다.
Pred

5
# firewall-cmd --zone=public --remove-port=12345/tcp --permanent
# firewall-cmd --reload

12345를 제거하려는 포트로 교체하십시오.


1
Fedora doc --permanent에서 첫 번째 옵션으로 제안하는 곳을 읽었습니다 . 그러나 그렇습니다 --permanent.
WesternGun

어떤 이유로 든 규칙이 올바르지 않은 경우 규칙을 영구적으로 만들지 않고 재부팅 할 수 있도록 보통 마지막 옵션으로 유지합니다. 그것이 내가 원하는 것을하면, 나는 위쪽 화살표를 누르고 --permanent끝에 추가 할 수 있습니다 .
저스틴 E

0

다음 단계를 따르십시오.

  1. $ firewall-cmd --zone = public --remove-port = 10050 / tcp
  2. $ firewall-cmd-런타임-영구적
  3. $ firewall-cmd-재로드
  4. $ systemctl 다시 시작 방화벽
  5. $ firewall-cmd --zone = public --list-ports

방화벽을 다시 시작해야한다고 생각하지 않습니다. firewalld실제로 구성을 변경할 때마다 모든 서비스를 다시 시작하지 않도록 설계되었습니다.
vdegenne
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.