8.10 정리- FTP server, SSH server, TCP wrapper

HakJin Kim·2023년 8월 10일
0

FTP server

1. root 사용자 허용

cd /etc/vsftpd
  • ftpusers : PAM 인증 모듈 접근 제한

  • user_list : vsftpd 서버 접근 제한
    (= 이 리스트에 등록된 사용자는 차단이 된다.)

실습

  • server2 등록 후 해당 계정으로 접근을 시도할 경우 로그인이 거부된다.

2. 방화벽 활성화 뒤 FTP root 계정 접근

  • 두 곳을 설정해주어야 한다.
<방화벽 서비스 추가>
# firewall-cmd --permanent --add-service=ftp
# firewall-cmd --reload
<root 계정 차단 해제>
cd /etc/vsftpd
vi ftpusers		<== root 계정을 주석처리
vi user_list	<== root 계정을 주석처리

실습

  1. 방화벽 서비스 추가는 해주었지만
    ftpusers, user_list 파일을 설정하기 전
    = 접근이 안된다.
  2. 방화벽, vsftpd 설정 후 접근이 정상적으로 실행

SSH server

1. root 계정 로그인 차단

vi /etc/ssh/sshd_config

38행 [PermitRootLogin no] 로 변경

실습

  • systemctl restart sshd 명령어 실행 후
  • 클라이언트에서 접근시 접근이 차단된다.

2. SSH의 포트 변경

vi /etc/ssh/sshd_config

17행 [Port n]으로 변경

실습

  • 포트번호를 22에서 2002로 변경
  • 일반적으로 접근 시 접근이 거부된다.
    하지만 ssh -l root [서버 주소] -p 2002로 접근 시 접근이 가능하다.

3. 방화벽 활성화 뒤 SSH 접근

  1. firewall-config 명령어로 해당 서비스가 허용됐는지 확인.
  2. firewall-cmd --permanent --add-port=2002/tcp로 포트 추가 후
    firewall-cmd --reload로 방화벽 재부팅하면 적용이 된다.

4. SSH 환경설정 파일

/etc/ssh/sshd_config
<37번째 줄>
LoginGraceTime 20

=> 지정한 시간 내에 로그인 하지 않으면 자동으로 접속 끊기
<40번째 줄>
MaxAuthTries 6

=>한 접속 당 최대 인증 시도횟수

방화벽

cd /etc/firewalld/zones/public.xml
  • /etc/firewalld/zones/public.xml의 내용
    zone과 /zone 사이에 <service name="추가하고싶은 서비스"/> 명령어 추가시
    해당 서비스가 추가된다.

실습

  1. public.xml 파일에 해당 서비스를 추가해주고
  2. firewall-cmd --list-all로 추가된것을 확인할 수 있다.

TCP wrapper를 이용한 접근통제

환경설정파일

# vi /etc/hosts.allow		<= 접근허용
[서비스:][호스트/네트워크]

# vi /etc/hosts.deny		<= 접근차단
[서비스:][호스트/네트워크]

실습

  1. ALL:ALL => 전체 서비스 전체 차단
  1. in.telnetd:ALL => 텔넷 서비스 전체 허용
  1. sshd:ALL => SSH 서비스 전체 허용
  1. in.telnetd,sshd:ALL => 텔넷과 SSH를 한줄로 표현해 줄 수 있다
  1. in.telnetd,sshd:192.168.0.173 => 하나의 ip주소에다 서비스 허용을 해 줄 수 있다.
  1. in.telnetd:192.168.0.173 / sshd:192.168.0.174 => 각 ip주소마다 서비스 허용을 해 줄 수 있다.
  1. in.telnetd:192.168.0.173 192.168.0.174 / sshd:192.168.0.128/25
    => 한 서비스에 여러 ip주소를 띄어쓰기로 표현해줄수 있고
    => 서브네팅도 활용해 줄 수 있다.
    (C class에 대한 주소 표현은 192.168.00/24와 192.168.0. 으로도 표현 가능하다.)
  1. sshd:192.168.0.0/24 EXCEPT 192.168.0.174
    =>C class 전체 허용에서 EXCEPT로 구분지어 차단할 ip를 설정해줄 수 있다.
  1. ALL EXCEPT sshd:192.168.0.174
    => 모든 기능을 허용하지만 SSH 기능만 제외시킬 수 있다.

데몬 정리

  1. vsftpd : ftp 데몬
  2. sshd : 오픈 ssh 서버 데몬
  3. in.telnetd : 텔넷 서버 데몬
  4. xinetd : 슈퍼 데몬 각종 서비스를 관리 한다. (telnet, ftp, rlogin 등)

