Rocky Linux와 같은 리눅스 배포판에서 firewalld와 iptables는 모두 방화벽을 관리하는 도구이지만, 그 작동 방식과 관리 방법에 차이가 있습니다. 두 도구는 주로 네트워크 트래픽을 필터링하고 방화벽 규칙을 설정하는 데 사용됩니다.

 

1. firewalld

  • 동적 방화벽 관리 도구로, 시스템이 동작 중일 때도 방화벽 규칙을 즉시 적용할 수 있습니다. 이를 통해 연결을 끊거나 네트워크 서비스에 영향을 주지 않고도 방화벽 규칙을 수정할 수 있습니다.
  • firewalld는 영역(zone) 개념을 도입하여 네트워크 인터페이스를 다양한 보안 수준으로 그룹화할 수 있습니다. 각 영역에는 다른 방화벽 규칙 세트가 적용될 수 있습니다.
  • 설정 파일이 XML 형식으로 구성되어 있으며, 명령어는 직관적입니다.
  • 추상화 레이어를 제공하여 고급 설정을 보다 쉽게 관리할 수 있습니다.
  • 주로 nftables 백엔드를 사용합니다. 이는 iptables와 유사한 역할을 하지만 더 최신의 방화벽 기술입니다.

장점:

  • 동적인 설정 변경이 가능.
  • 직관적인 영역 기반 관리.
  • 복잡한 설정을 간단하게 할 수 있음.

2. iptables

  • 전통적인 방화벽 도구로, 네트워크 패킷 필터링을 위한 명령 줄 도구입니다.
  • iptables는 statelessstateful 패킷 필터링을 지원합니다.
  • 규칙을 설정할 때 실시간으로 즉각 적용이 가능하지만, 규칙을 수정하려면 보통 전체 규칙 세트를 다시 로드해야 합니다.
  • 사전 정의된 체인과 테이블을 사용하여 트래픽을 필터링합니다. 체인은 INPUT, FORWARD, OUTPUT 등이고, 테이블은 필터, NAT, Mangle 등으로 나뉩니다.
  • iptables는 리눅스 방화벽 관리에서 오랫동안 표준으로 사용되어 왔지만, 최근에는 nftables로 대체되고 있습니다.

장점:

  • 고도로 세밀한 설정 가능.
  • 방화벽의 동작 방식을 매우 구체적으로 제어할 수 있음.
  • 오랜 시간 동안 많은 리눅스 배포판에서 사용되어 온 안정적인 도구.

주요 차이점

  • 관리 방식: firewalld는 iptables보다 더 높은 수준의 추상화와 유연한 관리 인터페이스를 제공합니다. 반면, iptables는 더 세밀하고 구체적인 제어가 가능하지만, 설정이 복잡할 수 있습니다.
  • 동적 vs 정적: firewalld는 시스템을 재시작하거나 네트워크 연결을 끊지 않고도 규칙을 실시간으로 변경할 수 있습니다. iptables는 규칙을 변경할 때 일부 영향을 미칠 수 있습니다.
  • 백엔드: firewalld는 최신 리눅스 배포판에서 nftables를 기본 백엔드로 사용하지만, iptables는 오래된 방화벽 관리 도구로 iptables 프레임워크 자체를 사용합니다.

따라서, 보다 간편하고 동적인 방화벽 관리를 원한다면 firewalld를, 더 세밀한 규칙 제어를 원한다면 iptables를 사용할 수 있습니다.

 

 

라고 Chat GPT 에서 얘기해준다.,

 

기존 Centos 에서 iptables로 방화벽 관리를 주로 했었는데,

Rocky Linux 에서는 firewalld를 사용해서 방화벽 관리를 하고 있다.

 

커맨드 라인으로 일일이 추가/관리하는게 번거로워서..

 

<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>gitlab</short>
  <description>Grafana is an open platform for beautiful analytics and monitoring</description>
  <port protocol="tcp" port="4963"/>
  <port protocol="tcp" port="4922"/>
</service>

/usr/lib/firewalld/services/gitlab.xml

 

이렇게 서비스 파일을 만들고,

 

