1. 방화벽
내부 네트워크를 보호하기 위해 외부에서의 불법적인 트래픽 유입을 막고,허가되고 인증된 트래픽만을 허용하는 기능을 가진 하드웨어나 소프트웨어를 일컫는다
1.1 방화벽의 기능
기능 | 설 명 |
접근제어 (Access Control) | 접근을 허가할 대상과 거부할 대상을 정하는 것으로 패킷 필터링(Packet Filtering) 방식과 프락시(Proxy)방식으로 나눈다. |
로깅(Logging)과 감사 추적(Auditing) | 접근 허가 및 거부된 내용을 기록하고 추적한다. |
인증(Authentication) | 메시지 인증 ,사용자 인증, 클라이언트 인증을 통해 허가된 접근을 인증한다. |
데이터 암호화 | 가상 사설망(Virtual Public Network, VPN)을 이용하여 방방화벽에서 다른 방화벽까지 전송되는데이터를 암호화한다 |
2. firewalld
D-bus(desktop bus) 인터페이스 있는 호스트 기반 방화벽을 제공하는 서비스 데몬이다.
동적 관리 방화벽으로 규칙이 변경될 때마다 방화벽 데몬을 다시 시작할 필요 없이 규칙을 작성, 변경, 삭제할 수 있다. firewalld도 iptables를 기반으로 동작한다.
2.1 firewall-cmd 명령어
명령어 | 설명 |
--list-all | 모든 방화벽 설정을 볼 수 있다. |
--add- | 방화벽에 argument를 추가한다 |
--remove- | 방화벽에 argument를 제거한다 |
--reload, --rel | 방화벽을 재시작한다 |
--state | 방화벽에 상태를 볼 수 있다 |
--permanent | 영구적으로 추가한다. |
--get-default-zone | 현재 디폴트 값인 zone을 확인한다 |
--set-default-zone | zone값을 설정한다 |
firewall-cmd --list-all
[root@Linux ~]# firewall-cmd --list-all public (active) # firewall 에 등록되어있는리스트를 모두 부여준다. target: default icmp-block-inversion: no interfaces: ens160 sources: services: cockpit dhcpv6-client grafana ssh ports: protocols: forward: yes masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: |
telnet 서비스를 허용한다
[root@rocky1 ~]# firewall-cmd --list-services cockpit dhcpv6-client grafana pmproxy ssh [root@rocky1 ~]# firewall-cmd --add-service=telnet success [root@rocky1 ~]# firewall-cmd --list-services cockpit dhcpv6-client grafana pmproxy ssh telnet |
permanent 적용 후 reload=rel
[root@rocky1 ~]# firewall-cmd --list-ports # 현재 포트가 없음 [root@rocky1 ~]# firewall-cmd --add-port=50015/tcp # 임시적용 success [root@rocky1 ~]# firewall-cmd --add-port=50050/tcp --permanent # 영구적용 success [root@rocky1 ~]# firewall-cmd --list-ports 50015/tcp # 일시 설정한 50015만 적용되어있음 [root@rocky1 ~]# firewall-cmd --reload success # 추가 또는 삭제 시 reload를 해야 바로 적용된다 [root@rocky1 ~]# firewall-cmd --list-ports 50050/tcp # 일시 설정한 50015는 사라지고 영구 설정한 50050만 적용 |
remove제거
[root@rocky1 ~]# firewall-cmd --list-ports 50050/tcp [root@rocky1 ~]# firewall-cmd --remove-port=50050/tcp success [root@rocky1 ~]# firewall-cmd --list-ports [root@rocky1 ~]# firewall-cmd --reload success # 추가 또는 삭제 시 reload를 해야 바로 적용된다 [root@rocky1 ~]# firewall-cmd --list-ports 50050/tcp # 일시 삭제라 reload하면 다시 복구됨 [root@rocky1 ~]# firewall-cmd --remove-port=50050/tcp --permanent success [root@rocky1 ~]# firewall-cmd --reload success [root@rocky1 ~]# firewall-cmd --list-ports # 영구 삭제를 해야 완전 삭제됨 |
zone 변경
[root@rocky1 ~]# firewall-cmd --get-default-zone public # 현재 zone은 public [root@rocky1 ~]# firewall-cmd --set-default-zone=dmz success [root@rocky1 ~]# firewall-cmd --get-default-zone dmz # 현재 zone이 dmz로 변경 |
3. ssh의 포트를 변경해서 다른 pc에 접속
- 서버설정
[root@rocky1 ~]# vi /etc/ssh/sshd_config |
- sshd_config에서 ssh의 port지정
# vi편집창 ... # If you want to change the port on a SELinux system, you have to tell # SELinux about this change. # semanage port -a -t ssh_port_t -p tcp #PORTNUMBER Port 41234 ... # vi 종료 |
- sshd를 재시작해 port 적용
[root@rocky1 ~]# systemctl restart sshd [root@rocky1 ~]# systemctl status sshd ● sshd.service - OpenSSH server daemon ... May 11 11:21:21 rocky1 systemd[1]: Starting OpenSSH server daemon... May 11 11:21:21 rocky1 sshd[11528]: Server listening on 0.0.0.0 port 41234. May 11 11:21:21 rocky1 sshd[11528]: Server listening on :: port 41234. May 11 11:21:21 rocky1 systemd[1]: Started OpenSSH server daemon. # ssh에 41234 포트 적용 |
- firewall에 41234 port 허용
[root@rocky1 ~]# firewall-cmd --add-port=41234/tcp --permanent success [root@rocky1 ~]# firewall-cmd --reload success |
- 다른 pc에서 접속
접속할 pc에서는 port를 바꾸지 않아도 -p 명령어로 port를 지정해 접속가능
[root@rocky2 ~]# ssh root@192.168.20.21 -p 41234 Web console: https://rocky1:9090/ or https://192.168.20.21:9090/ Last login: Thu May 11 11:27:25 2023 from 192.168.20.34 |
'리눅스-기초명령어 > 보안' 카테고리의 다른 글
authselect (0) | 2023.09.01 |
---|---|
PAM (1) | 2023.09.01 |
selinux (1) | 2023.09.01 |