미션

  • 방화벽 / tcpwrapper / 슈퍼데몬(xinetd) / service 에서
    192.168.0.173 주소의 텔넷 서비스만 허용 그 외 나머지 다 차단.

1. 방화벽

<방화벽>
# firewall-cmd --permanent --add-service=telnet
# firewall-cmd --reload

<정리>
방화벽 가동 후 telnet 서비스에 대한 접근만 허용시켜주어야한다.

2. 슈퍼데몬 설정

<슈퍼데몬 Xinetd>
# vi /etc/xinetd.conf
23번째 줄 no_access와 only_from 설정

<정리>
only_from 설정시 그 외 전체 차단.
only_from 192.168.0.173

3. TCP Wrapper

<TCP Wrapper>
# vi /etc/hosts.allow
# vi /etc/hosts.deny

<정리>
xinetd의 노엑세스와 온리프롬과 다르게 TCP Wrapper는 허용과 차단을 각각 설정해주어야함.
(허용을 해준다고 그 외 전체 차단 X)

[deny]
ALL:ALL

[allow]
in.telnetd:192.168.0.173

4. 서비스 허용

<Service>
1. 해당 서비스 파일의 disable 설정
/etc/xinetd.d

2. 포트번호 변경
/etc/services

<정리>
vi /etc/xinetd.d/(차단하고싶은 서비스)로 접근,
disable에 대한 설정을 yes로 설정

그 후 사용하고싶은 서비스에 대한 보안성을 높이기 위해
포트번호를 변경해주면 된다.

pam 디렉터리를 통한 접근 통제

cd /etc/pam.d
  • pam.d 디렉터리의 sshd 파일 내용

유저 접근 통제

1. 차단 (sense=deny)

<sshd 파일에 해당 명령어 추가>
auth       required     pam_listfile.so item=user sense=deny file=/etc/ssh/sshuser onerr=succeed

=> /etc/ssh 디렉터리에 sshuser 라는 파일을 참조하여 해당 파일에 적힌 유저를 차단하겠다.
</etc/ssh/sshuser 유저추가>
test

=> test 계정만 SSH 차단

2. 허용 (sense=allow)

<sshd 파일에 해당 명령어 추가>
auth       required     pam_listfile.so item=user sense=allow file=/etc/ssh/sshuser onerr=succeed

=> /etc/ssh 디렉터리에 sshuser 라는 파일을 참조하여 해당 파일에 적힌 유저를 허용하겠다.
</etc/ssh/sshuser 유저추가>
test

=> test 계정만 SSH 허용

그룹 접근 통제

1. 차단 (sense=deny)

<sshd 파일에 해당 명령어 추가>
auth       required     pam_listfile.so item=group sense=deny file=/etc/ssh/sshgroup onerr=succeed
</etc/ssh/sshgroup 그룹추가>
TEST

=> TEST 그룹만 SSH 차단
<그룹에 유저 추가>
usermod -G TEST test

=> TEST 그룹에 test 유저 추가

2. 허용 (sense=allow)

<sshd 파일에 해당 명령어 추가>
auth       required     pam_listfile.so item=group sense=allow file=/etc/ssh/sshgroup onerr=succeed
</etc/ssh/sshgroup 그룹추가>
TEST

=> TEST 그룹만 SSH 허용
<그룹에 유저 추가>
usermod -G TEST test

=> TEST 그룹에 test 유저 추가

3. 여러 유저 차단 및 허용

  • TEST 그룹에 세 유저를 추가해주자.
  • 해당 그룹 유저에 대한 차단과 허용이 적용된 모습

sshd_config 파일을 이용한 접근통제

유저 접근 통제

허용 (AllowUsers)

  • sshd_config 파일에 AllowUsers test 한 줄 추가해주기
  • sshd_config 파일의 AllowUsers test 줄에 test1 추가해주기

차단 (DenyUsers)

  • 허용과 동일하게 DenyUsers [차단해줄 유저명] 추가
  • t*처럼 t로 시작하는 유저 SSH 차단 가능

그룹 접근 통제

  • TEST 그룹에 세 유저를 추가해주자.

허용 (AllowGroups)

  • AllowGroups으로 TEST 그룹의 SSH 접근을 허용시켜줌

차단 (DenyGroups)

  • DenyGroups으로 TEST 그룹의 SSH 접근을 차단시킴

su 명령어 사용 제한

cd /etc/pam.d

vi su

<6번째 줄의 설정 바꾸기>
auth		required	pam_wheel.so use_uid
  • wheel 그룹에 있는 유저만 su 명령어 사용 가능
  • wheel 그룹에 server3 유저 추가
  • test 계정은 su 명령어를 사용 못하지만
    server3 계정은 su 명령어를 사용 할 수 있다.
profile
처음 시작하는 사람

0개의 댓글

관련 채용 정보