포트 번호는 "이 문은 어떤 서비스 전용인가"의 약속이다. 25는 메일 발송, 110·143은 메일 수신, 21은 FTP 명령, 22는 SSH 다목적, 23은 평문 Telnet. 암호화 포트(465·587·993·995·990)는 평문 포트에 보안을 더한 변종이다. 이 매핑을 즉답할 수 있어야 실기가 풀린다.
⚠️ 함정 복습: 뒤바뀌기 쉬운 짝 — POP3(110/995)와 IMAP(143/993), SMTPS(465)와 제출(587), FTP 제어(21)와 능동 데이터(20), SSH(22)와 Telnet(23). 이 경계를 바꾼 보기가 오답이다.
핵심 구분: MTA(서버 간 전송) ≠ MDA(사서함 배달) ≠ MUA(사용자 클라이언트). 발송은 SMTP 단방향, 수신은 POP3/IMAP. Postfix 설정은 /etc/postfix/main.cf이며, mynetworks를 너무 넓게 열면 오픈 릴레이가 된다. POP3=다운로드 후 삭제, IMAP=서버 보관·동기화가 핵심 구분이다.
능동(Active): 클라이언트가 PORT로 포트 알림 → 서버(20번)가 클라이언트로 거꾸로 접속수동(Passive): 클라이언트가 PASV 요청 → 서버가 고포트 열어둠 → 클라이언트가 접속
⚠️ 함정 복습: 능동은 서버가 클라이언트로 거꾸로 접속(PORT, 20번), 수동은 클라이언트가 서버로 접속(PASV, 고포트). NAT/방화벽 뒤 클라이언트는 수동 모드가 필요하다. vsftpd의 chroot_local_user는 홈에 가두기, ftpusers는 접속 금지 목록이다. FTPS(FTP+TLS, 990)와 SFTP(SSH 기반, 22)는 전혀 다른 기술이다.
# 보안 설정 핵심(sshd_config)PermitRootLogin no # root 직접 로그인 차단PasswordAuthentication no # 키 전용(키 등록 후 적용)MaxAuthTries 3 # 무차별 대입 방어# 키 인증: 공개키는 서버 authorized_keys, 개인키는 클라이언트ssh-keygen -t ed25519ssh-copy-id user@host# 포워딩ssh -L 8080:internal:3306 user@gw # 로컬: 내 쪽→원격 너머ssh -R 9090:localhost:80 user@gw # 원격: 원격 쪽→내 쪽ssh -D 1080 user@gw # 동적: SOCKS 프록시
핵심 구분: 서버 설정 sshd_config(d가 붙음) vs 클라이언트 설정 ssh_config. 공개키(.pub)는 서버에, 개인키는 클라이언트에. ~/.ssh는 700, 키 파일은 600. scp 포트는 대문자 -P, ssh 포트는 소문자 -p. 포워딩 -L(로컬)·-R(원격)·-D(동적)의 방향 차이를 구분해야 한다.
VNC 포트 = 5900 + 디스플레이 번호(:1→5901). X 윈도에서 화면·입력장치를 가진 사용자 앞 기기가 X 서버, 그림을 요청하는 응용프로그램이 X 클라이언트(역전). DISPLAY는 그림 보낼 화면 주소, xhost는 호스트 단위·xauth는 쿠키 단위 제어이며, xhost +(인자 없음)는 전체 허용으로 위험하다. 안전한 원격 GUI는 ssh -X다.
ss -tlnp | grep :포트 # 1. 서비스가 그 포트를 LISTEN 중인가?systemctl status 서비스 # 2. 데몬이 살아있는가?telnet host 포트 # 3. 외부에서 포트에 닿는가?(방화벽)firewall-cmd --list-all # 4. 방화벽이 포트를 열었나?journalctl -u 서비스 # 5. 로그에 무슨 오류가?
서버 서비스 장애는 대개 이 다섯 단계를 차례로 보면 원인이 좁혀진다 — "데몬이 떴나, 포트를 듣나, 방화벽이 막나, 설정이 맞나, 로그가 뭐라 하나". 메일이 안 가면 mailq, FTP가 막히면 능동/수동·방화벽, SSH가 거부되면 키 권한·PermitRootLogin, GUI가 안 뜨면 DISPLAY·xhost를 본다. 이번 주는 시험을 넘어 실무 서버 운영의 기초다.