<?xml version="1.0" encoding="utf-8"?>
<zone>
  <short>Public</short>
  <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
  <service name="ssh"/>
  <service name="dhcpv6-client"/>
  <service name="cockpit"/>
  <service name="logstash"/>
  <service name="kibana"/>
  <service name="grafana"/>
  <service name="elasticsearch"/>
  <service name="prometheus"/>
  <service name="sonarqube"/>
  <service name="registry"/>
  <service name="gitlab"/>
</zone>

/etc/firewalld/zones/public.xml

 

여기에 서비스를 등록한다.

 

그리고 나서,

 

sudo systemctl start firewalld

 

자동재시작 등록은

sudo systemctl enable firewalld

 

root@gitlab:/# gitlab-psql
psql (12.7)
Type "help" for help.

gitlabhq_production=# UPDATE projects SET runners_token = null, runners_token_encrypted = null;
UPDATE 346
gitlabhq_production=# UPDATE namespaces SET runners_token = null, runners_token_encrypted = null;
UPDATE 129
gitlabhq_production=# UPDATE application_settings SET runners_registration_token_encrypted = null;
UPDATE 1
gitlabhq_production=# UPDATE application_settings SET encrypted_ci_jwt_signing_key = null;
UPDATE 1
gitlabhq_production=# UPDATE ci_runners SET token = null, token_encrypted = null;
UPDATE 3
gitlabhq_production=# UPDATE ci_builds SET token_encrypted = null;
UPDATE 4039

 

php로 exec 실행하면 잘되는데,

apache 로 세팅해서 rest 로 호출하면 exec가 실행이 되지 않는다.


권한문제로,

apache로 실행되면 user가 다르기 때문


php 소스상에

echo system('whoami');


라고 코드를 넣어보면 수행하는 유저를 알 수가 있다.


그 유저에게 권한을 부여해주면됨


sudo nano /etc/sudoers


www-data       ALL=(ALL) NOPASSWD:ALL


이라고 추가하면 완료

대상 OS

CentOS release 6.8 (Final)



1. 패키지 파일 복사


2. 방화벽 설정


3. 아파치 설정


4. php56 설치

yum list php56-*

yum 리스트에 뜨질않는다면 repository 변경

rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm

yum clean all

yum install php-pear php-devel gcc make

yum clean all

yum list php56*


기존에 깔았던 php제거

yum -y remove php php-*


yum install php56w-devel php56w-pecl php56w-common php56w-mysql php56w-pear php56w-mbstring php56w-opcache php56w



5. Predis 설치

yum install php-pear

pear channel-discover pear.nrk.io

pear install nrk/Predis


6. 레디스 클러스터 설정

./redis-server ../7000/redis.conf

./redis-server ../7001/redis.conf

./redis-server ../7002/redis.conf

./redis-trib.rb create 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002



http://blog.daum.net/cypanic/2143317

VM의 Root Disk를 가지고 VM들을 만들면서,

기존의 Root Disk를 이용해서 새로운 VM을 만들경우,

eth0 이 아닌 eth1이 만들어진다. 그 다음은 eth2.

물론 기존의 nic가 없을경우는 상관이 없지만, 기존에 nic 이 있을 경우 이런식이다.

/etc/udev/rules.d/ 를 보면 

70-persistent-net.rules 파일이 있는데,

이 파일을 열어 보면 nic 정보가 들어있다. (Centos6 기준)

이걸 보면 느낌이 오겠지만 기존 정보를 지우고 재부팅을 하면 원하는 eth로 사용을 할 수 있다.


CentOS 템플릿을 수정해야할 일이 생겼다.

qemu-img convert -f qcow2 볼륨파일 -O qcow2 템플릿파일

위와 같이 시도해봤으나 볼륨이 카피되는 것처럼 찝찝했다.

그래서 마운트해서 직접 파일시스템을 고쳐보기로...

하지만 LVM 에서 막혀버렸다... ㅠ


그리도 qcow2 는 qemu-nbd 라는 유틸리티를 이용해서 로드할 수 있는데, CentOS6 버전에서는 없다.


그래서 qcow2 를 raw로 변경해야 한다.

qemu-img convert -f qcow2 originImage.qcow2 -O raw image.raw


raw 로 바뀌었으면 이제 본격적으로 마운트를 시켜보자.

losetup /dev/loop0 image.raw

kpartx -a /dev/loop0

mkdir /mnt/image

mount /dev/mapper/loop0p2 /mnt/image

하지만.

