Showing posts with label Linux. Show all posts
Showing posts with label Linux. Show all posts

Wednesday, May 27, 2015

How to disable CTRL-ALT-DEL from rebooting a Linux system

The action taken for CTRL-ALT-DEL is defined in /etc/inittab and if we will look in that file we will see a line similar to the one from bellow (taken from a Debian system):
# What to do when CTRL-ALT-DEL is pressed.
ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
Here is another example: on RedHat based systems this line will look like:
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
If we want to disable this action we only have to change this line. We can delete it, comment it, or even replace it with something like:
ca:12345:ctrlaltdel:/bin/echo "CTRL-ALT-DEL is disabled"
After making any changes to the inittab file, you will have to tell init to reload it, in order to activate the changes. To do that, simply run as root:
init q

Wednesday, September 24, 2014

How to set up a squid Proxy with basic Username and Password Authentication Using NCSA

You can configure Squid to prompt users for a username and password.
Squid comes with a program called ncsa_auth that reads any NCSA-compliant encrypted password file. You can use the htpasswd program that comes installed with apache2-utils to create your passwords. Here is how it's done:

1) Create the password file. The name of the password file should be /etc/squid/squid_passwd, and you need to make sure that it's universally readable.

[root@tmp]# touch /etc/squid/squid_passwd
[root@tmp]# chmod o+r /etc/squid/squid_passwd

2) Use the htpasswd program to add users to the password file. You can add users at anytime without having to restart Squid. In this case, you add a username called www:

[root@tmp]# htpasswd /etc/squid/squid_passwd www
New password:
Re-type new password:
Adding password for user www
[root@tmp]#

3) Find your ncsa_auth file using the locate command.

[root@tmp]# locate ncsa_auth
/usr/lib/squid/ncsa_auth
[root@tmp]#

4) Edit squid.conf; specifically, you need to define the authentication program in squid.conf, which is in this case ncsa_auth. Next, create an ACL named ncsa_users with the REQUIRED keyword that forces Squid to use the NCSA auth_param method you defined previously. Finally, create an http_access entry that allows traffic that matches the ncsa_users ACL entry. Here's a simple user authentication example; the order of the statements is important:

#
# Add this to the auth_param section of squid.conf
#
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/squid_passwd

#
# Add this to the bottom of the ACL section of squid.conf
#
acl ncsa_users proxy_auth REQUIRED

#
# Add this at the top of the http_access section of squid.conf
#
http_access allow ncsa_users

5) This requires password authentication and allows access only during business hours. Once again, the order of the statements is important:

#
# Add this to the auth_param section of squid.conf
#
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/squid_passwd

#
# Add this to the bottom of the ACL section of squid.conf
#
acl ncsa_users proxy_auth REQUIRED
acl business_hours time M T W H F 9:00-17:00

#
# Add this at the top of the http_access section of squid.conf
#
http_access allow ncsa_users business_hours

Remember to restart Squid for the changes to take effect.

Thursday, March 6, 2014

How to combine MP4 files on the Debian linux

How to combine MP4 files on the Debian linux

If you are looking to combine MP4 files from the command line here is the easiest solution.  First you need to use the following command to install the program.

sudo apt-get install gpac

Once installed you will be able to run the following command to join the files.

MP4Box -cat mp4_file_part_1.mp4 -cat mp4_file_part_2.mp4 -new joined_file.mp4

You should now be able to combine MP4 files from the command line, and pretty quick at that.

Wednesday, February 12, 2014

Iptables String Matching for Advanced Firewalling

Introduction.

When it comes to any server or network connected to the internet, security from malicious files and hack attempts is a matter of concern for any administrator. Linux provides its own firewall from the early releases itself. The current iptables firewall maintained by the netfilter team is advancing to more powerful security and network management tool with the recent releases.It will be a topic of interest for any linux based server/network administrator. This article covers effective configuration and optimization of the iptables firewall system in 2.6.x kernels in order to more effectively defend against TCP attacks and to drop unwanted packets without messing them up with your business critical services!!

