본문 바로가기
AWS Cloud School 8기/서버가상화_클라우드 이미지

방어벽/ 포트의 개념

by YUNZEE 2025. 1. 26.
728x90

저번에 실습했던 파일인  pxe-http를 사용할 예정임

https://yunz-story.tistory.com/entry/PxE-kickstart-%EC%9D%91%EC%9A%A9-%EC%8B%A4%EC%8A%B5

 

PxE kickstart/ 응용 실습

PxE kickstart- OS설치 시의 설정값을 세팅을 통해 자동으로 OS가 설치 완료되게 하는 구성파일/boot: / : 최상위 디렉토리swap: - 안에 내용 지워질 건데 괜찮여?라고 물어보는 창 root아이디랑 비번 넣

yunz-story.tistory.com

- 새로 만들어도 상관없음

- 방어벽 빼고 나머지 설정해 주면 

포트의 개념

- 흔히 말하는 'well-know' 포트는 암묵적인 약속일 뿐이지 꼭 반드시 해당 포트로 서비스를 제공해야 한다는 것을 뜻하진 않음. ex) http서비스는 일반적으로 80번 포트를 사용하며, 널리 알려진 사실임

- 즉, 내가 원하면 서비스의 포트를 변경할 수도 있음. 다시 말해, 포트는 일종의 통로 역할을 할 뿐임 

- 웹 서버 포트는 서비스를 식별하기 위한 일종의 번호표 같은 역할을 함

방화벽을 테스트해 보기 위해, 웹서버를 설치하고 간단한 index.html 파일을 만들어주자.

 

[root@web html]# echo 'firewall test' > /var/www/html/index.html

 

[root@web html]# systemctl restart firewalld

- 방화벽을 켜고

 

- 당연히 접속 안됨

- ssh란?

-> 네트워크를 통해 원격으로 서버에 접속할 수 있는 보안 프로토콜을 의미함

-> PuTTY 같은 프로그램으로 원격 서버에 접속할 때 사용됨

-> 기본적으로 TCP 22번 포트를 사용   

 

- 허용된 상태?

-> 서버가 원격 접속을 받을 수 있다는 의미 

 

[root@web html]# firewall-cmd --permanent --add-port=80/tcp

- 나는 지금 80번 포트로 웹서비스를 제공하고 있으므로 80번 포트를 열어보자.

 

- 반영 안 됨

- 이거 실행해 주면

- 반영된 걸 확인할 수 있음

- 방화벽을 열면 웹서버 접속이 잘 되는 걸 확인 가능함

실습
211.183.3.77 /24로 IP를 변경해 보자.
외부 통신이 가능하도록 만드세요!
client도 한대 켜서 211.183.3.100 /24으로 IP를 설정한 후 외부통신 되게 만들어보세요.
서버(211.183.3.77)

yum install -y httpd vsftpd

systemctl restart httpd vsftpd firewalld

systemctl enable httpd vsftpd firewalld

- HTTP, FTP설치

 

ss -tnip

- 어떤 서비스가 어떤 포트를 사용하고 있는지 확인할 때 자주 쓰는 명령어

- 서비스가 어떤 포트로 제공되냐는 것이지, 방화벽이 열려있다는 것을 뜻하진 않음

- 방화벽은 따로 확인을 해야 함 

[root@pxe-http ~]# firewall-cmd --permanent --add-port=80/tcp

[root@http ~]# firewall-cmd --reload 

- client 서버로 넘어가면 접속이 되는 걸 확인할 수 있음

 

- 다시 서버로 돌아가서 우리가 알고 있는 ftp포트들을 허용 

[root@pxe-http ~]# firewall-cmd --permanent --add-port=20/tcp
success
[root@pxe-http ~]# firewall-cmd --permanent --add-port=21/tcp
success

[root@pxe-http ~]# firewall-cmd --reload
success

중간에 잘못 입력하면 중복된다고 경고 주는 친절한 친구

 

[root@pxe-http ~]# touch /home/user/ftp.txt
[root@pxe-http ~]# ls /home/user
ftp.txt

- user의 홈 디렉토리에 간단한 테스트 파일을 생성

- 나는 user아이디와 비번이 user라서 파일도 user에 만들어줌

- 난 user를 입력했음(강사님 캡처임)

- dir을 쳐서 파일을 목록을 보려고 하니, 거부가 됨

 

[root@http ~]# firewall-cmd --permanent --add-service=ftp

- 서버에서 이번에는 ftp 서비스를 추가

 

[root@http ~]# firewall-cmd --reload

- 반영

- 클라이언트에서 다시 접속 후 dir을 해보면, 아까와는 다르게 잘 보이는 걸 확인 가능함.

- FTP는 기본적으로 20, 21번 포트를 사용하지만, 사용자와 파일을 송수신할 때 추가적으로 랜덤 한 포트가 할당됨

그러나 이러한 포트를 일일이 제어하기는 어려움. 따라서 서비스 자체를 허용하면, 해당 서비스에서 파생되는(related, 연관되는) 다른 연결들도 함께 허용됨

 

--add-port

--add-service

- 서비스, 포트 추가

 

--remove-port=

--remove-service

 - 제거

 

--permanent

- 영구적으로

 

--list-all

--reload


[root@http ~]# firewall-cmd --permanent --remove-service=ftp

- 서비스 제거

- 서비스가 아닌 ftp의 기본포트인 20,21번만 열려있는 상태

 

[root@client ~]# ftp 192.168.2.52

- 클라이언트에서 위 서버로 ftp 접속

- 접속은 되지만 파일은 못 봄

[root@http ~]# firewall-cmd --permanent --add-service=ftp

- 서비스 추가 후에 파일도 잘 보이는 걸 확인 가능하다.

728x90