일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- AWS배포자동화
- 리눅스명령어
- terraform기초
- AWS CI/CD
- AWS구축
- opt/anaconda3/bin/jupyter_mac.command
- cissp
- terraform따라하기
- aws기초
- 리눅스기초
- AWS 공격테스트
- Linux
- aws
- 리눅스
- linux명령어
- 쉘스크립트
- 리눅스기초명령어
- terraform with aws
- terraform기본
- 주피터노트북 설치
- blue/green배포
- GDPR
- aws terraform
- AWS CodeDeploy
- 최소권한
- Cissp sdlc
- aws기본
- AWS실습
- aws따라하기
- 직무분리
ysuekkom의 IT study note
[linux 기초] 명령어편 - 네트워크 관련 본문
[linux 기초] 명령어편 - 네트워크 관련 //개인 공부를 위한 기록용으로 일부 과거 자료 이전
리눅스는 운영 체제의 한 종류로, 커널에 기반을 둔 오픈소스 유닉스 계열이다.
작업 내역을 쉘 스크립트로 작성 후 검토, 새벽시간 적용하거나
네트워크 상태, 파일 및 계정 접근 권한 등등 실제 네트워크를 운용할 때 필수적으로 익혀야하는 명령어에 대해 정리해보려고 한다.
>명령어
ifconfig(InterFace CONFIGuration): 네트워크인터페이스의 활성/비활성화 및 설정
>ifconfig
>ifconfig eth0
ip: ip관련 정보 조회 및 설정
>ip address show
>ip address show eth0
>ip ad sh eth0
>ls -al /etc/sysconfig/network-scripts/
>cat /etc/redhat-release
CentOS Linux release 8.4.2105
netstat(NETwork STATistics): 네트워크 프로토콜의 통계와 연결상태를 확인
실무에서 자주쓰는 옵션 두 가지
1. -nltpu 서버가 열고있는 포트와 프로그램을 확인하는 옵션
>netstat -nltpu (LISTEN 상태, 옵션에서 u를 빼면 udp빼고 tcp만 볼 수 있음
옵션확인 : -nltpu
-n: 정의한 이름이나 도메인이름을 빼고 ip나 port를 숫자로 보여주는 옵션(특성 서비스의 지정된port가 숫자가 아닌 서비스로 나타남)
서비스에 대한 정의는 vi /etc/services에서 확인 가능함
-l: listening의 약자로 LISTEN상태의 소켓을 보여줌
서버는 특정 포트를 열어두고 유저를 기다림 == LISTEN
-t: TCP통신
-p: 프로그램의 이름
-u UDP통신
2. -tanu 현재 네트워크의 전체 상태를 보여줌
클라이언트가 몇 개 붙어있는지(LISTEN/ESTABLISHED) 등등
접속자가 많을 경우, ESTABLISHED 세션을 파일로 저장해서 보는 경우도 많음
명령어의 결과를 파일로 저장하는 경우 > 추후 강의에서 다룸
ss(Socket Statistics): 네트워크 소켓의 통계와 연결상태를 출력, netstat와 옵션 같음
-nltpu
-tanu
iptables : 패킷 필터링 도구로 패킷의 출입을 제한하는 방화벽구성이나 NAT(Network Address Translation)구성에 사용
아주 오래된 방화벽 구성
>iptables -nL
>systemctl status iptables 로 확인 할 수 있음
not found 확인
>cat /etc/sysconfig/network-scripts/ifcfg-enp0s3
centos에서 연결된 인터페이스는 enp0s3으로 인식되기 때문에 enp0s3에 ip가 자동할당 되어야 정상.
ONBOOT=no --> 연결 안되어있음
>ifup enp0s3
연결이 성공적으로 활성화 되었습니다(D-버스 활성 경로: /org/freedesktop/NetworkManager/ActiveConnection/3)
>ifconfig
할당 확인, ifup은 단발성으로 재부팅 시, 다시 원래상태로 돌아와 통신이 되지 않음
--> vi 이용 ONBOOT=no -> yes로 변경
>vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
여전히 안됨
>systemctl status iptables 로 확인 할 수 있음
not found 확인
<해결하기>
1. firewalld 정지점 및 마스킹하기.
2. iptables-sevice pakage 장착하기.
3. 서비스 활성화하기 ( >systemctl stop|start|stop] iptables)
4. 방화벽규칙 저장 (>/usr/libexec/iptables/iptables.init save)
>systemctl stop firewalld
>systemctl mask firewalld
Created symlink /etc/systemd/system/firewalld.service -> /dev/null.
>yum install iptables-services
마지막 메타 데이터 만료 확인 :2: 09:15. 2021년 10월 15일(금) 오전 4시 53분 44초 이전에 확인
종속성이 해결되었습니다.
==========================================================
패키지 아키텍처 버전 리포지터리 크기
설치중:
iptables-services x86_64 1.8.4-17.el8 baseos 62k
트랜잭션요약
==========================================================
설치 1패키지
총 다운로드 크기: 62k
설치된크기: 20k
정말입니까 [y/N]: y
패키지 다운로드 중:
iptables-services-1.8.4.17.el8.26_64.rpm 536 kB/s | 62 kB 0:00
---------------------------------------------------------------------------------------------------
합계 74 kB/s | 62 kB 0:00
.
.
.
출처 : /etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
.
.
.
설치됨:
iptables-services-1.8.4-17.el8.x86_64
완료되었습니다!
>systemctl enable iptables
>service iptabels save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
<다시 확인하기>
>systemctl status iptables
Active: inactive (dead)
>systemctl start iptabels
>systemctl status iptables
Loaded: loaded (/usr/lib/systemd/system/iptables.service; enabled; vendor preset: d>)
Active: active (exited)
>iptales -nL
Chain INPUT : 외부에서 이 서버에 들어오는 통신에 적용하는 룰
>다 막고 필요한 port/ip만 열어두는게 기본 정책
Chain FORWARD: 이 서버를 경유하는 통신에 적용하는 룰
>각 회사의 방화벽 정책마다 다름
Chain OUTPUT: 이 서버에서 외부로 나가는 통신에 적용하는 룰
>각 회사의 방화벽 정책마다 다름(특정 port/ip에 한해 설정하는게 대부분)
ufw(Uncomplicated FireWall): iptable의 제어를 쉽게 하기 위한 도구
ping: ICMP 프로토콜의 응답확인도구
internet control message protocol
통신을 위해 패킷을 주고받을 때 약속된 룰로 주고받음 > 약속된 룰: 프로토콜
-c: count 옵션
>ping -c 카운트횟수 서버이름
weget(World wide web + GET): 웹 서버로부터 컨텐츠를 가져오는 도구
웹주소로 자료를 다운로드 할 때 사용함
설치파일을 다운로드 받을 때 사용
소스를 받아 컴파일 설치하고싶을 때, 링크 카피 후 터미널에서 다운로드
https://openresty.org/en/download.html
Source Code Releases > Lastest release 우클릭 링크주소 복사 >터미널 붙여넣기 >다운로드 완료
curl(Client for URLs) : 다양한 프로토콜을 사용하여 데이터를 전송하게 해 주는 도구
>ping gmail.com
>curl -Lkso /dev/null -w "%{http_code}\n" https://gmail.com
200
옵션
-L: 리다이렉트 링크를 따라가는 옵션
>>HTML에서 301이 리다이렉션을 의미함
>curl -L https://gamil.com
링크를 따라가는 소스가 나옴
-k: http의 인증은 확인하지 않는다
-s: silent모드, curl을 실행하면 통계값이 나오는데 그걸 실행하지 말라, s 빼면 통계값 나옴
-o: 아웃풋 파일 지정 /dev/null로 지정한 것. /dev 하위에 여러 장치파일이 있음
>>null 아무것도 없는 상태를 나타내는 파일, 출력값을 /dev/null로 보내면 출력파일을 만들지 않겠다는 것.
-w: 아웃풋 포맷 결정: http코드만 출력하게 설정
>>curl 옵션 접속할 URL
route: 네트워크의 경로정보(라우팅테이블)의 출력, 변경하는 도구
Genmask: 목적지 네트워크의 넷마스크 주소(0.0.0.0은 게이트웨이)
Flags: 해당 경로에 대한 정보를 알려줌. H는 목적지가 호스트, G는 게이트웨이를 향하는 경로, U 살아있음.
Metric: 목적지 네트워크까지의 거리
Ref: 경로를 참조한 횟수
Use: 경로를 탐색한 횟수
>route -n
다른 도메인 네임이나 설정한 이름을 숫자로 바꾸어줌
>route add 라우트 설정
>route del 라우트 경로 삭제
'OS > linux' 카테고리의 다른 글
[linux 기초] 명령어 실습편 - 초간단 쉘 스크립트 작성IIII -대화식 쉘스크립트 구성 (1) | 2022.10.15 |
---|---|
[linux 기초] 명령어 실습편 - 초간단 쉘 스크립트 작성III -함수/배열 (0) | 2022.10.15 |
[linux 기초] 명령어 실습편 - 초간단 쉘 스크립트 작성II - 조건문/반복문 (0) | 2022.10.14 |
[linux 기초] 명령어 실습편 - 초 간단 쉘 스크립트 작성 (1) | 2022.10.13 |
[linux 기초] 명령어편 - 검색, 입출력 관련 (1) | 2022.10.13 |