Kernels from 2.6 include support for matching strings present in IP packets, inspecting the entire packet data. Earlier kernels supported matching at the IP header level only, which was a limitation as the rules can be formed only based on header values like IP addresses, ports, packet state etc. The netfilter iptables firewall system has undergone great advancements in the latest kernels, with the modified string matching option being more interesting among them for server administrators. The rules, based on string matching functions, are very easy to implement. This guide intends to introduce the method to users with a basic understanding of networking and iptables.

System Requirements.

  1. Preferred kernel version : 2.6.18 or later.
  2. The iptables program(1.3.5 or later) installed on your machine.
  3. The kernel should be compiled with string matching support. To do this, the following line should be added to the .config file prior to compiling the kernel:
    CONFIG_NETFILTER_XT_MATCH_STRING=m
    

If you use a pre-complied kernel, check for this option in the config file with the appropriate version of the kernel in your /boot directory. If present, it means that netfilter string matching is compiled as a module. Make sure that the module is loaded (using the lsmod command or by looking for the appropriate entry in the /proc/modules file). The minimum requirement is a 2.6.14 kernel, however it is a bit difficult to get it working on kernels before 2.6.18. Customising the kernel and iptables is required in that case. Suggested configuration options for older kernels can be detailed in another article, if there is demand.

Formating the Rules.

If iptables is installed with string matching support, its man page can be found with the following command:

iptables -m string -help
Here is the relevant section from the iptables(8) man page:

   string

         This  modules  matches  a  given string by using some
pattern matching strategy. It requires a linux kernel >= 2.6.14.

        --algo  bm|kmp

              Select the pattern matching strategy. (bm = Boyer-
Moore, kmp = Knuth-Pratt-Morris)


        --from offset

              Set the offset from which it starts looking for any
matching. If not passed, default is 0.

        --to offset

              Set the offset to which it starts looking for any
matching. If not passed, default  is  the

              packet size.

        --string pattern

              Matches the given pattern.  --hex-string pattern
Matches the given pattern in hex notation.


In iptables 1.3.5, you need to specify the algorithm to use for string matching using the --algo option. We may limit the search by specifying the offset values as well. Two algorithms can be used, Boyer-Moore and Knuth-Morris-Pratt. More information regarding these algorithms can be found at Wikipedia - for Boyer-Moore the URL is:

http://en.wikipedia.org/wiki/Boyer%E2%80%93Moore_string_search_algorithm

and for Knuth-Morris-Pratt the URL is:

http://en.wikipedia.org/wiki/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm

Boyer-Moore is efficient and fast and is preferable in most cases.

Common Applications and Useful Example Rules:

1) To prevent an intrusion attempt.

In case, a suspecious URL upload using the webserver was detected, You could frame similar rules as follows.
iptables -I INPUT 1 -p tcp --dport 80 -m string --string "cmd.exe" --algo bm -j DROP
The rule blocks all packets to port 80 containing the string cmd.exe. Mod_security is an option for the same, but it can be an overload to your busy webservers.

2) To defend DDOS to a service.

It is a common case where we need to drop requests to a domain when it is under DDOS. mod_dosevasive is an option, but it really overloads the webserver. String matching option can be utilized here without overloading the webserver.

iptables -I INPUT 1 -p tcp --dport 80 -m string --string "domain.com" --algo kmp -j DROP
The rule, blocks all web requests to domain.com. These rules can also be used in conjunction with other iptables matches and options depending on what is required.

3) To Defend against E-mail Spoofing.

We can make use of the string matching option in numerous cases to drop intruder and spam packets before they enter the server. Another instance for example is, if the mail server is receiving many spoofed e-mails with a common 'Subject'.If the spammer is using a unique IP address, it is very easy to block him using RBLs, conventional iptables rules etc. But when the spammer is using different IP addresses, it makes things difficult for the administrator.In such a case, the following string based rule can be added to the firewall so that the mail server will not get overloaded by the spoofed mails.
iptables -I INPUT -p tcp --dport 25 -m string --string "Subject" --algo bm -j DROP

**Do it now with an optimised rule!

The same rule might be modified to one with less overhead (that is, it uses less resources) by limiting the search specifying offset values, and by assuming that the SMTP subject header will be within an offset limit of 15000 in the packet.
iptables -I INPUT -p tcp --dport 25 -m string --string "Subject"  --algo bm --to 15000 -j DROP

4) Other general cases.

