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.