"mount: unknown filesystem type 'LVM2_member'"

에러가 발생한다.

LVM이기 때문에 이렇게 마운트 할수가 없는 것이다.



[root@dev156 mnt]# lvmdiskscan

  /dev/ram0                [      16.00 MiB]

  /dev/loop0               [       8.00 GiB]

  /dev/root                [      50.00 GiB]

  /dev/ram1                [      16.00 MiB]

  /dev/vg_dev154/lv_swap   [       9.80 GiB]

  /dev/ram2                [      16.00 MiB]

  /dev/sda2                [     500.00 MiB]

  /dev/vg_dev154/lv_home   [     871.22 GiB]

  /dev/ram3                [      16.00 MiB]

  /dev/sda3                [     931.02 GiB] LVM physical volume

  /dev/vg_dev156/lv_swap   [       9.78 GiB]

  /dev/ram4                [      16.00 MiB]

  /dev/vg_dev156/lv_home   [     871.22 GiB]

  /dev/ram5                [      16.00 MiB]

  /dev/vg_dev156/lv_root   [      50.00 GiB]

  /dev/ram6                [      16.00 MiB]

  /dev/ram7                [      16.00 MiB]

  /dev/mapper/loop0p2      [       7.90 GiB] LVM physical volume

  /dev/ram8                [      16.00 MiB]

  /dev/VolGroup00/LogVol00 [       6.88 GiB]

  /dev/ram9                [      16.00 MiB]

  /dev/VolGroup00/LogVol01 [       1.00 GiB]

  /dev/ram10               [      16.00 MiB]

  /dev/ram11               [      16.00 MiB]

  /dev/ram12               [      16.00 MiB]

  /dev/ram13               [      16.00 MiB]

  /dev/ram14               [      16.00 MiB]

  /dev/ram15               [      16.00 MiB]

  /dev/sdb1                [     500.00 MiB]

  /dev/sdb2                [     931.02 GiB] LVM physical volume

  6 disks

  21 partitions

  0 LVM physical volume whole disks

  3 LVM physical volumes


LVM 볼륨이 보인다.

/dev/mapper/loop0p2      [       7.90 GiB] LVM physical volume


lvdisplay와 vgdisplay를 확인해서 LV, VG 이름을 확인한다.

[root@dev156 mnt]# vgdisplay

  --- Volume group ---

  VG Name               vg_dev154

  System ID

  Format                lvm2

  Metadata Areas        1

  Metadata Sequence No  6

  VG Access             read/write

  VG Status             resizable

  MAX LV                0

  Cur LV                3

  Open LV               3

  Max PV                0

  Cur PV                1

  Act PV                1

  VG Size               931.02 GiB

  PE Size               4.00 MiB

  Total PE              238341

  Alloc PE / Size       238341 / 931.02 GiB

  Free  PE / Size       0 / 0

  VG UUID               Dully9-Bnix-hrHe-czD0-HfDK-pE60-wNLdmb


  --- Volume group ---

  VG Name               VolGroup00

  System ID

  Format                lvm2

  Metadata Areas        1

  Metadata Sequence No  3

  VG Access             read/write

  VG Status             resizable

  MAX LV                0

  Cur LV                2

  Open LV               0

  Max PV                0

  Cur PV                1

  Act PV                1

  VG Size               7.88 GiB

  PE Size               32.00 MiB

  Total PE              252

  Alloc PE / Size       252 / 7.88 GiB

  Free  PE / Size       0 / 0

  VG UUID               984Syc-oChm-BdAX-TKcD-l95D-JkTY-1FdH6M


  --- Volume group ---

  VG Name               vg_dev156

  System ID

  Format                lvm2

  Metadata Areas        1

  Metadata Sequence No  4

  VG Access             read/write

  VG Status             resizable

  MAX LV                0

  Cur LV                3

  Open LV               0

  Max PV                0

  Cur PV                1

  Act PV                1

  VG Size               931.00 GiB

  PE Size               32.00 MiB

  Total PE              29792

  Alloc PE / Size       29792 / 931.00 GiB

  Free  PE / Size       0 / 0

  VG UUID               zzp60Z-uCg8-2A6T-M6aU-LfBP-QXqx-U1SDpB