Apart from the instances discussed above, you can make use of the string matching options, wherever you need to manage the packets entering a server or network,based on strings like URLs, file names, file contents etc.

Conclusion.

The string matching option can be effectively utilized when a network needs to be filtered using strings. We can block the packets right at the kernel level itself without overloading your server applications. However, there is a higher overhead involved for the kernel with string matching, compared to other ordinary iptables matchings. Offset limits should be specified for searching wherever possible in order to reduce this overhead.

Tuesday, September 10, 2013

Multiple IP addresses on One Interface

Multiple IP addresses on One Interface

Interface aliasing allows one interface to have multiple IP addresses. This is useful when more than one server is to be visible via the Internet. Note that virtual hosts can support multiple Apache servers with a single IP address. Apache responds to the domain name supplied by the client in the HTTP header. In many other situations, one external IP is needed for each server using a port.
This /etc/network/interfaces text assigns three IP addresses to eth0. 
 
 
auto eth0
allow-hotplug eth0
iface eth0 inet static
    address 192.168.1.42
    netmask 255.255.255.0
    gateway 192.168.1.1

auto eth0:0
allow-hotplug eth0:0
iface eth0:0 inet static
    address 192.168.1.43
    netmask 255.255.255.0

auto eth0:1
allow-hotplug eth0:1
iface eth0:1 inet static
    address 192.168.1.44
    netmask 255.255.255.0
 
 
An alias interface should not have "gateway" or "dns-nameservers"; dynamic IP assignment is permissible.
The above configuration is the previous traditional method that reflects the traditional use of ifconfig to configure network devices. ifconfig has introduced the concept of aliased or virtual interfaces. Those types of virtual interfaces have names of the form interface:integer and ifconfig treats them very similarly to real interfaces.
Nowadays ifupdown uses ip utility from the iproute2 package instead of ifconfig. The newer ip utility does not use the same concept of aliases or virtual interfaces. However, it supports assigning arbitrary names to the interfaces (they're called labels). ifupdown uses this feature to support aliased interfaces while using ip.
Also, ifupdown supports specifying multiple interfaces by repeating iface sections with the same interface name. The key difference from the method described above is that all such sections are treated by ifupdown as just one interface, so user can't add or remove them individually. However, up/down commands, as well as scripts, are called for every section as it used to be.
This /etc/network/interfaces text assigns three IP addresses to eth0.
 
 
auto eth0
allow-hotplug eth0
iface eth0 inet static
    address 192.168.1.42
    netmask 255.255.255.0
    gateway 192.168.1.1

iface eth0 inet static
    address 192.168.1.43
    netmask 255.255.255.0

iface eth0 inet static
    address 192.168.1.44
    netmask 255.255.255.0

# adding IP addresses from different subnets is also possible
iface eth0 inet static
    address 10.10.10.14
    netmask 255.255.255.0


Additional information can be found on the http://www.shorewall.net/Shorewall_and_Aliased_Interfaces.html page.

Tuesday, August 14, 2012

How to I change my Keyboard Layout on Openbox?

From a terminal run the following command:

sudo dpkg-reconfigure console-setup
 
This will step through various configuration options for your console, along with Keyboard Layout.

For temporarily switching between keyboard layouts

Especially if you don't have too many keybindings 
So I needed to have both the regular US keyboard as well as the US International keyboard so that I could type in Thai keyboard.
Here are the steps I took:
1) Determine which keyboard layouts you want to switch between. Determine if you want 2, 3, or more. This tutorial will work with as many as you need, but this is the first step 
2) Open up a text editor and open the file ~/.config/openbox/rc.xml
3) Scroll down to the keybindings section - you should see stuff like <keybinding key="“blah-blah”"></keybinding>
4) Find any line which says </keybinding>
5) Go to the end of that line and hit Enter
6) Copy and paste the following text:

    <keybind key="C-F11">
    <action name="Execute">
    <startupnotify>
    <enabled>true</enabled>
    <name>English keyboard</name>
    </startupnotify>
    <command>setxkbmap us</command>
    </action>
    </keybind>

    <keybind key="C-F12">
    <action name="Execute">
    <startupnotify>
    <enabled>true</enabled>
    <name>Thai keyboard</name>
    </startupnotify>
    <command>setxkbmap th</command>
    </action>
    </keybind>

