CentOS 7에서 방화벽 포트 열기


339

CentOS 7을 사용하고 있으며 포트 2888 및 3888이 열려 있는지 확인해야합니다.

이 기사를 읽었 지만 CentOS 7 OS에는 iptables save명령 이 없기 때문에 작동하지 않았습니다 .

누군가 위의 URL이 CentOS 7에 유효하지 않다고 말했고 나는 이것을 따라야 합니다 . 그러나이 기사는 정확히 어떤 명령을 실행 해야하는지 명확하지 않습니다.

나도 찾았 어

firewall-cmd --zone=public --add-port=2888/tcp 

그러나 이것은 재부팅 후에도 지속되지 않습니다.

그렇다면 어떻게 포트를 열고 재부팅 후에도 유지할 수 있습니까?


스택 오버플로는 프로그래밍 및 개발 질문을위한 사이트입니다. 이 질문은 프로그래밍이나 개발에 관한 것이 아니기 때문에 주제가 아닌 것 같습니다. 참조 내가 여기에 대해 요청할 수 있습니다 어떤 주제 도움말 센터에서. 아마도 Super User 또는 Unix & Linux Stack Exchange 가 더 좋은 곳일 것입니다.
jww

답변:


653

이 명령을 사용하여 활성 영역을 찾으십시오.

firewall-cmd --get-active-zones

public, dmz 또는 다른 것을 말할 것입니다. 필요한 구역에만 적용해야합니다.

공개 시도의 경우 :

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

그런 다음 변경 사항을 적용하려면 방화벽을 다시로드하십시오.

firewall-cmd --reload

그렇지 않으면 영역이 dmz 인 경우 영역을 공용으로 대체하십시오.

firewall-cmd --zone=dmz --add-port=2888/tcp --permanent

29
내가이 명령을 사용하지만 나를 위해 작동하지 않았다, 무엇을했는지, 변경했습니다 --zone=dmz--zone=public
톰 홀

2
예, 공개도 사용하는 것이 좋습니다. 수정에 대해서는 Sotsir의 아래 명령을 확인하십시오.
ganeshragav

23
여기에있는 두 가지 대답 중 어느 것도 실제로 무엇을하는지 설명 --permanent하지 않으며, 단지 그렇게한다고 말합니다. 답변이 어떻게 작동하는지 설명하면 더 완벽하고 유용한 답변이 될 것입니다. OP의 리소스 중 하나에서 : "--permanent 옵션 [...]을 추가하여 규칙을 영구적으로 만들 수 있습니다. 규칙을 영구적으로 만들지 않으면 시작, 재시작 또는 다시로드 메시지를받은 후 매번 적용해야합니다. "D-BUS를 사용하여 방화벽에서."
dKen

9
올바른 영역에 도달 할 때까지 모든 영역에서 포트를 맹목적으로 사용하지 마십시오. 사용 firewall-cmd --get-active-zones영역이 시스템에 사용되는 것을 알 수 있습니다. 또한 man firewall-cmd.
기본 6

1
페도라 문서를 읽으면 다음과 같이 표시 The --permanent option needs to be the first option for all permanent calls됩니다. 위의 방법으로 오류가 발생하지 않았지만 다른 사람에게 문제가 발생할 수 있는지 확실하지 않습니다.
Marc

113

ganeshragav 의 답변 은 정확하지만 다음을 사용할 수 있음을 아는 것도 유용합니다.

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

그러나 알려진 서비스 인 경우 다음을 사용할 수 있습니다.

firewall-cmd --permanent --zone=public --add-service=http 

그런 다음 방화벽을 다시로드하십시오.

firewall-cmd --reload

[Martin Peter의 의견을 반영하여 답변이 수정되었습니다. 원래 답변은 --permanent명령 줄 끝에 있었습니다 ]


8
나는 --permanent성명서 끝에 옵션 을 사용하지 않을 것 입니다. 이 문서는 첫 번째 옵션이어야한다고 명시 적으로 지적합니다.
Martin Peter

1
@MartinPeter man firewall-cmd는 내 컴퓨터에 그러한 표시를 제공하지 않습니다 (Fedora 21).
Jonathon Reinhart 2018 년

