일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 자바 암호화 알고리즘
- 프로그래머스
- 자바 암호화 복호화
- 개발자 인턴
- 도커
- 개발자 채용연계형인턴
- docker image
- docker
- 프로그래머스 코딩테스트
- 샐러드
- 신입 개발자 면접 질문
- 자바 암호화
- Plating
- 직장인점심구독
- 식단
- 신입 개발자 필수 면접 질문
- .dockerignore
- 식단일기
- 개발자 코딩테스트
- 신입 개발자 면접
- 신입 개발자 자바 면접 질문
- 자바 stream
- 개발자 정규직
- 셰프의찾아가는구내식당
- 신입 개발자 자바 면접
- 개발자 면접
- 플레이팅
- Linux
- 코딩테스트 연습
- 개발자 면접 질문
- Today
- Total
달리는 두딘
[Linux] 방화벽 오픈 확인 방법 본문
1. 현재 리눅스에서 열려있는 포트 확인
1) netstat -tnlp
TCP 중에서(t), Listening 상태[열린포트]인 애들만(l), 상세 정보까지(p), 10진수 숫자로(n) 표기한다.
[dklee@localhost ~]$ netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN -
tcp6 0 0 :::21 :::* LISTEN -
tcp6 0 0 :::22 :::* LISTEN -
tcp6 0 0 ::1:25 :::* LISTEN -
* netstat이 없으면 yum install net-tools 로 설치하면, netstat을 쓸 수 있다.
2. 상대방의 포트가 열려 있는지 확인
1) nc -z 호스트주소 포트
특정 하나의 포트에 대해 통신을 확인한다.
CentOS7의 경우 -z가 안붙는다. [nc 호스트주소 포트] 로 호출
//열린포트
[dklee@localhost ~]$ nc 1xx.1xx.2xx.1xx 873
@RSYNCD: 30.0
//열린포트
[dklee@localhost ~]$ nc 1xx.1xx.2xx.1xx 22
SSH-2.0-OpenSSH_7.4
//안열린포트
[dklee@localhost ~]$ nc 1xx.1xx.2xx.1xx 43
Ncat: Connection timed out.
* nc가 없으면 yum install nc로 설치하면 nc를 쓸 수 있다.
2) telnet 호스트주소 포트
[dklee@localhost ~]$ telnet 1xx.1xx.2xx.1xx 22
Trying 1xx.1xx.2xx.1xx..
Connected to 1xx.1xx.2xx.1xx.
Escape character is '^]'.
SSH-2.0-OpenSSH_7.4
Connected to xxx.xxx.xxx.xxx...가 뜨면 telnet 통신에 성공했다는 말이다.
..
Escape character is '^]'.
SSH-2.0-OpenSSH_7.4
^]
telnet> quit
Connection closed.
[dklee@localhost ~]$
* telnet 명령에서 빠져나오려면 Ctrl + ] 를 누른 다음에 quit 치면 된다.
[dklee@localhost ~]$ telnet 1xx.1xx.2xx.1xx 22
Trying 1xx.1xx.2xx.1xx...
* trying에서 멈춘다면 방화벽이 오픈이 안 된 것이다.
[dklee@localhost ~]$ telnet 1xx.1xx.2xx.1xx 22
Trying 1xx.1xx.2xx.1xx...
telnet: Unable to connect to remote host: Connection refused
* 바로 연결이 거부되면서 telnet: Unable to connect to remote host: Connection refused가 뜬다면
방화벽은 열려있으나 저 포트에 해당되는 프로세스가 안 올라가 있는 것이다.
상대 서버에서 netstat -ntlp로 확인해보면 해당 포트에 아무것도 없다는 말
3. 포트 열기 (방화벽 오픈)
netstat으로 확인했을 때 포트가 Listen 상태인데도 상대로부터 접속이 안되면 포트를 열어줘야 된다.
포트를 연다는건 방화벽에서 해당 포트로의 접근을 OK 한다는것
1) 방화벽에 포트 허용하기
CentOS6 이하 :
iptables -I INPUT 1 -p tcp --dport 12345 -j ACCEPT
I : 새로운 규칙을 추가한다.
p : 패킷의 프로토콜을 명시한다.
j : 규칙에 해당되는 패킷을 어떻게 처리할지를 정한다.
이 명령은 외부에서 들어오는(INBOUND) TCP포트 12345의 연결을 받아들인다는 규칙을 방화벽 1번 방화벽 규칙으로 추가한다는 의미이다.
이렇게 추가한 규칙은 조회나 삭제가 가능하다.
CentOS7 :
firewall-cmd --permanent --zone=public --add-port=22/tcp
2) 추가한 설정 조회하기
CentOS6 이하 :
iptables -L -v
CentOS7 :
firewall-cmd --list-all
3) 추가한 설정 삭제
CentOS6 이하 :
규칙번호로 삭제하기
iptables -D INPUT 1
추가한 규칙으로 삭제하기
iptables -D INPUT -p tcp --dport 12345 -j ACCEPT
CentOS7 :
firewall-cmd --permanent --zone=public --remove-port=22/tcp
출처
'지식노트 > 도전! 리눅스!' 카테고리의 다른 글
[Linux] scp 명령어로 (로컬↔서버) 파일 전송 (6) | 2024.07.17 |
---|---|
[Linux] watch 사용법 (0) | 2022.10.12 |
[Linux] find 사용법 (4) | 2022.09.30 |
[Linux] Tomcat 켜기 / 끄기 / 재가동 (0) | 2022.09.30 |
[Linux] chown 사용법 (0) | 2022.09.29 |