7) Edit the <key=“C-F12”> and the <command>setxkbmap th</command> to fit your desires (C is Ctrl key, A is Alt key, S is Shift key, and change it if you want :-D)
8) Rinse, Lather, and Repeat for all of your other desired keymaps.
9) Restart Openbox or reboot computer.
That's it!

Thursday, June 14, 2012

How to join or merge multiple .avi or .mpg files

I have recently started watching the fab serialized movie Bloodspell, which is created entirely in Neverwinter Nights.
Bloodspell is released in a series of 6-7 MB files. So far they’re up to part 7. This certainly makes it easier to download on to my laptop and enjoy 10 minutes of Bloodspell at a time. However, I want to burn this to a DVD and watch all seven at once on my home DVD player. Before I did this I just wanted to string together the 7 .avi files into one larger file. (I can’t stand a mess!) Sounds like a simple request? Guess what, in my distro, Ubuntu, it is!

This will most likely work on just about any linux distro that includes the ability to install mplayer/mencoder.
First, let’s get the right programs.
sudo apt-get install mencoder mplayer
Now that the hard part is out of the way, we’re going to make use of the wonderful cat command. I’d renamed each Bloodspell video as b1.avi – b7.avi. Now to string them all end to end.
cat b1.avi b2.avi b3.avi b4.avi b5.avi b6.avi b7.avi > bloodspell.avi
Now we’re 2/3 of the way there! Stringing together .avi files can cause a breakdown in the sync between video and sound. So, we’ll use mencoder to sort things out.
mencoder -forceidx -oac copy -ovc copy bloodspell.avi.avi -o bloodspell_final.avi
That’s it! You’ve got one contiguous .avi file now containing all seven bloodspell releases to date. This will of course work with other .avi files. It will also work with .mpg or .mpeg files as well.
Later we’ll discuss getting this .avi file on to a DVD so you can watch it anywhere.
geek out.

Tuesday, August 16, 2011

HOW TO : Convert .flv to .mp3 in Ubuntu, Debian Linux

Converting flv to mp3 has become so easy in Linux within few minutes.

Installation of FFmpeg on Debian OR Ubuntu Linux

* root:~#apt-get install ffmpeg

Converting .flv to .mp3

* ffmpeg -i input_filename.flv -acodec copy output_filename.mp3

Good luck :)

Wednesday, January 6, 2010

How To Convert DMG To ISO on Mac OSX, Windows and Linux

Here are ways that you can convert dmg files to iso files on Mac OSX, Windows and Linux.

Before we start, let’s download a dmg file from the public domain. I found one on Apple’s article about The XMLHttpRequest Object website while I was learning Ajax and that can be downloaded from this link. This is just a 150KB dmg file and will be handy if you want to have something to test with while you’re following this tutorial.

How to convert dmg files to iso files on Mac

Method 1: Using the Mac terminal
1. Open a terminal window from Finder > Applications > Utilities > Terminal.

2. Assuming that you have a disk image called apple.dmg in the current directory, type

hdiutil convert apple.dmg -format UDTO -o apple.iso

3. This will actually create a file called image.iso.cdr in the current directory (even though we asked for the output to be image.iso). This file can be safely renamed to image.iso, copied to a Windows server or machine, and burned with your CD/DVD burner of choice.

Generally, the command hdiutil can be used this way:

hdiutil convert /path/to/filename.dmg -format UDTO -o /path/to/savefile.iso

Method 2: Using DMGConverter (freeware)
1. DMGConverter is a disk image (.dmg, .cdr, .iso) creation and conversion tool which is simple and easy to use. It is a very useful tool for the collective processing of more than one file and every folder, and it can deal with all the fundamental processing with the drag & drop of the file/folder. For Mac Only.

How to convert dmg files to iso files on Windows

This is for Windows users who might have downloaded a dgm file and wondering how to extract the content, or not even knowing how and what to do with the dgm file. I’ve been there at a certain stage. the sharewares mentioned are fully functional and allows you to use the “convert dmg to iso” function even when it’s not registered yet.

Method 1: Using MagicISO (shareware)
1. Download MagicISO, install and run program.

