Custom config files - XIYO/asuswrt-merlin.ng-kr GitHub Wiki

λΌμš°ν„°μ—μ„œ μ‹€ν–‰λ˜λŠ” μ„œλΉ„μŠ€λ“€, 예λ₯Ό λ“€μ–΄ minidlna λ˜λŠ” _dnsmasq_λŠ” λ™μ μœΌλ‘œ μƒμ„±λœ μ„€μ • νŒŒμΌμ— μ˜μ‘΄ν•©λ‹ˆλ‹€. μ΄λŸ¬ν•œ μ„€μ • νŒŒμΌλ“€μ„ μ‚¬μš©μž μ •μ˜ν•˜κΈ° μœ„ν•΄ λ‹€μ–‘ν•œ 방법듀을 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ‚¬μš©μž μ •μ˜ μ„€μ • 지원 ν™œμ„±ν™”

이 κΈ°λŠ₯은 기본적으둜 λΉ„ν™œμ„±ν™”λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. ν™œμ„±ν™”ν•˜λ €λ©΄ 관리 -> μ‹œμŠ€ν…œμœΌλ‘œ μ΄λ™ν•œ λ‹€μŒ JFFS μ„Ήμ…˜μ—μ„œ ν™œμ„±ν™”ν•˜μ„Έμš”.

μ‚¬μš©μž μ •μ˜ μ„€μ •μœΌλ‘œ 인해 λΌμš°ν„° 접근이 μ°¨λ‹¨λ˜μ—ˆλ‹€λ©΄, 곡μž₯ μ΄ˆκΈ°ν™”λ₯Ό 톡해 λΌμš°ν„°μ— λ‹€μ‹œ μ ‘κ·Όν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ„€μ • νŒŒμΌμ— λ‚΄μš© μΆ”κ°€ λ˜λŠ” λŒ€μ²΄

νŽŒμ›¨μ–΄μ— μ˜ν•΄ μƒμ„±λœ λ‹€μ–‘ν•œ μ„€μ • νŒŒμΌμ— λ‚΄μš©μ„ μΆ”κ°€ν•˜κ±°λ‚˜, μ‚¬μš©μžκ°€ λ§Œλ“  μ„€μ • 파일둜 μ™„μ „νžˆ λŒ€μ²΄ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ„€μ • 파일 μ˜€λ²„λΌμ΄λ“œλŠ” _/jffs/configs/_에 μ €μž₯λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€. νŽŒμ›¨μ–΄μ— μ˜ν•΄ μƒμ„±λœ νŒŒμΌμ— μ„€μ • νŒŒμΌμ„ μΆ”κ°€ν•˜λ €λ©΄, μ•„λž˜ λͺ©λ‘μ—μ„œ 파일 이름 끝에 _".add"_λ₯Ό μΆ”κ°€ν•˜μ„Έμš”. 예λ₯Ό λ“€μ–΄:

/jffs/configs/dnsmasq.conf.add

λŠ” νŽŒμ›¨μ–΄μ— μ˜ν•΄ μƒμ„±λœ dnsmasq μ„€μ • 파일 끝에 μΆ”κ°€λ©λ‹ˆλ‹€. λ°˜λ©΄μ—:

/jffs/configs/dnsmasq.conf

λŠ” 그것을 μ™„μ „νžˆ λŒ€μ²΄ν•©λ‹ˆλ‹€.

자체 μ„€μ • 파일둜 λŒ€μ²΄ν•˜λŠ” 것은 νŽŒμ›¨μ–΄μ— μ˜ν•΄ λ™μ μœΌλ‘œ μƒμ„±λ˜λŠ” λͺ¨λ“  ν•„λ“œλ₯Ό 적절히 μ±„μš°λŠ” 것을 μ˜λ―Έν•©λ‹ˆλ‹€. 일뢀 ν•­λͺ©μ€ 동적 νŒŒλΌλ―Έν„°κ°€ ν•„μš”ν•˜κΈ° λ•Œλ¬Έμ—, postconf 슀크립트λ₯Ό μ‚¬μš©ν•˜λŠ” 것이 더 λ‚˜μ„ 수 μžˆμŠ΅λ‹ˆλ‹€(μ•„λž˜μ˜ postconf 슀크립트 μ„Ήμ…˜ μ°Έμ‘°).

