SFTP 비활성화

Q: SFTP를 막고 SSH로만 접속하게 하고 싶다.

A: sftp-server 파일의 실행권한을 없애라.

인터넷 검색해보면 sshd 설정파일에서 sftp subsystem 내용을 지우면 된다는 결과가 많이 나오지만, sftp 명령의 ‘-s’ 옵션으로 sftp-server 경로를 지정하면 SFTP 접속 된다. 쉘 접속 가능한 사용자는 해당 파일 경로를 찾아낼 수 있으므로 설정파일 수정만으론 SFTP 비활성화를 할 수 없다.

sftp subsystem 관련 내용 지운 상태에서 sftp 접속 시도. sft-server 지정하면 접속 잘 되는 것을 볼 수 있다.

Q: SSH(22)와 SFTP(10022) 포트 분리하여 각 포트별로 SSH, SFTP 포트 구성하기는 가능한가?

A: 불가능. SFTP 만 사용가능한 포트는 구성 가능하나, SSH 만 사용 가능하게는 할 수 없다.

SFTP를 사용 못하게 sftp-server 실행권한을 없애면 SSH 만 사용 가능함.

  • Port 22 SFTP disable, SSH enable: 불가능함
  • Port 10022 SFTP only, SSH disable: 가능함

참고: https://serverfault.com/questions/653812/enable-ssh-shell-access-but-disable-sftp-access

나의 리눅스 역사

알짜 레드햇 5.2로 처음 접했다. 아마 컴퓨터 잡지 등에서 다룬 내용을 봤던걸로 기억하고, GNU 자유소프트웨어 사상에 크게 경도되어 기회가 되는대로 사용해보려 했다. 그 때는 마이크로 소프트를 까는게 놀이처럼 유행하고 있었던 때라… 돈 받고 파는게 당연시 되던 소프트웨어를 그냥 준다는게 뭔가 대단해 보였다. 그것도 엄청 비싸게 팔던 xNIX류 OS 를 소스까지 공개하다니…

당시엔 YUM(2011년에 공개) 도 없었고 rpmfind 등에서 적당히 패키지 파일 받아다 쓰다 라이브러리 죄다 꼬이면 OS 날리고 다시 까는게 다반사였다. 컴퓨터 사면 부트로더 lilo에 윈도 / 리눅스 듀얼부팅 설정이 기본 소양이었다. 리눅스 커뮤니티가 어디에 있는지도 모르고, PC 통신도 없이 동봉된 메뉴얼 보면서 OS 깔았다가 할 것 없어서 게임하려고 다시 윈도 깔고 하던게 반복이었다.

rpm 패키지 관리에 골머리를 썩다가 패키지를 중앙 관리한다는 데비안을 알게 되어 게임 서버를 데비안에서 실행했었고, 당시 데비안 기본 이미지의 리눅스 커널은 듀얼 CPU 기능(SMP 였던가?)이 들어있지 않아 원격에서 직접 커널 컴파일을 했던 적도… 제일 두려웠던건 네트워크 드라이브 모듈이 안 올라오는 일이었다. 당시엔 Board Management Controller(BMC)도 모르던 시절.

Redhat Linux 가 RHEL 가 되고, Debian GNU/Linux 기반으로 우분투(Ubuntu)가 나오고… (과거 우분투는 신청만 하면 설치용 CD 를 공짜로 보내줘서 수십장 씩 신청하는 사람들이 있었다). fedora, CentOS… 이 정도부턴 PC 데스크탑 환경에서 리눅스 쓸만하지 않냐는 말이 나오기 시작했다(…사실 GNOME, KDE 새 버전이 나올 때마다 나오는 말이다. 더 과거에도 데스크탑으로 리눅스 쓸만하다는 말은 계속 있었다…).

중간에 coLinux(Cooperative Linux)도 잠시 사용했었고… User Mode Linux(UML) 를 사용한 방식인데, 윈도우에서 실행 가능한 기본 리눅스 커널을 만들고 그 위에 UML을 하나 더 실행하는 방식인데… 현재 Windows Subsystem Linux(WSL)과 유사하다고 봐야 하나? 1번 프로세스를 마음대로 못 바꾸는 것도 그렇고. (참고 링크: What is the difference between Windows Subsystem for Linux (WSL), Cooperative Linux (coLinux), and Cygwin?)

집에선 Mac mini에 우분투를 깔아서 쓰다가, 릴리즈 버전 업그레이드 할 때마다 환경설정 다시 봐줘야 하고 기본 패키지 외의 설치 패키지들 관리에 시간이 많이 들어서 Arch Linux 설치해 현재에 이르게 되었다.

Arch Linux, neofetch

지나고 보니 롤링 업데이트로 수시로 업데이트 되며 조금씩 관리하는 방식이 크게 업그레이드 하는 방식 보다 관리면에서 나은 것 같다. 한 번에 업그레이드 하면 설정을 다 까먹어서 기억이 안나서 곤란하다. 오히려 총 관리 시간이 더 많이 들어간다.

예전 xNIX들을 x86 하드웨어에 설치해서 네트워크 연결까지가 큰 도전이었고, 내가 HW 에 직접 설치해본 OS들이 Redhat Linux, fedora, CentOS(Rocky Linux AlmaLinux…), openSUSE, Debian, Ubuntu, Arch Linux, FreeBSD… 요즘은 가상머신에 쉽게 설치 되고 노트북이 아니고선 하드웨어 문제도 크게 없는 편인 것 같다. 물론 3D 그래픽 드라이버까지 잡는건 여전히 쉽진 않지만…(그나마 nvidia가 리눅스 드라이버가 있긴 있다.)

16색, 256색… 16비트 컬러, 24비트 컬러… PC통신부터 인터넷 태동기, 스마트폰 까지. 직접 겪은 일이라는게 신기하다. 그리고 이런 엄청난 발전 가운데에 리눅스가 스마트폰으로, 데이터센터 x86 하드웨어의 주요 OS로 실행 되고 있다는 것은 더 신기하다…

지금은 집에 Arch Linux, CentOS 7을 각각 실제 HW 에서 실행 중이고, Win11 WSL 에 Ubuntu 잠깐잠깐 사용 중.

Windows 는 Linux X window 를 대체하는 wayland 까지 실행 가능 https://docs.microsoft.com/ko-kr/windows/wsl/tutorials/gui-apps 세상이 어떻게 돌아가는건가. (Windows 11 에서 WSLg( Windows Subsystem for Linux GUI ) 사용하기)