2. Click to open dmg file.

3. Click to open “Properties” dialogs.

4. Uncheck Apple HFS and Apple HFS+

5. Check “ISO 9660″ “Joliet” “UDF”

6. Click OK

7. Click to save as to iso image, or click to burn to CD/DVD without saving.

Method 2: Using UltraISO (shareware)
UltraISO basically does the same thing, but it can save you time from doing step 3 to 6 compared to method 1.

Alternative Solutions: dmg2iso (freeware) and isobuster (shareware)
I’ve heard and read that some people had been able to convert dmg files into iso files using dmg2iso (freeware). I’ve tried dmg2iso, converted my dmg file to iso without problem, but the converted iso file is corrupted and can’t be open by any tools (Daemon Tools, Alcohol, MagicISO, UltraISO and ISOBuster) that I’ve tested. It might work for you, but no guarantees.

ISOBuster is pretty similar to MagicISO and UltraISO. But too bad that the function to “convert dmg to iso” is restricted and won’t be functional until you buy the software.

How to convert dmg files to iso files On Linux

Free open-source app AcetoneISO provides a great deal of disc image manipulation tools not found in the Gnome desktop. It can mount/unmount a variety of image formats (ISO, DMG, MDF, NRG, BIN, NRG), convert images, create, encrypt, and decrypt ISOs, play DVDs (with the required codecs installed), and much more. It is particularly useful for mounting proprietary formats found in Windows and Mac boot discs. AcetoneISO is a one-stop-shop for all of your CD/DVD image manipulation needs, and is a free download for Linux only. This works on all famous linux distro such as Ubuntu, SUSE, Fedora, Mandrake, and Redhat.

So there you have it, and this should get you covered no matter what operating system you’re using.

Monday, November 17, 2008

/root/firewall

##### /root/firewall #####
##### and chmod 700 /root/firewall #####
#! /bin/sh
##### Configure both network interfaces ######
# Delete and flush. Default table is "filter". Others like "nat"
# must be explicitly stated.
/sbin/iptables --flush
#####- Flush all the rules in filter and nat tables
/sbin/iptables -t nat -F
/sbin/iptables --delete-chain
#####- Delete all chains that are not in default filter and nat table
/sbin/iptables --table nat --delete-chain
#####Set up IP FORWARDing and Masquerading
/sbin/iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
/sbin/iptables --append FORWARD --in-interface eth1 -j ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward
#####Allow loopback access. This rule must come before the rules
#####denying port access!!
/sbin/iptables -A INPUT -i lo -p all -j ACCEPT
#####- Essential rule so your computer to be able to access itself
##### through the loopback interface
/sbin/iptables -A OUTPUT -o lo -p all -j ACCEPT
##### Catch port 80 and redirect to port 3128 #####
/sbin/iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

##### Redirect RDP port to 10.0.0.99 #####
#/sbin/iptables -t nat -A PREROUTING -t nat -p tcp -d 10.0.0.X --dport 5900 -j DNAT --to 10.0.0.Y:5900
/sbin/iptables -t nat -A PREROUTING -t nat -p tcp --dport 3389 -j DNAT --to 10.0.0.Y:3389

##### Block your kids/customers/employees from connecting to squid #####
##### directly order to bypass the filter. #####
/sbin/iptables -A INPUT -m tcp -p tcp -s ! 127.0.0.1 --dport 3128 -j DROP
################# Allow rules ##############################
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#####- Accept established connections
/sbin/iptables -A INPUT -p tcp --tcp-option ! 2 -j REJECT --reject-with tcp-reset
##### Reject ICMP-port #####
/sbin/iptables -A INPUT -p icmp -j REJECT --reject-with icmp-port-unreachable
#####- Open secure shell port ######
/sbin/iptables -A INPUT -p tcp --dport 22 -j ACCEPT
#####- Open secure shell port ######
/sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT
#####- Open HTTP and Proxy port
#/sbin/iptables -A INPUT -p tcp --dport 3128 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
##### Open icp port connection for proxy
/sbin/iptables -A INPUT -p tcp --dport 3130 -j ACCEPT
##### Open DNS port
/sbin/iptables -A INPUT -p tcp --dport 53 -j ACCEPT
/sbin/iptables -A INPUT -p udp --dport 53 -j ACCEPT
##### Open DHCP port
#/sbin/iptables -A INPUT -p udp --dport 67 --sport 68 -j ACCEPT
##### Allow all SMTP traffic #####
#/sbin/iptables -A INPUT -p tcp --dport 25 -j ACCEPT
##### Allow access to the VPN service
#/sbin/iptables -A INPUT -p udp --dport 1194 -j ACCEPT
#/sbin/iptables -A INPUT -i tun+ -j ACCEPT
#/sbin/iptables -A FORWARD -i tun+ -j ACCEPT
##### Allow access to Remote Desktop
/sbin/iptables -A INPUT -p tcp --dport 3389 -j ACCEPT
##### Allow access to ntop Network monitor
#/sbin/iptables -A INPUT -p tcp --dport 3000 -j ACCEPT
################## Drop all rules #############################
/sbin/iptables -P INPUT DROP
#####- Drop all other connection attempts. Only connections defined
##### above are allowed.