@JonathonReinhart 저는 Fedora의 FirewallD Wiki에 대해 언급하고 있습니다 : The --permanent option needs to be the first option for all permanent calls.
Martin Peter

방화벽이 실행되지 않습니다
Rahul Tathod

50

CentOS (RHEL) 7 firewall-cmd은 Windows 버전의 공용, 홈 및 개인 네트워크와 같은 영역 개념을 가진 방화벽을 사용하도록 변경했습니다 . 어떤 것을 사용해야하는지 알아 내 려면 여기 를 봐야합니다. EL7은 public기본적으로 사용 되므로 아래 예제에서 사용됩니다.

사용중인 영역을 확인 firewall-cmd --list-all하고로 변경할 수 있습니다 firewall-cmd --set-default-zone=<zone>.

그러면 서비스 (또는 포트)를 허용 할 영역을 알 수 있습니다.

firewall-cmd --permanent --zone=<zone> --add-service=http

firewall-cmd --permanent --zone=<zone> --add-port=80/tcp

다음을 실행하여 포트가 실제로 열려 있는지 확인할 수 있습니다.

firewall-cmd --zone=<zone> --query-port=80/tcp

firewall-cmd --zone=<zone> --query-service=http

에 따르면 문서 ,

영구 모드에서 방화벽 설정을 변경할 때 선택 사항은 방화벽을 다시로드하거나 시스템을 다시 시작할 때만 적용됩니다.

다음을 사용하여 방화벽 설정을 다시로드 할 수 있습니다 firewall-cmd --reload.


26

페도라 iptables

sudo iptables -I INPUT -p tcp --dport 3030 -j ACCEPT
sudo service iptables save

작동하는 것 같습니다


23

열린 포트를 보려면 다음 명령을 사용하십시오.

firewall-cmd --list-ports

다음은 포트가 열려있는 서비스를 확인하기 위해 사용합니다.

firewall-cmd --list-services

다음을 사용하여 포트가 열려있는 서비스를 확인하고 열린 포트를 확인합니다

firewall-cmd --list-all

방화벽에 서비스를 추가하기 위해 다음 명령을 사용합니다.이 경우 서비스는 포트를 사용하여 방화벽에서 엽니 다.

firewall-cmd --add-services=ntp 

이 서비스를 영구적으로 열려면 다음 명령을 사용하십시오.

firewall-cmd —add-service=ntp --permanent 

포트를 추가하려면 다음 명령을 사용하십시오

firewall-cmd --add-port=132/tcp  --permanent

다음 명령을 사용하여 방화벽을 다시로드해야합니다.

firewall-cmd --reload

야 알리


위의 "firewall-cmd -add-service = ntp --permanent"는 "firewall-cmd --add-service = ntp --permanent"로 변경해야합니다
Maduranga Siriwardena

14

ganeshragavSotsir 는 정확하고 직접 적용 가능한 접근 방식을 제공 하지만에 고유 한 서비스를 추가 할 수 있다는 점에 유의하는 것이 좋습니다 /etc/firewalld/services. 영감을 얻으려면 /usr/lib/firewalld/services/방화벽의 사전 정의 된 서비스가있는 곳을보십시오.

이 접근 방식의 장점은 나중에 서비스 파일에서 설명한대로 이러한 포트가 열린 이유를 알 수 있다는 것입니다. 또한 오타 위험없이 모든 영역에 적용 할 수 있습니다. 또한 서비스에 대한 변경 사항을 모든 영역에 개별적으로 적용 할 필요는 없으며 서비스 파일에만 적용하면됩니다.

예를 들어 다음을 만들 수 있습니다 /etc/firewalld/services/foobar.xml.

<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>FooBar</short>
  <description>
    This option allows you to create FooBar connections between
    your computer and mobile device. You need to have FooBar
    installed on both sides for this option to be useful.
  </description>
  <port protocol="tcp" port="2888"/>
  <port protocol="tcp" port="3888"/>
</service>

(구문에 대한 정보는을 참조하십시오 man firewalld.service.)

이 파일을 만든 후에는 파일을 firewall-cmd --reload사용할 수있게하여 다음을 사용하여 일부 영역에 영구적으로 추가 할 수 있습니다