μ‚¬μš© κ°€λŠ₯ν•œ μ„€μ • 파일 μ˜€λ²„λΌμ΄λ“œ λͺ©λ‘:

  • adisk.service
  • afpd.service
  • avahi-daemon.conf
  • cake-qos.conf (cake-qos.conf.add만 지원)
  • dhcp6s.conf
  • dnsmasq.conf
  • exports (exports.add만 지원)
  • fstab (fstab만 지원, 초기 μ‹œμž‘ μ‹œ 마운트 ν¬μΈνŠΈκ°€ μ—†λ‹€λ©΄ λ¨Όμ € μƒμ„±ν•˜μ„Έμš”!)
  • group, gshadow, passwd, shadow (.add λ²„μ „λ§Œ 지원)
  • hosts (/etc/hosts용)
  • igmpproxy.conf
  • inadyn.conf
  • minidlna.conf
  • mt-daap.service
  • nanorc (.add 지원 μ—†μŒ) - 여기에 λ¬Έμ„œν™”λ¨ (μ™ΈλΆ€ νŽ˜μ΄μ§€). 384.3 이상.
  • pptpd.conf
  • profile (μ‰˜ ν”„λ‘œν•„, profile.add만 지원)
  • smb.conf
  • snmpd.conf
  • stubby.yml (stubby.yml.add만 지원)
  • torrc
  • vsftpd.conf
  • upnp (miniupnpd용)
  • wgclient%d (%d = λ‹¨μœ„ 번호)
  • wgserver
  • wgserver_peer (둜컬 μ„œλ²„μ— μ—°κ²°ν•˜κΈ° μœ„ν•œ ν”Όμ–΄ μ„€μ • 파일 생성)

λ˜ν•œ, λ‹€μŒ 디렉토리에 자체 OpenVPN ccd νŒŒμΌμ„ 넣을 수 μžˆμŠ΅λ‹ˆλ‹€:

  /jffs/configs/openvpn/ccd1/
  /jffs/configs/openvpn/ccd2/

μ„œλ²„κ°€ μ‹œμž‘λ  λ•Œ 이듀은 각 μ„œλ²„ μΈμŠ€ν„΄μŠ€μ˜ ccd λ””λ ‰ν† λ¦¬λ‘œ λ³΅μ‚¬λ©λ‹ˆλ‹€.

Postconf 슀크립트

λΌμš°ν„° μ„œλΉ„μŠ€(예: dnsmasq)에 μ‚¬μš©λ˜λŠ” λ§Žμ€ ꡬ성 μŠ€ν¬λ¦½νŠΈλŠ” νŽŒμ›¨μ–΄μ— μ˜ν•΄ λ™μ μœΌλ‘œ μƒμ„±λ©λ‹ˆλ‹€. 이둜 인해 κ³ κΈ‰ μ‚¬μš©μžλ“€μ΄ μ΄λŸ¬ν•œ

섀정을 μˆ˜μ •ν•˜λŠ” 것이 μ–΄λ ΅μŠ΅λ‹ˆλ‹€.

Postconf μŠ€ν¬λ¦½νŠΈκ°€ 이 문제의 ν•΄κ²°μ±…μž…λ‹ˆλ‹€. 이 μŠ€ν¬λ¦½νŠΈλŠ” λΌμš°ν„°κ°€ ꡬ성 슀크립트λ₯Ό μƒμ„±ν•œ ν›„, κ΄€λ ¨ μ„œλΉ„μŠ€κ°€ μ‹œμž‘λ˜κΈ° 전에 μ‹€ν–‰λ©λ‹ˆλ‹€. μ΄λŠ” ꡬ성 슀크립트λ₯Ό μ‘°μž‘ν•˜κ±°λ‚˜(예: "sed" μ‚¬μš©), 데λͺ¬μ΄ μ‹œμž‘λ˜κΈ° 직전에 μ‹€ν–‰ν•˜κ³ μž ν•˜λŠ” λ‹€λ₯Έ μœ ν˜•μ˜ μž‘μ—…μ— 이 슀크립트λ₯Ό μ‚¬μš©ν•  수 μžˆμŒμ„ μ˜λ―Έν•©λ‹ˆλ‹€(예: λ°©ν™”λ²½ κ·œμΉ™ μˆ˜μ •, μ•Œλ¦Ό λ‘œκΉ… λ“±).

Postconf μŠ€ν¬λ¦½νŠΈλŠ” _/jffs/scripts/_에 μ €μž₯λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€. λŒ€μƒ μ„€μ • 파일의 경둜/파일λͺ…은 postconf μŠ€ν¬λ¦½νŠΈμ— 인수둜 μ „λ‹¬λ©λ‹ˆλ‹€. 슀크립트 생성에 λŒ€ν•œ 일반적인 μ£Όμ˜μ‚¬ν•­λ„ μ—¬κΈ°μ—μ„œ μ½μ–΄λ³΄μ„Έμš”.

