Linux ubuntu22 5.15.0-133-generic #144-Ubuntu SMP Fri Feb 7 20:47:38 UTC 2025 x86_64
nginx/1.18.0
: 128.199.27.159 | : 216.73.216.159
Cant Read [ /etc/named.conf ]
8.1.31
www-data
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
snap /
certbot /
4965 /
usr /
share /
augeas /
lenses /
dist /
[ HOME SHELL ]
Name
Size
Permission
Action
tests
[ DIR ]
drwxr-xr-x
access.aug
3.58
KB
-rw-r--r--
activemq_conf.aug
1.47
KB
-rw-r--r--
activemq_xml.aug
864
B
-rw-r--r--
afs_cellalias.aug
1.56
KB
-rw-r--r--
aliases.aug
2.18
KB
-rw-r--r--
anaconda.aug
775
B
-rw-r--r--
anacron.aug
2.49
KB
-rw-r--r--
approx.aug
1.26
KB
-rw-r--r--
apt_update_manager.aug
1.11
KB
-rw-r--r--
aptcacherngsecurity.aug
726
B
-rw-r--r--
aptconf.aug
3.9
KB
-rw-r--r--
aptpreferences.aug
1.79
KB
-rw-r--r--
aptsources.aug
1.98
KB
-rw-r--r--
authinfo2.aug
1.44
KB
-rw-r--r--
authorized_keys.aug
1.84
KB
-rw-r--r--
authselectpam.aug
3.7
KB
-rw-r--r--
automaster.aug
3.31
KB
-rw-r--r--
automounter.aug
4.05
KB
-rw-r--r--
avahi.aug
1.38
KB
-rw-r--r--
backuppchosts.aug
1014
B
-rw-r--r--
bbhosts.aug
4.24
KB
-rw-r--r--
bootconf.aug
3.65
KB
-rw-r--r--
build.aug
16.65
KB
-rw-r--r--
cachefilesd.aug
2
KB
-rw-r--r--
carbon.aug
1.54
KB
-rw-r--r--
ceph.aug
719
B
-rw-r--r--
cgconfig.aug
3.37
KB
-rw-r--r--
cgrules.aug
2.38
KB
-rw-r--r--
channels.aug
3.84
KB
-rw-r--r--
chrony.aug
13.79
KB
-rw-r--r--
clamav.aug
1.72
KB
-rw-r--r--
cmdline.aug
506
B
-rw-r--r--
cobblermodules.aug
398
B
-rw-r--r--
cobblersettings.aug
2.24
KB
-rw-r--r--
cockpit.aug
1.96
KB
-rw-r--r--
collectd.aug
869
B
-rw-r--r--
cpanel.aug
824
B
-rw-r--r--
cron.aug
4.05
KB
-rw-r--r--
cron_user.aug
1.26
KB
-rw-r--r--
crypttab.aug
3.08
KB
-rw-r--r--
csv.aug
1.18
KB
-rw-r--r--
cups.aug
459
B
-rw-r--r--
cyrus_imapd.aug
1.51
KB
-rw-r--r--
darkice.aug
773
B
-rw-r--r--
debctrl.aug
3.61
KB
-rw-r--r--
desktop.aug
1.39
KB
-rw-r--r--
devfsrules.aug
619
B
-rw-r--r--
device_map.aug
620
B
-rw-r--r--
dhclient.aug
6.69
KB
-rw-r--r--
dhcpd.aug
20.88
KB
-rw-r--r--
dns_zone.aug
2.89
KB
-rw-r--r--
dnsmasq.aug
2.16
KB
-rw-r--r--
dovecot.aug
3.98
KB
-rw-r--r--
dpkg.aug
2.78
KB
-rw-r--r--
dput.aug
2.16
KB
-rw-r--r--
erlang.aug
4.33
KB
-rw-r--r--
ethers.aug
663
B
-rw-r--r--
exports.aug
2.37
KB
-rw-r--r--
fai_diskconfig.aug
9.28
KB
-rw-r--r--
fail2ban.aug
1.79
KB
-rw-r--r--
fonts.aug
819
B
-rw-r--r--
fstab.aug
1.23
KB
-rw-r--r--
fuse.aug
871
B
-rw-r--r--
gdm.aug
1.8
KB
-rw-r--r--
getcap.aug
1.57
KB
-rw-r--r--
group.aug
1.66
KB
-rw-r--r--
grub.aug
11.05
KB
-rw-r--r--
grubenv.aug
508
B
-rw-r--r--
gshadow.aug
2.19
KB
-rw-r--r--
gtkbookmarks.aug
855
B
-rw-r--r--
host_conf.aug
1.9
KB
-rw-r--r--
hostname.aug
435
B
-rw-r--r--
hosts.aug
485
B
-rw-r--r--
hosts_access.aug
4.32
KB
-rw-r--r--
htpasswd.aug
1.02
KB
-rw-r--r--
httpd.aug
7.35
KB
-rw-r--r--
inetd.aug
6.22
KB
-rw-r--r--
inifile.aug
15.49
KB
-rw-r--r--
inittab.aug
780
B
-rw-r--r--
inputrc.aug
1.62
KB
-rw-r--r--
interfaces.aug
4.62
KB
-rw-r--r--
iproute2.aug
323
B
-rw-r--r--
iptables.aug
2.64
KB
-rw-r--r--
iscsid.aug
684
B
-rw-r--r--
jaas.aug
1.57
KB
-rw-r--r--
jettyrealm.aug
1.52
KB
-rw-r--r--
jmxaccess.aug
1.35
KB
-rw-r--r--
jmxpassword.aug
1.34
KB
-rw-r--r--
json.aug
2.15
KB
-rw-r--r--
kdump.aug
3.06
KB
-rw-r--r--
keepalived.aug
10.73
KB
-rw-r--r--
known_hosts.aug
1.93
KB
-rw-r--r--
koji.aug
898
B
-rw-r--r--
krb5.aug
6.98
KB
-rw-r--r--
ldif.aug
7.65
KB
-rw-r--r--
ldso.aug
1.06
KB
-rw-r--r--
lightdm.aug
1.75
KB
-rw-r--r--
limits.aug
2.02
KB
-rw-r--r--
login_defs.aug
615
B
-rw-r--r--
logrotate.aug
4.23
KB
-rw-r--r--
logwatch.aug
1.44
KB
-rw-r--r--
lokkit.aug
2.16
KB
-rw-r--r--
lvm.aug
2.03
KB
-rw-r--r--
mailscanner.aug
1.66
KB
-rw-r--r--
mailscanner_rules.aug
2.84
KB
-rw-r--r--
masterpasswd.aug
4.36
KB
-rw-r--r--
mcollective.aug
1.09
KB
-rw-r--r--
mdadm_conf.aug
10.05
KB
-rw-r--r--
memcached.aug
1.24
KB
-rw-r--r--
mke2fs.aug
6.29
KB
-rw-r--r--
modprobe.aug
3.34
KB
-rw-r--r--
modules.aug
741
B
-rw-r--r--
modules_conf.aug
1.04
KB
-rw-r--r--
mongodbserver.aug
1.17
KB
-rw-r--r--
monit.aug
2.13
KB
-rw-r--r--
multipath.aug
4.21
KB
-rw-r--r--
mysql.aug
1.95
KB
-rw-r--r--
nagioscfg.aug
2.09
KB
-rw-r--r--
nagiosobjects.aug
1.57
KB
-rw-r--r--
netmasks.aug
1.69
KB
-rw-r--r--
networkmanager.aug
2.18
KB
-rw-r--r--
networks.aug
1.09
KB
-rw-r--r--
nginx.aug
3.65
KB
-rw-r--r--
nrpe.aug
1.78
KB
-rw-r--r--
nslcd.aug
9.87
KB
-rw-r--r--
nsswitch.aug
2.33
KB
-rw-r--r--
ntp.aug
5.29
KB
-rw-r--r--
ntpd.aug
4.75
KB
-rw-r--r--
odbc.aug
1.42
KB
-rw-r--r--
opendkim.aug
3.1
KB
-rw-r--r--
openshift_config.aug
2.46
KB
-rw-r--r--
openshift_http.aug
1.03
KB
-rw-r--r--
openshift_quickstarts.aug
1.02
KB
-rw-r--r--
openvpn.aug
22.28
KB
-rw-r--r--
oz.aug
1.35
KB
-rw-r--r--
pagekite.aug
2.6
KB
-rw-r--r--
pam.aug
2.58
KB
-rw-r--r--
pamconf.aug
1.23
KB
-rw-r--r--
passwd.aug
3.52
KB
-rw-r--r--
pbuilder.aug
638
B
-rw-r--r--
pg_hba.aug
2.97
KB
-rw-r--r--
pgbouncer.aug
1.43
KB
-rw-r--r--
php.aug
2.34
KB
-rw-r--r--
phpvars.aug
3.85
KB
-rw-r--r--
postfix_access.aug
771
B
-rw-r--r--
postfix_main.aug
1.52
KB
-rw-r--r--
postfix_master.aug
1.9
KB
-rw-r--r--
postfix_passwordmap.aug
1.28
KB
-rw-r--r--
postfix_sasl_smtpd.aug
697
B
-rw-r--r--
postfix_transport.aug
1.48
KB
-rw-r--r--
postfix_virtual.aug
1.32
KB
-rw-r--r--
postgresql.aug
2.1
KB
-rw-r--r--
properties.aug
2.3
KB
-rw-r--r--
protocols.aug
1.05
KB
-rw-r--r--
puppet.aug
1.52
KB
-rw-r--r--
puppet_auth.aug
1.95
KB
-rw-r--r--
puppetfile.aug
2.27
KB
-rw-r--r--
puppetfileserver.aug
3.12
KB
-rw-r--r--
pylonspaste.aug
2.3
KB
-rw-r--r--
pythonpaste.aug
1.99
KB
-rw-r--r--
qpid.aug
670
B
-rw-r--r--
quote.aug
6.71
KB
-rw-r--r--
rabbitmq.aug
4.69
KB
-rw-r--r--
radicale.aug
1.48
KB
-rw-r--r--
rancid.aug
927
B
-rw-r--r--
redis.aug
6.5
KB
-rw-r--r--
reprepro_uploaders.aug
5.47
KB
-rw-r--r--
resolv.aug
4.03
KB
-rw-r--r--
rhsm.aug
1.1
KB
-rw-r--r--
rmt.aug
788
B
-rw-r--r--
rsyncd.aug
1.97
KB
-rw-r--r--
rsyslog.aug
3.27
KB
-rw-r--r--
rtadvd.aug
854
B
-rw-r--r--
rx.aug
4.2
KB
-rw-r--r--
samba.aug
1.71
KB
-rw-r--r--
schroot.aug
1.79
KB
-rw-r--r--
securetty.aug
450
B
-rw-r--r--
semanage.aug
1.02
KB
-rw-r--r--
sep.aug
1.28
KB
-rw-r--r--
services.aug
2.82
KB
-rw-r--r--
shadow.aug
2.35
KB
-rw-r--r--
shells.aug
745
B
-rw-r--r--
shellvars.aug
12.02
KB
-rw-r--r--
shellvars_list.aug
1.74
KB
-rw-r--r--
simplelines.aug
1.13
KB
-rw-r--r--
simplevars.aug
1.4
KB
-rw-r--r--
sip_conf.aug
1.61
KB
-rw-r--r--
slapd.aug
5.2
KB
-rw-r--r--
smbusers.aug
781
B
-rw-r--r--
solaris_system.aug
3.15
KB
-rw-r--r--
soma.aug
1.14
KB
-rw-r--r--
sos.aug
807
B
-rw-r--r--
spacevars.aug
1.42
KB
-rw-r--r--
splunk.aug
1.64
KB
-rw-r--r--
squid.aug
15.95
KB
-rw-r--r--
ssh.aug
4.39
KB
-rw-r--r--
sshd.aug
4.74
KB
-rw-r--r--
sssd.aug
861
B
-rw-r--r--
star.aug
941
B
-rw-r--r--
strongswan.aug
1.63
KB
-rw-r--r--
stunnel.aug
2.21
KB
-rw-r--r--
subversion.aug
2.75
KB
-rw-r--r--
sudoers.aug
20.08
KB
-rw-r--r--
sysconfig.aug
2.49
KB
-rw-r--r--
sysconfig_route.aug
2.55
KB
-rw-r--r--
sysctl.aug
1.36
KB
-rw-r--r--
syslog.aug
7.33
KB
-rw-r--r--
systemd.aug
6
KB
-rw-r--r--
termcap.aug
1.03
KB
-rw-r--r--
thttpd.aug
1.31
KB
-rw-r--r--
tinc.aug
1.08
KB
-rw-r--r--
tmpfiles.aug
3.16
KB
-rw-r--r--
toml.aug
4.24
KB
-rw-r--r--
trapperkeeper.aug
4.01
KB
-rw-r--r--
tuned.aug
387
B
-rw-r--r--
up2date.aug
2.21
KB
-rw-r--r--
updatedb.aug
1.13
KB
-rw-r--r--
util.aug
4.85
KB
-rw-r--r--
vfstab.aug
1.71
KB
-rw-r--r--
vmware_config.aug
702
B
-rw-r--r--
vsftpd.aug
2.72
KB
-rw-r--r--
webmin.aug
1.23
KB
-rw-r--r--
wine.aug
1.92
KB
-rw-r--r--
xendconfsxp.aug
1.07
KB
-rw-r--r--
xinetd.aug
4.02
KB
-rw-r--r--
xml.aug
6.33
KB
-rw-r--r--
xorg.aug
10.43
KB
-rw-r--r--
xymon.aug
2.26
KB
-rw-r--r--
xymon_alerting.aug
6.11
KB
-rw-r--r--
yaml.aug
1.54
KB
-rw-r--r--
yum.aug
2.19
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : openvpn.aug
(* OpenVPN module for Augeas Author: Raphael Pinson <raphink@gmail.com> Author: Justin Akers <dafugg@gmail.com> Reference: http://openvpn.net/index.php/documentation/howto.html Reference: https://community.openvpn.net/openvpn/wiki/Openvpn23ManPage TODO: Inline file support *) module OpenVPN = autoload xfm (************************************************************************ * USEFUL PRIMITIVES *************************************************************************) let eol = Util.eol let indent = Util.indent (* Define separators *) let sep = Util.del_ws_spc (* Define value regexps. Custom simplified ipv6 used instead of Rx.ipv6 as the augeas Travis instances are limited to 2GB of memory. Using 'ipv6_re = Rx.ipv6' consumes an extra 2GB of memory and thus the test is OOM-killed. *) let ipv6_re = /[0-9A-Fa-f:]+/ let ipv4_re = Rx.ipv4 let ip_re = ipv4_re|ipv6_re let num_re = Rx.integer let fn_re = /[^#; \t\n][^#;\n]*[^#; \t\n]|[^#; \t\n]/ let fn_safe_re = /[^#; \t\r\n]+/ let an_re = /[a-z][a-z0-9_-]*/ let hn_re = Rx.hostname let port_re = /[0-9]+/ let host_re = ip_re|hn_re let proto_re = /(tcp|udp)/ let proto_ext_re = /(udp|tcp-client|tcp-server)/ let alg_re = /(none|[A-Za-z][A-Za-z0-9-]+)/ let ipv6_bits_re = ipv6_re . /\/[0-9]+/ (* Define store aliases *) let ip = store ip_re let num = store num_re let filename = store fn_re let filename_safe = store fn_safe_re let hostname = store hn_re let sto_to_dquote = store /[^"\n]+/ (* " Emacs, relax *) let port = store port_re let host = store host_re let proto = store proto_re let proto_ext = store proto_ext_re (* define comments and empty lines *) let comment = Util.comment_generic /[ \t]*[;#][ \t]*/ "# " let comment_or_eol = eol | Util.comment_generic /[ \t]*[;#][ \t]*/ " # " let empty = Util.empty (************************************************************************ * SINGLE VALUES * * - local => IP|hostname * - port => num * - proto => udp|tcp-client|tcp-server * - proto-force => udp|tcp * - mode => p2p|server * - dev => (tun|tap)\d* * - dev-node => filename * - ca => filename * - config => filename * - cert => filename * - key => filename * - dh => filename * - ifconfig-pool-persist => filename * - learn-address => filename * - cipher => [A-Z0-9-]+ * - max-clients => num * - user => alphanum * - group => alphanum * - status => filename * - log => filename * - log-append => filename * - client-config-dir => filename * - verb => num * - mute => num * - fragment => num * - mssfix => num * - connect-retry num * - connect-retry-max num * - connect-timeout num * - http-proxy-timeout num * - max-routes num * - ns-cert-type => "server" * - resolv-retry => "infinite" * - script-security => [0-3] (execve|system)? * - ipchange => command * - topology => type *************************************************************************) let single_host = "local" | "tls-remote" let single_ip = "lladdr" let single_ipv6_bits = "iroute-ipv6" | "server-ipv6" | "ifconfig-ipv6-pool" let single_num = "port" | "max-clients" | "verb" | "mute" | "fragment" | "mssfix" | "connect-retry" | "connect-retry-max" | "connect-timeout" | "http-proxy-timeout" | "resolv-retry" | "lport" | "rport" | "max-routes" | "max-routes-per-client" | "route-metric" | "tun-mtu" | "tun-mtu-extra" | "shaper" | "ping" | "ping-exit" | "ping-restart" | "sndbuf" | "rcvbuf" | "txqueuelen" | "link-mtu" | "nice" | "management-log-cache" | "bcast-buffers" | "tcp-queue-limit" | "server-poll-timeout" | "keysize" | "pkcs11-pin-cache" | "tls-timeout" | "reneg-bytes" | "reneg-pkts" | "reneg-sec" | "hand-window" | "tran-window" let single_fn = "ca" | "cert" | "extra-certs" | "config" | "key" | "dh" | "log" | "log-append" | "client-config-dir" | "dev-node" | "cd" | "chroot" | "writepid" | "client-config-dir" | "tmp-dir" | "replay-persist" | "ca" | "capath" | "pkcs12" | "pkcs11-id" | "askpass" | "tls-export-cert" | "x509-track" let single_an = "user" | "group" | "management-client-user" | "management-client-group" let single_cmd = "ipchange" | "iproute" | "route-up" | "route-pre-down" | "mark" | "up" | "down" | "setcon" | "echo" | "client-connect" | "client-disconnect" | "learn-address" | "tls-verify" let single_entry (kw:regexp) (re:regexp) = [ key kw . sep . store re . comment_or_eol ] let single_opt_entry (kw:regexp) (re:regexp) = [ key kw . (sep . store re)? .comment_or_eol ] let single = single_entry single_num num_re | single_entry single_fn fn_re | single_entry single_an an_re | single_entry single_host host_re | single_entry single_ip ip_re | single_entry single_ipv6_bits ipv6_bits_re | single_entry single_cmd fn_re | single_entry "proto" proto_ext_re | single_entry "proto-force" proto_re | single_entry "mode" /(p2p|server)/ | single_entry "dev" /(tun|tap)[0-9]*|null/ | single_entry "dev-type" /(tun|tap)/ | single_entry "topology" /(net30|p2p|subnet)/ | single_entry "cipher" alg_re | single_entry "auth" alg_re | single_entry "resolv-retry" "infinite" | single_entry "script-security" /[0-3]( execve| system)?/ | single_entry "route-gateway" (host_re|/dhcp/) | single_entry "mtu-disc" /(no|maybe|yes)/ | single_entry "remap-usr1" /SIG(HUP|TERM)/ | single_entry "socket-flags" /(TCP_NODELAY)/ | single_entry "auth-retry" /(none|nointeract|interact)/ | single_entry "tls-version-max" Rx.decimal | single_entry "verify-hash" /([A-Za-z0-9]{2}:)+[A-Za-z0-9]{2}/ | single_entry "pkcs11-cert-private" /[01]/ | single_entry "pkcs11-protected-authentication" /[01]/ | single_entry "pkcs11-private-mode" /[A-Za-z0-9]+/ | single_entry "key-method" /[12]/ | single_entry "ns-cert-type" /(client|server)/ | single_entry "remote-cert-tls" /(client|server)/ let single_opt = single_opt_entry "comp-lzo" /(yes|no|adaptive)/ | single_opt_entry "syslog" fn_re | single_opt_entry "daemon" fn_re | single_opt_entry "auth-user-pass" fn_re | single_opt_entry "explicit-exit-notify" num_re | single_opt_entry "engine" fn_re (************************************************************************ * DOUBLE VALUES *************************************************************************) let double_entry (kw:regexp) (a:string) (aval:regexp) (b:string) (bval:regexp) = [ key kw . sep . [ label a . store aval ] . sep . [ label b . store bval ] . comment_or_eol ] let double_secopt_entry (kw:regexp) (a:string) (aval:regexp) (b:string) (bval:regexp) = [ key kw . sep . [ label a . store aval ] . (sep . [ label b . store bval ])? . comment_or_eol ] let double = double_entry "keepalive" "ping" num_re "timeout" num_re | double_entry "hash-size" "real" num_re "virtual" num_re | double_entry "ifconfig" "local" ip_re "remote" ip_re | double_entry "connect-freq" "num" num_re "sec" num_re | double_entry "verify-x509-name" "name" hn_re "type" /(subject|name|name-prefix)/ | double_entry "ifconfig-ipv6" "address" ipv6_bits_re "remote" ipv6_re | double_entry "ifconfig-ipv6-push" "address" ipv6_bits_re "remote" ipv6_re | double_secopt_entry "iroute" "local" ip_re "netmask" ip_re | double_secopt_entry "stale-routes-check" "age" num_re "interval" num_re | double_secopt_entry "ifconfig-pool-persist" "file" fn_safe_re "seconds" num_re | double_secopt_entry "secret" "file" fn_safe_re "direction" /[01]/ | double_secopt_entry "prng" "algorithm" alg_re "nsl" num_re | double_secopt_entry "replay-window" "window-size" num_re "seconds" num_re (************************************************************************ * FLAGS *************************************************************************) let flag_words = "client-to-client" | "duplicate-cn" | "persist-key" | "persist-tun" | "client" | "remote-random" | "nobind" | "mute-replay-warnings" | "http-proxy-retry" | "socks-proxy-retry" | "remote-random-hostname" | "show-proxy-settings" | "float" | "bind" | "nobind" | "tun-ipv6" | "ifconfig-noexec" | "ifconfig-nowarn" | "route-noexec" | "route-nopull" | "allow-pull-fqdn" | "mtu-test" | "ping-timer-rem" | "persist-tun" | "persist-local-ip" | "persist-remote-ip" | "mlock" | "up-delay" | "down-pre" | "up-restart" | "disable-occ" | "errors-to-stderr" | "passtos" | "suppress-timestamps" | "fast-io" | "multihome" | "comp-noadapt" | "management-client" | "management-query-passwords" | "management-query-proxy" | "management-query-remote" | "management-forget-disconnect" | "management-hold" | "management-signal" | "management-up-down" | "management-client-auth" | "management-client-pf" | "push-reset" | "push-peer-info" | "disable" | "ifconfig-pool-linear" | "client-to-client" | "duplicate-cn" | "ccd-exclusive" | "tcp-nodelay" | "opt-verify" | "auth-user-pass-optional" | "client-cert-not-required" | "username-as-common-name" | "pull" | "key-direction" | "no-replay" | "mute-replay-warnings" | "no-iv" | "use-prediction-resistance" | "test-crypto" | "tls-server" | "tls-client" | "pkcs11-id-management" | "single-session" | "tls-exit" | "auth-nocache" | "show-ciphers" | "show-digests" | "show-tls" | "show-engines" | "genkey" | "mktun" | "rmtun" let flag_entry (kw:regexp) = [ key kw . comment_or_eol ] let flag = flag_entry flag_words (************************************************************************ * OTHER FIELDS * * - server => IP IP [nopool] * - server-bridge => IP IP IP IP * - route => host host [host [num]] * - push => "string" * - tls-auth => filename [01] * - remote => hostname/IP [num] [(tcp|udp)] * - management => IP num filename * - http-proxy => host port [filename|keyword] [method] * - http-proxy-option => (VERSION decimal|AGENT string) * ... * and many others * *************************************************************************) let server = [ key "server" . sep . [ label "address" . ip ] . sep . [ label "netmask" . ip ] . (sep . [ key "nopool" ]) ? . comment_or_eol ] let server_bridge = let ip_params = [ label "address" . ip ] . sep . [ label "netmask" . ip ] . sep . [ label "start" . ip ] . sep . [ label "end" . ip ] in [ key "server-bridge" . sep . (ip_params|store /(nogw)/) . comment_or_eol ] let route = let route_net_kw = store (/(vpn_gateway|net_gateway|remote_host)/|host_re) in [ key "route" . sep . [ label "address" . route_net_kw ] . (sep . [ label "netmask" . store (ip_re|/default/) ] . (sep . [ label "gateway" . route_net_kw ] . (sep . [ label "metric" . store (/default/|num_re)] )? )? )? . comment_or_eol ] let route_ipv6 = let route_net_re = /(vpn_gateway|net_gateway|remote_host)/ in [ key "route-ipv6" . sep . [ label "network" . store (route_net_re|ipv6_bits_re) ] . (sep . [ label "gateway" . store (route_net_re|ipv6_re) ] . (sep . [ label "metric" . store (/default/|num_re)] )? )? . comment_or_eol ] let push = [ key "push" . sep . Quote.do_dquote sto_to_dquote . comment_or_eol ] let tls_auth = [ key "tls-auth" . sep . [ label "key" . filename ] . sep . [ label "is_client" . store /[01]/ ] . comment_or_eol ] let remote = [ key "remote" . sep . [ label "server" . host ] . (sep . [label "port" . port] . (sep . [label "proto" . proto]) ? ) ? . comment_or_eol ] let http_proxy = let auth_method_re = /(none|basic|ntlm)/ in let auth_method = store auth_method_re in [ key "http-proxy" . sep . [ label "server" . host ] . sep . [ label "port" . port ] . (sep . [ label "auth" . filename_safe ] . (sep . [ label "auth-method" . auth_method ]) ? )? . comment_or_eol ] let http_proxy_option = [ key "http-proxy-option" . sep . [ label "option" . store /(VERSION|AGENT)/ ] . sep . [ label "value" . filename ] . comment_or_eol ] let socks_proxy = [ key "socks-proxy" . sep . [ label "server" . host ] . (sep . [ label "port" . port ] . (sep . [ label "auth" . filename_safe ])? )? . comment_or_eol ] let port_share = [ key "port-share" . sep . [ label "host" . host ] . sep . [ label "port" . port ] . (sep . [ label "dir" . filename ])? . comment_or_eol ] let route_delay = [ key "route-delay" . (sep . [ label "seconds" . num ] . (sep . [ label "win-seconds" . num ] ) ? )? . comment_or_eol ] let inetd = [ key "inetd" . (sep . [label "mode" . store /(wait|nowait)/ ] . (sep . [ label "progname" . filename ] ) ? )? . comment_or_eol ] let inactive = [ key "inactive" . sep . [ label "seconds" . num ] . (sep . [ label "bytes" . num ] ) ? . comment_or_eol ] let client_nat = [ key "client-nat" . sep . [ label "type" . store /(snat|dnat)/ ] . sep . [ label "network" . ip ] . sep . [ label "netmask" . ip ] . sep . [ label "alias" . ip ] . comment_or_eol ] let status = [ key "status" . sep . [ label "file" . filename_safe ] . (sep . [ label "repeat-seconds" . num ]) ? . comment_or_eol ] let plugin = [ key "plugin" . sep . [ label "file" . filename_safe ] . (sep . [ label "init-string" . filename ]) ? . comment_or_eol ] let management = [ key "management" . sep . [ label "server" . ip ] . sep . [ label "port" . port ] . (sep . [ label "pwfile" . filename ] ) ? . comment_or_eol ] let auth_user_pass_verify = [ key "auth-user-pass-verify" . sep . [ Quote.quote_spaces (label "command") ] . sep . [ label "method" . store /via-(env|file)/ ] . comment_or_eol ] let static_challenge = [ key "static-challenge" . sep . [ Quote.quote_spaces (label "text") ] . sep . [ label "echo" . store /[01]/ ] . comment_or_eol ] let cryptoapicert = [ key "cryptoapicert" . sep . Quote.dquote . [ key /[A-Z]+/ . Sep.colon . store /[A-Za-z _-]+/ ] . Quote.dquote . comment_or_eol ] let setenv = let envvar = /[^#;\/ \t\n][A-Za-z0-9_-]+/ in [ key ("setenv"|"setenv-safe") . sep . [ key envvar . sep . store fn_re ] . comment_or_eol ] let redirect = let redirect_flag = /(local|autolocal|def1|bypass-dhcp|bypass-dns|block-local)/ in let redirect_key = "redirect-gateway" | "redirect-private" in [ key redirect_key . (sep . [ label "flag" . store redirect_flag ] ) + . comment_or_eol ] let tls_cipher = let ciphername = /[A-Za-z0-9!_-]+/ in [ key "tls-cipher" . sep . [label "cipher" . store ciphername] . (Sep.colon . [label "cipher" . store ciphername])* . comment_or_eol ] let remote_cert_ku = let usage = [label "usage" . store /[A-Za-z0-9]{1,2}/] in [ key "remote-cert-ku" . sep . usage . (sep . usage)* . comment_or_eol ] (* FIXME: Surely there's a nicer way to do this *) let remote_cert_eku = let oid = [label "oid" . store /[0-9]+\.([0-9]+\.)*[0-9]+/] in let symbolic = [Quote.do_quote_opt (label "symbol" . store /[A-Za-z0-9][A-Za-z0-9 _-]*[A-Za-z0-9]/)] in [ key "remote-cert-eku" . sep . (oid|symbolic) . comment_or_eol ] let status_version = [ key "status-version" . (sep . num) ? . comment_or_eol ] let ifconfig_pool = [ key "ifconfig-pool" . sep . [ label "start" . ip ] . sep . [ label "end" . ip ] . (sep . [ label "netmask" . ip ])? . comment_or_eol ] let ifconfig_push = [ key "ifconfig-push" . sep . [ label "local" . ip ] . sep . [ label "remote-netmask" . ip ] . (sep . [ label "alias" . store /[A-Za-z0-9_-]+/ ] )? . comment_or_eol ] let ignore_unknown_option = [ key "ignore-unknown-option" . (sep . [ label "opt" . store /[A-Za-z0-9_-]+/ ] ) + . comment_or_eol ] let tls_version_min = [ key "tls-version-min" . sep . store Rx.decimal . (sep . [ key "or-highest" ]) ? . comment_or_eol ] let crl_verify = [ key "crl-verify" . sep . filename_safe . (sep . [ key "dir" ]) ? . comment_or_eol ] let x509_username_field = let fieldname = /[A-Za-z0-9_-]+/ in let extfield = ([key /ext/ . Sep.colon . store fieldname]) in let subjfield = ([label "subj" . store fieldname]) in [ key "x509-username-field" . sep . (extfield|subjfield) . comment_or_eol ] let other = server | server_bridge | route | push | tls_auth | remote | http_proxy | http_proxy_option | socks_proxy | management | route_delay | client_nat | redirect | inactive | setenv | inetd | status | status_version | plugin | ifconfig_pool | ifconfig_push | ignore_unknown_option | auth_user_pass_verify | port_share | static_challenge | tls_version_min | tls_cipher | cryptoapicert | x509_username_field | remote_cert_ku | remote_cert_eku | crl_verify | route_ipv6 (************************************************************************ * LENS & FILTER *************************************************************************) let lns = ( comment | empty | single | single_opt | double | flag | other )* let filter = (incl "/etc/openvpn/client.conf") . (incl "/etc/openvpn/server.conf") let xfm = transform lns filter
Close