firewall-cmd --permanent --zone=<zone> --add-service=foobar

firewall-cmd --reload즉시 활성화되었습니다.


6

열린 포트를 보려면 다음 명령을 사용하십시오.

firewall-cmd --list-ports

포트가 열려있는 서비스를 보려면 다음을 사용하십시오.

firewall-cmd --list-services

다음을 사용하여 포트가 열려있는 서비스를보고 열려있는 포트를 봅니다.

firewall-cmd --list-all

방화벽에 서비스를 추가하기 위해 다음 명령을 사용합니다.이 경우 서비스는 포트를 사용하여 방화벽에서 엽니 다.

firewall-cmd --add-services=ntp 

이 서비스를 영구적으로 열려면 다음 명령을 사용하십시오.

firewall-cmd -add-service=ntp --permanent 

포트를 추가하려면 다음 명령을 사용하십시오.

firewall-cmd --add-port=132/tcp  --permanent

4

여기에 최고의 답변이 효과가 있지만 관련 질문에 대한 Michael Hampton의 답변 에서 더 우아한 것을 발견했습니다 . "새"(firewalld-0.3.9-11 +) --runtime-to-permanent옵션을 firewall-cmd사용하면 런타임 규칙을 생성하고이를 영구적으로 만들기 전에 테스트 할 수 있습니다.

$ firewall-cmd --zone=<zone> --add-port=2888/tcp
<Test it out>
$ firewall-cmd --runtime-to-permanent

또는 런타임 전용 변경 사항을 되돌리려면 다음을 수행하십시오.

$ firewall-cmd --reload

Antony Nguyen의 의견 도 참조하십시오 . 규칙이 제거 된 경우 firewall-cmd --reload가 제대로 작동하지 않을 수 있습니다. 이 경우 방화벽 서비스를 다시 시작하는 것이 좋습니다.

$ systemctl restart firewalld

1

Centos 7 FIrewalld에서 허용 할 포트가 여러 개인 경우 다음 명령을 사용할 수 있습니다.

#firewall-cmd --add-port={port number/tcp,port number/tcp} --permanent

#firewall-cmd --reload


And check the Port opened or not after reloading the firewall.


#firewall-cmd --list-port


For other configuration [Linuxwindo.com][1]

0

centos 6 이하에서와 같이 iptables 서비스에 익숙한 경우 수동 설치로 iptables 서비스를 계속 사용할 수 있습니다.

1 단계 => epel repo 설치

m 설치 epel-release

2 단계 => iptables 서비스 설치

yum은 iptables 서비스를 설치합니다

3 단계 => 방화벽 서비스 중지

systemctl 방화벽 중지

4 단계 => 시작시 방화벽 서비스 비활성화

systemctl 비활성화 방화벽

5 단계 => iptables 서비스 시작

systemctl 시작 iptables

6 단계 => 시작시 iptables 활성화

systemctl 활성화 iptables

마지막으로 / etc / sysconfig / iptables에서 iptables 구성을 편집 할 수 있습니다.

따라서-> 규칙 편집-> 다시로드 / 다시 시작하십시오.

방화벽과 같은 기능을 가진 오래된 센토를 좋아하십시오.


0

방화벽은 iptables 베테랑에게는 조금 직관적이지 않습니다. : iptables를 기반으로 방화벽을 선호하는 사람들을 위해 iptables에를-처럼 쉬운 구성 트리에서 구문, fwtree와 firewalld를 교체하려고 https://www.linuxglobal.com/fwtree-flexible-linux-tree-based-firewall/ 다음과 다음을 수행하십시오.

 echo '-p tcp --dport 80 -m conntrack --cstate NEW -j ACCEPT' > /etc/fwtree.d/filter/INPUT/80-allow.rule
 systemctl reload fwtree 

0

Centos 7 firewall-cmd에서 안녕하세요. 방화벽 -cmd --zone = public --add-port = 2888 / tcp를 사용하지만 firewal firewall-cmd --reload를 다시로드하는 경우 예

설정이 저장되지 않습니다

당신은 키를 추가해야합니다

firewall-cmd-영구적 --zone = public --add-port = 2888 / tcp

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