Linux #2
rlogin이 위험한데 이를 막으려면
CentOS에서 제공하는 TCP Wrapper를 이용하면 된다. TCP Wrapper는 /etc/hosts.allow와 /etc/hosts.deny 두 개의 파일로 구성되는데 시스템은 항상
/etc/hosts.allow를 먼저 보고 이어서 /etc/hosts.deny 파일을 본다.
/etc/hosts.deny 파일에서
sshd: 192.168.100.100(하나의 호스트)
in.rlogind: 10.10.10. (하나의 네트워크) OR ~: ALL식으로 설정해주면 sshd와 rlogin 접속이 불가해진다.
원격에서 그래픽으로 접속하게 하는 도구가 VNC이다. TigerVNC, RealVNC, TightVNC 등의 도구를 Linux에서 사용한다. Windows에서는 Remote Desktop을 사용한다.
∎ 컴퓨터의 시간에는 마더보드의 배터리가 지원해주는 hardware clock과
운영체제가 지원해주는 system clock이 있다.
date 해서 나오는 KST(Korea Standard Time)는 한국 표준시이고,
UTP(Universal Time Coordinated)는 국제 표준시이다.
옆에 있는 Time Zone 탭으로 가서 지역을 맞추고, 하단의 System clock uses UTC에 체크하면 국제 표준시에 맞출 수 있다.
∎ 하드웨어(CMOS) 시간과 소프트웨어(시스템) 시간을 상호 맞출 수 있다.
① hwclock —show 해서 하드웨어 시간을 보고,
② hwclock —systohc 해서 시스템 시간을 하드웨어 시간과 동기화하고,
③ hwclock —hctosys 해서 하드웨어 시간과 시스템 시간을 동기화 할 수 있다.
④ 이제 reboot 해주면 변경 사항이 적용된다.
/etc/rc.local 파일에서 시스템 시간을 외부 time server와 동기화 시킨 뒤 시스템을 시작시키는 방법이 있고,
주기적으로 동기화 하는 방법이 있는데 cron 데몬을 사용하는 것이다.
명령어 뒤에 '0>~' 표준 입력, '1>~' 표준 출력, '2>~' 표준 에러 세 가지가 있다.
locale은 사용자의 지역에 따라서 언어, 금액, 단위, 시간 등을 지정해주는 것을 말한다.
Global DNS에 대한 설정은
■ OpenDNS 208.67.222.222나 208.67.220.220,
■ KT 168.126.63.1이나 168.126.63.2,
■ SK 브로드밴드 221.139.13.130나 210.94.0.73
■ LG 유플러스 164.124.101.2나 203.248.252.2
■ Google 8.8.8.8나 8.8.4.4
■ 클라우드 플레어 1.1.1.1나 1.0.0.1 주소를 사용하면 된다.
Printer
프린터 데몬은 CUPS이고, 사용되는 프로토콜은 LPD(Line Protocol Daemon)와 LPR(Line Protocol Remote)이며, Windows 시스템과 호환하기 위해서 Samba 그룹인 smb: // ~ 식으로 네트워크 프린터를 설정할 수 있다.
네트워크 프린터에서는 IPP(Internet Print Protocol)와 프린터 큐를 보는 IPQ(Inernet Print Queue)도 있다.
Fonts
폰트를 추가하려면 fontconfig.org 등에서 원하는 폰트를 Linux 용 글꼴로 다운받은 뒤 압축되어 있으면 디렉터리로 풀어서 /usr/share/fonts 디렉터리로 끌어다 놓으면 된다.
현재 실행되고 있는 runtime 상태에서
ifconfig eth0 192.168.100.100 netmask 255.255. 255.0 up 해서 IP 주소 변경이나 setenforce 0식으로 SELinux 설정 변경 등을 콘솔에서 명령어로 실행하면 이는 현재 세션 상태에만 적용되는 것이고 머신을 재시작하거나 세션을 벗어나면 이 설정이 없어진다.
원칙적으로는 해당 설정 파일 /etc/sysconfig/network-scripts/ifcfg-ens33이나 /etc/selinux/config 파일을 열고 설정해주면 영구적으로 저장된다.
하지만 이들 설정 값은 HDD에 저장되어 있기 때문에 CPU가 이 값을 가져와서 적용하려면 시간이 들게 된다. 따라서 이 값들을 monolithic 방식으로 미리 모두 RAM에 올려두면 빠르게 CPU가 적용할 수 있는데 RAM에 실제 저장되는 것이 아니어서 ‘가상파일시스템’이라고 부르고 /proc/~ 에 저장되어 있다.
FQDN(Fully Qualified Domain Name)
네트워크에서는 어느 호스트를 FQDN으로 찾는다. FQDN은 '호스트_명.도메인_명'을 합친 개념으로 centos1 머신이 kahn.edu 도메인 안에 있다면 centos1.kahn.edu식의 이름을 가지게 되는데 FQDN이라고 한다.
/etc/hosts 파일에
192.168.100.100 centos1.kahn.edu centos1식으로 적어두면 외부에서 해당 호스트의 IP 주소 대신 호스트_명 centos1으로 연결할 수 있다. FQDN으로 연결하려면 로컬 네트워크에 DNS 설정으로 kahn.edu 도메인을 찾을 수 있어야 centos1.kahn.edu로 연결할 수 있다.
DNS 서버에서의 이름풀이(www.naver.com =>는
1. 로컬의 /etc/hosts 파일 >2. 로컬 DNS 서버 >2. 외부 글로벌 DNS 서버 순서로 찾는데
타겟머신의 /etc/hosts 파일에
192.168.100.100(해커_머신) www.naver.com www naver.com식으로 설정해주면
타겟자가 www.naver.com으로 연결하면 해커의 192.168.100.100으로 연결되게 된다.
=>pshing site 공격이 된다!!!
IPv6 사용하지 않게 하기
현재 IPv4의 시대는 IPv4와 IPv6가 공존하는 시기라고 말한다. 20여 년 전부터 개발된 IPv6지만 하지만 아직도 대부분 네트워크에서는 IPv4를 사용하고 있다. 그러나 조만간 IPv6가 대세를 이룰 것이므로 이 IPv6에 대한 학습도 충분히 되어 있어야 한다.
IPv6는 IP 주소 고갈과 IPv4가 지니고 있는 구조적인 문제를 해결하기 위해서 도입된 결과 현재 대부분의 하드웨어와 소프트웨어에는 IPv6와 IPv4가 함께 구성되어 있지만 아직 대부분의 하드웨어와 인프라가 적극적으로 IPv6를 지원하지는 않고 있다. 그러므로 현실적으로 별로 사용하지도 않는 IPv6가 시스템에 함께 설정되어 있어서 속도, 관리, 보안적인 면에서 불필요(?)한 면이 있다. 그렇다고 SELinux, Channel Bonding, Postfix 등 패키지에서는 IPv6 설정이 필수라서 함부로 IPv6 서비스를 없앨 수도 없는 실정이다. 따라서 IPv6 기능을 없애기 전에 사용하고자 하는 서버 서비스 매뉴얼을 잘 살펴볼 필요가 있다.
chkconfig service_name --list 해서 어느 런레벨에서 실행되고 있는지 보고
chkconfig service_name --level 35 on/off식으로 실행될 레벨을 설정해준다.
쓸데 없는 서비스가 런레벨에서 실행되면 리소스(resources: CPU, RAM, HDD)를 낭비하는 결과 된다. 쓸데 없는 서비스는 실행되지 않게 해두는 것이 좋다.
ip addr 하고 네트워크 카드(NIC)의 정보를 보았을 때 PROMISC라는 단어가 보이면 SNMP라는 프로토콜을 이용해서 네트워크를 모니터링하고 있거나, 해커가 LAN에서 오가는 모든 패킷을 검사하고 있는 중이므로 주의한다. 이런 상태를 promiscuous mode라고 한다.
인터넷에 안 들어가지면 DNS 설정을 보아야 하는데
/etc/resolv.conf 설정이 중요하다.
nslookup & dig : DNS 설정 점검 도구
socket은 'IP_주소:포트_번호'의 개념이다. 소켓 에러는 대부분 방화벽에서 해당 포트를 열지 않아서 나타난다.
=>192.168.100.100:80 <=web server
192.168.100.100:23 <=Telnet server
....식으로 되어 있다.
타겟머신의 alive/dead 상태를 볼 때 ping을 사용하고
타겟머신까지의 경과 경로를 볼 때 traceroute를 사용한다.
=>이 두 명령어는 icmp 프로토콜을 사용한다.
네트워크와 시스템의 MAC 주소 정보를 보이는 - arp
=>글로벌하게 고유한 주소로 MAC(NIC의 물리적 주소), IP 주소, 전화 번호, OID(Object ID: SNMP 프로토콜 사용)
arp는 ARP 테이블을 관리하는데 사용된다.
외부 WAN에서는 호스트 A가 외부의 호스트 C를 찾아갈 때에는 IP 주소에서 호스트 C의 네트워크 주소만 참조해서 라우터가 경로를 결정 한 뒤 타겟 라우터가 호스트 C의 MAC 주소를 arp 브로드캐스트로 알아내어 찾아간다. 보안에서는 해커가 자신을 게이트웨이 등의 MAC 주소로 위장해서 오가는 패킷을 수신하므로 MAC 주소 변경관리가 중요하다.
로컬 LAN에서는 서로 브로드캐스트를 통해서 각 호스트가 이웃한 호스트의 IP 주소와 MAC 주소를 자신의 ARP Cache에 테이블 형태로 저장하고 있다가 호스트 A가 호스트 B에 연결할 때 이 MAC 주소로 찾아간다.
◾ LAN에서 호스트 A는 호스트 B를 MAC 주소(arp 프로토콜)로 알게 되고,
◾ WAN에서 호스트 A는 호스트 C까지 가는 경로를 호스트 C의 네트워크 주소로 알게 된다.
◾ LAN에서는 arp를 브로드캐스트로 뿌려서 모든 호스트들의 MAC를 서로 알게 되고,
◾ WAN에서는 라우터끼리는 BGP 프로토콜을 사용해서 상대를 알게 된다.