[root@dev156 mnt]# lvdisplay

  --- Logical volume ---

  LV Name                /dev/vg_dev154/lv_root

  VG Name                vg_dev154

  LV UUID                Qx338T-4L2V-mVsj-Idhd-MN0Y-zRM8-WXZBKK

  LV Write Access        read/write

  LV Status              available

  # open                 1

  LV Size                50.00 GiB

  Current LE             12800

  Segments               1

  Allocation             inherit

  Read ahead sectors     auto

  - currently set to     256

  Block device           253:0


  --- Logical volume ---

  LV Name                /dev/vg_dev154/lv_home

  VG Name                vg_dev154

  LV UUID                Ht9ZKI-0tUv-aYCr-hEjO-ArBT-VOaW-J2vcRM

  LV Write Access        read/write

  LV Status              available

  # open                 1

  LV Size                871.22 GiB

  Current LE             223033

  Segments               1

  Allocation             inherit

  Read ahead sectors     auto

  - currently set to     256

  Block device           253:2


  --- Logical volume ---

  LV Name                /dev/vg_dev154/lv_swap

  VG Name                vg_dev154

  LV UUID                3pLedP-5ctg-1BVo-gSwA-Tbyg-V1gy-X5CaFP

  LV Write Access        read/write

  LV Status              available

  # open                 1

  LV Size                9.80 GiB

  Current LE             2508

  Segments               1

  Allocation             inherit

  Read ahead sectors     auto

  - currently set to     256

  Block device           253:1


  --- Logical volume ---

  LV Name                /dev/VolGroup00/LogVol00

  VG Name                VolGroup00

  LV UUID                8Yp1YF-dfjF-tg8n-JHNh-iYwL-PJqy-TRlOEz

  LV Write Access        read/write

  LV Status              available

  # open                 0

  LV Size                6.88 GiB

  Current LE             220

  Segments               1

  Allocation             inherit

  Read ahead sectors     auto

  - currently set to     256

  Block device           253:8


  --- Logical volume ---

  LV Name                /dev/VolGroup00/LogVol01

  VG Name                VolGroup00

  LV UUID                Fd4zHI-S1sp-Xz20-KIuO-QaJJ-RQ1y-mbtIzW

  LV Write Access        read/write

  LV Status              available

  # open                 0

  LV Size                1.00 GiB

  Current LE             32

  Segments               1

  Allocation             inherit

  Read ahead sectors     auto

  - currently set to     256

  Block device           253:9


  --- Logical volume ---

  LV Name                /dev/vg_dev156/lv_swap

  VG Name                vg_dev156

  LV UUID                d6c20U-pQYM-xGfe-yER1-uSgF-wUYx-5OrboZ

  LV Write Access        read/write

  LV Status              available

  # open                 0

  LV Size                9.78 GiB

  Current LE             313

  Segments               1

  Allocation             inherit

  Read ahead sectors     auto

  - currently set to     256

  Block device           253:3


  --- Logical volume ---

  LV Name                /dev/vg_dev156/lv_home

  VG Name                vg_dev156

  LV UUID                V1jSbh-ZqZM-XOh7-PFCL-JqTN-jxuc-yoP6Sk

  LV Write Access        read/write

  LV Status              available

  # open                 0

  LV Size                871.22 GiB

  Current LE             27879

  Segments               1

  Allocation             inherit

  Read ahead sectors     auto

  - currently set to     256

  Block device           253:4


  --- Logical volume ---

  LV Name                /dev/vg_dev156/lv_root

  VG Name                vg_dev156

  LV UUID                RpA6xx-qI6s-WhG6-ZEu8-DCiY-Uprz-C039Cz

  LV Write Access        read/write

  LV Status              available

  # open                 0

  LV Size                50.00 GiB

  Current LE             1600

  Segments               1

  Allocation             inherit

  Read ahead sectors     auto

  - currently set to     256

  Block device           253:5