μ‚¬μš© κ°€λŠ₯ν•œ postconf 슀크립트 λͺ©λ‘μ€ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€:

  • adisk.postconf (νƒ€μž„ λ¨Έμ‹ )
  • afpd.postconf (νƒ€μž„ λ¨Έμ‹ )
  • avahi-daemon.postconf (νƒ€μž„ λ¨Έμ‹ )
  • dhcp6s.postconf
  • dnsmasq.postconf
  • exports.postconf
  • fstab.postconf
  • group.postconf
  • gshadow.postconf
  • hosts.postconf
  • igmpproxy.postconf
  • inadyn.postconf
  • ipsec.postconf
  • minidlna.postconf
  • mt-daap.postconf
  • openvpnclient1.postconf (1λΆ€ν„° 5κΉŒμ§€)
  • openvpnserver1.postconf (1 λ˜λŠ” 2)
  • passwd.postconf
  • pptpd.postconf
  • shadow.postconf
  • smb.postconf
  • snmpd.postconf
  • strongswan.postconf
  • stubby.postconf
  • torrc.postconf
  • upnp.postconf
  • vsftpd.postconf
  • wgclient%d.postconf (%d = λ‹¨μœ„ 번호, 1λΆ€ν„° 5κΉŒμ§€)
  • wgserver.postconf
  • wgserver_peer.postconf (원격 ν”Όμ–΄ μ„€μ • 파일 μƒμ„±μš©)

"sed"의 λ³΅μž‘ν•œ 세뢀사항을 배우고 μ‹Άμ§€ μ•Šμ€ 초보 μ‚¬μš©μžλ₯Ό μœ„ν•΄, 지원 ν•¨μˆ˜λ₯Ό μ œκ³΅ν•˜λŠ” μŠ€ν¬λ¦½νŠΈκ°€ μ œκ³΅λ©λ‹ˆλ‹€. λ‹€μŒμ€ dnsmasq.postconf 슀크립트λ₯Ό μ‚¬μš©ν•˜μ—¬ dnsmasq κ΅¬μ„±μ—μ„œ μ΅œλŒ€ 리슀 수λ₯Ό μˆ˜μ •ν•˜λŠ” 방법을 λ³΄μ—¬μ€λ‹ˆλ‹€:

#!/bin/sh
CONFIG=$1
source /usr/sbin/helper.sh

pc_replace "dhcp-lease-max=253" "dhcp-lease-max=100" $CONFIG

_helper.sh_λ₯Ό 톡해 ν˜„μž¬ μ‚¬μš© κ°€λŠ₯ν•œ ν•¨μˆ˜λ“€μ€ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€:

pc_replace "κΈ°μ‘΄ λ¬Έμžμ—΄" "μƒˆ λ¬Έμžμ—΄" "μ„€μ • 파일λͺ…"
pc_insert "찾을 λ¬Έμžμ—΄" "μ‚½μž…ν•  λ¬Έμžμ—΄" "μ„€μ • 파일λͺ…"
pc_append "μΆ”κ°€ν•  λ¬Έμžμ—΄" "μ„€μ • 파일λͺ…"
pc_delete "μ‚­μ œν•  라인 λ‚΄ λ¬Έμžμ—΄" "μ„€μ • 파일λͺ…"

μ£Όμ˜ν•  점은 postconf μŠ€ν¬λ¦½νŠΈκ°€ μ‹€ν–‰λ˜λŠ” λ™μ•ˆ νŽŒμ›¨μ–΄κ°€ μ°¨λ‹¨λœλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€. μ΄λŠ” μ„œλΉ„μŠ€κ°€ μŠ€ν¬λ¦½νŠΈκ°€ μ™„λ£Œλ  λ•ŒκΉŒμ§€ μ‹œμž‘λ˜μ§€ μ•Šλ„λ‘ ν•˜κΈ° μœ„ν•¨μž…λ‹ˆλ‹€. μ΄λŸ¬ν•œ μŠ€ν¬λ¦½νŠΈκ°€ μ œλŒ€λ‘œ μ’…λ£Œλ˜μ–΄μ•Ό ν•˜λ©°, κ·Έλ ‡μ§€ μ•ŠμœΌλ©΄ λΌμš°ν„°κ°€ λΆ€νŒ… 쀑에 멈좜 수 있으며, 이λ₯Ό λ³΅κ΅¬ν•˜κΈ° μœ„ν•΄μ„œλŠ” 곡μž₯ μ΄ˆκΈ°ν™”κ°€ ν•„μš”ν•  수 μžˆμŠ΅λ‹ˆλ‹€.