리눅스 네트워크에 대해서 알아보자
네트워크 Configuration
해당 파일에 존재
/etc/sysconfig/network-scripts/ifcfg-*
*은 와일드카드로 아무거나 들어감
여러가지 파라미터 존재
sysctrl.conf
ip_forward | Interface간 packet 교환 허락(0,1) |
ip_defauolt_ttl | Router간 홉을 결정한다. (default:64) |
tcp_keepalive_time | Tcp간 keep time을 설정 (default:4) |
tcp_fin_timeout | FIN_WAIT상태 값 |
tcp_wmem | Socket write memory(default:128k) |
tcp_rmem | Socket read memory (default:8k) |
tcp_syncookies | Sync foold attack방어(default:false): dos attack |
tcp_max_syn_backlog | 승인받지 못한 요청에 대한 최대값 |
icmp_echo_ignore_all | icmp요청 무시(default: 0) |
rp_filter | Ip spoof 방지 |
Log_martians | Ip spoof 공격시 log기록 |
tcp_sack | Sync후 비정상적인 ack를 선택적으로 허락 sync attack, dos attack 방어 (0,1) |
netconfig
주요 명령어
netstat
$ vmstat 2 : 기본 모니터링
. procs – system의 process에 대한 정보 표시
1. r : watting process count
2. b : sleep process count
. System
1. us : 사용자가 사용하는 cpu %
2. sys : system이 사용하는 cpu%
3. id : system idle
. 4. wa : I/O에 대한 대기 비율 %
관련 파일
proc/meminfo
/proc/stat
/proc/*/stat
route
Network에서 packet의 흐름에 대한 경로를 결정하다
# route or netstat –r
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
... ... ... ... ... ... ....
G : router가 Gateway로 사용
H : 단독 호스트만 접근 가능
D : ICMP redirect 메시지로 운영
M : ICMP redirect 메시지로 수정이 되고 있음을 나타냄
3. Metric : hope count ( n개의 router count)
4. Ref : 다른 목적지로 가기위해 router가 첨조한 횟수
iptables
Kernel단 에서 제공하는 Network control 툴
1. Network 흐름제어 (FORWARD)
2. IP Filtering (ESTABLISH, DENY, DROP)
3. Connection Tracking
A. IP Filtering
접근하는 80 FORWARD
$ iptables -A FORWARD -i eth0 -p tcp --dport 80 -d 0.0.0.0 -j ACCEPT
$ iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT \ --to-destination 0.0.0.0:80 PREROUTING -i eth0 -p tcp --dport 80 -j DNAT
B. IP Filtering
접근하는 80 port에 접근 제어
$ iptables –A INPUT –p tcp –sport 80 –j DROP
$ iptables –A OUTPUT –p tcp –dport 80 –j DROP
$ iptables -A FORWARD -s 192.168.1.0/24 -i eth0 -j DROP
C. Connection Tracking
$ iptables -A FORWARD --state ESTABLISHED,RELATED -j ALLOW
C-1 : NEW : 새로운 연결
C-2 : ESTABLISHED : 현재 연결중인것
C-3 : RELATED : 과거에 연결했던것
C-4 : INVALID : 아무것도 해당이 없는 경우
nmap
내부/외부 System의 서비스를 scanning 한다.
Linux의 보안을 관리하기 위해 사용을 한다. – 현재 해킹을 위한 전 단계로 많이 사용 되어짐.
TCP/UDP/PORT/Range Scanning/Packet Trace 다양한 기능을 제공
$ nmap -A -T4 –F www.example.com
PORT STATE SERVICE VERSION
21/tcp open ftp
23/tcp open telnet
80/tcp open http
512/tcp open exec
513/tcp open login
514/tcp open shell
873/tcp open rsync
2301/tcp open compaqdiag
2401/tcp open cvspserver
8009/tcp open ajp13
8080/tcp open http-proxy
traceroute
기본 포맷 : traceroute {hostname}
패킷의 이동경로 출력
ifconfig
Network Interface의 기본 정보
MTU : Windows frame size
Metric : binding 우선순위
RX : recive packet bytes
Tx : send packet bytesTcpdump
tcpdump -q \( dst net 1.2.3.0/24 or 1.2.4.0/25 \) and dst port 80
# 목적지 주소가 1.2.3.x/24 와 1.2.4.x/25 이고 80번포트인 패킷 캡쳐
tcpdump host A
# A 호스트로/부터의 모든 도착/출발 패킷 출력
tcpdump host A and \( B or C \)
# A 호스트와 B 또는 C 사이의 모든 트래픽 출력
tcpdump ip host A and not B
# A호스트와 B를 제외한 호스트 간의 모든 IP 패킷 출력
tcpdump 'tcp[13] & 3 != 0 port 80 ‘
# 데이타 패킷 출력
tcpdump 'gateway A and ip[2:2] > 576'
# 게이트웨이 A를 통해 보내지는 576 Bytes보다 긴 IP 패킷 출력
tcpdump 'ether[0] & 1 = 0 and ip[16] >= 224'
# 이더넷이 아닌 IP 브로드 또는 멀티 캐스트 패킷 출력
tcpdump src net 1.2.3 or 1.2.4 and not dst net 1.2.3 or 1.2.4
# 1.2.3 과 1.2.4 IP주소 (내부) 패킷을 제외한 모든 패킷 출력
netconfig
tcp/ip 네트워크 설정
nslookup
기본 포맷 : nslookup {hostname}
DNS에 특정 도메인 네임 정보 요청
# 구글의 호스트 서버 ip를 요청한다.
$ nslookup www.google.com
Note: nslookup is deprecated and may be removed from future releases.
Consider using the `dig' or `host' programs instead. Run nslookup with
the `-sil[ent]' option to prevent this message from appearing.
Server: 222.231.51.103
Address: 222.231.51.103#53
Non-authoritative answer:
www.google.com canonical name = www.l.google.com.
Name: www.l.google.com
Address: 66.249.89.99
Name: www.l.google.com
Address: 66.249.89.147
Name: www.l.google.com
Address: 66.249.89.104
ping
기본 포맷 : ping [option] {hostname}
원격 호스트로 ICMP 에코 요청 전송
**ICMP : (internet control message protocol) 인터넷 메시지 제어/에러 리포팅 프로토콜
ping -n 3 google.com
Ping google.com [142.250.206.238] 32바이트 데이터 사용:
142.250.206.238의 응답: 바이트=32 시간=29ms TTL=116
142.250.206.238의 응답: 바이트=32 시간=29ms TTL=116
142.250.206.238의 응답: 바이트=32 시간=29ms TTL=116
142.250.206.238에 대한 Ping 통계:
패킷: 보냄 = 3, 받음 = 3, 손실 = 0 (0% 손실),
왕복 시간(밀리초):
최소 = 29ms, 최대 = 29ms, 평균 = 29ms
[컴퓨터(Computer Science)/네트워크, Network] - 핑과 추적루트, PING and TRACERT(traceroute)
telnet
rlogin
기본 포맷 : rlogin [option] {hostname}
원격 호스트 접속
# 원격 호스트 host333으로 접속한다.
$ rlogin host333
-Last login: Tue Sep 16 10:25:09 from 111.111.111.111
# 특정 계정으로 접속
$ rlogin –l master host333
-Last login: Tue Sep 16 10:27:08 from 111.111.111.111
rsh
기본 포맷 : rsh [option] {hostname} {command}
원격 호스트 쉘 접속
# host333 에 접속하여 ls 명렁어 수행
$ rsh host333 ‘ls’
bin
…
…
ssh
기본 포맷 : ssh [option] {hostname}
보안 호스트 접속
# host333에 접속한다.
$ ssh host333
Last login: Tue Sep 16 11:18:39 2008 from 111.111.111.111
rsync
rcp
# 현재 폴더의 모든 파일을 host 의 ~/user/darkh 폴더로 복사한다.
# r(디렉토리의 경우 하위 모두 포함), p(파일 속성 보존)
$ rcp -rp . host:~/user/darkh
'SRE > Linux Basics' 카테고리의 다른 글
rmdir (0) | 2022.12.25 |
---|---|
mkdir (1) | 2022.12.25 |
Linux_Process (0) | 2022.12.18 |
mv (0) | 2022.12.18 |
cat (0) | 2022.12.18 |