Ubuntu 22.04 netplan 설정하기

리눅스/Network|2023. 9. 4. 13:50
반응형

Ubuntu 22.04 에서는 netplan 이 업데이트 되어 설정법이 약간 바뀌었습니다.

네트워크 설정 파일을 생성 합니다.

# vi /etc/netplan/50-cloud-init.yaml 

network:
  version: 2
  ethernets:
    eno1:
      addresses: [ 115.68.142.104/27 ]
      routes:
        - to: default
          via: 115.68.142.97
      nameservers:
        addresses: [ 8.8.8.8 ]

 

* 설명

eno1 : 네트워크 장치명입니다. 명칭을 모를경우 ip link 명령으로 확인이 가능합니다.

addresses : 비트수까지 기록해줘야 합니다. netmask 를 입력하는 곳이 없기 때문입니다.

routes: via : 게이트웨이 IP 를 입력합니다.

nameservers: addresses : 네임서버 IP 를 입력합니다.

 

설정을 적용합니다.

# netplan apply

 

 

 

 

 

 

 

반응형

댓글()

iptables 명령으로 특정대역 22번 포트 허용 및 모두 차단

리눅스/Network|2023. 7. 31. 12:22
반응형

* 주의 : 룰에서 설정하는것이 아닌 iptables 명령을 통한 것이므로 리부팅이나 데몬 재시작시 룰이 초기화 되어 집니다.

 

iptables를 사용하여 22번 포트를 특정 대역에서만 열고 모두 차단하는 방법은 다음과 같습니다.
# iptables -A INPUT -p tcp --dport 22 -s 192.168.1.0/24 -j ACCEPT
# iptables -A INPUT -p tcp --dport 22 -j DROP

 

위의 명령을 실행하면, 192.168.1.0/24 대역에서 오는 SSH (22번 포트) 접근은 허용되고, 나머지 모든 IP 주소에서 오는 SSH 접근은 차단됩니다.

기존의 규칙이 있다면 -I 옵션을 사용해서 적용해야 합니다.

# iptables -I INPUT -p tcp --dport 22 -s 192.168.1.0/24 -j ACCEPT
# iptables -A INPUT -p tcp --dport 22 -j DROP

반응형

댓글()

Ubuntu 20.04 기본 방화벽 변경하기 (ufw -> iptables)

리눅스/Network|2023. 7. 27. 13:57
반응형

기본 방화벽을 중지합니다.
# systemctl disable --now ufw

iptables 를 설치합니다.

# apt-get -y update
# apt-get -y install iptables-persistent
(설치중 물음에는 'Yes' 로 대답)

 

룰 파일 위치는 아래와 같습니다.

여기에서는 예시로 작성했으니 서버 상황에 맞게 수정해서 사용하시면 됩니다.

# vi /etc/iptables/rules.v4

*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]

# Loopback 트래픽은 항상 허용합니다.
-A INPUT -i lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT

# ICMP 를 허용합니다.
-A INPUT -p icmp -m icmp --icmp-type any -j ACCEPT

# 특정 IP 주소에서 모든 포트로 들어오는 트래픽을 허용합니다.
-A INPUT -s 192.168.10.2 -j ACCEPT
-A INPUT -s 172.16.1.0/24 -j ACCEPT

# 이미 연결된 연결은 허용합니다.
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# 모든 아이피에서 포트 80번으로 들어오는 연결을 허용합니다.
-A INPUT -p tcp --dport 80 -j ACCEPT

# 마지막에 모든 트래픽을 거부합니다.
-A INPUT -j DROP
-A FORWARD -j DROP

COMMIT

 

iptables 가동하고, 부팅시 자동 실행되도록 합니다.

# systemctl enable --now iptables

 

적용된 iptables 룰을 확인합니다.

# iptables -nL

 

반응형

댓글()

tcpdump 로 패킷 이동 확인하기

리눅스/Network|2022. 7. 25. 14:56
반응형

서버 운영중 통신 여부를 확인하기 위해 tcpdump 로 패킷 이동 상황을 보게되는 경우가 있습니다.

