Process : /usr/sbin/tcpd
CONFIGURATION FILE
접근허용 설정 : /etc/hosts.allow
접근거부 설정 : /etc/hosts.deny
1. 특정 아이피, 특정 네트워크, 특정 서비스에 한하여 허용 설정
/etc/hosts.allow
1) 모든 서비스에 대하여 192.168.0.10, 192.168.0.11 아이피만 허용
ALL:192.168.0.10, 192.168.0.11
2) 모든 서비스에 대하여 172.16.0.0, 192.168.0.0 네트워크만 허용
ALL :192.168.0.0/255.255.255.0, 172.16.0.0/255.255.0.0
3) 특정 서비스(in.telnetd)에 대하여 192.168.0.10, 192.168.0.11 아이피만 허용
in.telnetd:192.168.0.10, 192.168.0.11
sshd:192.168.100.0/255.255.255.0
/etc/hosts.deny
1) 모든서비스 및 모든 아이피 거부
ALL:ALL
2. 특정 아이피, 특정 네트워크, 특정 서비스에 한하여 거부 설정
/etc/hosts.deny
1) 모든 서비스에 대하여 192.168.0.10, 192.168.0.11 아이피만 거부
ALL:192.168.0.10, 192.168.0.11
2) 모든 서비스에 대하여 172.16.0.0, 192.168.0.0 네트워크만 거부
ALL :192.168.0.0/255.255.255.0, 172.16.0.0/255.255.0.0
3) 특정 서비스(in.telnetd)에 대하여 192.168.0.10, 192.168.0.11 아이피만 거부
in.telnetd:192.168.0.10, 192.168.0.11
sshd : ALL
/etc/hosts.allow
1) 모든서비스 및 모든 아이피 허용
ALL:ALL
3. 원하는 설정을 한 후
/usr/sbin/tcpd 실행
4. TCP Wrapper 사용 여부 확인 방법 (libwrap.so)
처음 TCP Wrapper 개념을 접했을 때는 외부에서 접근하는 모든 TCP 관련 connection 들을 제어하는 것으로 오해하였다.
TCP Wrapper 는 libwrap.so 을 사용하여 구현된 service 에서만 적용되는 사항이다.
TCP Wrapper 를 지원하는지 여부는 다음과 같이 확인이 가능하다.
sshd 를 예를 들면 먼저 which를 통해 sshd의 위치를 확인하고 ldd를 통해 libwrap.so 사용 여부를 확인하면 된다.
$ which sshd
/usr/sbin/sshd
$ ldd /usr/sbin/sshd
linux-vdso.so.1 => (0x00007fff0a153000)
libwrap.so.0 => /lib/x86_64-linux-gnu/libwrap.so.0 (0x00007ff9af732000)
libaudit.so.1 => /lib/x86_64-linux-gnu/libaudit.so.1 (0x00007ff9af50b000)
libpam.so.0 => /lib/x86_64-linux-gnu/libpam.so.0 (0x00007ff9af2fd000)
libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007ff9af0db000)
libsystemd.so.0 => /lib/x86_64-linux-gnu/libsystemd.so.0 (0x00007ff9afd9c000)
libcrypto.so.1.0.0 => /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007ff9aec96000)
libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007ff9aea93000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007ff9ae879000)
libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007ff9ae641000)
libgssapi_krb5.so.2 => /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x00007ff9ae3f7000)
libkrb5.so.3 => /usr/lib/x86_64-linux-gnu/libkrb5.so.3 (0x00007ff9ae125000)
libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 (0x00007ff9adf21000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007ff9adb57000)
libnsl.so.1 => /lib/x86_64-linux-gnu/libnsl.so.1 (0x00007ff9ad93e000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007ff9ad73a000)
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007ff9ad4ca000)
/lib64/ld-linux-x86-64.so.2 (0x00007ff9afc06000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007ff9ad2c2000)
liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007ff9ad0a0000)
libgcrypt.so.20 => /lib/x86_64-linux-gnu/libgcrypt.so.20 (0x00007ff9acdbf000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007ff9acba2000)
libk5crypto.so.3 => /usr/lib/x86_64-linux-gnu/libk5crypto.so.3 (0x00007ff9ac973000)
libkrb5support.so.0 => /usr/lib/x86_64-linux-gnu/libkrb5support.so.0 (0x00007ff9ac768000)
libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1 (0x00007ff9ac564000)
libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007ff9ac349000)
libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007ff9ac135000)
아래 예를 참조하면 libwrap.so 를 사용하는 명령어 리스트 확인도 가능하다.
$ for file in /usr/sbin/*; do ldd $file 2>/dev/null | grep -q libwrap.so && echo $file; done
/usr/sbin/mysqld
/usr/sbin/pptpd
/usr/sbin/sshd
/usr/sbin/tcpd
/usr/sbin/tcpdchk
/usr/sbin/tcpdmatch
/usr/sbin/try-from
'Linux > CentOS & RHEL' 카테고리의 다른 글
[Tip] HBA카드(FC카드) 정보 조회 명령어 (0) | 2020.08.27 |
---|---|
[Tip] Linux System Log 종류 (0) | 2020.08.27 |
[Bonding] CentOS / RHEL bonding 구성 (0) | 2020.08.20 |
[Tip] 서버 hostid 변경 방법 (0) | 2020.08.18 |
[Tip] RPM 명령 및 옵션 (0) | 2020.08.18 |