##### Log all rejected packets to syslog (useful for debugging) #####
/sbin/iptables -A INPUT -j LOG --log-level warn --log-prefix "[DENIED] "

/etc/network/interfaces

##### /etc/network/interfaces #####
auto lo
iface lo inet loopback

##### Wire Network #####
#auto eth1
iface eth1 inet dhcp

##### Wireless network #####
auto eth1
iface eth1 inet static
address 10.0.0.X
netmask 255.0.0.0
network 10.0.0.0
gateway 10.0.0.YYY
dns-nameservers 10.0.0.YYY 10.0.0.ZZZ
# broadcast 10.255.255.255
wpa-driver wext
# wpa-conf /etc/wpa_supplicant.conf
wpa-ssid Wireless_Network_SSID
wpa-ap-scan 2
wpa-proto RSN
wpa-pairwise CCMP TKIP
wpa-group TKIP
wpa-key-mgmt WPA-PSK
wpa-psk TOP_SECRET_PASSWORD
######## Example ###########
#wpa-driver wext
#wpa-conf managed
#wpa-ssid
#wpa-ap-scan 2
#wpa-proto RSN
#wpa-pairwise CCMP
#wpa-group CCMP
#wpa-key-mgmt WPA-PSK
#wpa-psk
############################

#auto eth2
iface eth2 inet dhcp

#auto ath0
iface ath0 inet dhcp

#auto wlan0
iface wlan0 inet dhcp

Linux Create / convert AVI file to DVD format ~ Create video DVDs

Create DVD from command line

Following tools get installed with devede:

  1. mencoder : MPlayer’s Movie Encoder) is a simple movie encoder
  2. ffmpeg : FFmpeg video converter
  3. dvdauthor : assembles multiple mpeg program streams into a suitable DVD filesystem

So if you are a pro command line user, type the following commands to convert file1.avi fille2.avi to DVD format (if you are not comfortable with command line use devede GUI software and just skip following commands) :


$ cat file1.avi file2.avi > ccmovie.avi


Now run movie encoder to create out.avi from ccmovie.avi (option -ovc and -oac sets no encoding, just streamcopy)


$ mencoder -o out.avi -noidx -oac copy -ovc copy ccmovie.avi


Next run FFmpeg video converter to set aspect ratio, ntsc dvd television standard etc:


$ ffmpeg -i out.avi -y -target ntsc-dvd -sameq -aspect 16:9 out.mpg


At a high level, a DVD is a collection of menus and titles. Conceptually, a menu contains buttons which can be assigned actions and provides a list of choices to the end user, while a title contains the main content of the DVD. However, in reality many of the features available in menus (including buttons, pausing, and looping) are also available in titles. Use dvdauthor assembles multiple mpeg program streams into a suitable DVD filesystem. You should see DVD filesytem in dvd directory:


$ dvdauthor --title -o dvd -f out.mpg


Creates the table of contents file instead of a titleset:

$ dvdauthor -o dvd -T


Create dvd.iso:

$ mkisofs -dvd-video -o dvd.iso dvd/


Burn dvd.iso to DVD disk:



$
growisofs -dvd-compat -dvd-video -speed=4 -Z /dev/dvdrw=dvd.iso