이경우 아래와 같은 명령으로 간단히 확인이 가능합니다.

 

* 네트워크 장치명 : eno2 일 경우

 

// 나가는 모든 패킷 확인하기

# tcpdump -i eno2

 

// 특정 포트로 확인하기

# tcpdump -i eno2 tcp port 3306

 

// 소스 IP 로 확인하기

# tcpdump -i eno2 src 192.158.10.2

 

// 목적지 IP 로 확인하기

# tcpdump -i eno2 dst 192.158.10.3

 

// ping 으로 수신, 송신 확인하기

# tcpdump -nni eno2 icmp

# tcpdump -nni eno2 src 192.168.10.2 and icmp

 

 

반응형

댓글()

nc 명령 결과를 변수에 넣거나 파일에 쓰기

리눅스/Network|2020. 12. 11. 11:05
반응형

포트 체크를 위해 간단히 nc 라는 명령을 사용할 때가 있습니다.

그러나 일반적으로 아래와 같은 경우 결과를 변수에 넣거나 파일로 저장이 되지 않는데..


[ 잘 되지 않는 경우 ]


# nc -v -z sysdocu.tistory.com 80 > result.txt


# result=`nc -v -z sysdocu.tistory.com 80`

# echo $result



[ 해결 방법 ]


명령을 사용하거나 shell script 를 만들어서 사용해 보세요.

아래 예제는 결과를 출력하지만 파일로 저장하고 싶을 경우 echo "Success" > result.txt 과 같이 하면 됩니다.


# vi check.sh


#!/bin/bash


if nc -v -z sysdocu.tistory.com 80 2>/dev/null; then

       echo "Success"

else

       echo "failed"

fi 


# chmod 700 check.sh


# sh check.sh

Success



반응형

댓글()

[fping] network 대역으로 ping 체크하기

리눅스/Network|2020. 9. 14. 07:32
반응형

패키지 설치

# apt install fping

 

버전 확인

# fping --version
fping: Version 4.2

 

스캐닝

# fping -g 192.168.10.0/24

 

1개 호스트 포트 체크 (다운된 서버도 10 milliseconds 이내 응답)

# fping -t 10 192.168.10.2

 

PHP 에서 실행할때

$cmd = "/usr/sbin/fping -t 10 192.168.10.2";
$check = shell_exec($cmd);

echo $check;

 

반응형

댓글()

Ubuntu 19.04 netplan 설정하기

리눅스/Network|2019. 8. 5. 14:19
반응형

root@sysdocu:~# vi cat /etc/netplan/50-cloud-init.yaml

(파일명은 상관없는듯 하다)

 

네트워크가 두개인 경우 아래와 같이 설정한다.

각 레벨별로 들여 쓰기를 하지 않으면 적용시 에러가 출력된다. (스페이스바 사용 할 것)

network:

    version: 2

    ethernets:

        enp2s0:

            dhcp4: no

            addresses: [ 192.168.10.56/28 ]

            gateway4: 192.168.10.49

            nameservers:

                addresses: [ 164.124.101.2 ]

        enp3s0:

            dhcp4: no

            addresses: [ 192.168.1.26/24 ]

            gateway4: 192.168.1.1

            nameservers:

                addresses: [ 164.124.101.2 ]

/28은 28비트를 의미하며 넷마스크 255.255.255.240 이 된다.

기타 비트 수가 궁금하면 아래 URL 을 참고 하자.

https://sysdocu.tistory.com/1331

 

아래와 같이 적용한다.

root@sysdocu:~# netplan apply

 

혹시 에러가 출력될 경우 '들여쓰기 (탭)' 이 있지 않나 살펴보자.

공백을 사용하려면 스페이스바로 만들어야 한다.

 

반응형

댓글()

iptables 중지되지 않을때

리눅스/Network|2019. 3. 18. 14:21
반응형

아래 명령으로 내려봅니다.


iptables -P INPUT ACCEPT

iptables -P OUTPUT ACCEPT