[root@dev156 mnt]# vgdisplay

  --- Volume group ---

  VG Name               vg_dev154

  System ID

  Format                lvm2

  Metadata Areas        1

  Metadata Sequence No  6

  VG Access             read/write

  VG Status             resizable

  MAX LV                0

  Cur LV                3

  Open LV               3

  Max PV                0

  Cur PV                1

  Act PV                1

  VG Size               931.02 GiB

  PE Size               4.00 MiB

  Total PE              238341

  Alloc PE / Size       238341 / 931.02 GiB

  Free  PE / Size       0 / 0

  VG UUID               Dully9-Bnix-hrHe-czD0-HfDK-pE60-wNLdmb


  --- Volume group ---

  VG Name               VolGroup00

  System ID

  Format                lvm2

  Metadata Areas        1

  Metadata Sequence No  3

  VG Access             read/write

  VG Status             resizable

  MAX LV                0

  Cur LV                2

  Open LV               0

  Max PV                0

  Cur PV                1

  Act PV                1

  VG Size               7.88 GiB

  PE Size               32.00 MiB

  Total PE              252

  Alloc PE / Size       252 / 7.88 GiB

  Free  PE / Size       0 / 0

  VG UUID               984Syc-oChm-BdAX-TKcD-l95D-JkTY-1FdH6M


  --- Volume group ---

  VG Name               vg_dev156

  System ID

  Format                lvm2

  Metadata Areas        1

  Metadata Sequence No  4

  VG Access             read/write

  VG Status             resizable

  MAX LV                0

  Cur LV                3

  Open LV               0

  Max PV                0

  Cur PV                1

  Act PV                1

  VG Size               931.00 GiB

  PE Size               32.00 MiB

  Total PE              29792

  Alloc PE / Size       29792 / 931.00 GiB

  Free  PE / Size       0 / 0

  VG UUID               zzp60Z-uCg8-2A6T-M6aU-LfBP-QXqx-U1SDpB


mount /dev/VolGroup00/LogVol00 /mnt/image

"mount: special device /dev/VolGroup00/LogVol00 does not exist"

에러가 발생했다...


그래서.

[root@dev156 mnt]# lvscan

  ACTIVE            '/dev/vg_dev154/lv_root' [50.00 GiB] inherit

  ACTIVE            '/dev/vg_dev154/lv_home' [871.22 GiB] inherit

  ACTIVE            '/dev/vg_dev154/lv_swap' [9.80 GiB] inherit

  inactive            '/dev/VolGroup00/LogVol00' [6.88 GiB] inherit

  inactive            '/dev/VolGroup00/LogVol01' [1.00 GiB] inherit

  ACTIVE            '/dev/vg_dev156/lv_swap' [9.78 GiB] inherit

  ACTIVE            '/dev/vg_dev156/lv_home' [871.22 GiB] inherit

  ACTIVE            '/dev/vg_dev156/lv_root' [50.00 GiB] inherit

상태가 inactive가 되어있다.


active로 바꿔줘야한다.

[root@dev156 mnt]# modprobe dm-mod

[root@dev156 mnt]# vgchange -ay

[root@dev156 mnt]# lvscan

  ACTIVE            '/dev/vg_dev154/lv_root' [50.00 GiB] inherit

  ACTIVE            '/dev/vg_dev154/lv_home' [871.22 GiB] inherit

  ACTIVE            '/dev/vg_dev154/lv_swap' [9.80 GiB] inherit

  ACTIVE            '/dev/VolGroup00/LogVol00' [6.88 GiB] inherit

  ACTIVE            '/dev/VolGroup00/LogVol01' [1.00 GiB] inherit

  ACTIVE            '/dev/vg_dev156/lv_swap' [9.78 GiB] inherit

  ACTIVE            '/dev/vg_dev156/lv_home' [871.22 GiB] inherit

  ACTIVE            '/dev/vg_dev156/lv_root' [50.00 GiB] inherit


다시

mount /dev/VolGroup00/LogVol00 /mount/image

이제 마운트가 된다.


수정 후

raw 를 qcow2 다시 변환해주어야한다.

qemu-img convert -f qcow2 image.raw -O raw modifiedImage.qcow2


해제

#lvremove /dev/VolGroup00/LogVol00

#lvremove /dev/VolGroup00/LogVol01

#kpartx -d /dev/loop0

#losetup -d /dev/loop0

참고

http://stackoverflow.com/questions/4966213/changing-password-of-a-virtual-machine

http://pissedoffadmins.com/?p=481


본딩에 관한 글!


http://sangchul.kr/4695354

계정알아보기

# fuser -cu /mnt/temp


해당 계정 종료

# fuser -ck /mnt/temp


Unmount

# umount /mnt/temp

+ Recent posts