iptables -P FORWARD ACCEPT

iptables -F



반응형

댓글()

nc 명령어 (포트 체크)

리눅스/Network|2019. 3. 7. 08:36
반응형

nc 명령으로 포트가 열렸는지 빠르게 (예시에서는 0.01 초) 확인이 가능하다.


root@sysdocu:~# nc -z -v 192.168.10.2 21

Ncat: Version 7.50 ( https://nmap.org/ncat )

Ncat: Connected to 115.68.221.85:21.

Ncat: 0 bytes sent, 0 bytes received in 0.01 seconds.



root@sysdocu:~# nc -z -v 192.168.10.2 22

Ncat: Version 7.50 ( https://nmap.org/ncat )

Ncat: Connection refused.



반응형

댓글()

네트워크 장치명 변경 (CentOS 7)

리눅스/Network|2019. 2. 13. 08:36
반응형

CentOS 7 버전 (Kernel 3.x 이상) 에서는 네트워크 장치명이 기존의 eth가 아닌 eno 등으로 자동으로 부여된다.

이 부분을 기존처럼 eth로 사용하기 위해서는 grub 파일을 수정 후 리빌드가 필요하다.


 

1. 기존 CentOS7 네트워크 장치명 확인

[root@sysdocu ~]# ifconfig

> eno1 로 확인



2. grub 파일 수정

[root@sysdocu ~]# vi /etc/default/grub

옵션 추가

GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet net.ifnames=0 biosdevname=0"

 


3. 적용

[root@sysdocu ~]# grub2-mkconfig -o /boot/grub2/grub.cfg



4. 이름 변경

- ifcfg-eno1 파일을 ifcfg-eth0 으로 변경

- 파일 내용의 명칭도 수정

 


5. 리부팅



반응형

댓글()

CentOS 7 에서 본딩 (bonding) 구성

리눅스/Network|2019. 2. 1. 02:25
반응형

본딩 모듈 로드

[root@sysdocu ~]# modprobe --first-time bonding

[root@sysdocu ~]​# lsmod | grep bonding

본딩 인터페이스 생성

[root@sysdocu ~]# vi /etc/sysconfig/network-scripts/ifcfg-bond0

BONDING_OPTS=mode=balance-rr

TYPE=Bond

BONDING_MASTER=yes

BOOTPROTO=none

DEFROUTE=yes

NAME=bond0

DEVICE=bond0

ONBOOT=yes

IPADDR=192.168.10.2

PREFIX=30    // 하단의 서브넷 마스크 변환표를 참조하여 NETMASK 값을 넣어준다.

GATEWAY=192.168.10.1


* 서브넷 마스크 변환표

SlashDotted DecimalSlashDotted DecimalSlashDotted Decimal
/8255.0.0.0/16255.255.0.0/24255.255.255.0
/9255.128.0.0/17255.255.128.0/25255.255.255.128
/10255.192.0.0/18255.255.192.0/26255.255.255.192
/11255.224.0.0/19255.255.224.0/27255.255.255.224
/12255.240.0.0/20255.255.240.0/28255.255.255.240
/13255.248.0.0/21255.255.248.0/29255.255.255.248
/14255.252.0.0/22255.255.252.0/30255.255.255.252
/15255.254.0.0/23255.255.254.0/31255.255.255.254


Slave 인터페이스로 사용할 eth0,eth1 파일 수정

[root@sysdocu ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0

NAME=bond-slave-eth0

DEVICE=eth0

BOOTPROTO=none

ONBOOT=yes

MASTER=bond0

SLAVE=yes 


[root@sysdocu ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth1

NAME=bond-slave-eth1

DEVICE=eth1

BOOTPROTO=none

ONBOOT=yes

MASTER=bond0

SLAVE=yes  



적용

[root@sysdocu ~]# systemctl restart network


* 주의 : 당연하지만, 기존 다른 네트워크 설정파일에 동일한 IP 가 셋팅되고, ONBOOT=yes 로 되어 있는경우 올라오지 않음


반응형

댓글()